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