--- rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.simpleconfigurator/src/org/eclipse/equinox/internal/simpleconfigurator/SimpleConfiguratorImpl.java @@ -100,7 +100,10 @@ URL userConfigURL = userConfig.toURL(); List userBundles = SimpleConfiguratorUtils.readConfiguration(userConfigURL, base); - return (userBundles.containsAll(sharedBundles)) ? userConfigURL : sharedConfigURL; + boolean useUserConfigArea = userBundles.containsAll(sharedBundles); + System.setProperty("org.eclipse.equinox.simpleconfigurator.shared.useUser", "" + System.currentTimeMillis()); + + return useUserConfigArea ? userConfigURL : sharedConfigURL; } } catch (MalformedURLException e) { return null; --- rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java +++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.engine/src/org/eclipse/equinox/internal/p2/engine/SimpleProfileRegistry.java @@ -236,8 +236,14 @@ if (SELF.equals(id)) id = self; Profile profile = getProfileMap().get(id); - if (profile == null && self != null && self.equals(id)) + String s = System.getProperty("org.eclipse.equinox.simpleconfigurator.shared.useUser"); + if (s != null && profile != null && (profile.getTimestamp() < new Long(s))) { + profile = null; + } + if (profile == null && self != null && self.equals(id)) { profile = createSurrogateProfile(id); + + } return profile; }