changes to support WSWB Eclipse pre-M8
diff --git a/plugins/org.eclipse.jem.beaninfo/.project b/plugins/org.eclipse.jem.beaninfo/.project
index e248644..7eedbb3 100644
--- a/plugins/org.eclipse.jem.beaninfo/.project
+++ b/plugins/org.eclipse.jem.beaninfo/.project
@@ -9,6 +9,7 @@
 		<project>org.apache.xerces</project>
 		<project>org.eclipse.compare</project>
 		<project>org.eclipse.core.resources</project>
+		<project>org.eclipse.core.runtime</project>
 		<project>org.eclipse.core.runtime.compatibility</project>
 		<project>org.eclipse.emf.ecore</project>
 		<project>org.eclipse.emf.ecore.xmi</project>
diff --git a/plugins/org.eclipse.jem.beaninfo/plugin.xml b/plugins/org.eclipse.jem.beaninfo/plugin.xml
index 6c0d575..36512fe 100644
--- a/plugins/org.eclipse.jem.beaninfo/plugin.xml
+++ b/plugins/org.eclipse.jem.beaninfo/plugin.xml
@@ -26,6 +26,7 @@
       <import plugin="com.ibm.wtp.common.util"/>
       <import plugin="com.ibm.wtp.emf.workbench"/>
       <import plugin="org.eclipse.osgi"/>
+      <import plugin="org.eclipse.core.runtime"/>
    </requires>
 
 
diff --git a/plugins/org.eclipse.jem.proxy/.project b/plugins/org.eclipse.jem.proxy/.project
index 9baa5f0..1fe3b4c 100644
--- a/plugins/org.eclipse.jem.proxy/.project
+++ b/plugins/org.eclipse.jem.proxy/.project
@@ -5,10 +5,12 @@
 	<projects>
 		<project>com.ibm.wtp.common.util</project>
 		<project>org.eclipse.core.resources</project>
+		<project>org.eclipse.core.runtime</project>
 		<project>org.eclipse.core.runtime.compatibility</project>
 		<project>org.eclipse.debug.core</project>
 		<project>org.eclipse.jdt.core</project>
 		<project>org.eclipse.jdt.launching</project>
+		<project>org.eclipse.osgi</project>
 		<project>org.eclipse.pde.core</project>
 	</projects>
 	<buildSpec>
diff --git a/plugins/org.eclipse.jem.proxy/plugin.xml b/plugins/org.eclipse.jem.proxy/plugin.xml
index f7d261f..4c6cd05 100644
--- a/plugins/org.eclipse.jem.proxy/plugin.xml
+++ b/plugins/org.eclipse.jem.proxy/plugin.xml
@@ -37,9 +37,11 @@
       <import plugin="org.eclipse.jdt.launching"/>
       <import plugin="org.eclipse.jdt.core"/>
       <import plugin="org.eclipse.debug.core" export="true"/>
-      <import plugin="org.eclipse.core.runtime.compatibility"/>
       <import plugin="com.ibm.wtp.common.util"/>
       <import plugin="org.eclipse.pde.core"/>
+      <import plugin="org.eclipse.core.runtime.compatibility"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.osgi"/>
    </requires>
 
 
diff --git a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
index 00e18bd..fd2f8c0 100644
--- a/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
+++ b/plugins/org.eclipse.jem.proxy/proxy/org/eclipse/jem/internal/proxy/core/ProxyPlugin.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 /*
  *  $RCSfile: ProxyPlugin.java,v $
- *  $Revision: 1.13 $  $Date: 2004/03/23 19:21:30 $ 
+ *  $Revision: 1.13.2.1 $  $Date: 2004/03/25 17:23:37 $ 
  */
 
 
