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); } + }