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 160808 Details for
Bug 304505
org.eclipse.update.configurator performs duplicate work even when off
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Potential fix
patch.txt (text/plain), 29.62 KB, created by
John Arthorne
on 2010-03-03 12:11:42 EST
(
hide
)
Description:
Potential fix
Filename:
MIME Type:
Creator:
John Arthorne
Created:
2010-03-03 12:11:42 EST
Size:
29.62 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.update.configurator >Index: src/org/eclipse/update/internal/configurator/ConfigurationActivator.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/ConfigurationActivator.java,v >retrieving revision 1.71 >diff -u -r1.71 ConfigurationActivator.java >--- src/org/eclipse/update/internal/configurator/ConfigurationActivator.java 12 Mar 2009 15:39:22 -0000 1.71 >+++ src/org/eclipse/update/internal/configurator/ConfigurationActivator.java 3 Mar 2010 17:07:56 -0000 >@@ -76,11 +76,19 @@ > > Utils.debug("Starting update configurator..."); //$NON-NLS-1$ > >- String reconcile = ctx.getProperty("org.eclipse.update.reconcile"); //$NON-NLS-1$ >- if (reconcile == null || reconcile.equalsIgnoreCase("true")) //$NON-NLS-1$ >+ if (isReconciling()) > installBundles(); > registerBundleGroupProvider(); > } >+ >+ /** >+ * Returns whether the update configurator should be doing its own reconciling work >+ */ >+ public static boolean isReconciling() { >+ String reconcile = context.getProperty("org.eclipse.update.reconcile"); //$NON-NLS-1$ >+ return reconcile == null || reconcile.equalsIgnoreCase("true"); //$NON-NLS-1$ >+ >+ } > > private void registerBundleGroupProvider() { > final String serviceName = IBundleGroupProvider.class.getName(); >@@ -253,7 +261,7 @@ > if (activationPolicy != null) { > ManifestElement[] elements = ManifestElement.parseHeader(Constants.BUNDLE_ACTIVATIONPOLICY, activationPolicy); > if (elements != null && elements.length > 0) { >- // if the value is "lazy" then it has a lazy activation poliyc >+ // if the value is "lazy" then it has a lazy activation policy > if (Constants.ACTIVATION_LAZY.equals(elements[0].getValue())) > return true; > } >Index: src/org/eclipse/update/internal/configurator/PlatformConfiguration.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfiguration.java,v >retrieving revision 1.94 >diff -u -r1.94 PlatformConfiguration.java >--- src/org/eclipse/update/internal/configurator/PlatformConfiguration.java 7 Nov 2008 21:19:13 -0000 1.94 >+++ src/org/eclipse/update/internal/configurator/PlatformConfiguration.java 3 Mar 2010 17:07:56 -0000 >@@ -60,7 +60,7 @@ > > private static PlatformConfiguration currentPlatformConfiguration = null; > //private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); >-// private static final TransformerFactory transformerFactory = TransformerFactory.newInstance(); >+ // private static final TransformerFactory transformerFactory = TransformerFactory.newInstance(); > private static final String XML_ENCODING = "UTF-8"; //$NON-NLS-1$ > > private Configuration config; >@@ -86,7 +86,7 @@ > private static final String CONFIG_FILE_LOCK_SUFFIX = ".lock"; //$NON-NLS-1$ > private static final String CONFIG_FILE_TEMP_SUFFIX = ".tmp"; //$NON-NLS-1$ > private static final String LINKS = "links"; //$NON-NLS-1$ >- private static final String[] BOOTSTRAP_PLUGINS = {}; >+ private static final String[] BOOTSTRAP_PLUGINS = {}; > > private static final String DEFAULT_FEATURE_APPLICATION = "org.eclipse.ui.ide.workbench"; //$NON-NLS-1$ > >@@ -94,44 +94,45 @@ > private static final String LINK_READ = "r"; //$NON-NLS-1$ > private static final String LINK_READ_WRITE = "rw"; //$NON-NLS-1$ > private static URL installURL; >- >+ > private PlatformConfiguration(Location platformConfigLocation) throws CoreException, IOException { > > this.externalLinkSites = new HashMap(); > this.config = null; >- >+ > // initialize configuration > initializeCurrent(platformConfigLocation); >- if(config != null) >+ if (config != null) > setDefaultPolicy(); > > // Detect external links. These are "soft link" to additional sites. The link > // files are usually provided by external installation programs. They are located > // relative to this configuration URL. >- // Note: don't do it for self hosting >- if (!isTransient()) >- configureExternalLinks(); >- >- // Validate sites in the configuration. Causes any sites that do not exist to >- // be removed from the configuration >- validateSites(); >+ // Note: don't do it for self hosting or if update reconciler is disabled >+ if (ConfigurationActivator.isReconciling()) { >+ if (!isTransient()) >+ configureExternalLinks(); >+ >+ // Validate sites in the configuration. Causes any sites that do not exist to >+ // be removed from the configuration >+ validateSites(); >+ } > > // compute differences between configuration and actual content of the sites > // (base sites and link sites) > // Note: when the config is transient (generated by PDE, etc.) we don't reconcile > if (isTransient()) > return; >- >+ > // for 'osgi.clean' or osgi.checkConfiguration', force a refresh > boolean osgiClean = "true".equals(ConfigurationActivator.getBundleContext().getProperty("osgi.clean")); //$NON-NLS-1$ //$NON-NLS-2$ > boolean osgiCheckConfiguration = "true".equals(ConfigurationActivator.getBundleContext().getProperty("osgi.checkConfiguration")); //$NON-NLS-1$ //$NON-NLS-2$ >- >+ > if (osgiClean || osgiCheckConfiguration) { > // We have to call refresh() for features to be rescanned correctly > refresh(); > reconcile(); >- } >- else { >+ } else { > changeStamp = computeChangeStamp(); > if (changeStamp > config.getDate().getTime()) > reconcile(); >@@ -148,11 +149,11 @@ > installLocation = new Path(url.getPath()).removeLastSegments(3).toFile().toURL(); > } > } catch (Exception e) { >- // >+ // > } >- initialize(url, installLocation); >+ initialize(url, installLocation); > } >- >+ > public PlatformConfiguration(URL url, URL installLocation) throws Exception { > this.externalLinkSites = new HashMap(); > initialize(url, installLocation); >@@ -163,15 +164,15 @@ > // has a MANAGED_ONLY policy, then all sites should have default policy > // of MANAGED_ONLY. > ISiteEntry[] sentries = getConfiguredSites(); >- if(sentries != null && sentries.length >0){ >+ if (sentries != null && sentries.length > 0) { > int policyType = sentries[0].getSitePolicy().getType(); >- if(policyType == ISitePolicy.MANAGED_ONLY){ >+ if (policyType == ISitePolicy.MANAGED_ONLY) { > defaultPolicy = policyType; > } > } > } > >- public static int getDefaultPolicy(){ >+ public static int getDefaultPolicy() { > return defaultPolicy; > } > >@@ -218,7 +219,7 @@ > > if (entry == null) > return; >- >+ > URL url = entry.getURL(); > if (url == null) > return; >@@ -226,9 +227,9 @@ > String key = url.toExternalForm(); > if (config.getSiteEntry(key) != null && !replace) > return; >- >+ > if (entry instanceof SiteEntry) >- config.addSiteEntry(key, (SiteEntry)entry); >+ config.addSiteEntry(key, (SiteEntry) entry); > } > > /* >@@ -241,8 +242,8 @@ > URL url = entry.getURL(); > if (url == null) > return; >- >- String key = url.toExternalForm(); >+ >+ String key = url.toExternalForm(); > if (entry instanceof SiteEntry) > config.removeSiteEntry(key); > } >@@ -253,14 +254,14 @@ > public ISiteEntry[] getConfiguredSites() { > if (config == null) > return new ISiteEntry[0]; >- >+ > SiteEntry[] sites = config.getSites(); > ArrayList enabledSites = new ArrayList(sites.length); >- for (int i=0; i<sites.length; i++) { >+ for (int i = 0; i < sites.length; i++) { > if (sites[i].isEnabled()) > enabledSites.add(sites[i]); > } >- return (ISiteEntry[])enabledSites.toArray(new ISiteEntry[enabledSites.size()]); >+ return (ISiteEntry[]) enabledSites.toArray(new ISiteEntry[enabledSites.size()]); > } > > /* >@@ -269,7 +270,7 @@ > public ISiteEntry findConfiguredSite(URL url) { > return findConfiguredSite(url, true); > } >- >+ > /** > * > * @param url site url >@@ -281,7 +282,7 @@ > return null; > String key = url.toExternalForm(); > >- SiteEntry result = config.getSiteEntry(key); >+ SiteEntry result = config.getSiteEntry(key); > if (result == null) { // retry with decoded URL string > try { > //PAL foundation >@@ -292,7 +293,7 @@ > } > result = config.getSiteEntry(key); > } >- >+ > if (result == null && checkPlatformURL) { > try { > result = findConfiguredSite(config.asPlatformURL(url), false); >@@ -320,17 +321,17 @@ > config = new Configuration(); > > SiteEntry[] sites = config.getSites(); >- for (int i=0; i<sites.length; i++) { >+ for (int i = 0; i < sites.length; i++) { > // find out what site contains the feature and configure it > try { >- URL url = new URL(sites[i].getURL(), FEATURES + "/" + entry.getFeatureIdentifier()+ "_" + entry.getFeatureVersion() + "/"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ >+ URL url = new URL(sites[i].getURL(), FEATURES + "/" + entry.getFeatureIdentifier() + "_" + entry.getFeatureVersion() + "/"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ > try { > url = resolvePlatformURL(url, getBasePathLocation(url, config.getInstallURL(), config.getURL())); > } catch (IOException e) { > } > if (new File(url.getFile()).exists()) > sites[i].addFeatureEntry(entry); >- else { >+ else { > url = new URL(sites[i].getURL(), FEATURES + "/" + entry.getFeatureIdentifier() + "/"); //$NON-NLS-1$ //$NON-NLS-2$ > if (new File(url.getFile()).exists()) > sites[i].addFeatureEntry(entry); >@@ -360,12 +361,12 @@ > public IFeatureEntry[] getConfiguredFeatureEntries() { > ArrayList configFeatures = new ArrayList(); > SiteEntry[] sites = config.getSites(); >- for (int i=0; i<sites.length; i++) { >+ for (int i = 0; i < sites.length; i++) { > FeatureEntry[] features = sites[i].getFeatureEntries(); >- for (int j=0; j<features.length; j++) >+ for (int j = 0; j < features.length; j++) > configFeatures.add(features[j]); > } >- return (IFeatureEntry[])configFeatures.toArray(new FeatureEntry[configFeatures.size()]); >+ return (IFeatureEntry[]) configFeatures.toArray(new FeatureEntry[configFeatures.size()]); > } > > /* >@@ -376,7 +377,7 @@ > return null; > > SiteEntry[] sites = config.getSites(); >- for (int i=0; i<sites.length; i++) { >+ for (int i = 0; i < sites.length; i++) { > FeatureEntry f = sites[i].getFeatureEntry(id); > if (f != null) > return f; >@@ -416,7 +417,6 @@ > return 0; > } > >- > public String getApplicationIdentifier() { > // Return the app if defined in system properties > String application = ConfigurationActivator.getBundleContext().getProperty(ECLIPSE_APPLICATION); >@@ -478,22 +478,21 @@ > } > return (URL[]) path.toArray(new URL[0]); > } >- >+ > public Set getPluginPaths() { >- >+ > HashSet paths = new HashSet(); > ISiteEntry[] sites = getConfiguredSites(); > > for (int i = 0; i < sites.length; i++) { > String[] plugins = sites[i].getPlugins(); > for (int j = 0; j < plugins.length; j++) { >- paths.add(plugins[j]); >+ paths.add(plugins[j]); > } > } >- >+ > return paths; > } >- > > /* > * A variation of the getPluginPath, but it returns the actual plugin entries >@@ -508,7 +507,7 @@ > Utils.debug("Site " + sites[i].getURL() + " is not a SiteEntry"); //$NON-NLS-1$ //$NON-NLS-2$ > continue; > } >- PluginEntry[] plugins = ((SiteEntry)sites[i]).getPluginEntries(); >+ PluginEntry[] plugins = ((SiteEntry) sites[i]).getPluginEntries(); > for (int j = 0; j < plugins.length; j++) { > allPlugins.add(plugins[j]); > Utils.debug(" " + plugins[j].getURL()); //$NON-NLS-1$ >@@ -516,7 +515,6 @@ > } > return (PluginEntry[]) allPlugins.toArray(new PluginEntry[0]); > } >- > > /* > * @see IPlatformConfiguration#getBootstrapPluginIdentifiers() >@@ -581,7 +579,7 @@ > */ > public synchronized void save(URL url) throws IOException { > if (url == null) >- throw new IOException(Messages.cfig_unableToSave_noURL); >+ throw new IOException(Messages.cfig_unableToSave_noURL); > > OutputStream os = null; > if (!url.getProtocol().equals("file")) { //$NON-NLS-1$ >@@ -595,7 +593,7 @@ > } catch (CoreException e) { > Utils.log(e.getMessage()); > Utils.log(e.getStatus()); >- throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] { url.toExternalForm() }))); >+ throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] {url.toExternalForm()}))); > } finally { > os.close(); > } >@@ -604,7 +602,7 @@ > File cfigFile = new File(url.getFile().replace('/', File.separatorChar)); > if (!cfigFile.getName().equals(PLATFORM_XML)) { > if (cfigFile.exists() && cfigFile.isFile()) { >- Utils.log(Messages.PlatformConfiguration_expectingPlatformXMLorDirectory + cfigFile.getName()); >+ Utils.log(Messages.PlatformConfiguration_expectingPlatformXMLorDirectory + cfigFile.getName()); > cfigFile = cfigFile.getParentFile(); > } > cfigFile = new File(cfigFile, CONFIG_NAME); >@@ -619,35 +617,35 @@ > // - rename the temp file to platform.xml > File cfigFileOriginal = new File(cfigFile.getAbsolutePath()); > File cfigTmp = new File(cfigFile.getAbsolutePath() + CONFIG_FILE_TEMP_SUFFIX); >- >+ > // Backup old file >- if (cfigFile.exists()){ >+ if (cfigFile.exists()) { > File backupDir = new File(workingDir, CONFIG_HISTORY); > if (!backupDir.exists()) > backupDir.mkdir(); > long timestamp = cfigFile.lastModified(); >- File preservedFile = new File(backupDir, String.valueOf(timestamp)+".xml"); //$NON-NLS-1$ >+ File preservedFile = new File(backupDir, String.valueOf(timestamp) + ".xml"); //$NON-NLS-1$ > // If the target file exists, increment the timestamp. Try at most 100 times. > long increment = 1; >- while (preservedFile.exists() && increment < 100){ >- preservedFile = new File(backupDir, String.valueOf(timestamp+increment++)+".xml"); //$NON-NLS-1$ >+ while (preservedFile.exists() && increment < 100) { >+ preservedFile = new File(backupDir, String.valueOf(timestamp + increment++) + ".xml"); //$NON-NLS-1$ > } > if (!preservedFile.exists()) { > // try renaming current config to backup copy > if (!cfigFile.renameTo(preservedFile)) >- Utils.log(Messages.PlatformConfiguration_cannotBackupConfig); >+ Utils.log(Messages.PlatformConfiguration_cannotBackupConfig); > } > } > > // first save the file as temp > os = new FileOutputStream(cfigTmp); >- >+ > try { > saveAsXML(os); > // Try flushing any internal buffers, and synchronize with the disk > try { > os.flush(); >- ((FileOutputStream)os).getFD().sync(); >+ ((FileOutputStream) os).getFD().sync(); > } catch (SyncFailedException e2) { > Utils.log(e2.getMessage()); > } catch (IOException e2) { >@@ -657,7 +655,7 @@ > os.close(); > os = null; > } catch (IOException e1) { >- Utils.log(Messages.PlatformConfiguration_cannotCloseStream + cfigTmp); >+ Utils.log(Messages.PlatformConfiguration_cannotCloseStream + cfigTmp); > Utils.log(e1.getMessage()); > } > // set file time stamp to match that of the config element >@@ -668,13 +666,13 @@ > changeStamp = config.getDate().getTime(); > config.setDirty(false); > } catch (CoreException e) { >- throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] { cfigTmp.getAbsolutePath() }))); >+ throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] {cfigTmp.getAbsolutePath()}))); > } finally { > if (os != null) > try { > os.close(); > } catch (IOException e1) { >- Utils.log(Messages.PlatformConfiguration_cannotCloseTempFile + cfigTmp); >+ Utils.log(Messages.PlatformConfiguration_cannotCloseTempFile + cfigTmp); > } > } > >@@ -687,14 +685,13 @@ > // with "tmp" (latest), then "bak" (the previous). We can also end up > // here if we failed to rename the current config to "bak". In that > // case we will restart with the previous state. >- Utils.log(Messages.PlatformConfiguration_cannotRenameTempFile); >- >- throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] { cfigTmp.getAbsolutePath() }))); >+ Utils.log(Messages.PlatformConfiguration_cannotRenameTempFile); >+ >+ throw new IOException(NLS.bind(Messages.cfig_unableToSave, (new String[] {cfigTmp.getAbsolutePath()}))); > } > } > } > >- > public static PlatformConfiguration getCurrent() { > return currentPlatformConfiguration; > } >@@ -704,12 +701,12 @@ > */ > public static synchronized void startup(URL installURL, Location platformConfigLocation) throws Exception { > PlatformConfiguration.installURL = installURL; >- >+ > // create current configuration > if (currentPlatformConfiguration == null) { > currentPlatformConfiguration = new PlatformConfiguration(platformConfigLocation); > if (currentPlatformConfiguration.config == null) >- throw new Exception(Messages.PlatformConfiguration_cannotLoadConfig + platformConfigLocation.getURL()); >+ throw new Exception(Messages.PlatformConfiguration_cannotLoadConfig + platformConfigLocation.getURL()); > if (currentPlatformConfiguration.config.isDirty()) > // If this is a transient config (generated by PDE),do nothing > // otherwise, save the configuration with proper date >@@ -735,7 +732,6 @@ > } > } > >- > private synchronized void initializeCurrent(Location platformConfigLocation) throws IOException { > > // Configuration URL was is specified by the OSGi layer. >@@ -747,7 +743,7 @@ > // configuration is written into the specified configuration area. > > URL configFileURL = new URL(platformConfigLocation.getURL(), CONFIG_NAME); >- try { >+ try { > // check concurrent use lock > getConfigurationLock(platformConfigLocation.getURL()); > >@@ -761,10 +757,10 @@ > Location parentLocation = platformConfigLocation.getParentLocation(); > if (parentLocation == null) > throw new IOException(); // no platform.xml found, need to create default site >- >+ > URL sharedConfigFileURL = new URL(parentLocation.getURL(), CONFIG_NAME); > config = loadConfig(sharedConfigFileURL, installURL); >- >+ > // pre-initialized config loaded OK ... copy any remaining update metadata > // Only copy if the default config location is not the install location > if (!sharedConfigFileURL.equals(configFileURL)) { >@@ -781,26 +777,25 @@ > // if config == null an unhandled exception has been thrown and we allow it to propagate > if (config != null) { > configLocation = configFileURL; >- if (config.getURL() == null) >+ if (config.getURL() == null) > config.setURL(configFileURL); >- verifyPath(configLocation, config.getInstallURL()); >+ verifyPath(configLocation, config.getInstallURL()); > Utils.debug("Creating configuration " + configFileURL.toString()); //$NON-NLS-1$ > } > } >- } finally { >+ } finally { > // releaes concurrent use lock > clearConfigurationLock(); > } > } > >- > private synchronized void initialize(URL url, URL installLocation) throws Exception { > if (url != null) { >- config = loadConfig(url, installLocation); >+ config = loadConfig(url, installLocation); > Utils.debug("Using configuration " + url.toString()); //$NON-NLS-1$ > } > if (config == null) { >- config = new Configuration(); >+ config = new Configuration(); > Utils.debug("Creating empty configuration object"); //$NON-NLS-1$ > } > config.setURL(url); >@@ -808,21 +803,22 @@ > configLocation = url; > } > >- private void createDefaultConfiguration(URL url, URL installLocation)throws IOException{ >+ private void createDefaultConfiguration(URL url, URL installLocation) throws IOException { > // we are creating new configuration > config = new Configuration(); > config.setURL(url); > config.setInstallLocation(installLocation); >- SiteEntry defaultSite = (SiteEntry)getRootSite(); >+ SiteEntry defaultSite = (SiteEntry) getRootSite(); > configureSite(defaultSite); > try { > // parse the site directory to discover features > defaultSite.loadFromDisk(0); > } catch (CoreException e1) { >- Utils.log(Messages.PlatformConfiguration_cannotLoadDefaultSite + defaultSite.getResolvedURL()); >+ Utils.log(Messages.PlatformConfiguration_cannotLoadDefaultSite + defaultSite.getResolvedURL()); > return; > } > } >+ > private ISiteEntry getRootSite() { > // create default site entry for the root > ISitePolicy defaultPolicy = createSitePolicy(getDefaultPolicy(), DEFAULT_POLICY_LIST); >@@ -835,7 +831,7 @@ > ISiteEntry defaultSite = createSiteEntry(siteURL, defaultPolicy); > return defaultSite; > } >- >+ > /** > * Gets the configuration lock > * @param url configuration directory >@@ -844,24 +840,24 @@ > if (!url.getProtocol().equals("file")) //$NON-NLS-1$ > return; > >- File lockFile = new File(url.getFile(), ConfigurationActivator.NAME_SPACE+ File.separator+CONFIG_FILE_LOCK_SUFFIX); >+ File lockFile = new File(url.getFile(), ConfigurationActivator.NAME_SPACE + File.separator + CONFIG_FILE_LOCK_SUFFIX); > verifyPath(url, config == null ? null : config.getInstallURL()); > // PAL nio optional >- lock = createLocker(lockFile); >+ lock = createLocker(lockFile); > try { > lock.lock(); > } catch (IOException ioe) { > lock = null; >- } >+ } > } >- >+ > private void clearConfigurationLock() { > // PAL nio optional > if (lock != null) { > lock.release(); > } > } >- >+ > /** > * Create a locker using java new I/O or regular I/O > * depending whether we run in J2SE or cdcFoundation >@@ -871,23 +867,23 @@ > if (!checkNio) { > useNio = true; > try { >- Class.forName("java.nio.channels.FileLock"); //$NON-NLS-1$ >+ Class.forName("java.nio.channels.FileLock"); //$NON-NLS-1$ > } catch (ClassNotFoundException e) { > useNio = false; > } > } > if (useNio) > return new Locker_JavaNio(lock); >- >+ > return new Locker_JavaIo(lock); > } >- >+ > private long computeChangeStamp() { > featuresChangeStamp = computeFeaturesChangeStamp(); > pluginsChangeStamp = computePluginsChangeStamp(); > changeStamp = Math.max(featuresChangeStamp, pluginsChangeStamp); > // round off to seconds >- changeStamp = (changeStamp/1000)*1000; >+ changeStamp = (changeStamp / 1000) * 1000; > return changeStamp; > } > >@@ -999,7 +995,7 @@ > Utils.debug(" bad URL " + e); //$NON-NLS-1$ > return; > } >- >+ > // process the link > SiteEntry linkSite = (SiteEntry) externalLinkSites.get(siteURL); > if (linkSite == null) { >@@ -1033,7 +1029,7 @@ > unconfigureSite(list[i]); > Utils.debug("Site " + siteURL + " does not exist ... removing from configuration"); //$NON-NLS-1$ //$NON-NLS-2$ > } >- >+ > // If multiple paths are defined in the same link file > // or if the path changes, the old site will still be kept. > // A better algorithm could be implemented by keeping track >@@ -1042,7 +1038,7 @@ > String linkName = list[i].getLinkFileName(); > if (linkName != null) { > File linkFile = new File(linkName); >- if (!linkFile.exists()) { >+ if (!linkFile.exists()) { > unconfigureSite(list[i]); > config.setDirty(true); > Utils.debug("Site " + siteURL + " is no longer linked ... removing from configuration"); //$NON-NLS-1$ //$NON-NLS-2$ >@@ -1050,7 +1046,7 @@ > } > } > } >- >+ > private void linkInitializedState(Configuration sharedConfig, Location sharedConfigLocation, Location newConfigLocation) { > try { > URL newConfigIniURL = new URL(newConfigLocation.getURL(), CONFIG_INI); >@@ -1063,7 +1059,7 @@ > String externalForm = Utils.makeRelative(config.getInstallURL(), sharedConfigLocation.getURL()).toExternalForm(); > props.put("osgi.sharedConfiguration.area", externalForm); //$NON-NLS-1$ > props.store(new FileOutputStream(configIni), "Linked configuration"); //$NON-NLS-1$ >- >+ > config = new Configuration(new Date()); > config.setURL(new URL(newConfigLocation.getURL(), CONFIG_NAME)); > config.setLinkedConfig(sharedConfig); >@@ -1074,31 +1070,31 @@ > System.out.println(e); > } > } >- >+ > private Configuration loadConfig(URL url, URL installLocation) throws Exception { > if (url == null) >- throw new IOException(Messages.cfig_unableToLoad_noURL); >+ throw new IOException(Messages.cfig_unableToLoad_noURL); > > // try to load saved configuration file (watch for failed prior save()) > ConfigurationParser parser = null; > try { > parser = new ConfigurationParser(); > } catch (InvocationTargetException e) { >- throw (Exception)e.getTargetException(); >+ throw (Exception) e.getTargetException(); > } >- >+ > config = null; > Exception originalException = null; > try { > config = parser.parse(url, installLocation); > if (config == null) >- throw new Exception(Messages.PlatformConfiguration_cannotFindConfigFile); >+ throw new Exception(Messages.PlatformConfiguration_cannotFindConfigFile); > } catch (Exception e1) { > // check for save failures, so open temp and backup configurations > originalException = e1; > try { >- URL tempURL = new URL(url.toExternalForm()+CONFIG_FILE_TEMP_SUFFIX); >- config = parser.parse(tempURL, installLocation); >+ URL tempURL = new URL(url.toExternalForm() + CONFIG_FILE_TEMP_SUFFIX); >+ config = parser.parse(tempURL, installLocation); > if (config == null) > throw new Exception(); > config.setDirty(true); // force saving to platform.xml >@@ -1109,12 +1105,13 @@ > File cfigFile = new File(url.getFile().replace('/', File.separatorChar)); > File workingDir = cfigFile.getParentFile(); > if (workingDir != null && workingDir.exists()) { >- File[] backups = workingDir.listFiles(new FileFilter(){ >+ File[] backups = workingDir.listFiles(new FileFilter() { > public boolean accept(File pathname) { > return pathname.isFile() && pathname.getName().endsWith(".xml"); //$NON-NLS-1$ >- }}); >+ } >+ }); > if (backups != null && backups.length > 0) { >- URL backupUrl = backups[backups.length-1].toURL(); >+ URL backupUrl = backups[backups.length - 1].toURL(); > config = parser.parse(backupUrl, installLocation); > } > } >@@ -1170,8 +1167,7 @@ > } > } > >- public static URL resolvePlatformURL(URL url, URL base_path_Location) >- throws IOException { >+ public static URL resolvePlatformURL(URL url, URL base_path_Location) throws IOException { > if (url.getProtocol().equals("platform")) { //$NON-NLS-1$ > if (base_path_Location == null) { > url = FileLocator.toFileURL(url); >@@ -1181,27 +1177,24 @@ > final String BASE = "platform:/base/"; > final String CONFIG = "platform:/config/"; > String toResolve = url.toExternalForm(); >- if (toResolve.startsWith(BASE)) >- url = new URL(base_path_Location, toResolve.substring(BASE >- .length())); >+ if (toResolve.startsWith(BASE)) >+ url = new URL(base_path_Location, toResolve.substring(BASE.length())); > else if (toResolve.startsWith(CONFIG)) { >- url = new URL(base_path_Location, toResolve.substring(CONFIG >- .length())); >- } >- else >+ url = new URL(base_path_Location, toResolve.substring(CONFIG.length())); >+ } else > url = base_path_Location; > } > } > return url; > } >- >- private URL getBasePathLocation(URL url, URL installLocation, URL configLocation) { >+ >+ private URL getBasePathLocation(URL url, URL installLocation, URL configLocation) { > final String BASE = "platform:/base/"; > final String CONFIG = "platform:/config/"; > String toResolve = url.toExternalForm(); >- if(toResolve.startsWith(BASE)) { >+ if (toResolve.startsWith(BASE)) { > return installLocation; >- }else if(toResolve.startsWith(CONFIG)){ >+ } else if (toResolve.startsWith(CONFIG)) { > URL config_loc; > try { > config_loc = new URL(configLocation, ".."); >@@ -1212,13 +1205,13 @@ > } > return url; > } >- >+ > public static URL getInstallURL() { > return installURL; > } >- >- private void saveAsXML(OutputStream stream) throws CoreException,IOException { >- BufferedWriter xmlWriter = new BufferedWriter(new OutputStreamWriter(stream,XML_ENCODING)); >+ >+ private void saveAsXML(OutputStream stream) throws CoreException, IOException { >+ BufferedWriter xmlWriter = new BufferedWriter(new OutputStreamWriter(stream, XML_ENCODING)); > try { > DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); > factory.setExpandEntityReferences(false); >@@ -1226,18 +1219,18 @@ > factory.setIgnoringComments(true); > DocumentBuilder docBuilder = factory.newDocumentBuilder(); > Document doc = docBuilder.newDocument(); >- >+ > if (config == null) >- throw Utils.newCoreException(Messages.PlatformConfiguration_cannotSaveNonExistingConfig,null); >- >+ throw Utils.newCoreException(Messages.PlatformConfiguration_cannotSaveNonExistingConfig, null); >+ > config.setDate(new Date()); > Element configElement = config.toXML(doc); > doc.appendChild(configElement); >- >+ > // This is not DBCS friendly... PAL > //XMLPrintHandler.printComment(xmlWriter,"Created on " + config.getDate().toString()); >- XMLPrintHandler.printNode(xmlWriter,doc,XML_ENCODING); >- >+ XMLPrintHandler.printNode(xmlWriter, doc, XML_ENCODING); >+ > } catch (Exception e) { > throw Utils.newCoreException("", e); //$NON-NLS-1$ > } finally { >@@ -1245,8 +1238,8 @@ > // will close the stream in the caller > //xmlWriter.close(); > } >- } >- >+ } >+ > private void reconcile() throws CoreException { > long lastChange = config.getDate().getTime(); > SiteEntry[] sites = config.getSites(); >@@ -1259,7 +1252,7 @@ > } > config.setDirty(true); > } >- >+ > public Configuration getConfiguration() { > return config; > }
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 304505
: 160808