Attempt to make resources a real bundle
diff --git a/bundles/org.eclipse.core.resources/.classpath b/bundles/org.eclipse.core.resources/.classpath
index 4d610b8..ceff0b5 100644
--- a/bundles/org.eclipse.core.resources/.classpath
+++ b/bundles/org.eclipse.core.resources/.classpath
@@ -2,7 +2,12 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src_ant"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="lib" path="lib/ant.jar"/>
+	<classpathentry kind="lib" path="lib/antsupport.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="src" path="/org.eclipse.core.runtime"/>
+	<classpathentry kind="src" path="/org.eclipse.osgi.util"/>
+	<classpathentry kind="src" path="/org.eclipse.osgi.services"/>
+	<classpathentry kind="src" path="/org.eclipse.osgi"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.core.resources/.project b/bundles/org.eclipse.core.resources/.project
index 3ba3edb..b0fcae8 100644
--- a/bundles/org.eclipse.core.resources/.project
+++ b/bundles/org.eclipse.core.resources/.project
@@ -3,7 +3,10 @@
 	<name>org.eclipse.core.resources</name>
 	<comment></comment>
 	<projects>
-		<project>org.eclipse.core.runtime.compatibility</project>
+		<project>org.eclipse.core.runtime</project>
+		<project>org.eclipse.osgi</project>
+		<project>org.eclipse.osgi.services</project>
+		<project>org.eclipse.osgi.util</project>
 	</projects>
 	<buildSpec>
 		<buildCommand>
diff --git a/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7e6e9b8
--- /dev/null
+++ b/bundles/org.eclipse.core.resources/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Bundle-Name: org.eclipse.core.resources

+Bundle-Version: 3.0

+Bundle-GlobalName: org.eclipse.core.resources

+Bundle-ClassPath: resources.jar

+Bundle-Activator: org.eclipse.core.resources.ResourcesPlugin

+Import-Package:

+ org.osgi.framework, 

+ org.eclipse.osgi.service.environment

+Provide-Package: 
+ org.eclipse.core.internal.resources,
+ org.eclipse.core.resources.team,
+ org.eclipse.core.resources.ant,
+ org.eclipse.core.internal.watson,
+ org.eclipse.core.internal.properties,
+ org.eclipse.core.resources,
+ org.eclipse.core.internal.indexing,
+ org.eclipse.core.internal.dtree,
+ org.eclipse.core.internal.localstore,
+ org.eclipse.core.internal.events,
+ org.eclipse.core.internal.utils

+Require-Bundle: 

+ org.eclipse.core.runtime,

+ org.eclipse.core.runtime.compatibility

diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/EventStats.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/EventStats.java
index 5849222..e327b64 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/EventStats.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/EventStats.java
@@ -13,7 +13,7 @@
 import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.util.*;
