diff options
author | Thomas Watson | 2011-09-08 13:31:37 +0000 |
---|---|---|
committer | Thomas Watson | 2011-09-08 13:31:37 +0000 |
commit | 9a365c23db3abf8409d7c09a8973e514ab11437d (patch) | |
tree | 777ef49b7a9c3c4044d326cf0fa1350f171f6ae0 | |
parent | d53dcdd9966ba8c5365fbf22a85a18915c6c2931 (diff) | |
download | rt.equinox.framework-9a365c23db3abf8409d7c09a8973e514ab11437d.tar.gz rt.equinox.framework-9a365c23db3abf8409d7c09a8973e514ab11437d.tar.xz rt.equinox.framework-9a365c23db3abf8409d7c09a8973e514ab11437d.zip |
Bug 353013 - Allow to disambiguate the config area of multiple installsv20110908-1331
by install dir hash
20 files changed, 101 insertions, 58 deletions
diff --git a/bundles/org.eclipse.equinox.launcher.carbon.macosx/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.carbon.macosx/META-INF/MANIFEST.MF index e8fac1ae0..daa960f96 100644 --- a/bundles/org.eclipse.equinox.launcher.carbon.macosx/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.carbon.macosx/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.carbon.macosx;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=carbon) (osgi.os=macosx) (|(osgi.arch=x86)(osgi.arch=ppc)) ) Bundle-Localization: launcher.carbon.macosx Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF index 6ba12602b..b403e3bb3 100644 --- a/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx.x86_64/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.cocoa.macosx.x86_64;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (osgi.arch=x86_64) ) Bundle-Localization: launcher.cocoa.macosx.x86_64 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.cocoa.macosx/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.cocoa.macosx/META-INF/MANIFEST.MF index 67d1f9b31..7dac4868d 100644 --- a/bundles/org.eclipse.equinox.launcher.cocoa.macosx/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.cocoa.macosx/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.cocoa.macosx;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=cocoa) (osgi.os=macosx) (|(osgi.arch=x86)(osgi.arch=ppc)) ) Bundle-Localization: launcher.cocoa.macosx Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/META-INF/MANIFEST.MF index 984d19211..08e148b79 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.ppc;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=ppc)) Bundle-Localization: launcher.gtk.linux.ppc Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/META-INF/MANIFEST.MF index 915f19cf7..6a5c23047 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.ppc64;singleton:=true -Bundle-Version: 1.0.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.0.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=ppc64)) Bundle-Localization: launcher.gtk.linux.ppc64 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/META-INF/MANIFEST.MF index aefb9e7cb..935051b54 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.x86;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86)) Bundle-Localization: launcher.gtk.linux.x86 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF index a473576f3..1a743c081 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.linux.x86_64;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=linux) (osgi.arch=x86_64)) Bundle-Localization: launcher.gtk.linux.x86_64 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.solaris.sparc/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.solaris.sparc/META-INF/MANIFEST.MF index 611d6c61c..a1741f0b6 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.solaris.sparc/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.solaris.sparc/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.solaris.sparc;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=solaris) (osgi.arch=sparc)) Bundle-Localization: launcher.gtk.solaris.sparc Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.gtk.solaris.x86/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.gtk.solaris.x86/META-INF/MANIFEST.MF index 885151509..bf5d7ff20 100644 --- a/bundles/org.eclipse.equinox.launcher.gtk.solaris.x86/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.gtk.solaris.x86/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.gtk.solaris.x86;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=solaris) (osgi.arch=x86)) Bundle-Localization: launcher.gtk.solaris.x86 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.motif.aix.ppc/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.motif.aix.ppc/META-INF/MANIFEST.MF index 3b7c64055..293a92f5f 100644 --- a/bundles/org.eclipse.equinox.launcher.motif.aix.ppc/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.motif.aix.ppc/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.motif.aix.ppc;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=motif) (osgi.os=aix) (osgi.arch=ppc)) Bundle-Localization: launcher.motif.aix.ppc Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.motif.hpux.ia64_32/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.motif.hpux.ia64_32/META-INF/MANIFEST.MF index 3f0eddd49..30ed244f7 100644 --- a/bundles/org.eclipse.equinox.launcher.motif.hpux.ia64_32/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.motif.hpux.ia64_32/META-INF/MANIFEST.MF @@ -2,8 +2,8 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.equinox.launcher.motif.hpux.ia64_32;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Bundle-Vendor: %providerName Eclipse-PlatformFilter: (& (osgi.ws=motif) (osgi.os=hpux) (osgi.arch=ia64_32) ) Bundle-Localization: launcher.motif.hpux.ia64_32 diff --git a/bundles/org.eclipse.equinox.launcher.motif.linux.x86/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.motif.linux.x86/META-INF/MANIFEST.MF index 25d172fe9..7e078e842 100755 --- a/bundles/org.eclipse.equinox.launcher.motif.linux.x86/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.motif.linux.x86/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.motif.linux.x86;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=motif) (osgi.os=linux) (osgi.arch=x86)) Bundle-Localization: launcher.motif.linux.x86 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.motif.solaris.sparc/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.motif.solaris.sparc/META-INF/MANIFEST.MF index a9560bc7b..fb44d31e2 100644 --- a/bundles/org.eclipse.equinox.launcher.motif.solaris.sparc/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.motif.solaris.sparc/META-INF/MANIFEST.MF @@ -2,8 +2,8 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Sparc Fragment Bundle-SymbolicName: org.eclipse.equinox.launcher.motif.solaris.sparc;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=motif) (osgi.os=solaris) (osgi.arch=sparc)) Bundle-Localization: launcher.motif.solaris.sparc Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.ia64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.ia64/META-INF/MANIFEST.MF index 240083bc3..93df2625e 100644 --- a/bundles/org.eclipse.equinox.launcher.win32.win32.ia64/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.ia64/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.ia64;singleton:=true -Bundle-Version: 1.2.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.2.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=ia64)) Bundle-Localization: launcher.win32.win32.ia64 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.x86/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.x86/META-INF/MANIFEST.MF index 81d05d692..16b3bfd8e 100644 --- a/bundles/org.eclipse.equinox.launcher.win32.win32.x86/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.x86/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.x86; singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86)) Bundle-Localization: launcher.win32.win32.x86 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF index f9c07083f..96aef5a9f 100644 --- a/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.x86_64/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.x86_64;singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=x86_64)) Bundle-Localization: launcher.win32.win32.x86_64 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.wpf.win32.x86/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.wpf.win32.x86/META-INF/MANIFEST.MF index 913575702..dc9f017d0 100644 --- a/bundles/org.eclipse.equinox.launcher.wpf.win32.x86/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher.wpf.win32.x86/META-INF/MANIFEST.MF @@ -3,8 +3,8 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-Vendor: %providerName Bundle-SymbolicName: org.eclipse.equinox.launcher.wpf.win32.x86; singleton:=true -Bundle-Version: 1.1.100.qualifier -Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.3.0)" +Bundle-Version: 1.1.200.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.0.0,1.4.0)" Eclipse-PlatformFilter: (& (osgi.ws=wpf) (osgi.os=win32) (osgi.arch=x86)) Bundle-Localization: launcher.wpf.win32.x86 Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF index 0e97e389e..5fc8342da 100644 --- a/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF +++ b/bundles/org.eclipse.equinox.launcher/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.equinox.launcher;singleton:=true -Bundle-Version: 1.2.0.qualifier +Bundle-Version: 1.3.0.qualifier Main-Class: org.eclipse.equinox.launcher.Main Bundle-ClassPath: . Bundle-Vendor: %providerName diff --git a/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java b/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java index 6471de9dd..ac439f09e 100644 --- a/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java +++ b/bundles/org.eclipse.equinox.launcher/src/org/eclipse/equinox/launcher/Main.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2010 IBM Corporation and others. + * Copyright (c) 2000, 2011 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -214,6 +214,8 @@ public class Main { private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$ private static final String USER_HOME = "@user.home"; //$NON-NLS-1$ private static final String USER_DIR = "@user.dir"; //$NON-NLS-1$ + // Placeholder for hashcode of installation directory + private static final String INSTALL_HASH_PLACEHOLDER = "@install.hash"; //$NON-NLS-1$ // types of parent classloaders the framework can have private static final String PARENT_CLASSLOADER_APP = "app"; //$NON-NLS-1$ @@ -1236,6 +1238,12 @@ public class Main { String base = substituteVar(location, USER_DIR, PROP_USER_DIR); location = new File(base, userDefaultAppendage).getAbsolutePath(); } + int idx = location.indexOf(INSTALL_HASH_PLACEHOLDER); + if (idx == 0) { + throw new RuntimeException("The location cannot start with '" + INSTALL_HASH_PLACEHOLDER + "': " + location); //$NON-NLS-1$ //$NON-NLS-2$ + } else if (idx > 0) { + location = location.substring(0, idx) + getInstallDirHash() + location.substring(idx + INSTALL_HASH_PLACEHOLDER.length()); + } result = buildURL(location, true); } } finally { @@ -1314,17 +1322,7 @@ public class Main { if (installURL == null) return null; File installDir = new File(installURL.getFile()); - // compute an install dir hash to prevent configuration area collisions with other eclipse installs - int hashCode; - try { - hashCode = installDir.getCanonicalPath().hashCode(); - } catch (IOException ioe) { - // fall back to absolute path - hashCode = installDir.getAbsolutePath().hashCode(); - } - if (hashCode < 0) - hashCode = -(hashCode); - String installDirHash = String.valueOf(hashCode); + String installDirHash = getInstallDirHash(); String appName = "." + ECLIPSE; //$NON-NLS-1$ File eclipseProduct = new File(installDir, PRODUCT_SITE_MARKER); @@ -1354,6 +1352,29 @@ public class Main { } /** + * Return hash code identifying an absolute installation path + * @return hash code as String + */ + private String getInstallDirHash() { + // compute an install dir hash to prevent configuration area collisions with other eclipse installs + URL installURL = getInstallLocation(); + if (installURL == null) + return ""; //$NON-NLS-1$ + File installDir = new File(installURL.getFile()); + int hashCode; + try { + hashCode = installDir.getCanonicalPath().hashCode(); + } catch (IOException ioe) { + // fall back to absolute path + hashCode = installDir.getAbsolutePath().hashCode(); + } + if (hashCode < 0) + hashCode = -(hashCode); + String installDirHash = String.valueOf(hashCode); + return installDirHash; + } + + /** * Runs this launcher with the arguments specified in the given string. * * @param argString the arguments string diff --git a/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor/LocationManager.java b/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor/LocationManager.java index 63b58638c..2e06c32fc 100644 --- a/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor/LocationManager.java +++ b/bundles/org.eclipse.osgi/eclipseAdaptor/src/org/eclipse/core/runtime/adaptor/LocationManager.java @@ -73,6 +73,8 @@ public class LocationManager { private static final String NO_DEFAULT = "@noDefault"; //$NON-NLS-1$ private static final String USER_HOME = "@user.home"; //$NON-NLS-1$ private static final String USER_DIR = "@user.dir"; //$NON-NLS-1$ + // Placeholder for hashcode of installation directory + private static final String INSTALL_HASH_PLACEHOLDER = "@install.hash"; //$NON-NLS-1$ private static final String INSTANCE_DATA_AREA_PREFIX = ".metadata/.plugins/"; //$NON-NLS-1$ @@ -204,6 +206,12 @@ public class LocationManager { String base = substituteVar(location, USER_DIR, PROP_USER_DIR); location = new File(base, userDefaultAppendage).getAbsolutePath(); } + int idx = location.indexOf(INSTALL_HASH_PLACEHOLDER); + if (idx == 0) { + throw new RuntimeException("The location cannot start with '" + INSTALL_HASH_PLACEHOLDER + "': " + location); //$NON-NLS-1$ //$NON-NLS-2$ + } else if (idx > 0) { + location = location.substring(0, idx) + getInstallDirHash() + location.substring(idx + INSTALL_HASH_PLACEHOLDER.length()); + } URL url = buildURL(location, true); BasicLocation result = null; if (url != null) { @@ -295,17 +303,7 @@ public class LocationManager { if (installURL == null) return null; File installDir = new File(installURL.getFile()); - // compute an install dir hash to prevent configuration area collisions with other eclipse installs - int hashCode; - try { - hashCode = installDir.getCanonicalPath().hashCode(); - } catch (IOException ioe) { - // fall back to absolute path - hashCode = installDir.getAbsolutePath().hashCode(); - } - if (hashCode < 0) - hashCode = -(hashCode); - String installDirHash = String.valueOf(hashCode); + String installDirHash = getInstallDirHash(); String appName = "." + ECLIPSE; //$NON-NLS-1$ File eclipseProduct = new File(installDir, PRODUCT_SITE_MARKER); @@ -335,6 +333,30 @@ public class LocationManager { } /** + * Return hash code identifying an absolute installation path + * @return hash code as String + */ + private static String getInstallDirHash() { + // compute an install dir hash to prevent configuration area collisions with other eclipse installs + String installProperty = FrameworkProperties.getProperty(PROP_INSTALL_AREA); + URL installURL = buildURL(installProperty, true); + if (installURL == null) + return ""; //$NON-NLS-1$ + File installDir = new File(installURL.getFile()); + int hashCode; + try { + hashCode = installDir.getCanonicalPath().hashCode(); + } catch (IOException ioe) { + // fall back to absolute path + hashCode = installDir.getAbsolutePath().hashCode(); + } + if (hashCode < 0) + hashCode = -(hashCode); + String installDirHash = String.valueOf(hashCode); + return installDirHash; + } + + /** * Returns the user Location object * @return the user Location object */ |