@@ -177,20 +177,16 @@
 					urls.add(url);
 				for (int i = 0; i < fragments.length; i++) {
 					Bundle fragment = fragments[i];
-					try {
-						url = fragment.getEntry(filenameWithinPlugin);
-						if (url != null)
-							urls.add(url);
-					} catch (IOException e) {
-						// skip it.
-					}
+					url = fragment.getEntry(filenameWithinPlugin);
+					if (url != null)
+						urls.add(url);
 					// Also, look through the libraries of the fragment to see if one matches the special path.				
 					// This is where one of the runtime libraries has the fragment id in it. 
 					// TODO This needs to be completely relooked at when we have a stable OSGi API. Not sure how
 					// this will work with that. (As for why we are doing this, look at the comment for localizeFromPluginDescriptorAndFragments
 					String classpath = (String) fragment.getHeaders().get(Constants.BUNDLE_CLASSPATH);
 					try {
-						ManifestElement[] classpaths = ManifestElement.parseClassPath(classpath);
+						ManifestElement[] classpaths = ManifestElement.parseHeader(Constants.BUNDLE_CLASSPATH, classpath);
 						if (classpaths != null && classpaths.length > 0) {
 							int extndx = filenameWithinPlugin.lastIndexOf('.');
 							String libFile = null;
@@ -206,15 +202,11 @@
 								IPath cp = new Path(classpaths[j].getValue());
 								// The last segment should be the file name. That is the name we are looking for.
 								if (libFile.equals(cp.lastSegment())) {
-									try {
-										url = fragment.getEntry(classpaths[j].getValue());
-										// Though the actual classpath entry is the file we are looking for.
-										if (url != null)
-											urls.add(url);
-										break;
-									} catch (IOException e) {
-										// Ignore it if i/o error.
-									}
+									url = fragment.getEntry(classpaths[j].getValue());
+									// Though the actual classpath entry is the file we are looking for.
+									if (url != null)
+										urls.add(url);
+									break;
 								}
 							}
 						}
diff --git a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
index 5ee9a84..9890633 100644
--- a/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
+++ b/plugins/org.eclipse.jem.proxy/proxyRemote/org/eclipse/jem/internal/proxy/remote/LocalProxyLaunchDelegate.java
@@ -7,7 +7,7 @@
  * Contributors: IBM Corporation - initial API and implementation
  **************************************************************************************************/
 /*
- * $RCSfile: LocalProxyLaunchDelegate.java,v $ $Revision: 1.3 $ $Date: 2004/03/22 23:49:02 $
+ * $RCSfile: LocalProxyLaunchDelegate.java,v $ $Revision: 1.3.2.1 $ $Date: 2004/03/25 17:23:37 $
  */
 package org.eclipse.jem.internal.proxy.remote;
 
@@ -104,7 +104,7 @@
 		
 		// Now let's get the classpaths created through the contributors.
 		String[] classpath = getClasspath(configuration);
-		String[][] bootpathInfo = getBootpathExt(configuration);
+		String[][] bootpathInfo = getBootpathExt(vmAttributesMap);
 		ProxyLaunchSupport.LaunchInfo launchInfo = ProxyLaunchSupport.getInfo(launchKey);
 		final IConfigurationContributor[] contributors = launchInfo.contributors;
 		final LocalFileConfigurationContributorController controller =
@@ -130,8 +130,16 @@
 		ProxyRemoteUtil.updateClassPaths(controller);
 
 		classpath = controller.getFinalClasspath();
-		bootpathInfo[0] = controller.getFinalPrependBootpath();
-		bootpathInfo[2] = controller.getFinalAppendBootpath();
+		if (bootpathInfo[0] != controller.getFinalPrependBootpath()) {
+		    if (vmAttributesMap == null)
+		        vmAttributesMap = new HashMap(2);
+		    vmAttributesMap.put(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_PREPEND, bootpathInfo[0]);
+		}
+		if (bootpathInfo[2] != controller.getFinalAppendBootpath()) {
+		    if (vmAttributesMap == null)
+		        vmAttributesMap = new HashMap(2);
+		    vmAttributesMap.put(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_APPEND, bootpathInfo[2]);
+		}
 
 		// check for cancellation
 		if (pm.isCanceled())
@@ -218,10 +226,6 @@
 
 		// Bootpath
 		runConfig.setBootClassPath(getBootpath(configuration));
-		// new bootpath info
-		runConfig.setPrependBootClassPath(bootpathInfo[0]);
-		runConfig.setMainBootClassPath(bootpathInfo[1]);
-		runConfig.setAppendBootClassPath(bootpathInfo[2]);
 
 		// check for cancellation
 		if (pm.isCanceled())
@@ -351,5 +355,15 @@
 	private static int getRandomPort(int low, int high) {
 		return (int) (fgRandom.nextFloat() * (high - low)) + low;
 	}
+	
+	private String[][] getBootpathExt(Map vmMap) {
+	    String[][] ext = new String[3][];
+	    if (vmMap != null) {
+		    ext[0] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_PREPEND);
+		    ext[1] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH);
+		    ext[2] = (String[]) vmMap.get(IJavaLaunchConfigurationConstants.ATTR_BOOTPATH_APPEND);
+	    }
+	    return ext;
+	}
 
 }