-import org.eclipse.core.internal.plugins.PluginClassLoader;
+//import org.eclipse.core.internal.plugins.PluginClassLoader;
 import org.eclipse.core.internal.utils.Policy;
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
@@ -163,9 +163,9 @@
 	}
 
 	private static IPluginDescriptor getPluginFor(Object target) {
-		ClassLoader loader = target.getClass().getClassLoader();
-		if (loader instanceof PluginClassLoader)
-			return ((PluginClassLoader)loader).getPluginDescriptor();
+//		ClassLoader loader = target.getClass().getClassLoader();
+//		if (loader instanceof PluginClassLoader)
+//			return ((PluginClassLoader)loader).getPluginDescriptor();
 		return null;
 	}
 	
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LocalMetaArea.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LocalMetaArea.java
index 3f72498..708bbc4 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LocalMetaArea.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/LocalMetaArea.java
@@ -124,7 +124,7 @@
 public IPath getSafeTableLocationFor(String pluginId) {
 	IPath prefix = getLocation().append(F_SAFE_TABLE);
 	// if the plugin is the resources plugin, we return the master table location
-	if (pluginId.equals(ResourcesPlugin.getPlugin().getDescriptor().getUniqueIdentifier()))
+	if (pluginId.equals(ResourcesPlugin.getDefault().getBundle().getGlobalName()))
 		return prefix.append(pluginId); // master table
 	int saveNumber = getWorkspace().getSaveManager().getSaveNumber(pluginId);
 	return prefix.append(pluginId + "." + saveNumber); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/OS.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/OS.java
index 72e7ff5..cddb64c 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/OS.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/OS.java
@@ -11,7 +11,7 @@
 package org.eclipse.core.internal.resources;
 
 import java.util.Arrays;
-import org.eclipse.core.boot.BootLoader;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.osgi.service.environment.Constants;
 
 /**
@@ -29,8 +29,8 @@
 	//setup the invalid names
 	char[] chars = null;
 	String[] names = null;
-	INSTALLED_PLATFORM = BootLoader.getOS();
-	if (INSTALLED_PLATFORM.equals(BootLoader.OS_WIN32)) {
+	INSTALLED_PLATFORM = ResourcesPlugin.getDefault().getEnvironmentService().getOS();
+	if (INSTALLED_PLATFORM.equals(Constants.OS_WIN32)) {
 			//list taken from http://support.microsoft.com/support/kb/articles/q177/5/06.asp
 			chars = new char[]{'\\', '/', ':', '*', '?', '"', '<', '>', '|'};
 			
@@ -58,7 +58,7 @@
 		name = dot == -1 ? name : name.substring(0, dot);
 		return Arrays.binarySearch(INVALID_RESOURCE_NAMES, name.toLowerCase()) < 0;
 	}
-	return true;
-}
+	return true;}
+
 }
 
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/ResourcesPlugin.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/ResourcesPlugin.java
index 26b329b..7a19995 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/ResourcesPlugin.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/ResourcesPlugin.java
@@ -12,6 +12,8 @@
 
 import org.eclipse.core.internal.resources.*;
 import org.eclipse.core.runtime.*;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
 
 /**
  * The plug-in runtime class for the Resources plug-in.  This is
@@ -197,8 +199,8 @@
  * @param pluginDescriptor the plug-in descriptor for the
  *   Resources plug-in
  */
-public ResourcesPlugin(IPluginDescriptor pluginDescriptor) {
-	super(pluginDescriptor);
+public ResourcesPlugin() {
+	super();
 	plugin = this;
 }
 /**
@@ -249,6 +251,10 @@
 public static ResourcesPlugin getPlugin() {
 	return plugin;
 }
+
+public static ResourcesPlugin getDefault() {
+	return plugin;
+}
 /**
  * Returns the workspace.
  *
@@ -263,12 +269,18 @@
  * closes the workspace (without saving).
  * @see Plugin#shutdown
  */
-public void shutdown() throws CoreException {
+public void stop(BundleContext context) throws BundleException {
+	super.stop(context);
 	if (workspace == null) {
 		return;
 	}
 	getPlugin().savePluginPreferences();
-	workspace.close(null);
+	try {
+		workspace.close(null);
+	} catch (CoreException e) {
+		// TODO Auto-generated catch block
+		e.printStackTrace();
+	}
 	
 	/* Forget workspace only if successfully closed, to
 	 * make it easier to debug cases where close() is failing.
@@ -280,17 +292,23 @@
  * opens the workspace.
  * @see Plugin#startup
  */
-public void startup() throws CoreException {
-	if (!new LocalMetaArea().hasSavedWorkspace()) {
-		constructWorkspace();
+public void start(BundleContext context) throws BundleException {
+	super.start(context);
+	try {
+		if (!new LocalMetaArea().hasSavedWorkspace()) {
+			constructWorkspace();
+		}
+		Workspace.DEBUG = ResourcesPlugin.getPlugin().isDebugging();
+		// Remember workspace before opening, to
+		// make it easier to debug cases where open() is failing.
+		workspace = new Workspace();
+		PlatformURLResourceConnection.startup(Platform.getLocation());
+		IStatus result = workspace.open(null);
+		if (!result.isOK())
+			getLog().log(result);
+	} catch(CoreException exception) {
+		new BundleException("error.starting.resources", exception); //$NON-NLS-1$
 	}
-	Workspace.DEBUG = ResourcesPlugin.getPlugin().isDebugging();
-	// Remember workspace before opening, to
-	// make it easier to debug cases where open() is failing.
-	workspace = new Workspace();
-	PlatformURLResourceConnection.startup(Platform.getLocation());
-	IStatus result = workspace.open(null);
-	if (!result.isOK())
-		getLog().log(result);
 }
+ 
 }