Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Kaegi2009-03-13 01:53:23 +0000
committerSimon Kaegi2009-03-13 01:53:23 +0000
commitb4b3442262a5a9d99aac992595ccee6a26a62478 (patch)
tree2eff6916099eff5b8875dbb1fbdf1e46a29d0817
parentc6756a6147dfd2936b26facbd9ad1ffd8e5aca78 (diff)
downloadrt.equinox.p2-b4b3442262a5a9d99aac992595ccee6a26a62478.tar.gz
rt.equinox.p2-b4b3442262a5a9d99aac992595ccee6a26a62478.tar.xz
rt.equinox.p2-b4b3442262a5a9d99aac992595ccee6a26a62478.zip
Bug 266739 [shared] Error updating eclipse with content in dropins
-rw-r--r--bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
index d94cd8315..765becdc0 100644
--- a/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
+++ b/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java
@@ -10,8 +10,8 @@ package org.eclipse.equinox.internal.simpleconfigurator;
import java.io.File;
import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
+import java.net.*;
+import java.util.List;
import org.eclipse.equinox.internal.provisional.configurator.Configurator;
import org.eclipse.equinox.internal.simpleconfigurator.utils.*;
import org.osgi.framework.Bundle;
@@ -45,7 +45,7 @@ public class SimpleConfiguratorImpl implements Configurator {
this.bundle = bundle;
}
- private URL getConfigurationURL() {
+ private URL getConfigurationURL() throws IOException {
String specifiedURL = context.getProperty(SimpleConfiguratorConstants.PROP_KEY_CONFIGURL);
if (specifiedURL == null)
specifiedURL = "file:" + SimpleConfiguratorConstants.CONFIGURATOR_FOLDER + "/" + SimpleConfiguratorConstants.CONFIG_LIST;
@@ -76,6 +76,7 @@ public class SimpleConfiguratorImpl implements Configurator {
return url;
//if it is an relative file URL, then resolve it against the configuration area
+ // TODO Support relative file URLs when not on Equinox
URL[] configURL = EquinoxUtils.getConfigAreaURL(context);
if (configURL != null) {
File userConfig = new File(configURL[0].getFile(), url.getFile());
@@ -89,7 +90,15 @@ public class SimpleConfiguratorImpl implements Configurator {
if (!sharedConfig.exists())
return userConfig.toURL();
- return (sharedConfig.lastModified() > userConfig.lastModified()) ? sharedConfig.toURL() : userConfig.toURL();
+ URI base = EquinoxUtils.getInstallLocationURI(context);
+
+ URL sharedConfigURL = sharedConfig.toURL();
+ List sharedBundles = SimpleConfiguratorUtils.readConfiguration(sharedConfigURL, base);
+
+ URL userConfigURL = userConfig.toURL();
+ List userBundles = SimpleConfiguratorUtils.readConfiguration(userConfigURL, base);
+
+ return (userBundles.containsAll(sharedBundles)) ? userConfigURL : sharedConfigURL;
}
} catch (MalformedURLException e) {
return null;

Back to the top