Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 99456 Details for
Bug 229342
[shared] Updates to the base in a shared read-only install
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch
229342.patch (text/plain), 4.91 KB, created by
Pascal Rapicault
on 2008-05-09 09:41:19 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Pascal Rapicault
Created:
2008-05-09 09:41:19 EDT
Size:
4.91 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.equinox.frameworkadmin.equinox >Index: src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.equinox/p2/bundles/org.eclipse.equinox.frameworkadmin.equinox/src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java,v >retrieving revision 1.8 >diff -u -r1.8 EquinoxFwConfigFileParser.java >--- src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java 30 Apr 2008 01:57:07 -0000 1.8 >+++ src/org/eclipse/equinox/internal/frameworkadmin/equinox/EquinoxFwConfigFileParser.java 9 May 2008 13:39:44 -0000 >@@ -246,16 +246,10 @@ > //Start figuring out stuffs > URL rootURL = launcherData.getLauncher() != null ? launcherData.getLauncher().getParentFile().toURL() : null; > >- // look for shared configuration to merge >- String sharedConfigurationArea = props.getProperty(EquinoxConstants.PROP_SHARED_CONFIGURATION_AREA); >- if (sharedConfigurationArea != null) { >- File sharedConfigIni = findSharedConfigIniFile(rootURL, sharedConfigurationArea); >- if (sharedConfigIni != null && sharedConfigIni.exists()) { >- Properties sharedProps = loadProperties(sharedConfigIni); >- // merge: shared properties are over-written by user customizations >- sharedProps.putAll(props); >- props = sharedProps; >- } >+ Properties sharedConfigProperties = getSharedConfiguration(props.getProperty(EquinoxConstants.PROP_SHARED_CONFIGURATION_AREA), getOSGiInstallArea(manipulator.getLauncherData())); >+ if (sharedConfigProperties != null) { >+ sharedConfigProperties.putAll(props); >+ props = sharedConfigProperties; > } > > //Extracting fwkJar location needs to be done first >@@ -333,7 +327,6 @@ > > // check for a relative URL > if (!sharedConfigurationURL.getPath().startsWith("/")) { //$NON-NLS-1$ >- > if (!rootURL.getProtocol().equals(sharedConfigurationURL.getProtocol())) { > Log.log(LogService.LOG_WARNING, NLS.bind(Messages.log_shared_config_relative_url, rootURL.toExternalForm(), sharedConfigurationArea)); > return null; >@@ -496,6 +489,7 @@ > try { > out = new FileOutputStream(outputFile); > configProps = makeRelative(configProps, launcherData.getLauncher().getParentFile().toURL(), fwJar, outputFile.getParentFile(), getOSGiInstallArea(manipulator.getLauncherData())); >+ filterPropertiesFromSharedArea(configProps, launcherData); > configProps.store(out, header); > Log.log(LogService.LOG_INFO, NLS.bind(Messages.log_fwConfigSave, outputFile)); > } finally { >@@ -508,4 +502,64 @@ > out = null; > } > } >+ >+ private void filterPropertiesFromSharedArea(Properties configProps, LauncherData launcherData) { >+ //Remove from the config file that we are about to write the properties that are unchanged compared to what is in the base >+ Properties sharedConfigProperties = getSharedConfiguration(configProps.getProperty(EquinoxConstants.PROP_SHARED_CONFIGURATION_AREA), getOSGiInstallArea(launcherData)); >+ if (sharedConfigProperties == null) >+ return; >+ Enumeration keys = configProps.propertyNames(); >+ while (keys.hasMoreElements()) { >+ String key = (String) keys.nextElement(); >+ String sharedValue = sharedConfigProperties.getProperty(key); >+ if (sharedValue == null) >+ continue; >+ if (equalsIgnoringSeparators(sharedValue, configProps.getProperty(key))) >+ configProps.remove(key); >+ } >+ } >+ >+ private boolean equalsIgnoringSeparators(String s1, String s2) { >+ if (s1 == null && s2 == null) >+ return true; >+ if (s1 == null || s2 == null) >+ return false; >+ StringBuffer sb1 = new StringBuffer(s1); >+ StringBuffer sb2 = new StringBuffer(s2); >+ canonicalizePathsForComparison(sb1); >+ canonicalizePathsForComparison(sb2); >+ return sb1.toString().equals(sb2.toString()); >+ } >+ >+ private void canonicalizePathsForComparison(StringBuffer s) { >+ final String[] tokens = new String[] {"\\\\", "\\", "//", "/"}; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ >+ for (int t = 0; t < tokens.length; t++) { >+ int idx = s.length(); >+ for (int i = s.length(); i != 0 && idx != -1; i--) { >+ idx = s.lastIndexOf(tokens[t], idx); >+ if (idx != -1) >+ s.replace(idx, idx + tokens[t].length(), "^"); //$NON-NLS-1$ >+ } >+ } >+ } >+ >+ private Properties getSharedConfiguration(String sharedConfigurationArea, File baseFile) { >+ if (sharedConfigurationArea == null) >+ return null; >+ File sharedConfigIni; >+ try { >+ sharedConfigIni = findSharedConfigIniFile(baseFile.toURL(), sharedConfigurationArea); >+ } catch (MalformedURLException e) { >+ return null; >+ } >+ if (sharedConfigIni != null && sharedConfigIni.exists()) >+ try { >+ return loadProperties(sharedConfigIni); >+ } catch (FileNotFoundException e) { >+ return null; >+ } catch (IOException e) { >+ return null; >+ } >+ return null; >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 229342
:
99419
| 99456 |
99457