Fix for bug 24667 - [boot] Classloader enhancements
diff --git a/bundles/org.eclipse.core.boot/classloader.properties b/bundles/org.eclipse.core.boot/classloader.properties
new file mode 100644
index 0000000..422c0f4
--- /dev/null
+++ b/bundles/org.eclipse.core.boot/classloader.properties
@@ -0,0 +1,34 @@
+org.apache.ant = org.apache.tools
+org.apache.lucene = org.apache.lucene
+org.apache.xerces = org.apache, org.w3c.dom, org.xml.sax, javax.xml
+org.eclipse.ant.core = org.eclipse.ant
+org.eclipse.compare = org.eclipse.compare
+org.eclipse.core.resources = org.eclipse.core
+org.eclipse.core.runtime = org.eclipse.core
+org.eclipse.debug.core = org.eclipse.debug.core, org.eclipse.debug.internal.core
+org.eclipse.debug.ui = org.eclipse.debug.ui, org.eclipse.debug.internal.ui
+org.eclipse.help = org.eclipse.help
+org.eclipse.help.ui = org.eclipse.help.ui
+org.eclipse.jdt.core = org.eclipse.jdt.core, org.eclipse.jdt.internal
+org.eclipse.jdt.debug = com.sun.jdi, org.eclipse.jdi, org.eclipse.jdt
+org.eclipse.jdt.debug.ui = org.eclipse.jdt.debug.ui, org.eclipse.jdt.internal.debug.ui
+org.eclipse.jdt.junit = org.eclipse.jdt.internal.junit
+org.eclipse.jdt.launching = org.eclipse.jdt.launching, org.eclipse.jdt.internal.launching
+org.eclipse.jdt.ui = org.eclipse.jdt.internal, org.eclipse.jdt.ui
+org.eclipse.pde.build = org.eclipse.pde.internal.build
+org.eclipse.pde.core = org.eclipse.pde.core, org.eclipse.pde.internal.core
+org.eclipse.pde.runtime = org.eclipse.pde.internal.runtime
+org.eclipse.pde.ui = org.eclipse.pde.ui, org.eclipse.pde.internal.ui
+org.eclipse.search = org.eclipse.search
+org.eclipse.swt = org.eclipse.swt
+org.eclipse.team.core = org.eclipse.team.core, org.eclipse.team.internal.core
+org.eclipse.team.cvs.core = org.eclipse.team.internal.ccvs.core
+org.eclipse.team.cvs.ssh = org.eclipse.team.internal.ccvs.ssh
+org.eclipse.team.cvs.ui = org.eclipse.team.internal.ccvs.ui
+org.eclipse.team.ui = org.eclipse.team.ui, org.eclipse.team.internal.ui
+org.eclipse.ui = org.eclipse.ui, org.eclipse.jface
+org.eclipse.ui.externaltools = org.eclipse.ui.externaltools
+org.eclipse.update.core = org.eclipse.update
+org.eclipse.update.ui = org.eclipse.update.internal.ui
+org.eclipse.update.forms = org.eclipse.update.ui.forms
+org.junit = junit
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/DelegatingURLClassLoader.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/DelegatingURLClassLoader.java
index 7a1b38a..d8e170d 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/DelegatingURLClassLoader.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/DelegatingURLClassLoader.java
Binary files differ
diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/InternalBootLoader.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/InternalBootLoader.java
index b7a98ff..6f33cb0 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/InternalBootLoader.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/InternalBootLoader.java
Binary files differ
diff --git a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformClassLoader.java b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformClassLoader.java
index 59d9731..0a6777f 100644
--- a/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformClassLoader.java
+++ b/bundles/org.eclipse.core.boot/src/org/eclipse/core/internal/boot/PlatformClassLoader.java
@@ -27,11 +27,19 @@
 	this.base = base;
 	if (singleton == null)
 		singleton = this;
+	prefixs = getArrayFromList((String)prefixTable.get(getPrefixId()));
 	debugConstruction(); // must have initialized loader
 }
 protected String debugId() {
 	return "PLATFORM"; //$NON-NLS-1$
 }
+
+/**
+ * Returns the id to use to lookup class prefixs for this loader
+ */
+protected String getPrefixId() {
+	return InternalBootLoader.RUNTIMENAME;
+}
 /**
  * Finds and loads the class with the specified name from the URL search
  * path. Any URLs referring to JAR files are loaded and opened as needed
@@ -46,7 +54,7 @@
  * @param checkParents whether to check the parent loader
  * @return the resulting class
  */
-protected Class findClassParentsSelf(final String name, boolean resolve, DelegatingURLClassLoader requestor, boolean checkParents) {
+protected Class internalFindClassParentsSelf(final String name, boolean resolve, DelegatingURLClassLoader requestor, boolean checkParents) {
 	Class result = null;
 	synchronized (this) {
 		// check the cache.  If we find something, check to see if its visible.
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/plugins/PluginClassLoader.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/plugins/PluginClassLoader.java
index 39b215a..d870299 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/plugins/PluginClassLoader.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/plugins/PluginClassLoader.java
Binary files differ