diff --git a/plugins/org.eclipse.jem.ui/.project b/plugins/org.eclipse.jem.ui/.project
index 51c31b7..ea8250c 100644
--- a/plugins/org.eclipse.jem.ui/.project
+++ b/plugins/org.eclipse.jem.ui/.project
@@ -5,6 +5,7 @@
 	<projects>
 		<project>com.ibm.wtp.common.util</project>
 		<project>org.eclipse.core.resources</project>
+		<project>org.eclipse.core.runtime</project>
 		<project>org.eclipse.core.runtime.compatibility</project>
 		<project>org.eclipse.debug.core</project>
 		<project>org.eclipse.debug.ui</project>
@@ -15,6 +16,7 @@
 		<project>org.eclipse.jem.beaninfo</project>
 		<project>org.eclipse.jem.proxy</project>
 		<project>org.eclipse.jem.workbench</project>
+		<project>org.eclipse.osgi</project>
 		<project>org.eclipse.ui</project>
 		<project>org.eclipse.ui.ide</project>
 	</projects>
diff --git a/plugins/org.eclipse.jem.ui/plugin.xml b/plugins/org.eclipse.jem.ui/plugin.xml
index e6f57e9..12d19df 100644
--- a/plugins/org.eclipse.jem.ui/plugin.xml
+++ b/plugins/org.eclipse.jem.ui/plugin.xml
@@ -25,6 +25,8 @@
       <import plugin="org.eclipse.jdt.debug.ui"/>
       <import plugin="com.ibm.wtp.common.util"/>
       <import plugin="org.eclipse.jem.workbench"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.osgi"/>
    </requires>
 
 
@@ -70,8 +72,8 @@
                label="%Action.proxyLaunch"
                pulldown="true"
                icon="icons/full/ctool16/run_exc.gif"
-               tooltip="%Action.proxyLaunchTip"
                class="org.eclipse.jem.internal.ui.proxy.ProxyLaunchToolbarDelegate"
+               tooltip="%Action.proxyLaunchTip"
                toolbarPath="org.eclipse.debug.ui.launchActionSet/proxyLaunch"
                id="org.eclipse.jem.ui.proxy.ProxyLaunchToolbarDelegateAction">
          </action>
@@ -95,8 +97,8 @@
          <action
                label="%Action.proxyLaunch"
                icon="icons/full/ctool16/run_exc.gif"
-               tooltip="%Action.proxyLaunchTip"
                class="org.eclipse.jem.internal.ui.proxy.ProxyLaunchMenuDelegate"
+               tooltip="%Action.proxyLaunchTip"
                menubarPath="org.eclipse.ui.run/"
                id="org.eclipse.jem.ui.proxy.ProxyLaunchMenuDelegateAction">
          </action>
@@ -105,8 +107,8 @@
    <extension
          point="org.eclipse.ui.popupMenus">
       <objectContribution
-            adaptable="true"
             objectClass="org.eclipse.core.resources.IProject"
+            adaptable="true"
             id="org.eclipse.jem.ui.select.default.objectcontibution">
          <action
                label="%Action.selectDefault"
@@ -149,10 +151,10 @@
          point="org.eclipse.ui.editors">
       <editor
             name="%Editors.OverrideEditor"
-            extensions="override"
             icon="icons/full/obj16/file_obj.gif"
-            class="org.eclipse.ui.editors.text.TextEditor"
+            extensions="override"
             contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            class="org.eclipse.ui.editors.text.TextEditor"
             id="org.eclipse.jem.beaninfo.OverrideEditor">
       </editor>
    </extension>
diff --git a/plugins/org.eclipse.jem.workbench/.project b/plugins/org.eclipse.jem.workbench/.project
index 7a23e6f..5daa738 100644
--- a/plugins/org.eclipse.jem.workbench/.project
+++ b/plugins/org.eclipse.jem.workbench/.project
@@ -6,11 +6,13 @@
 		<project>com.ibm.wtp.common.util</project>
 		<project>com.ibm.wtp.emf.workbench</project>
 		<project>org.eclipse.core.resources</project>
+		<project>org.eclipse.core.runtime</project>
 		<project>org.eclipse.core.runtime.compatibility</project>
 		<project>org.eclipse.emf.ecore.xmi</project>
 		<project>org.eclipse.jdt.core</project>
 		<project>org.eclipse.jem</project>
 		<project>org.eclipse.jem.proxy</project>
+		<project>org.eclipse.osgi</project>
 	</projects>
 	<buildSpec>
 		<buildCommand>
diff --git a/plugins/org.eclipse.jem.workbench/plugin.xml b/plugins/org.eclipse.jem.workbench/plugin.xml
index 7b2f9f8..fb9139f 100644
--- a/plugins/org.eclipse.jem.workbench/plugin.xml
+++ b/plugins/org.eclipse.jem.workbench/plugin.xml
@@ -20,6 +20,8 @@
       <import plugin="org.eclipse.jem.proxy"/>
       <import plugin="com.ibm.wtp.common.util"/>
       <import plugin="com.ibm.wtp.emf.workbench"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.eclipse.osgi"/>
    </requires>
 
 
diff --git a/plugins/org.eclipse.jem/.project b/plugins/org.eclipse.jem/.project
index 050e90e..e428e21 100644
--- a/plugins/org.eclipse.jem/.project
+++ b/plugins/org.eclipse.jem/.project
@@ -4,6 +4,7 @@
 	<comment></comment>
 	<projects>
 		<project>com.ibm.wtp.common.util</project>
+		<project>org.eclipse.core.runtime</project>
 		<project>org.eclipse.core.runtime.compatibility</project>
 		<project>org.eclipse.emf.ecore.xmi</project>
 		<project>org.eclipse.jem.proxy</project>
diff --git a/plugins/org.eclipse.jem/plugin.xml b/plugins/org.eclipse.jem/plugin.xml
index 42903cf..a46e8a8 100644
--- a/plugins/org.eclipse.jem/plugin.xml
+++ b/plugins/org.eclipse.jem/plugin.xml
@@ -21,6 +21,8 @@
       <import plugin="org.eclipse.osgi"/>
       <import plugin="com.ibm.wtp.common.util"/>
       <import plugin="org.eclipse.jem.proxy" optional="true"/>
+      <import plugin="org.eclipse.core.runtime.compatibility"/>
+      <import plugin="org.eclipse.core.runtime"/>
    </requires>
 
 
@@ -37,15 +39,16 @@
    </extension>
    <extension
          point="org.eclipse.jem.beaninfo.registrations">
-      <registration container="org.eclipse.jdt.launching.JRE_CONTAINER">
-        <override
-            package="java.lang"
-            path="overrides/java/lang">
-        </override>
-        <override
-            package="..ROOT.."
-            path="overrides">
-        </override>
+      <registration
+            container="org.eclipse.jdt.launching.JRE_CONTAINER">
+         <override
+               package="java.lang"
+               path="overrides/java/lang">
+         </override>
+         <override
+               package="..ROOT.."
+               path="overrides">
+         </override>
       </registration>
    </extension>