This commit was manufactured by cvs2svn to create tag 'R3_1_2'.

Sprout from master 2005-06-23 16:22:58 UTC rchaves <rchaves> 'Bug 101480 - Incorrect case in doctype line in html files'
Cherrypick from R3_1_maintenance 2005-10-27 20:00:15 UTC John Arthorne <johna> 'updated for 3.1.2 release':
    bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.runtime/about.html
    bundles/org.eclipse.core.runtime/about_files/NOTICE.txt
    bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ImplicitJobs.java
    bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ThreadJob.java
    bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/preferences/InstancePreferences.java
Delete:
    bundles/org.eclipse.core.tools/.classpath
    bundles/org.eclipse.core.tools/.cvsignore
    bundles/org.eclipse.core.tools/.options
    bundles/org.eclipse.core.tools/.project
    bundles/org.eclipse.core.tools/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.core.tools/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.tools/about.html
    bundles/org.eclipse.core.tools/about.ini
    bundles/org.eclipse.core.tools/about.mappings
    bundles/org.eclipse.core.tools/about.properties
    bundles/org.eclipse.core.tools/build.properties
    bundles/org.eclipse.core.tools/cpl-v10.html
    bundles/org.eclipse.core.tools/doc/hglegal2002.htm
    bundles/org.eclipse.core.tools/doc/ngibmcpy2002.gif
    bundles/org.eclipse.core.tools/doc/readme.html
    bundles/org.eclipse.core.tools/icons/classes.gif
    bundles/org.eclipse.core.tools/icons/clear.gif
    bundles/org.eclipse.core.tools/icons/collapseall.gif
    bundles/org.eclipse.core.tools/icons/datasheet.gif
    bundles/org.eclipse.core.tools/icons/plugin.gif
    bundles/org.eclipse.core.tools/icons/refresh.gif
    bundles/org.eclipse.core.tools/icons/req_plugins_obj.gif
    bundles/org.eclipse.core.tools/icons/reset.gif
    bundles/org.eclipse.core.tools/icons/spy.gif
    bundles/org.eclipse.core.tools/icons/trace.gif
    bundles/org.eclipse.core.tools/icons/zoom.gif
    bundles/org.eclipse.core.tools/plugin.xml
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractCopySelectionAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractTreeContentProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/BaseTextView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ByteUtil.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CollapseAllAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyTextSelectionAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CoreToolsPlugin.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ErrorUtil.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/GlobalAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/IFlattable.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ISorter.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ITreeNodeVisitor.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Messages.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Policy.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SelectAllAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SpyView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeTextOperationTarget.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/messages.properties
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/AbstractDumper.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/Dump.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpContentsView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpException.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDump.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDumper.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataPerspective.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeContentProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MultiStrategyDumper.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/PartialDumpException.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/StateDumper.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/ConvertMessageBundleAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/GotoResourceAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/IntegerMap.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSFileChange.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSPlugin.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessagesAction.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewContentProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewLabelProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewSorter.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypePropertySource.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewContentProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewLabelProvider.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewSorter.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDataSheetView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyPerspective.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/RuntimeSpyPerspective.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/StackTraceView.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassInfo.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassloaderInfo.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembers.java
    bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembersAction.java
    features/org.eclipse.core.tools-feature/.project
    features/org.eclipse.core.tools-feature/build.properties
    features/org.eclipse.core.tools-feature/cpl-v10.html
    features/org.eclipse.core.tools-feature/eclipse_update_120.jpg
    features/org.eclipse.core.tools-feature/feature.properties
    features/org.eclipse.core.tools-feature/feature.xml
    features/org.eclipse.core.tools-feature/license.html
diff --git a/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
index 484b5cc..81eeb6f 100644
--- a/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.core.runtime/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
-Bundle-Version: 3.1.0
+Bundle-Version: 3.1.2
 Bundle-SymbolicName: org.eclipse.core.runtime; singleton:=true
 Bundle-Vendor: %providerName
 Bundle-Activator: org.eclipse.core.internal.runtime.PlatformActivator
diff --git a/bundles/org.eclipse.core.runtime/about.html b/bundles/org.eclipse.core.runtime/about.html
index e05ad8e..58d3831 100644
--- a/bundles/org.eclipse.core.runtime/about.html
+++ b/bundles/org.eclipse.core.runtime/about.html
@@ -7,11 +7,11 @@
 <body lang="EN-US">
 <h2>About This Content</h2>
 
-<p>May 16, 2005</p>	
+<p>September 26, 2005</p>	
 <h3>License</h3>
 
 <p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html" target="_blank">http://www.eclipse.org/legal/epl-v10.html</a>.
 For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
 
 <p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
@@ -37,8 +37,10 @@
 	<li>org\eclipse\core\internal\registry\ReferenceMap.java</li>
 </ul>
 
-<p>Your use of the Jakara Commons Collections code is subject to the terms and conditions of the Apache Software License 2.0.  A copy of the license is contained
-in the file <a href="about_files/asl-v20.txt">about_files/asl-v20.txt</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
+<p>Your use of the Jakara Commons Collections code is subject to the terms and conditions of the Apache License, Version 2.0.  A copy of the license is contained
+in the file <a href="about_files/asl-v20.txt" target="_blank">about_files/asl-v20.txt</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
+
+<p>The Apache attribution notice file <a href="about_files/NOTICE.TXT" target="_blank">about_files/NOTICE.TXT</a> is included with the Content in accordance with 4d of the Apache License, Version 2.0
 
 <p>The names &quot;Jakarta&quot; and  &quot;Apache Software Foundation&quot; must not be used to endorse or promote products derived from this 
 software without prior written permission.  For written permission, please contact <a href="mailto:apache@apache.org">apache@apache.org</a>.</p>
diff --git a/bundles/org.eclipse.core.runtime/about_files/NOTICE.txt b/bundles/org.eclipse.core.runtime/about_files/NOTICE.txt
new file mode 100644
index 0000000..3f59805
--- /dev/null
+++ b/bundles/org.eclipse.core.runtime/about_files/NOTICE.txt
@@ -0,0 +1,2 @@
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ImplicitJobs.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ImplicitJobs.java
index 7085af2..53779f4 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ImplicitJobs.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ImplicitJobs.java
@@ -81,11 +81,11 @@
 			threadJob.push(rule);
 			//join the thread job outside sync block
 			if (threadJob.acquireRule) {
-				//no need to reaquire any locks because the thread did not wait to get this lock
+				//no need to re-aquire any locks because the thread did not wait to get this lock
 				if (manager.runNow(threadJob))
 					manager.getLockManager().addLockThread(Thread.currentThread(), rule);
 				else
-					threadJob.joinRun(monitor);
+					threadJob = threadJob.joinRun(monitor);
 			}
 		} finally {
 			//remember this thread job  - only do this
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ThreadJob.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ThreadJob.java
index b5a0c4d..4e7a01e 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ThreadJob.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/jobs/ThreadJob.java
@@ -141,29 +141,42 @@
 	}
 
 	/**
-	 * Schedule the job and block the calling thread until the job starts running
+	 * Schedule the job and block the calling thread until the job starts running.
+	 * Returns the ThreadJob instance that was started.
 	 */
-	void joinRun(IProgressMonitor monitor) {
+	ThreadJob joinRun(IProgressMonitor monitor) {
 		if (isCanceled(monitor))
 			throw new OperationCanceledException();
 		//check if there is a blocking thread before waiting
 		InternalJob blockingJob = manager.findBlockingJob(this);
 		Thread blocker = blockingJob == null ? null : blockingJob.getThread();
+		ThreadJob result = this;
 		//lock listener decided to grant immediate access
-		if (!manager.getLockManager().aboutToWait(blocker)) {
+		try {
+			if (manager.getLockManager().aboutToWait(blocker))
+				return this;
 			try {
 				waitStart(monitor, blockingJob);
+				final Thread currentThread = Thread.currentThread();
 				while (true) {
 					if (isCanceled(monitor))
 						throw new OperationCanceledException();
 					//try to run the job 
 					if (manager.runNow(this))
-						break;
+						return this;
 					//update blocking job
 					blockingJob = manager.findBlockingJob(this);
+					//the rule could have been transferred to this thread while we were waiting
 					blocker = blockingJob == null ? null : blockingJob.getThread();
+					if (blocker == currentThread && blockingJob instanceof ThreadJob) {
+						//now we are just the nested acquire case
+						result = (ThreadJob)blockingJob;
+						result.push(getRule());
+						result.isBlocked = this.isBlocked;
+						return result;
+					}
 					if (manager.getLockManager().aboutToWait(blocker))
-						break;
+						return this;
 					//must lock instance before calling wait
 					synchronized (this) {
 						try {
@@ -174,10 +187,12 @@
 					}
 				}
 			} finally {
-				waitEnd(monitor);
+				if (this == result)
+					waitEnd(monitor);
 			}
+		} finally {
+			manager.getLockManager().aboutToRelease();
 		}
-		manager.getLockManager().aboutToRelease();
 	}
 
 	/**
@@ -281,7 +296,7 @@
 		final Thread currentThread = Thread.currentThread();
 		if (isRunning()) {
 			lockManager.addLockThread(currentThread, getRule());
-			//need to reaquire any locks that were suspended while this thread was blocked on the rule
+			//need to re-aquire any locks that were suspended while this thread was blocked on the rule
 			lockManager.resumeSuspendedLocks(currentThread);
 		} else {
 			//tell lock manager that this thread gave up waiting
diff --git a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/preferences/InstancePreferences.java b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/preferences/InstancePreferences.java
index d0d58ea..e0c0ee4 100644
--- a/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/preferences/InstancePreferences.java
+++ b/bundles/org.eclipse.core.runtime/src/org/eclipse/core/internal/preferences/InstancePreferences.java
@@ -40,7 +40,7 @@
 		// to disk when #flush() is called.
 		if (baseLocation == null) {
 			Location instanceLocation = Platform.getInstanceLocation();
-			if (instanceLocation != null && instanceLocation.isSet())
+			if (instanceLocation != null && (instanceLocation.isSet() || instanceLocation.allowsDefault()))
 				baseLocation = InternalPlatform.getDefault().getMetaArea().getStateLocation(Platform.PI_RUNTIME);
 		}
 		return baseLocation;
diff --git a/bundles/org.eclipse.core.tools/.classpath b/bundles/org.eclipse.core.tools/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/bundles/org.eclipse.core.tools/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.tools/.cvsignore b/bundles/org.eclipse.core.tools/.cvsignore
deleted file mode 100644
index 3aa6193..0000000
--- a/bundles/org.eclipse.core.tools/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-coretools.jar
diff --git a/bundles/org.eclipse.core.tools/.options b/bundles/org.eclipse.core.tools/.options
deleted file mode 100644
index c6784d9..0000000
--- a/bundles/org.eclipse.core.tools/.options
+++ /dev/null
@@ -1,28 +0,0 @@
-#### Monitoring settings
-# monitor class loading
-org.eclipse.osgi/monitor/classes=false
-
-# monitor bundle activation
-org.eclipse.osgi/monitor/activation=false
-
-# monitor resource bundle (*.properties) loading
-org.eclipse.osgi/monitor/resources=false
-
-
-#### Trace settings
-# trace class loading - snapshot the execution stack when a class is loaded
-org.eclipse.osgi/trace/classLoading=false
-
-# trace location - file in which execution traces are written
-org.eclipse.osgi/trace/filename=runtime.traces
-
-# trace filters - Java properties file defining which classes should 
-# be traced (if trace/classLoading is true)
-# File format:
-# plugins=<comma separated list of plugins whose classes to trace>
-# packages=<comma separated list of package prefixes of classes to trace>
-# Note that there may be many 'plugins' and 'packages' lines in one file.
-org.eclipse.osgi/trace/filters=trace.properties
-
-# trace bundle activation - snapshot the execution stack when a bundle is activated
-org.eclipse.osgi/trace/activation=false
diff --git a/bundles/org.eclipse.core.tools/.project b/bundles/org.eclipse.core.tools/.project
deleted file mode 100644
index 4d63ad9..0000000
--- a/bundles/org.eclipse.core.tools/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tools</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.resources.spysupport</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.ui</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.tools/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.core.tools/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f3ab745..0000000
--- a/bundles/org.eclipse.core.tools/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu May 27 16:37:13 EDT 2004

-encoding/<project>=ISO-8859-1

-eclipse.preferences.version=1

diff --git a/bundles/org.eclipse.core.tools/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.tools/META-INF/MANIFEST.MF
deleted file mode 100644
index 313bb5e..0000000
--- a/bundles/org.eclipse.core.tools/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-Name: Core Tools
-Bundle-SymbolicName: org.eclipse.core.tools; singleton=true
-Bundle-Version: 1.3.0.qualifier
-Bundle-Activator: org.eclipse.core.tools.CoreToolsPlugin
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Provide-Package: org.eclipse.core.tools,
- org.eclipse.core.tools.runtime,
- org.eclipse.core.tools.metadata
-Require-Bundle: org.eclipse.core.resources;optional=true,
- org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.eclipse.ui,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.views,
- org.eclipse.jdt.core,
- org.eclipse.jdt.ui,
- org.eclipse.ltk.core.refactoring,
- org.eclipse.core.filebuffers,
- org.eclipse.ui.ide
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.core.tools/about.html b/bundles/org.eclipse.core.tools/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/bundles/org.eclipse.core.tools/about.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/about.ini b/bundles/org.eclipse.core.tools/about.ini
deleted file mode 100644
index e521604..0000000
--- a/bundles/org.eclipse.core.tools/about.ini
+++ /dev/null
@@ -1,27 +0,0 @@
-# about.ini

-# contains information about a feature

-# java.io.Properties file (ISO 8859-1 with "\" escapes)

-# "%key" are externalized strings defined in about.properties

-# This file does not need to be translated.

-

-# Property "aboutText" contains blurb for "About" dialog (translated)

-aboutText=%blurb

-

-# Property "windowImage" contains path to window icon (16x16)

-# needed for primary features only

-

-# Property "featureImage" contains path to feature image (32x32)

-featureImage=eclipse32.gif

-

-# Property "aboutImage" contains path to product image (500x330 or 115x164)

-# needed for primary features only

-

-# Property "appName" contains name of the application (translated)

-# needed for primary features only

-

-# Property "welcomePage" contains path to welcome page (special XML-based format)

-#welcomePage=$nl$/welcome.xml

-

-# Property "welcomePerspective" contains the id of the perspective in which the

-# welcome page is to be opened.

-# optional

diff --git a/bundles/org.eclipse.core.tools/about.mappings b/bundles/org.eclipse.core.tools/about.mappings
deleted file mode 100644
index 720ca87..0000000
--- a/bundles/org.eclipse.core.tools/about.mappings
+++ /dev/null
@@ -1,6 +0,0 @@
-# about.mappings

-# contains fill-ins for about.properties

-# java.io.Properties file (ISO 8859-1 with "\" escapes)

-# This file does not need to be translated.

-

-0=@build@
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/about.properties b/bundles/org.eclipse.core.tools/about.properties
deleted file mode 100644
index ae969be..0000000
--- a/bundles/org.eclipse.core.tools/about.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# about.properties
-# contains externalized strings for about.ini
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# fill-ins are supplied by about.mappings
-# This file should be translated.
-
-blurb=Eclipse Core Tools\n\
-\n\
-Version: 1.0.0\n\
-Build id: {0}\n\
-\n\
-(c) Copyright IBM Corp. and others 2000, 2004.  All rights reserved.\n\
-Visit http://eclipse.org/eclipse/development/performance
-
diff --git a/bundles/org.eclipse.core.tools/build.properties b/bundles/org.eclipse.core.tools/build.properties
deleted file mode 100644
index e84bf48..0000000
--- a/bundles/org.eclipse.core.tools/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-source.. = src/
-src.includes=*.html
-bin.includes=plugin.xml,icons/,doc/,*.html,.options, META-INF/,.
-qualifier=context
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/cpl-v10.html b/bundles/org.eclipse.core.tools/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/bundles/org.eclipse.core.tools/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and<BR CLEAR="LEFT">
-b) in the case of each subsequent Contributor:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf.  </FONT><FONT SIZE="2">Contributions do not include additions to the Program which:  (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form.  This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents.  The patent license shall not apply to any other combinations which include the Contribution.  No hardware per se is licensed hereunder.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">c)	Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity.  Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise.  As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any.  For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">d)	Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">iv)	states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like.  While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors.   Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering.  The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement.  In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations.  The Indemnified Contributor may participate in any such claim at its own expense.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">For example, a Contributor might include the Program in a commercial product offering, Product X.  That Contributor is then a Commercial Contributor.  If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.  Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance.  If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable.  However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted  and may only be modified in the following manner. The Agreement Steward reserves the right to </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">Each new version of the Agreement will be given a distinguishing version number.  The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose.  Each party waives its rights to a jury trial in any resulting litigation.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/doc/hglegal2002.htm b/bundles/org.eclipse.core.tools/doc/hglegal2002.htm
deleted file mode 100644
index 5df454d..0000000
--- a/bundles/org.eclipse.core.tools/doc/hglegal2002.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2002. All Rights Reserved.
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.tools/doc/ngibmcpy2002.gif b/bundles/org.eclipse.core.tools/doc/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.core.tools/doc/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/doc/readme.html b/bundles/org.eclipse.core.tools/doc/readme.html
deleted file mode 100644
index 340bd89..0000000
--- a/bundles/org.eclipse.core.tools/doc/readme.html
+++ /dev/null
@@ -1,236 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Core Tools Readme</title>
-</head>
-
-<body>
-<h2 align="center">Core Tools</h2>
-<h3>Introduction</h3>
-
-  
-<p>Core Tools is a set of views and perspectives useful for people writing Eclipse 
-  plugins or just wanting to know what is going on under the covers. Roughly speaking 
-  there are three kinds of tools:</p>
-<dl> 
-  <dt><b>Runtime tools</b></dt>
-  <dd>The runtime tools expose the internal behaviour of the Platform runtime 
-    as well as certain aspects of plugins (activation ordering, classes loaded, 
-    relation to other plugins, ...) and classes (load order, load nesting, ...). 
-    Plugin developers can use this information to ensure that their plugins/classes 
-    are be activated/loaded as expected, and that they are not taking more time/space 
-    than is warranted.</dd>
-  <dt><b>Resources tools</b></dt>
-  <dd>The resources tools expose the behaviour/performance of installed builders 
-    and listeners as well as the structure of the workspace, resources and resource 
-    deltas.</dd>
-  <dt><b>Metadata tools</b></dt>
-  <dd>The metadata tools enable users to investigate the metadata files used in 
-    Eclipse. Point these tools at a metadata location and browse...</dd>
-</dl>
-
-  
-<h3>Installing and Running Core Tools</h3> 
-
-<h4>Installing Core Tools</h4>
-<p>Core Tools comes in two parts; the tools themselves and some patches for the 
-  boot, runtime and resources plugins. To install:</p>
-<ol>
-  <li>To install the Core Tools, get org.eclipse.core.tools.zip and extract all 
-    files into the &lt;eclipse install&gt;/plugins directory. This will a add 
-    the Core Tools plugins and fragments to your install. 
-    Use Core Tools version 1.0.0 for Eclipse builds prior to I20030128, and
-  Core Tools 1.0.1 for all builds after that (including the 2.1 release).</li>
-  <li>If you are running an Eclipse build from before I20021127 (this includes 
-    2.0.*) you will need to get the patched versions of the boot, runtime and 
-    resources plugins. Get core-tools-patches.zip and extract all files into your 
-    &lt;eclipse install&gt;/plugins directory. This will overwrite boot.jar, runtime.jar 
-    and resources.jar. Note that if your install has version numbers in the plug-in 
-    directory names, you have to manually copy/extract the patch files into the 
-    corresponding versioned plug-in directory in your install.</li>
-</ol>
-<h4>Running Core Tools</h4>
-<p>After installing the Core Tools, you must enable them. The tools are enabled 
-  using Eclipse's debug options mechanism. To run Eclipse in &quot;debug&quot; 
-  mode, use the -debug command line option. If nothing else is said, Eclipse will 
-  look for the file &lt;eclipse install&gt;/.options. This is a Java properties 
-  file detailing which debug options should be enabled etc. See the Eclipse runtime 
-  documentation for more details. </p>
-<p>The org.eclipse.core.tools plugin contains an example .options file which enables 
-  all options (except class load trace filters). To run Eclipse with the Core 
-  Tools, either copy this file to your &lt;eclipse install&gt; directory or identify 
-  it on the command line after -debug. For example, </p>
-<pre>    eclipse -debug file:d:/.options</pre>
-<p>Note that not all tools require enablement. You need only enable the debug 
-  options required by the tools you choose to use. See the tool descriptions for 
-  details.</p>
-<p>If you are using PDE's runtime workbench then you can enable tracing and set 
-  the appropriate options for the target workspace. See PDE Guide -&gt; Running 
-  a plug-in -&gt; Running with tracing found in the standard Eclipse documentation 
-  set for more information.</p>
-<p>Once you are running with the Core Tools installed, there are a number of new 
-  perspectives and views. These are accessed by opening a new perspective or using 
-  the Window-&gt;Show View functions in the workbench.</p>
-<h3>Runtime Tools</h3> 
-
- 
-<p>The runtime tooling contributes a Runtime Spy and Plugin Dependency perspectives. 
-  Note that in some cases the views can be combined or used in other contexts. 
-  The individual views are accessed via the Workspace-&gt;Show View-&gt;Runtime 
-  Tools menu.</p>
-<h4>Runtime Spy Perspective</h4>
-<p>The Runtime Spy perspective shows information about the plugin activation, 
-  class loading, resource bundles etc. It is extremely useful when trying to track 
-  down why plugins are being activated or classes loaded as well as getting a 
-  handle on how much code is loaded. This tool contains four views: </p>
-<dl> 
-  <dt><b>Activated Plugins</b> </dt>
-  <dd>This is the list of plugins which have been activated since the start of 
-    this Eclipse session. Included is total code footprint, startup time, activation 
-    order as well as the number of classes loaded for each plugin.<br>
-    When plugins are activated a snapshot of the execution stack is taken. This 
-    stack trace can be viewed by selecting plugin and clicking on the stack trace 
-    'T' button on the title bar or in the context menu.<br>
-    The classes loaded by the selected plugins is shown in the Loaded Classes 
-    view when the &quot;Classes&quot; button ('C') on the menu bar or context 
-    menu is used.<br>
-    Note that this list is not automatically updated when a new plugin is activated 
-    so users should use the refresh button on the view title bar or in the context 
-    menu.</dd>
-  <dt><b>Loaded Classes</b> </dt>
-  <dd>This view is populated with classes loaded by plugins selected in the Activated 
-    Plugins view. For each class data such as load order and memory footprint 
-    are listed. If the appropriate filtering is enabled when the platform is started 
-    (see below), stack snapshots taken at class loading time are available by 
-    selecting a class and using the Stack Trace menu entry or title bar button.</dd>
-  <dt><b>Plugin Datasheet</b> </dt>
-  <dd>Shows a summary of the currently selected plugin.</dd>
-  <dt><b>Stack Trace</b> </dt>
-  <dd>Shows a snapshot of the execution stack at the time of some event (e.g., 
-    plugin activation, class loading).</dd>
-</dl>
-<p>The following debug options control what data is available in Runtime Spy perspective 
-  views.</p>
-<dl> 
-  <dt>org.eclipse.core.boot/monitor/classes=&lt;boolean&gt;</dt>
-  <dd>Whether or not to monitor which classes are loaded.</dd>
-  <dt>org.eclipse.core.boot/monitor/plugins=&lt;boolean&gt;</dt>
-  <dd>Whether or not to monitor which plugins are activated.</dd>
-  <dt>org.eclipse.core.boot/monitor/bundles=&lt;boolean&gt;</dt>
-  <dd>Whether or not to monitor which resource bundles (i.e., *.properties files 
-    ) are loaded</dd>
-  <dt>org.eclipse.core.boot/trace/classLoading=&lt;boolean&gt;</dt>
-  <dd>Whether or not to snapshot the execution stack when a class is loaded</dd>
-  <dt>org.eclipse.core.boot/trace/filename=&lt;file location&gt;</dt>
-  <dd>The file in which execution traces are written</dd>
-  <dt>org.eclipse.core.boot/trace/filters=&lt;properties file&gt;</dt>
-  <dd>The location of a Java properties file identifying the classes which should 
-    be traced (if trace/classLoading is true). The File format is: <br>
-    plugins=&lt;comma separated list of plugins whose classes to trace&gt;<br>
-    packages=&lt;comma separated list of package prefixes of classes to trace&gt;<br>
-    Note that there may be many 'plugins' and 'packages' lines in one file.</dd>
-  <dt>org.eclipse.core.boot/trace/pluginActivation=&lt;boolean&gt;</dt>
-  <dd>Whether or not to snapshot the execution stack when a plugin is activated.<br>
-  </dd>
-</dl>
-<p></p>
-<h4>Plug-In Dependency Perspective</h4>
-<p>This perspective includes 2 views: a plug-in list view listing all the plug-ins 
-  available in the workspace and a plug-in dependency view. The plug-in ids in 
-  the list view are given in alphabetical order (according to their plug-in id). 
-  Select a plug-in in the list view and the dependency view is updated to show 
-  all plug-ins that the selected plug-in requires as well as all plug-ins that 
-  require this selected plug-in. This information is currently only presented 
-  in a text format.</p>
-<h3>Resources Tools</h3>
-<p>The Resources tooling consists of a number of views described below. These 
-  are accessed via the Workspace-&gt;Show View-&gt;Resources Tools menu and can 
-  be used independently or together to as desired. </p>
-<h4>Resource Spy view</h4>
-This view shows detailed public/internal information about the resource currently 
-selected in any Eclipse view (e.g. Resource Navigator, Package Explorer, etc). 
-It shows details about: flags, markers, synchronization information, and session/persistent 
-properties. 
-<h4>Delta Spy View</h4>
-The Delta Spy listens for any resource changes, echoing the resource delta for 
-each change event listened. For each affected resource (and its child resources), 
-it shows the following information: 
-<ul>
-  <li>the resource's full path;</li>
-  <li>the kind of change (between brackets): addition (+), phantom addition (&gt;), 
-    removal (-), phantom removal (&lt;), change (*), no change (~), and unknown 
-    (?);</li>
-  <li>the change flags (between curly braces): CONTENT, MOVED_FROM, MOVED_TO, 
-    OPEN, TYPE, SYNC, MARKERS, REPLACED, DESCRIPTION;</li>
-  <li>in the case it is a marker change, it will show (between brackets) for each 
-    marker changed: 
-    <ul>
-      <li>the kind of marker change: addition (+), removal (-), change (*);</li>
-      <li>the marker's id;</li>
-    </ul>
-  </li>
-  <li>if it is a team private change, a "(team private)" tag.</li>
-</ul>
-<h4>Builders/Listeners Spy</h4>
-<p>The Builders/Listeners Spy view displays statistical information about the 
-  behaviour and performance of installed builders and resource change listeners. 
-  The information includes:</p>
-<ul>
-  <li>the name of builder/listener (listeners do not technically have names so 
-    their toString() is used)</li>
-  <li>the project related to the builder (blank for listeners)</li>
-  <li>the number of events (builds or resource changed) processed by the builder/listener</li>
-  <li>the amount of time spent processing these events</li>
-  <li>the number of core exceptions encountered</li>
-</ul>
-<p>For more informatioin on listeners see the Eclipse article &quot;How You've 
-  Changed! Responding to resource changes in the Eclipse workspace&quot; by John 
-  Arthorne (OTI) August 23, 2002. Documentation on builders can be found in the 
-  Platform Plug-in Developer Guide included with the Eclipse documentation.</p>
-<p>The following debug options control what data is available in Builder/Listener 
-  Spy view.</p>
-<dl> 
-  <dt>org.eclipse.core.resources/monitor/builders=&lt;boolean&gt;</dt>
-  <dd>Whether or not to monitor which builders.</dd>
-  <dt>org.eclipse.core.resources/monitor/listeners=&lt;boolean&gt;</dt>
-  <dd>Whether or not to monitor which listeners.</dd>
-</dl>
- 
-<h3>Metadata Tools</h3>
-<p>The metadata tooling contributes a Metadata perspective. The individual views 
-  are not particularly useful on their own but are accessed via the Window-&gt;Show 
-  View-&gt;Metadata Tools menu.</p>
-<h4></h4>
-<h4>The Metadata Perspective</h4>
-This perspective contains three views which allows the user to select a directory, 
-browse any metadata found in it and see contents and integrity status of supported 
-files. 
-<h4></h4>
-<dl> 
-  <dt><b>Metadata Spy</b></dt>
-  <dd>This view allows the user to select a given metadata directory and uses 
-    a tree view to show a directory hierarchy containing all known metadata files 
-    as leaf nodes. If the user double-clicks one of these leaf nodes, the Dump 
-    Contents view will be opened having this file as its current selected file. 
-  </dd>
-  <dt><b>Dump Contents</b></dt>
-  <dd>This view presents to the user the contents of a selected metadata file 
-    in a human-readable format. It provides an action for selecting a new file 
-    to dump. The contents layout will depend on what kind of file is being dumped. 
-    This view has a sub-view called &quot;Dump Summary&quot; that shows whether 
-    the file read was ok or not. </dd>
-  <dt><b>Dump Summary</b></dt>
-  <dd>This view presents to the user the results of a file dumped using the Dump 
-    Contents view. In the case of a error during the dumping process (because 
-    the metadata file being dumped was corrupted), the reason will be shown here, 
-    along with the number of bytes read. This view will only be updated if it 
-    is open when a file is being dumped. </dd>
-</dl>
-<p>Note: the dumping functionality is also available as a headless Eclipse application: 
-  <tt>org.eclipse.core.tools.dumptool</tt>. To run it, you need to pass the file 
-  to be dumped using the <tt>dump.file</tt> system property. For instance:</p>
-<pre>eclipse -application org.eclipse.core.tools.dumptool -vmargs -Ddump.file=d:\eclipse\configuration\org.eclipse.osgi\.state</pre>
-<h4><a href="hglegal2002.htm"><img SRC="ngibmcpy2002.gif" ALT="Copyright IBM Corporation and others 2000, 2002.  All Rights Reserved." BORDER=0 height=14 width=324></a></h4>
-  </body>
-</html>
diff --git a/bundles/org.eclipse.core.tools/icons/classes.gif b/bundles/org.eclipse.core.tools/icons/classes.gif
deleted file mode 100644
index 4fa0940..0000000
--- a/bundles/org.eclipse.core.tools/icons/classes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/clear.gif b/bundles/org.eclipse.core.tools/icons/clear.gif
deleted file mode 100644
index 2558326..0000000
--- a/bundles/org.eclipse.core.tools/icons/clear.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/collapseall.gif b/bundles/org.eclipse.core.tools/icons/collapseall.gif
deleted file mode 100644
index 0bae56c..0000000
--- a/bundles/org.eclipse.core.tools/icons/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/datasheet.gif b/bundles/org.eclipse.core.tools/icons/datasheet.gif
deleted file mode 100644
index ec0cba1..0000000
--- a/bundles/org.eclipse.core.tools/icons/datasheet.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/plugin.gif b/bundles/org.eclipse.core.tools/icons/plugin.gif
deleted file mode 100644
index 8a87648..0000000
--- a/bundles/org.eclipse.core.tools/icons/plugin.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/refresh.gif b/bundles/org.eclipse.core.tools/icons/refresh.gif
deleted file mode 100644
index a063c23..0000000
--- a/bundles/org.eclipse.core.tools/icons/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/req_plugins_obj.gif b/bundles/org.eclipse.core.tools/icons/req_plugins_obj.gif
deleted file mode 100644
index 689f522..0000000
--- a/bundles/org.eclipse.core.tools/icons/req_plugins_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/reset.gif b/bundles/org.eclipse.core.tools/icons/reset.gif
deleted file mode 100644
index 8d50500..0000000
--- a/bundles/org.eclipse.core.tools/icons/reset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/spy.gif b/bundles/org.eclipse.core.tools/icons/spy.gif
deleted file mode 100644
index ce3fc51..0000000
--- a/bundles/org.eclipse.core.tools/icons/spy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/trace.gif b/bundles/org.eclipse.core.tools/icons/trace.gif
deleted file mode 100644
index 34027a5..0000000
--- a/bundles/org.eclipse.core.tools/icons/trace.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/icons/zoom.gif b/bundles/org.eclipse.core.tools/icons/zoom.gif
deleted file mode 100644
index 3c10582..0000000
--- a/bundles/org.eclipse.core.tools/icons/zoom.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools/plugin.xml b/bundles/org.eclipse.core.tools/plugin.xml
deleted file mode 100644
index 0cc47e7..0000000
--- a/bundles/org.eclipse.core.tools/plugin.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="metadataDumpers" name="Metadata Dumpers"/>
-   
-<!-- Metadata dumpers -->
-   <extension point="org.eclipse.core.tools.metadataDumpers">
-      <dumper file-name=".state" class="org.eclipse.core.tools.metadata.StateDumper"/>
-   </extension>
-   
-<!-- The DumpTool headless application -->
-   <extension point="org.eclipse.core.runtime.applications" id="dumptool">
-    <application> 
-      <run class="org.eclipse.core.tools.metadata.DumpTool"/>
-    </application>
-   </extension>   
-   
-
-<!--  Perspectives -->
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Plug-in Dependency"
-            icon="icons/req_plugins_obj.gif"
-            class="org.eclipse.core.tools.runtime.PluginDependencyPerspective"
-            id="org.eclipse.core.tools.runtime.PluginDependencyPerspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Runtime Spy"
-            icon="icons/zoom.gif"
-            class="org.eclipse.core.tools.runtime.RuntimeSpyPerspective"
-            id="org.eclipse.core.tools.runtime.RuntimeSpyPerspective">
-      </perspective>
-   </extension>
-<!--  Metadata Perspective -->
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Metadata"
-            icon="icons/spy.gif"
-            class="org.eclipse.core.tools.metadata.MetadataPerspective"
-            id="org.eclipse.core.tools.metadata.MetadataPerspective">
-      </perspective>
-   </extension>
-<!-- Metadata Views  -->
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Metadata Tools"
-            id="org.eclipse.core.tools.metadata">
-      </category>
-      <view
-            name="Dump Contents"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.metadata"
-            class="org.eclipse.core.tools.metadata.DumpContentsView"
-            id="org.eclipse.core.tools.metadata.DumpContentsView">
-      </view>
-      <view
-            name="Dump Summary"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.metadata"
-            class="org.eclipse.core.tools.metadata.DumpSummaryView"
-            id="org.eclipse.core.tools.metadata.DumpSummaryView">
-      </view>
-      <view
-            name="Metadata Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.metadata"
-            class="org.eclipse.core.tools.metadata.MetadataTreeView"
-            id="org.eclipse.core.tools.metadata.MetadataTreeView">
-      </view>
-   </extension>   
-<!-- Runtime Views -->
-   <extension point="org.eclipse.ui.views">
-      <category name="Runtime Tools" id="org.eclipse.core.tools.runtime"/>
-      <view
-            name="Activated Plug-ins"
-            icon="icons/plugin.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.ActivePluginsView"
-            id="org.eclipse.core.tools.runtime.ActivePluginsView"/>
-      <view
-            name="Loaded Classes"
-            icon="icons/classes.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.LoadedClassesView"
-            id="org.eclipse.core.tools.runtime.LoadedClassesView"/>
-      <view
-            name="Plug-in Datasheet"
-            icon="icons/datasheet.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.PluginDataSheetView"
-            id="org.eclipse.core.tools.runtime.PluginDataSheetView"/>
-      <view
-            name="Stack Trace"
-            icon="icons/trace.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.StackTraceView"
-            id="org.eclipse.core.tools.runtime.StackTraceView"/>
-      <view
-            name="Plug-in Dependency Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.PluginDependencyView"
-            id="org.eclipse.core.tools.runtime.PluginDependencyView"/>
-      <view
-            name="Plug-in List Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.PluginListView"
-            id="org.eclipse.core.tools.runtime.PluginListView"/>
-      <view
-            name="Preferences Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.EclipsePreferencesView"
-            id="org.eclipse.core.tools.runtime.EclipsePreferencesView"/>
-      <view
-            name="Preference Stats Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.PreferenceStatsView"
-            id="org.eclipse.core.tools.runtime.PreferenceStatsView"/>
-      <view
-            name="Content Types"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.ContentTypeView"
-            id="org.eclipse.core.tools.runtime.ContentTypeView"/>            
-      <view
-            name="Event Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.runtime"
-            class="org.eclipse.core.tools.runtime.EventsView"
-            id="org.eclipse.core.tools.runtime.EventsView"/>
-   </extension>
-   	<extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            adaptable="true"
-            id="org.eclipse.core.tools.nls.testing.contribution"
-            objectClass="org.eclipse.jdt.core.ICompilationUnit">
-         <action
-               label="Convert to NLS Messages"
-               class="org.eclipse.core.tools.nls.ConvertMessageBundleAction"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.core.tools.nls.ConvertMessageBundleAction">
-         </action>
-         <action
-               label="Remove Unused Messages"
-               class="org.eclipse.core.tools.nls.RemoveUnusedMessagesAction"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.core.tools.nls.RemoveUnusedMessagesAction">
-         </action>
-      </objectContribution>
-      <objectContribution
-            adaptable="true"
-            id="org.eclipse.core.tools.contribution2"
-            objectClass="org.eclipse.jdt.core.IJavaElement">
-         <action
-               label="Find Unreferenced Members"
-               class="org.eclipse.core.tools.search.FindUnusedMembersAction"
-               menubarPath="additions"
-               enablesFor="*"
-               id="org.eclipse.core.tools.search.FindUnusedMembersAction">
-         </action>
-      </objectContribution>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractCopySelectionAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractCopySelectionAction.java
deleted file mode 100644
index b0686a0..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractCopySelectionAction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * A base abstract implementation for "copy selection" actions.
- */
-
-public abstract class AbstractCopySelectionAction extends GlobalAction {
-
-	/**
-	 * The selection provider.
-	 */
-	protected ISelectionProvider selectionProvider;
-
-	/**
-	 * Sets action's text and tool tip text.
-	 * 
-	 * @param selectionProvider the selection provider
-	 */
-	public AbstractCopySelectionAction(ISelectionProvider selectionProvider) {
-		super("&Copy"); //$NON-NLS-1$
-		this.selectionProvider = selectionProvider;
-	}
-
-	/**
-	 * Copies the currently selected contents to the clipboard. The meaning of the 
-	 * currently selected contents is defined by overriding the getContents() 
-	 * method.
-	 * 
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		// puts that content in the clipboard
-		Clipboard clipboard = new Clipboard(Display.getCurrent());
-		clipboard.setContents(new Object[] {getContents()}, new Transfer[] {TextTransfer.getInstance()});
-		clipboard.dispose();
-	}
-
-	/**
-	 * Registers this action as a global action handler.
-	 * 
-	 * @param actionBars the action bars where this action will be registered.
-	 * @see org.eclipse.core.tools.GlobalAction#registerAsGlobalAction(
-	 * org.eclipse.ui.IActionBars)
-	 */
-	public void registerAsGlobalAction(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), this);
-	}
-
-	/**
-	 * Returns the currently selected contents as a String object.
-	 * 
-	 * @return the selected contents as string.
-	 */
-	protected abstract String getContents();
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractTreeContentProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractTreeContentProvider.java
deleted file mode 100644
index cfc005d..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/AbstractTreeContentProvider.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * An abstract base class for hierarchical content providers. Uses  
- * <code>TreeContentProviderNode</code> objects to keep a hierarchical
- * data model. Subclasses must provide an implementation for the 
- * <code>#rebuild(Object)</code> operation in order to define how the data model
- * will be built upon a given input provided by the viewer. 
- */
-
-public abstract class AbstractTreeContentProvider implements ITreeContentProvider {
-
-	/**
-	 * Flag for omitting the root or not when providing the contents. 
-	 */
-	private boolean omitRoot;
-
-	/**
-	 * The root node.
-	 */
-	private TreeContentProviderNode rootNode;
-
-	/**
-	 * Constructs a AbstractTreeContentProvider. 
-	 *
-	 * @param omitRoot if true, the root node will be omitted when providing 
-	 * contents. 
-	 */
-	protected AbstractTreeContentProvider(boolean omitRoot) {
-		this.omitRoot = omitRoot;
-	}
-
-	/**
-	 * Constructs a AbstractTreeContentProvider that will omit the root node when 
-	 * providing contents.
-	 * 
-	 * @see #AbstractTreeContentProvider(boolean)
-	 */
-	protected AbstractTreeContentProvider() {
-		this(true);
-	}
-
-	/**
-	 * Returns the child elements of the given parent element.
-	 * 
-	 * @return an array containing <code>parentElement</code>'s children.  
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(
-	 * java.lang.Object)
-	 * @see org.eclipse.core.tools.TreeContentProviderNode#getChildren() 
-	 */
-	public Object[] getChildren(Object parentElement) {
-		if (!(parentElement instanceof TreeContentProviderNode))
-			return null;
-
-		TreeContentProviderNode treeNode = (TreeContentProviderNode) parentElement;
-		return treeNode.getChildren();
-	}
-
-	/**
-	 * Returns the parent for the given element, or <code>null</code> 
-	 * indicating that the parent can't be computed. 
-	 *
-	 * @return <coded>element</code>'s parent node or null, if it is a root node 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(
-	 * java.lang.Object)
-	 * @see org.eclipse.core.tools.TreeContentProviderNode#getParent()
-	 */
-	public Object getParent(Object element) {
-		if (!(element instanceof TreeContentProviderNode))
-			return null;
-
-		TreeContentProviderNode treeNode = (TreeContentProviderNode) element;
-		return treeNode.getParent();
-	}
-
-	/**
-	 * Returns whether the given element has children.
-	 *
-	 * @return true, if <code>element</code> has children, false otherwise 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(
-	 * java.lang.Object)
-	 * @see org.eclipse.core.tools.TreeContentProviderNode#hasChildren() *  
-	 */
-	public boolean hasChildren(Object element) {
-		return element instanceof TreeContentProviderNode && ((TreeContentProviderNode) element).hasChildren();
-	}
-
-	/**
-	 * Returns the elements to display in the viewer 
-	 * when its input is set to the given element. 
-	 * 
-	 * @return this content provider root element's children
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(
-	 * java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		if (rootNode == null)
-			return new Object[0];
-
-		return omitRoot ? rootNode.getChildren() : new Object[] {rootNode};
-	}
-
-	/**
-	 * Disposes of this content provider.  
-	 * This is called by the viewer when it is disposed.
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		rootNode = null;
-	}
-
-	/**
-	 * Helper method that creates a root node given a node name and value.
-	 * 
-	 * @param name the name of the node
-	 * @param value the value of the node. May be null.
-	 * @return the tree node created
-	 * @see TreeContentProviderNode#TreeContentProviderNode(String, Object) 
-	 */
-	protected TreeContentProviderNode createNode(String name, Object value) {
-		return new TreeContentProviderNode(name, value);
-	}
-
-	/**
-	 * Helper method that creates a root node given a node name and no value.
-	 * 
-	 * @param name the name of the node
-	 * @return the tree node created
-	 * @see TreeContentProviderNode#TreeContentProviderNode(String) 
-	 */
-	protected TreeContentProviderNode createNode(String name) {
-		return new TreeContentProviderNode(name);
-	}
-
-	/**
-	 * Notifies this content provider that the given viewer's input
-	 * has been switched to a different element.
-	 * Rebuilds this content provider's state from a given resource.
-	 * 
-	 * @param viewer the viewer
-	 * @param oldInput ignored
-	 * @param input the new input. If null, clears this content provider. If not,
-	 * is passed in a call to <code>rebuild(Object)</code>. 
-	 * @see 
-	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(
-	 * org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 * @see #rebuild(Viewer, Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, final Object input) {
-		if (input == null) {
-			rootNode = createNode("root"); //$NON-NLS-1$
-			return;
-		}
-
-		if (!acceptInput(input))
-			return;
-
-		rootNode = createNode("root"); //$NON-NLS-1$	    
-		rebuild(viewer, input);
-	}
-
-	/**
-	 * Reconstructs this content provider data model upon the provided input object.
-	 *  
-	 * @param input the new input object - must not be null
-	 * @param viewer the corresponding viewer
-	 */
-	protected abstract void rebuild(Viewer viewer, Object input);
-
-	/**
-	 * Returns true if the provided input is accepted by this content provider.
-	 * 
-	 * @param input an input object
-	 * @return boolean true if the provided object is accepted, false otherwise
-	 */
-	protected abstract boolean acceptInput(Object input);
-
-	/**
-	 * Returns the rootNode.
-	 * 
-	 * @return this content provider root node
-	 */
-	protected TreeContentProviderNode getRootNode() {
-		return rootNode;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/BaseTextView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/BaseTextView.java
deleted file mode 100644
index d151dd6..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/BaseTextView.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.part.ViewPart;
-
-public class BaseTextView extends ViewPart {
-	protected TextViewer viewer;
-
-	public BaseTextView() {
-		super();
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.READ_ONLY);
-		viewer.setDocument(new Document());
-
-		IActionBars bars = getViewSite().getActionBars();
-
-		GlobalAction selectAllAction = new SelectAllAction(viewer);
-		selectAllAction.registerAsGlobalAction(bars);
-
-		GlobalAction copyAction = new CopyTextSelectionAction(viewer);
-		copyAction.registerAsGlobalAction(bars);
-
-		bars.updateActionBars();
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(copyAction);
-		menuMgr.add(selectAllAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	public void setFocus() {
-		// do nothing
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ByteUtil.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ByteUtil.java
deleted file mode 100644
index a8987b8..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ByteUtil.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-/**
- * A set of utility methods for dealing with byte arrays.
- */
-public class ByteUtil {
-
-	/**
-	 * Helper method that creates a string representation for a byte array.
-	 * 
-	 * @param byteArray a byte array to be represented as string
-	 * @param max a maximum number of bytes to be considered - if zero, there is 
-	 * no maximum. 
-	 * @return a byte array string representation
-	 */
-	public static String byteArrayToString(byte[] byteArray, int max) {
-		StringBuffer result = new StringBuffer(byteArray.length * 2 + 2);
-		int bytesToBeShown = (max > 0) ? (Math.min(max, byteArray.length)) : byteArray.length;
-		result.append('[');
-		for (int i = 0; i < bytesToBeShown; i++) {
-			result.append(byteArray[i]);
-			result.append(',');
-		}
-		// adds an ellipsis if there is too much bytes to show
-		if (max > 0 && max < byteArray.length)
-			result.append("..."); //$NON-NLS-1$
-		// or remove the trailing comma
-		else
-			result.deleteCharAt(result.length() - 1);
-		result.append(']');
-		return result.toString();
-	}
-
-	/**
-	 * Calls <code>byteArrayToString()</code> with no limit for array lenght.
-	 * 
-	 * @see #byteArrayToString(byte[], int) 
-	 * @param byteArray the array to be converted to string
-	 * @return a string representation for the array 
-	 */
-	public static String byteArrayToString(byte[] byteArray) {
-		return byteArrayToString(byteArray, 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
deleted file mode 100644
index 1d4af80..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-
-/**
- * Generic "clear contents" action. Sets action's text, tool tip text and icon.
- */
-
-public class ClearTextAction extends GlobalAction {
-
-	/**
-	 * The document on which this action performs its duty.
-	 */
-	private IDocument document;
-
-	/**
-	 * Constructs a ClearTextAction action with the provided document. 
-	 * 
-	 * @param document the document to be cleared when this action is run.
-	 */
-	public ClearTextAction(IDocument document) {
-		super("Cle&ar Contents"); //$NON-NLS-1$
-		this.setToolTipText("Clear contents"); //$NON-NLS-1$
-		this.document = document;
-		// the delete key is not captured by the workbench
-		// then we need to provide an action definition id
-		// so clients can register this action in their key binding services
-		this.setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
-		this.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("clear.gif")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Executes this action (clears associated document's contents).
-	 */
-	public void run() {
-		document.set(""); //$NON-NLS-1$
-	}
-
-	/**
-	 * Registers this action as a global action handler.
-	 * 
-	 * @param actionBars the action bars where this action will be registered.
-	 * @see GlobalAction#registerAsGlobalAction(org.eclipse.ui.IActionBars)
-	 */
-	public void registerAsGlobalAction(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), this);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CollapseAllAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CollapseAllAction.java
deleted file mode 100644
index 9ec3b24..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CollapseAllAction.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.TreeViewer;
-
-/**
- * @since 3.0
- */
-public class CollapseAllAction extends Action implements IAction {
-
-	private static final String label = "Collapse All"; //$NON-NLS-1$
-	private static final String imageName = "collapseall.gif"; //$NON-NLS-1$
-	private TreeViewer viewer;
-
-	public CollapseAllAction(TreeViewer viewer) {
-		super(label);
-		this.setToolTipText(label);
-		this.viewer = viewer;
-		this.setImageDescriptor(CoreToolsPlugin.createImageDescriptor(imageName));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		viewer.collapseAll();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
deleted file mode 100644
index ccd394a..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.util.Iterator;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * A concrete implementation for <code>AbstractCopySelectionAction</code> that 
- * supports structured selections.
- * 
- * @see org.eclipse.jface.viewers.IStructuredSelection
- */
-public class CopyStructuredSelectionAction extends AbstractCopySelectionAction {
-
-	/** 
-	 * @see org.eclipse.core.tools.AbstractCopySelectionAction#AbstractCopySelectionAction(ISelectionProvider)
-	 */
-	public CopyStructuredSelectionAction(ISelectionProvider selectionProvider) {
-		super(selectionProvider);
-	}
-
-	/**
-	 * Returns the current structured selection as a string object where each 
-	 * node is followed by a line terminator char.  This method depends on the
-	 * toString() method of each node to define a reasonably formatted string
-	 * for display.
-	 * 
-	 * @return a string containing the currently selected elements separated by
-	 * line terminators 
-	 * @see org.eclipse.core.tools.AbstractCopySelectionAction#getContents()
-	 */
-	public String getContents() {
-		// retrieves the selected contents from the selection provider
-		IStructuredSelection selection = (IStructuredSelection) selectionProvider.getSelection();
-		StringBuffer content = new StringBuffer();
-		for (Iterator selectionIter = selection.iterator(); selectionIter.hasNext();) {
-			content.append(selectionIter.next());
-			content.append('\n');
-		}
-		return content.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyTextSelectionAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyTextSelectionAction.java
deleted file mode 100644
index 6e813a1..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyTextSelectionAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-
-/**
- * A concrete implementation for <code>AbstractCopySelectionAction</code> that 
- * supports text selections.
- * 
- * @see org.eclipse.jface.text.ITextSelection
- */
-public class CopyTextSelectionAction extends AbstractCopySelectionAction {
-
-	/**
-	 * @see AbstractCopySelectionAction#AbstractCopySelectionAction
-	 * (ISelectionProvider)
-	 */
-	public CopyTextSelectionAction(ISelectionProvider selectionProvider) {
-		super(selectionProvider);
-	}
-
-	/**
-	 * Returns the current text selection.
-	 * 
-	 * @return a string containing the currently selected text
-	 * @see org.eclipse.core.tools.AbstractCopySelectionAction#getContents()
-	 */
-	protected String getContents() {
-		return ((ITextSelection) selectionProvider.getSelection()).getText();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CoreToolsPlugin.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CoreToolsPlugin.java
deleted file mode 100644
index 26725ba..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CoreToolsPlugin.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.internal.stats.ClassloaderStats;
-import org.eclipse.core.runtime.internal.stats.StatsManager;
-import org.eclipse.core.tools.runtime.VMClassInfo;
-import org.eclipse.core.tools.runtime.VMClassloaderInfo;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-public class CoreToolsPlugin extends AbstractUIPlugin {
-	private static CoreToolsPlugin instance;
-	public static String PLUGIN_ID = "org.eclipse.core.tools"; //$NON-NLS-1$
-	private BundleContext context;
-
-	static {
-		if (StatsManager.MONITOR_ACTIVATION)
-			initializeBootClasses();
-	}
-
-	public static CoreToolsPlugin getDefault() {
-		return instance;
-	}
-
-	private static void initializeBootClasses() {
-		if (!VMClassloaderInfo.hasNatives)
-			return;
-		ClassloaderStats loader = ClassloaderStats.getLoader("org.eclipse.osgi"); //$NON-NLS-1$
-		//class loading trace option not enabled
-		if (loader == null)
-			return;
-		VMClassInfo[] classes = VMClassloaderInfo.getBaseClasses();
-		String[] names = new String[classes.length];
-		for (int i = 0; i < classes.length; i++)
-			names[i] = classes[i].getName();
-		loader.addBaseClasses(names);
-	}
-
-	/**
-	 * find an icon - caller must dispose of it
-	 */
-	public static ImageDescriptor createImageDescriptor(String imageName) {
-		URL url = getDefault().getBundle().getEntry("icons/" + imageName); //$NON-NLS-1$
-		if (url != null)
-			return ImageDescriptor.createFromURL(url);
-		return ImageDescriptor.getMissingImageDescriptor();
-	}
-
-	public CoreToolsPlugin() {
-		super();
-		instance = this;
-	}
-
-	public void start(BundleContext bundleContext) throws Exception {
-		super.start(bundleContext);
-		this.context = bundleContext;
-	}
-
-	public BundleContext getContext() {
-		return context;
-	}
-	
-	public void log(String message, Throwable exception) {
-		getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, exception));
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
deleted file mode 100644
index 8c8dbfa..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.*;
-
-/**
- * How to use DeepSize:
- * DeepSize result= DeepSize.deepSize(anObject);
- * int size= result.getSize(); // accumulated size of transitive closure of anObject
- * Hashtable sizes= result.getSizes(); // hashtable of internal results: class name-> sum of shallowsize of instances of class
- * Hashtable counts= result.getCounts(); // hashtable of internal results: class name -> instances of class
- * Additional function
- * DeepSize d= new DeepSize();
- * d.setIgnoreTypeNames(aSet); // don't consider instances of classes named in aSet as part of the size
- * d.ignore(anObject); // don't consider anObject as part of the size
- * d.deepCompute(anObject); // advanced compute method - computes the size given the additional ignore configuration
- */
-public class DeepSize {
-	/**
-	 * Used as keys to track sets of non-identical objects.
-	 */
-	public static class ObjectWrapper {
-		private Object object;
-
-		public ObjectWrapper(Object object) {
-			this.object = object;
-		}
-
-		public boolean equals(Object o) {
-			if (o.getClass() != ObjectWrapper.class)
-				return false;
-			return object == ((ObjectWrapper) o).object;
-		}
-
-		public int hashCode() {
-			return object == null ? 1 : object.hashCode();
-		}
-
-		public String toString() {
-			return "ObjectWrapper(" + object + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	public static final int ARRAY_HEADER_SIZE = 12;
-
-	public static final int HEADER_SIZE = 8;
-	static final HashSet ignoreSet = new HashSet();
-	public static final int OBJECT_HEADER_SIZE = HEADER_SIZE;
-	public static final int POINTER_SIZE = 4;
-	int byteSize;
-	final Map counts = new HashMap();
-
-	Set ignoreTypeNames = null;
-	final Map sizes = new HashMap();
-
-	/**
-	 * Adds an object to the ignore set. Returns true if the object
-	 * has already been ignored previously, and false otherwise.
-	 */
-	public static boolean ignore(Object o) {
-		return !ignoreSet.add(new ObjectWrapper(o));
-	}
-
-	public static void reset() {
-		ignoreSet.clear();
-	}
-
-	private void count(Class c, int size) {
-		Object accumulatedSizes = sizes.get(c);
-		int existingSize = (accumulatedSizes == null) ? 0 : ((Integer) accumulatedSizes).intValue();
-		sizes.put(c, new Integer(existingSize + size));
-
-		Object accumulatedCounts = counts.get(c);
-		int existingCount = (accumulatedCounts == null) ? 0 : ((Integer) accumulatedCounts).intValue();
-		counts.put(c, new Integer(existingCount + 1));
-	}
-
-	public void deepSize(Object o) {
-		byteSize += sizeOf(o);
-	}
-
-	public Map getCounts() {
-		return counts;
-	}
-
-	Set getDefaultIgnoreTypeNames() {
-		Set ignored = new HashSet();
-		String[] ignore = {"org.eclipse.core.runtime.Plugin", "java.lang.ClassLoader", "org.eclipse.team.internal.ccvs.core.CVSTeamProvider", "org.eclipse.core.internal.events.BuilderPersistentInfo", "org.eclipse.core.internal.resources.Workspace", "org.eclipse.core.internal.events.EventStats"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-6$
-		for (int i = 0; i < ignore.length; i++) {
-			ignored.add(ignore[i]);
-		}
-		return ignored;
-	}
-
-	private Object getFieldObject(Field f, Object o) {
-		try {
-			f.setAccessible(true);
-			return f.get(o);
-		} catch (IllegalAccessException e) {
-			throw new Error(e.toString());
-		}
-	}
-
-	public int getSize() {
-		return byteSize;
-	}
-
-	public Map getSizes() {
-		return sizes;
-	}
-
-	private boolean isStaticField(Field f) {
-		return (Modifier.STATIC & f.getModifiers()) != 0;
-	}
-	
-	/**
-	 * Prints a detailed report of memory usage by type to standard output
-	 */
-	public void printSizeReport() {
-		System.out.println("*** Begin DeepSize report ***"); //$NON-NLS-1$
-		for (Iterator it = sizes.keySet().iterator(); it.hasNext();) {
-			Class clazz = (Class) it.next();
-			int size = ((Integer)sizes.get(clazz)).intValue();
-			System.out.println('\t' + clazz.getName() + " size: " + size); //$NON-NLS-1$
-			System.out.println("Total size of all objects: " + getSize()); //$NON-NLS-1$
-		}
-		System.out.println("*** End DeepSize report ***"); //$NON-NLS-1$
-	}
-
-	void setIgnoreTypeNames(Set ignore) {
-		ignoreTypeNames = ignore;
-	}
-
-	private boolean shouldIgnoreType(Class clazz) {
-		if (ignoreTypeNames == null) {
-			ignoreTypeNames = getDefaultIgnoreTypeNames();
-		}
-		while (clazz != null) {
-			if (ignoreTypeNames.contains(clazz.getName()))
-				return true;
-			clazz = clazz.getSuperclass();
-		}
-		return false;
-	}
-
-	private int sizeOf(Object o) {
-		if (o == null)
-			return 0;
-		if (ignore(o))
-			return 0;
-		Class clazz = o.getClass();
-		if (shouldIgnoreType(clazz))
-			return 0;
-		return clazz.isArray() ? sizeOfArray(clazz, o) : sizeOfObject(clazz, o);
-	}
-
-	private int sizeOfArray(Class type, Object array) {
-
-		int size = ARRAY_HEADER_SIZE;
-		Class componentType = type.getComponentType();
-		if (componentType.isPrimitive()) {
-
-			if (componentType == char.class) {
-				char[] a = (char[]) array;
-				size += a.length * 2;
-			} else if (componentType == int.class) {
-				int[] a = (int[]) array;
-				size += a.length * 4;
-			} else if (componentType == byte.class) {
-				byte[] a = (byte[]) array;
-				size += a.length;
-			} else if (componentType == short.class) {
-				short[] a = (short[]) array;
-				size += a.length * 2;
-			} else if (componentType == long.class) {
-				long[] a = (long[]) array;
-				size += a.length * 8;
-			} else {
-				//TODO: primitive arrays
-				System.out.println(componentType);
-			}
-			count(type, size);
-			return size;
-		}
-		Object[] a = (Object[]) array;
-		for (int i = 0; i < a.length; i++) {
-			size += POINTER_SIZE + sizeOf(a[i]);
-		}
-		count(type, ARRAY_HEADER_SIZE + POINTER_SIZE * a.length);
-		return size;
-
-	}
-
-	private int sizeOfObject(Class type, Object o) {
-
-		int internalSize = 0; // size of referenced objects
-		int shallowSize = OBJECT_HEADER_SIZE;
-		Class clazz = type;
-		while (clazz != null) {
-			Field[] fields = clazz.getDeclaredFields();
-			for (int i = 0; i < fields.length; i++) {
-				Field f = fields[i];
-				if (!isStaticField(f)) {
-					Class fieldType = f.getType();
-					if (fieldType.isPrimitive()) {
-						shallowSize += sizeOfPrimitiveField(fieldType);
-					} else {
-						shallowSize += POINTER_SIZE;
-						internalSize += sizeOf(getFieldObject(f, o));
-					}
-				}
-			}
-			clazz = clazz.getSuperclass();
-		}
-		count(type, shallowSize);
-		return shallowSize + internalSize;
-
-	}
-
-	private int sizeOfPrimitiveField(Class type) {
-		if (type == long.class || type == double.class)
-			return 8;
-		return 4;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ErrorUtil.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ErrorUtil.java
deleted file mode 100644
index 72b3116..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ErrorUtil.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A helper class that supports error report and logging for 
- * Spy plug-in classes. 
- */
-public class ErrorUtil {
-
-	/**
-	 * Logs the provided exception and user message in Spy plug-in's log.
-	 * 
-	 * @param exception the exception to be logged
-	 * @param userMessage an optional  higher-level explanation for the exception
-	 */
-	public static void logException(Exception exception, String userMessage) {
-		String pluginID = CoreToolsPlugin.PLUGIN_ID;
-		if (userMessage == null)
-			userMessage = exception.getMessage();
-		IStatus status = new Status(IStatus.ERROR, pluginID, -1, userMessage, exception);
-		CoreToolsPlugin.getDefault().getLog().log(status);
-	}
-
-	/**
-	 * Shows the provided message using a MessageDialog.
-	 * 
-	 * @param message
-	 * @param title
-	 * @see org.eclipse.jface.dialogs.MessageDialog#openError(Shell,String,String)
-	 */
-	public static void showErrorMessage(String message, String title) {
-		Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-		if (title == null)
-			title = "Error in Spy plug-in"; //$NON-NLS-1$
-		MessageDialog.openError(shell, title, message);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/GlobalAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/GlobalAction.java
deleted file mode 100644
index f3e66e8..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/GlobalAction.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.ui.IActionBars;
-
-/**
- * An abstract base class for global actions. Global actions
- * are able to register themselves in a view's action bars. 
- */
-public abstract class GlobalAction extends Action {
-	/**
-	 * Constructs an action.
-	 * 
-	 * @param text the action description
-	 */
-	GlobalAction(String text) {
-		super(text);
-		setToolTipText(text);
-	}
-
-	/**
-	 * Registers this action as a global action handler.
-	 * 
-	 * @param actionBars the action bars where this action will be registered.
-	 * @see IActionBars#updateActionBars()
-	 */
-	public abstract void registerAsGlobalAction(IActionBars actionBars);
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/IFlattable.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/IFlattable.java
deleted file mode 100644
index b3c812b..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/IFlattable.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-/**
- * Interface indicating if a view (normally a tree) support a flat display
- */
-public interface IFlattable {
-	public void setFlat(boolean mode);
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ISorter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ISorter.java
deleted file mode 100644
index 9541980..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ISorter.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-public interface ISorter {
-	public boolean isReversed();
-
-	public void setReversed(boolean value);
-
-	public int getColumnNumber();
-
-	public int states();
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ITreeNodeVisitor.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ITreeNodeVisitor.java
deleted file mode 100644
index 148f2ea..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ITreeNodeVisitor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-/** 
- * This interface is implemented by objects that visit trees made of
- * <code>TreeContentProviderNode</code> objects.
- *
- * @see org.eclipse.core.tools.TreeContentProviderNode#accept(ITreeNodeVisitor)
- */
-public interface ITreeNodeVisitor {
-	/** 
-	 * Visits the given node.
-	 *
-	 * @param node the node to visit
-	 * @return <code>true</code> if the node's child nodes  should  be visited;
-	 * <code>false</code> if they should be skipped
-	 */
-	public boolean visit(TreeContentProviderNode node);
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Messages.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Messages.java
deleted file mode 100644
index 17e819b..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Messages.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.core.tools.messages";//$NON-NLS-1$
-
-	// Stats View
-	public static String stats_eventHeader;
-	public static String stats_blameHeader;
-	public static String stats_contextHeader;
-	public static String stats_countHeader;
-	public static String stats_timeHeader;
-
-	public static String stats_badStat;
-	public static String stats_badColumn;
-	public static String stats_pluginid;
-
-	// Resource Spy
-	public static String resource_error_unknown_resource_impl;
-
-	public static String resource_file;
-	public static String resource_folder;
-	public static String resource_project;
-	public static String resource_root;
-	public static String resource_full_path;
-	public static String resource_content_id;
-	public static String resource_type;
-	public static String resource_node_id;
-	public static String resource_local_sync_info;
-
-	public static String resource_persistent_properties;
-	public static String resource_error_stored_properties;
-
-	public static String resource_session_properties;
-
-	public static String resource_flags;
-	public static String resource_open;
-	public static String resource_local_exists;
-	public static String resource_phantom;
-	public static String resource_used;
-	public static String resource_derived;
-	public static String resource_team_private;
-	public static String resource_markers_snap_dirty;
-	public static String resource_sync_info_snap_dirty;
-	public static String resource_no_content_description;
-	public static String resource_default_content_description;
-
-	public static String resource_content_description;
-	public static String resource_error_content_description;
-	public static String resource_content_description_from_cache;
-
-	public static String resource_markers;
-	public static String resource_error_marker;
-
-	public static String resource_sync_info;
-
-	public static String depend_noInformation;
-	public static String depend_noParentPlugins;
-	public static String depend_requiredBy;
-	public static String depend_noChildrenPlugins;
-	public static String depend_requires;
-	public static String depend_badPluginId;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Policy.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Policy.java
deleted file mode 100644
index 08fe8f3..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/Policy.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.core.runtime.*;
-
-public class Policy {
-
-	public static IProgressMonitor monitorFor(IProgressMonitor monitor) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		return monitor;
-	}
-
-	public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks);
-	}
-
-	public static IProgressMonitor subMonitorFor(IProgressMonitor monitor, int ticks, int style) {
-		if (monitor == null)
-			return new NullProgressMonitor();
-		if (monitor instanceof NullProgressMonitor)
-			return monitor;
-		return new SubProgressMonitor(monitor, ticks, style);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SelectAllAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SelectAllAction.java
deleted file mode 100644
index 27a0dfa..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SelectAllAction.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-
-public class SelectAllAction extends GlobalAction {
-
-	private ITextOperationTarget target;
-
-	public SelectAllAction(ITextOperationTarget target) {
-		super("Select &All"); //$NON-NLS-1$
-		this.target = target;
-	}
-
-	/**
-	 * Registers this action as a global action handler.
-	 * 
-	 * @param actionBars the action bars where this action will be registered.
-	 * @see org.eclipse.core.tools.GlobalAction#registerAsGlobalAction(org.eclipse.ui.IActionBars)
-	 */
-	public void registerAsGlobalAction(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), this);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		target.doOperation(ITextOperationTarget.SELECT_ALL);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SpyView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SpyView.java
deleted file mode 100644
index 41694cb..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/SpyView.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.ui.part.ViewPart;
-
-/** 
- * A common base class for all Spy Plug-in views
- */
-public abstract class SpyView extends ViewPart {
-	/**
-	 * SpyView constructor comment.
-	 */
-	public SpyView() {
-		super();
-	}
-
-	/**
-	 * Asks this part to take focus within the workbench. Does nothing.
-	 */
-	public void setFocus() {
-		// do nothing
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
deleted file mode 100644
index aab013f..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.util.Iterator;
-import org.eclipse.core.runtime.PerformanceStats;
-import org.eclipse.jface.viewers.*;
-
-/**
- * This class provides a decorator for ISelectionProviders that use
- * TableViewer as their viewer and PluginStats as the basis for their data
- * model. The only affected method is <code>getSelection()</code>, which will
- * return a string that closely resembles the table view of this object.
- * 
- */
-public class TableSelectionProviderDecorator implements ISelectionProvider {
-
-	/** The decorated selection provider. */
-	private ISelectionProvider selectionProvider;
-
-	/** 
-	 * Constructs a <code>TableSelectionProviderDecorator</code> having
-	 * the given selection provider as its decorated object.
-	 * 
-	 * @param selectionProvider the selection provider to be decorated
-	 */
-	public TableSelectionProviderDecorator(ISelectionProvider selectionProvider) {
-		this.selectionProvider = selectionProvider;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionProvider.addSelectionChangedListener(listener);
-	}
-
-	/**
-	 * Returns the current selection for this provider. If the selection is a
-	 * structured selection made of <code>PluginStats</code> elements, this method
-	 * will return a structured selection of strings that resemble the table view
-	 * of this data.
-	 * 
-	 * @return the current selection, printed in table view format
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		// gets the original selection object 
-		ISelection selection = selectionProvider.getSelection();
-
-		// in these cases the original selection will be returned
-		if (selection == null || selection.isEmpty() || !(selection instanceof IStructuredSelection))
-			return selection;
-
-		// constructs a list with the selected elements 
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-
-		StringBuffer copyText = new StringBuffer();
-		copyText.append(headerPluginStats());
-		copyText.append('\n');
-		for (Iterator selectionIter = structuredSelection.iterator(); selectionIter.hasNext();) {
-			Object obj = selectionIter.next();
-			if (obj instanceof PerformanceStats) {
-				copyText.append(prettyPluginStats((PerformanceStats) obj));
-				copyText.append('\n');
-			}
-		}
-		return new StructuredSelection(copyText);
-
-	}
-
-	private String headerPluginStats() {
-		String retString = ""; //$NON-NLS-1$
-		retString += Messages.stats_eventHeader + "\t"; //$NON-NLS-1$
-		retString += Messages.stats_blameHeader + "\t"; //$NON-NLS-1$
-		retString += Messages.stats_contextHeader + "\t"; //$NON-NLS-1$
-		retString += Messages.stats_countHeader + "\t"; //$NON-NLS-1$
-		retString += Messages.stats_timeHeader + "\t"; //$NON-NLS-1$
-		return retString;
-	}
-
-	private String prettyPluginStats(PerformanceStats stats) {
-		String retString = ""; //$NON-NLS-1$
-		retString += stats.getEvent() + "\t\t"; //$NON-NLS-1$
-		retString += stats.getBlameString() + "\t\t"; //$NON-NLS-1$
-		retString += stats.getContext() + "\t\t"; //$NON-NLS-1$
-		retString += stats.getRunCount() + "\t"; //$NON-NLS-1$
-		retString += stats.getRunningTime() + "\t"; //$NON-NLS-1$
-		return retString;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionProvider.removeSelectionChangedListener(listener);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection) {
-		selectionProvider.setSelection(selection);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
deleted file mode 100644
index d53624c..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.util.Iterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTree;
-import org.eclipse.swt.dnd.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Abstract class representing a view made of two tables.
- * The first one is used to display data and the second to display totals of the
- * data showed in the first table.
- */
-public abstract class TableWithTotalView extends ViewPart implements ISelectionProvider {
-	protected TableTreeViewer viewer; // Table tree viewer used to contain all the data but the total
-	protected TableTree tableTree; // The table tree that will populate the viewer
-	protected Table totalTable; // The table used to display the totals
-	protected boolean flat; // Flag indicating the view mode 
-	protected Clipboard clipboard;
-	protected Action copyAction;
-	protected Action selectAllAction;
-
-	abstract protected String[] getColumnHeaders();
-
-	abstract protected ColumnLayoutData[] getColumnLayout();
-
-	abstract protected void createActions();
-
-	abstract protected void createToolbar();
-
-	abstract protected void createContextMenu();
-
-	private SelectionListener getColumnListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent event) {
-				// do nothing
-			}
-
-			public void widgetSelected(SelectionEvent event) {
-				// column selected - need to sort
-				int column = viewer.getTableTree().getTable().indexOf((TableColumn) event.widget);
-
-				ISorter oldSorter = (ISorter) viewer.getSorter();
-				boolean threeState = oldSorter.states() == 3;
-				ISelection selection = viewer.getSelection();
-
-				// first check to see if we are changing sort columns.
-				// If so, set flatness and get a new sorter
-				if (oldSorter == null || !threeState || column != oldSorter.getColumnNumber()) {
-					flat = column != 0; // default for column 0 is NOT flat
-					viewer.setSorter(getSorter(column));
-				} else {
-					// Not changing sorters so we have to cycle through states for the columns
-					// Three state sort for column 0.  !flat/!reverse -> flat/!reverse -> flat/reverse
-					if (column == 0) {
-						if (flat) {
-							if (oldSorter.isReversed())
-								flat = false;
-							oldSorter.setReversed(!oldSorter.isReversed());
-						} else {
-							flat = true;
-							oldSorter.setReversed(false);
-						}
-					} else { // for all other columns flatten and simply reverse
-						flat = true;
-						oldSorter.setReversed(!oldSorter.isReversed());
-					}
-				}
-				if (viewer.getContentProvider() instanceof IFlattable)
-					((IFlattable) viewer.getContentProvider()).setFlat(flat);
-				viewer.refresh();
-				viewer.setSelection(selection);
-			}
-		};
-	}
-
-	protected ControlListener getColumnResizeListener() {
-		return new ControlListener() {
-			public void controlMoved(ControlEvent event) {
-				// do nothing
-			}
-
-			public void controlResized(ControlEvent event) {
-				TableColumn column = (TableColumn) event.widget;
-				int columnNumber = viewer.getTableTree().getTable().indexOf(column);
-				totalTable.getColumn(columnNumber).setWidth(column.getWidth());
-			}
-		};
-	}
-
-	private void createTables(Composite parent) {
-		// create a first table, that will display all the data
-		tableTree = new TableTree(parent, SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
-		tableTree.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Table table = tableTree.getTable();
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		TableLayout tableLayout = new TableLayout();
-		table.setLayout(tableLayout);
-
-		SelectionListener headerListener = getColumnListener();
-
-		// create a second table for totals
-		totalTable = new Table(parent, 0);
-		GridData gridInfo = new GridData(GridData.FILL_HORIZONTAL);
-		gridInfo.heightHint = totalTable.getItemHeight();
-		totalTable.setLayoutData(gridInfo);
-		totalTable.setHeaderVisible(false);
-		totalTable.setLinesVisible(true);
-		TableLayout totalLayout = new TableLayout();
-		totalTable.setLayout(totalLayout);
-
-		ControlListener columnResizeListener = getColumnResizeListener();
-		//create the columns for the two tables
-		ColumnLayoutData[] columnLayout = getColumnLayout();
-		String[] headers = getColumnHeaders();
-		for (int i = 0; i < getColumnHeaders().length; i++) {
-			// column for the first table
-			tableLayout.addColumnData(columnLayout[i]);
-			TableColumn column = new TableColumn(table, SWT.NONE, i);
-			column.setResizable(true);
-			column.setText(headers[i]);
-			column.addSelectionListener(headerListener);
-			// "connect" the two tables so the width of their column evolve simultaneously
-			// more precisely here, only the resize of the first table will trigger a resize of the second one
-			column.addControlListener(columnResizeListener);
-
-			// column for the second table
-			totalLayout.addColumnData(columnLayout[i]);
-			column = new TableColumn(totalTable, SWT.NONE, i);
-			column.setResizable(true);
-		}
-	}
-
-	protected abstract ITreeContentProvider getContentProvider();
-
-	protected abstract ITableLabelProvider getLabelProvider();
-
-	protected abstract ViewerSorter getSorter(int column);
-
-	protected abstract String getStatusLineMessage(Object element);
-
-	public void createPartControl(Composite parent) {
-		Composite composite = new Composite(parent, 0);
-		// crete a grid layout of one column
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		composite.setLayout(layout);
-
-		createTables(composite);
-
-		clipboard = new Clipboard(parent.getDisplay());
-		//create the viewer
-		viewer = new TableTreeViewer(tableTree);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setLabelProvider(getLabelProvider());
-		viewer.setSorter(getSorter(0));
-		viewer.addSelectionChangedListener(getTableListener());
-
-		createCommonActions();
-		createActions();
-		createToolbar();
-		createContextMenu();
-	}
-
-	abstract protected String[] computeTotalLine(Iterator elements);
-
-	private void createCommonActions() {
-		copyAction = new Action() {
-			public void run() {
-				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-				String result = ""; //$NON-NLS-1$
-				String[] columnHeaders = getColumnHeaders();
-				for (int i = 0; i < columnHeaders.length; i++)
-					result += columnHeaders[i] + ","; //$NON-NLS-1$
-				result += "\n\n"; //$NON-NLS-1$
-
-				ITableLabelProvider labelProvider = (ITableLabelProvider) viewer.getLabelProvider();
-				for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
-					Object selectedItem = iterator.next();
-					for (int i = 0; i < columnHeaders.length; i++)
-						result += labelProvider.getColumnText(selectedItem, i) + ","; //$NON-NLS-1$
-					result += "\n"; //$NON-NLS-1$
-				}
-				clipboard.setContents(new Object[] {result}, new Transfer[] {TextTransfer.getInstance()});
-			}
-		};
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
-
-		selectAllAction = new Action() {
-			public void run() {
-				tableTree.selectAll();
-				// force viewer selection change
-				viewer.setSelection(viewer.getSelection());
-			}
-		};
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAllAction);
-	}
-
-	protected ISelectionChangedListener getTableListener() {
-		return new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				IStructuredSelection selection = (IStructuredSelection) e.getSelection();
-				copyAction.setEnabled(!selection.isEmpty());
-				if (selection.size() == 1) {
-					String message = getStatusLineMessage(selection.getFirstElement());
-					getViewSite().getActionBars().getStatusLineManager().setMessage(message);
-				}
-				totalTable.removeAll();
-				updateTotals();
-			}
-		};
-	}
-
-	public void updateTotals() {
-		IStructuredSelection selection = (IStructuredSelection) getSelection();
-		TableItem item = new TableItem(totalTable, 0);
-		item.setText(computeTotalLine(selection.iterator()));
-	}
-
-	public ISelection getSelection() {
-		return viewer.getSelection();
-	}
-
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		// do nothing
-	}
-
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		// do nothing
-	}
-
-	public void setSelection(ISelection selection) {
-		// do nothing
-	}
-
-	public void setFocus() {
-		if (tableTree != null)
-			tableTree.setFocus();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
deleted file mode 100644
index 96801e5..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.util.*;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Represents a node (possibly containing children) in a tree content 
- * provider model. Every node has a name and optionally a value.
- */
-public class TreeContentProviderNode implements Comparable, IAdaptable {
-
-	/**
-	 * A list containing this node's children. 
-	 */
-	private List children;
-
-	/**
-	 * This node's name (may be null).
-	 */
-	private String name;
-
-	/** 
-	 * This node's value (may be null).
-	 */
-	private Object value;
-
-	/**
-	 * This node's parent node.
-	 */
-	private TreeContentProviderNode parent;
-
-	/**
-	 * Constructs a TreeContentProviderNode with the given name and value.
-	 * 
-	 * @param name this node's name (may be null, if value is not null)
-	 * @param value this node's value (may be null, if name is not null)
-	 */
-	public TreeContentProviderNode(String name, Object value) {
-		this.name = name;
-		this.value = value;
-	}
-
-	/**
-	 * Constructs a TreeContentProviderNode with the given name.
-	 * 
-	 * @param name this node's name (may not be null). 
-	 */
-	public TreeContentProviderNode(String name) {
-		this(name, null);
-	}
-
-	/**
-	 * Sets this node's parent.
-	 * 
-	 * @param parent this node's new parent
-	 */
-	private void setParent(TreeContentProviderNode parent) {
-		this.parent = parent;
-	}
-
-	/**
-	 * Adds a new child. If the child is a TreeContentProviderNode, sets its parent
-	 * to this object.
-	 * 
-	 * @param child a new child to be added.
-	 */
-	public void addChild(Object child) {
-		// lazilly instantiates the children's list
-		if (this.children == null) {
-			this.children = new ArrayList();
-		}
-		this.children.add(child);
-		if (child instanceof TreeContentProviderNode) {
-			TreeContentProviderNode childNode = (TreeContentProviderNode) child;
-			childNode.setParent(this);
-		}
-	}
-
-	/**
-	 * Returns an array containing all children this node has. If this node 
-	 * has no children, returns an empty array.
-	 * 
-	 * @return an array containing this node's children.
-	 */
-	public Object[] getChildren() {
-		return children == null ? new Object[0] : children.toArray();
-	}
-
-	/**
-	 * Returns a boolean indicating if this node has any children.
-	 * 
-	 * @return true, if this node has children, false otherwise
-	 */
-	public boolean hasChildren() {
-		return children != null && !children.isEmpty();
-	}
-
-	/**
-	 * Returns a string representation of the object.
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		if (name == null)
-			return value.toString();
-		if (value == null)
-			return name;
-		return name + " = " + value; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns this node's parent node.
-	 * 
-	 * @return this node's parent node or null, if this node is a root
-	 */
-	public TreeContentProviderNode getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns this node's value (may be null).
-	 * 
-	 * @return this node's value
-	 */
-	public Object getValue() {
-		return value;
-	}
-
-	/**
-	 * Returns a boolean indicating if this node is root or not.
-	 * 
-	 * @return true if this node is root, false otherwise
-	 */
-	public boolean isRoot() {
-		return parent == null;
-	}
-
-	/**
-	 * Removes all child nodes (if any) from this node. This operation affects
-	 * only this node. No changes are made to the child nodes. 
-	 */
-	public void removeAllChildren() {
-		if (children == null)
-			return;
-
-		children.clear();
-	}
-
-	/**
-	 * Sorts this node's children list in ascending order. The children are 
-	 * ordered by name. Any changes in the children list will potentially 
-	 * invalidate the ordering. All children must be instances of 
-	 * <code>TreeContentProviderNode</code>. 
-	 */
-	public void sort() {
-		if (children == null)
-			return;
-		Collections.sort(children);
-	}
-
-	/**
-	 * Compares this node with another node. 
-	 * 
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	public int compareTo(Object other) {
-		TreeContentProviderNode otherNode = (TreeContentProviderNode) other;
-		return this.name.compareTo(otherNode.name);
-	}
-
-	/**
-	 * Accepts the given visitor. The visitor's <code>visit</code> method is called
-	 * with this node. If the visitor returns <code>true</code>, this method visits
-	 * this node's child nodes.
-	 *
-	 * @param visitor the visitor
-	 * @see ITreeNodeVisitor#visit
-	 */
-	public void accept(ITreeNodeVisitor visitor) {
-		if (!visitor.visit(this))
-			return;
-		if (children == null)
-			return;
-		for (Iterator childrenIter = children.iterator(); childrenIter.hasNext();) {
-			Object child = childrenIter.next();
-			// child nodes don't need to be TreeContentProviderNodes
-			if (child instanceof TreeContentProviderNode)
-				((TreeContentProviderNode) child).accept(visitor);
-		}
-	}
-
-	/**
-	 * Returns this node's tree root node. If this node is a root node, returns itself.
-	 * 
-	 * @return this node's tree root node
-	 */
-	public TreeContentProviderNode getRoot() {
-		return this.getParent() == null ? this : this.getParent().getRoot();
-	}
-
-	/**
-	 * Returns this node's immediate child that has the given value.
-	 * 
-	 * @return a tree node, or <code>null</code>
-	 */
-	public TreeContentProviderNode findNode(Object obj) {
-		if (obj.equals(this.value))
-			return this;
-		if (children == null || children.isEmpty())
-			return null;
-		for (Iterator i = children.iterator(); i.hasNext();) {
-			TreeContentProviderNode found = ((TreeContentProviderNode) i.next()).findNode(obj);
-			if (found != null)
-				return found;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns this node's name.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	public Object getAdapter(Class adapter) {
-		return value instanceof IAdaptable ? ((IAdaptable) value).getAdapter(adapter) : null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
deleted file mode 100644
index 113e231..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import java.util.*;
-import org.eclipse.jface.viewers.*;
-
-/**
- * This class provides a decorator for ISelectionProviders that use
- * TreeContentProviderNode as the basis for their data model.
- * The only affected method is <code>getSelection()</code>, which will return a
- * selection object that provides selected elements in the same order they
- * appear in the tree.
- * 
- * <p>This class is an workaround to the SWT's <code>Tree.getSelection()</code>
- * method, which returns an array of selected elements without preserving the
- * order they appear in the tree widget.</p>
- */
-public class TreeSelectionProviderDecorator implements ISelectionProvider {
-
-	/** The decorated selection provider. */
-	private ISelectionProvider selectionProvider;
-
-	/** 
-	 * Constructs a <code>TreeSelectionProviderDecorator</code> having the given 
-	 * selection provider as its decorated object.
-	 * 
-	 * @param selectionProvider the selection provider to be decorated
-	 */
-	public TreeSelectionProviderDecorator(ISelectionProvider selectionProvider) {
-		this.selectionProvider = selectionProvider;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionProvider.addSelectionChangedListener(listener);
-	}
-
-	/**
-	 * Returns the current selection for this provider. If the selection is a
-	 * structured selection made of <code>TreeContentProviderNode</code>
-	 * elements, this method will return a structured selection where the order of
-	 * elements is the same order the elements appear in the tree (only for tree
-	 * elements that are instances of <code>TreeContentProviderNode</code>).
-	 * 
-	 * @return the current selection, ordered in the same sequence they appear in
-	 * the tree
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		// gets the original selection object 
-		ISelection selection = selectionProvider.getSelection();
-
-		// in these cases the original selection will be returned
-		if (selection == null || selection.isEmpty() || !(selection instanceof IStructuredSelection))
-			return selection;
-
-		// constructs a list with the selected elements 
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		final List selectedElements = new ArrayList(structuredSelection.toList());
-
-		// tries to find a TreeContentProviderNode between the selected elements
-		TreeContentProviderNode anyNode = findNodeElement(selectedElements);
-
-		// if there is no TreeContentProviderNodes, there is nothing to do
-		if (anyNode == null)
-			return selection;
-
-		// otherwise, we will move the elements to a new list in the same order
-		// we find them in the tree.
-		final List orderedElements = new LinkedList();
-
-		// uses a visitor to traverse the whole tree
-		// when a visited node is the selected list, it is moved to the ordered list  
-		anyNode.getRoot().accept(new ITreeNodeVisitor() {
-			public boolean visit(TreeContentProviderNode node) {
-				int elementIndex = selectedElements.indexOf(node);
-
-				if (selectedElements.contains(node))
-					orderedElements.add(selectedElements.remove(elementIndex));
-
-				return true;
-			}
-		});
-
-		// any remaining elements in the list (probably they are not tree nodes)
-		// are copied to the end of the ordered list    
-		orderedElements.addAll(selectedElements);
-		return new StructuredSelection(orderedElements);
-	}
-
-	/** 
-	 * Returns the first element in the list that is instance of 
-	 * <code>TreeContentProviderNode</code>.
-	 * 
-	 * @return the first element that is a tree node or null, if none is found.
-	 */
-	private TreeContentProviderNode findNodeElement(List elements) {
-		for (Iterator iter = elements.iterator(); iter.hasNext();) {
-			Object element = iter.next();
-			if (element instanceof TreeContentProviderNode)
-				return (TreeContentProviderNode) element;
-		}
-
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionProvider.removeSelectionChangedListener(listener);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection) {
-		selectionProvider.setSelection(selection);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeTextOperationTarget.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeTextOperationTarget.java
deleted file mode 100644
index ebb876b..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeTextOperationTarget.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools;
-
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.swt.widgets.Tree;
-
-public class TreeTextOperationTarget implements ITextOperationTarget {
-
-	private Tree tree;
-
-	public TreeTextOperationTarget(Tree tree) {
-		this.tree = tree;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.ITextOperationTarget#canDoOperation(int)
-	 */
-	public boolean canDoOperation(int operation) {
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.ITextOperationTarget#doOperation(int)
-	 */
-	public void doOperation(int operation) {
-		//TODO: add support to other operations
-		switch (operation) {
-			case ITextOperationTarget.SELECT_ALL :
-				tree.selectAll();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/messages.properties b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/messages.properties
deleted file mode 100644
index 3c822a7..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/messages.properties
+++ /dev/null
@@ -1,71 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-### Spy message catalog
-
-
-### Stats View
-stats_eventHeader = Event
-stats_blameHeader = Blame
-stats_contextHeader = Context
-stats_countHeader = Count
-stats_timeHeader = Time
-
-stats_badStat = Not an EventStats
-stats_badColumn = Invalid Column
-stats_pluginid = Plug-in Identifier: {0}
-
-### Resource Spy
-resource_error_unknown_resource_impl = Error: unknown IResource implementation: {0}
-
-resource_file = File
-resource_folder = Folder
-resource_project = Project
-resource_root = Root
-resource_full_path = Full Path
-resource_content_id = Content ID
-resource_type = Type
-resource_node_id = Node ID
-resource_local_sync_info = Local Sync Info
-
-resource_persistent_properties = Persistent Properties
-resource_error_stored_properties = Error getting resource's stored properties: {0}
-
-resource_session_properties = Session Properties
-
-resource_flags = Flags
-resource_open = Open
-resource_local_exists = Local exists
-resource_phantom = Phantom
-resource_used = Used
-resource_derived = Derived
-resource_team_private = Team private
-resource_markers_snap_dirty = Marker snapshot is dirty
-resource_sync_info_snap_dirty = Sync info snapshot is dirty
-resource_no_content_description = No content description
-resource_default_content_description = Default content description
-
-resource_content_description = Content description
-resource_error_content_description = Error getting file's content description: {0}
-resource_content_description_from_cache = cached: {0}
-
-resource_markers = Markers
-resource_error_marker = Error getting marker information: {0}
-
-resource_sync_info = Sync information
-
-### Plug-in Dependency Spy
-depend_noInformation = Unable to find information for {0}.
-depend_noParentPlugins = Not required by any plug-ins.
-depend_requiredBy = Required by:
-depend_noChildrenPlugins = Requires no plug-ins.
-depend_requires = Requires:
-depend_badPluginId = Invalid plug-in id
-
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/AbstractDumper.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/AbstractDumper.java
deleted file mode 100644
index ffd879c..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/AbstractDumper.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-
-/**
- * An abstract implementation for dumpers that generate bare text dumps by 
- * sequentially reading input streams.
- */
-public abstract class AbstractDumper implements IDumper {
-
-	/**
-	 * Reads a given file and produces a dump object. Provides a template implementation for 
-	 * <code>IDumper.dump(java.io.File)</code>. 
-	 * <p>Subclasses must implement 
-	 * <code>getStringDumpingStrategy(InputStream)</code> in order to select the 
-	 * real dumping behaviour. This method will call 
-	 * <code>IStringDumpingStrategy#dumpStringContents(DataInputStream)</code> on 
-	 * the returned strategy. If, after calling that method,  there are still bytes 
-	 * to be read in the input stream, 
-	 * <code>getStringDumpingStrategy(InputStream)</code> will be called again in 
-	 * order to select another strategy to read the remaining contents, and so on.
-	 * </p> 
-	 *
-	 * <p>Subclasses can also select which type of low-level InputStream will be 
-	 * used to read the file to be dumped by overriding
-	 * <code>openInputStream(File)</code>.</p> 
-	 * 
-	 * @param file the file to be dumped
-	 * @return a dump object representing the contents of the dumped file
-	 * @see org.eclipse.core.tools.metadata.IDumper#dump(java.io.File)
-	 * @see IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 * @see #openInputStream(File)
-	 */
-	public IDump dump(File file) {
-		DataInputStream dataInput = null;
-		MeteredInputStream meteredInput = null;
-		Dump dump = new Dump();
-		dump.setFile(file);
-		StringBuffer contents = new StringBuffer(40);
-		try {
-			//uses a metered input stream in order to count the number of bytes read
-			meteredInput = new MeteredInputStream(openInputStream(file));
-			dumpContents(meteredInput, contents); //$NON-NLS-1$
-		} catch (PartialDumpException pde) {
-			// ensure we remember any partial contents
-			if (pde.getPartialContents() != null)
-				contents.append(pde.getPartialContents());
-			dump.setFailureReason(pde);
-		} catch (Exception e) {
-			dump.setFailureReason(e);
-		} finally {
-			if (dataInput != null)
-				try {
-					dataInput.close();
-				} catch (IOException ioe) {
-					if (!dump.isFailed())
-						dump.setFailureReason(ioe);
-				}
-		}
-		dump.setContents(contents.toString());
-		if (meteredInput != null)
-			dump.setOffset(meteredInput.getOffset());
-		return dump;
-	}
-
-	/**
-	 * Does the actual  work. Subclasses must implement this method to define
-	 * dumping behavior. The results are added to the <code>contents</code>
-	 * string buffer.
-	 *  
-	 * @param input
-	 * @param contents
-	 * @throws IOException
-	 * @throws Exception
-	 * @throws DumpException
-	 */
-	protected abstract void dumpContents(PushbackInputStream input, StringBuffer contents) throws IOException, Exception, DumpException;
-
-	/**
-	 * Opens an input stream connected to the file object provided. Provides an 
-	 * opportunity for subclasses to select a different input stream class. By 
-	 * default, returns a <code>FileInputStream</code> object.
-	 * 
-	 * @param file the file to be opened
-	 * @return an input stream connected to the file provided as 
-	 * argument
-	 * @throws IOException if an exception happens while opening the inpuut stream
-	 */
-	protected InputStream openInputStream(File file) throws IOException {
-		return new FileInputStream(file);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/Dump.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/Dump.java
deleted file mode 100644
index cbaf37d..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/Dump.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-
-/**
- * Default implementation for <code>IDump</code>. 
- * 
- * @see IDump
- */
-public class Dump implements IDump {
-	/**
-	 * The file processed in order to produce this dump
-	 */
-	private File file;
-	/**
-	 * The failure flag for this dump object.
-	 */
-	private boolean failed;
-	/**
-	 * The exception that caused the failure (may be null) 
-	 */
-	private Exception failureReason;
-	/**
-	 * An object that represents the dump contents.
-	 */
-	private Object contents;
-	/**
-	 * The offset where the dumper stopped when reading the dumped file.
-	 */
-	private long offset;
-
-	/**
-	 * Constructs a Dump object to be initialized using the setter methods.
-	 */
-	public Dump() {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IDump#getFile()
-	 */
-	public File getFile() {
-		return file;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IDump#isFailed()
-	 */
-	public boolean isFailed() {
-		return failed || this.failureReason != null;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IDump#getFailureReason()
-	 */
-	public Exception getFailureReason() {
-		return failureReason;
-	}
-
-	/**
-	 * Sets this dump object failed flag.
-	 * 
-	 * @param failed The value of the failed flag for this dump object
-	 */
-	public void setFailed(boolean failed) {
-		this.failed = failed;
-	}
-
-	/**
-	 * Sets the failure reason.
-	 * 
-	 * @param failureReason The failure reason for this dump object
-	 */
-	public void setFailureReason(Exception failureReason) {
-		this.failureReason = failureReason;
-	}
-
-	/**
-	 * Sets the file.
-	 * 
-	 * @param file The file for this dump object
-	 */
-	public void setFile(File file) {
-		this.file = file;
-	}
-
-	/**
-	 * @see IDump#getContents()
-	 */
-	public Object getContents() {
-		return contents;
-	}
-
-	/**
-	 * Sets the contents.
-	 * 
-	 * @param contents The contents for this dump object
-	 */
-	public void setContents(Object contents) {
-		this.contents = contents;
-	}
-
-	/**
-	 * Sets the offset.
-	 * 
-	 * @param offset The offset for this dump object
-	 */
-	public void setOffset(long offset) {
-		this.offset = offset;
-	}
-
-	/**
-	 * @see IDump#getOffset()
-	 */
-	public long getOffset() {
-		return offset;
-	}
-
-	/**
-	 * Returns a human-readable representation for this dump object (for 
-	 * debugging purposes).
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return "File: " + getFile() + "\n" + "Contents: \n******\n" + getContents() + "\n******\n" + "Failed: " + failed + "\n" + "Reason: " + failureReason + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpContentsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpContentsView.java
deleted file mode 100644
index 0b423ce..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpContentsView.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Dump Contents Spy view. This view shows the contents resulting of a dumping
- * process.
- */
-public class DumpContentsView extends SpyView {
-
-	/** Stores the initially assigned view title. */
-	private String initialTitle;
-
-	/** The JFace widget that shows the current selected file dump contents. */
-	protected TextViewer viewer;
-
-	/** The file names registered in the DumperFactory. */
-	protected String[] registeredFileNames;
-
-	/** The dumper factory used to instantiate dumpers. */
-	private DumperFactory dumperFactory;
-
-	/** The current selected file. */
-	private File currentFile;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = DumpContentsView.class.getName();
-
-	/**
-	 * Constructs a DumpContentsView. 
-	 */
-	public DumpContentsView() {
-		dumperFactory = DumperFactory.getInstance();
-		this.registeredFileNames = dumperFactory.getRegisteredFileNames();
-	}
-
-	/**
-	 * Creates this view widget and actions.
-	 * 
-	 * @param parent the parent control
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(final Composite parent) {
-		// creates a read-only text viewer
-		viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-		viewer.setDocument(new Document());
-		viewer.setEditable(false);
-
-		// creates the actions
-		final IAction loadFileAction = new LoadFileAction();
-		final IAction copySelectionAction = new CopyTextSelectionAction(viewer);
-		final IAction clearContentsAction = new ClearTextAction(viewer.getDocument());
-
-		// adds actions to the menu bar
-		IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
-		barMenuManager.add(loadFileAction);
-		barMenuManager.add(copySelectionAction);
-		barMenuManager.add(clearContentsAction);
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(loadFileAction);
-		menuMgr.add(copySelectionAction);
-		menuMgr.add(clearContentsAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	/**
-	 * Sets the file to be dumped. The view state will be updated to reflect
-	 * changes.
-	 * 
-	 * @param file the file to be dumped
-	 */
-	public void setFile(File file) {
-		IDumper dumper = null;
-
-		// tries to get the associated file dumper
-		try {
-			dumper = dumperFactory.getDumper(file.getName());
-		} catch (DumpException de) {
-			ErrorUtil.logException(de, null);
-			ErrorUtil.showErrorMessage(de.getMessage(), "Error creating file dumper"); //$NON-NLS-1$
-			return;
-		}
-
-		// dumps file        
-		IDump dump = dumper.dump(file);
-		if (dump.isFailed()) {
-			CoreToolsPlugin.getDefault().log("Error during file dump", dump.getFailureReason()); //$NON-NLS-1$
-			String message = "File dumping did not complete successfully. Reason: " + dump.getFailureReason(); //$NON-NLS-1$
-			ErrorUtil.showErrorMessage(message, "Error during file dump"); //$NON-NLS-1$		
-		}
-
-		// loads the new dump object
-		load(dump);
-	}
-
-	/**
-	 * Rebuilds the view with the dump object provided.
-	 * 
-	 * @param dump a dump object to be shown on this view 
-	 */
-	private void load(IDump dump) {
-
-		this.currentFile = dump.getFile();
-
-		// now it is safe to get the part title 
-		// (during createPartControl it gets Workbench window title)
-		if (initialTitle == null)
-			this.initialTitle = this.getTitle();
-
-		// updates title and title tool tip
-		this.setContentDescription(initialTitle + " : " + this.currentFile.getName()); //$NON-NLS-1$
-		this.setTitleToolTip("Dump contents for " + this.currentFile.getAbsolutePath()); //$NON-NLS-1$
-
-		// updates viewer
-		viewer.getDocument().set(dump.getContents().toString());
-
-		// tries to show summary information in Dump Summary view
-		IWorkbenchPage page = this.getSite().getPage();
-		String summaryId = DumpSummaryView.VIEW_ID;
-
-		// maybe the summary view is already open
-		DumpSummaryView summaryView = (DumpSummaryView) page.findView(summaryId);
-
-		// if it is not the case and the dump failed, tries to open it
-		if (summaryView == null && dump.isFailed())
-			try {
-				summaryView = (DumpSummaryView) page.showView(summaryId);
-			} catch (PartInitException pie) {
-				ErrorUtil.logException(pie, "Error opening view"); //$NON-NLS-1$
-			}
-
-		// if the Dump Summary view is available, updates it 
-		if (summaryView != null)
-			summaryView.load(dump);
-	}
-
-	/** 
-	 * File load action implementation.
-	 */
-	private class LoadFileAction extends Action {
-		/** Sets action text and tool tip. */
-		LoadFileAction() {
-			this.setText("Load File..."); //$NON-NLS-1$
-			this.setToolTipText("Load file..."); //$NON-NLS-1$
-		}
-
-		/** 
-		 * Executes this action, opening a file dialog so the user can select the 
-		 * file to be dumped. If a file is successfully selected, opens it by
-		 * calling <code>#setFile(File)</code>.
-		 * 
-		 * @see DumpContentsView#setFile
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			// opens a file dialog
-			FileDialog fileDialog = new FileDialog(viewer.getControl().getShell(), SWT.OPEN);
-			fileDialog.setText("Please choose a metadata file to view"); //$NON-NLS-1$
-			fileDialog.setFilterExtensions(DumpContentsView.this.registeredFileNames);
-
-			// if a file hasn't been selected, ignore
-			String filePath = fileDialog.open();
-			if (filePath == null)
-				return;
-
-			// opens the selected file
-			DumpContentsView.this.setFile(new File(filePath));
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpException.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpException.java
deleted file mode 100644
index f253158..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpException.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-/**
- A high-level exception class to be used by <code>IDumper</code>s. It is 
- intended to be used as a wrapper for low-level exceptions. A method for 
- accessing the low-level exception that caused this 
- <code>DumpException</code> is provided.  
- */
-public class DumpException extends Exception {
-
-	private static final long serialVersionUID = 1L;
-	/**
-	 * The low-level exception that caused this <coed>DumpException</code>. May be 
-	 * null.
-	 */
-	private Throwable cause;
-
-	/**
-	 * Constructs a <code>DumpException</code> with the provided message.
-	 * 
-	 * @param msg the message
-	 */
-	public DumpException(String msg) {
-		super(msg);
-	}
-
-	/**
-	 * Constructs a <code>DumpException</code> with the provided message and cause.
-	 * 
-	 * @param msg the message 
-	 * @param cause the exception that caused this <code>DumpException</code>
-	 */
-	public DumpException(String msg, Throwable cause) {
-		super(msg);
-		this.cause = cause;
-	}
-
-	/**
-	 * Returns the cause for this <code>DumpException</code>. May be null.
-	 * 
-	 * @return the cause for this <code>DumpException</code>.
-	 */
-	public Throwable getCause() {
-		return cause;
-	}
-
-	/**
-	 * Returns this exception message (including the cause message, if there is a 
-	 * cause exception).
-	 * 
-	 * @return the error message string
-	 * @see java.lang.Throwable#getMessage()
-	 */
-	public String getMessage() {
-		return super.getMessage() + ((cause != null) ? (" caused by " + cause.toString()) : ""); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Prints this <code>DumpException</code> message and its backtrace to the 
-	 * specified print stream. 
-	 * 
-	 * @param output the <code>java.io.PrintStream</code> object where to print
-	 * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
-	 */
-	public void printStackTrace(PrintStream output) {
-		super.printStackTrace(output);
-		if (cause == null)
-			return;
-		output.println("*** Caused by:"); //$NON-NLS-1$
-		cause.printStackTrace(output);
-	}
-
-	/**
-	 * Prints this <code>DumpException</code> message and its backtrace to the 
-	 * specified print writer. 
-	 * 
-	 * @param output the <code>java.io.PrintWriter</code> object where to print
-	 * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
-	 */
-	public void printStackTrace(PrintWriter output) {
-		super.printStackTrace(output);
-		if (cause == null)
-			return;
-		output.println("*** Caused by:"); //$NON-NLS-1$
-		cause.printStackTrace(output);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpSummaryView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
deleted file mode 100644
index 6fc7f01..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * Dump Summary Spy view. This view shows the outcome of a dumping.
- */
-public class DumpSummaryView extends SpyView {
-
-	/** Stores the initially assigned view title. */
-	private String initialTitle;
-
-	/** The JFace widget that shows the current selected file dump summary */
-	private TextViewer viewer;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = DumpSummaryView.class.getName();
-
-	/**
-	 * Creates this view widget and actions.
-	 * 
-	 * @param parent the parent control
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl
-	 * (org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(final Composite parent) {
-
-		// creates a read-only text viewer
-		viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-		viewer.setDocument(new Document());
-		viewer.setEditable(false);
-
-		final IAction copySelectionAction = new CopyTextSelectionAction(viewer);
-		final IAction clearContentsAction = new ClearTextAction(viewer.getDocument());
-
-		// adds actions to the menu bar
-		IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
-		barMenuManager.add(copySelectionAction);
-		barMenuManager.add(clearContentsAction);
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(copySelectionAction);
-		menuMgr.add(clearContentsAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	/**
-	 * Rebuilds the view with the dump object provided. Only summary information
-	 * is made available.
-	 * 
-	 * @param dump a dump object describing the result of a dumping process. 
-	 */
-	void load(IDump dump) {
-
-		// now is safe to get the part title
-		if (initialTitle == null)
-			this.initialTitle = this.getTitle();
-
-		// sets title and tool tip
-		File file = dump.getFile();
-		this.setContentDescription(initialTitle + " : " + file.getName()); //$NON-NLS-1$
-		this.setTitleToolTip("Dump summary for file " + file.getAbsolutePath()); //$NON-NLS-1$
-
-		// generates text to be shown on this view
-		StringBuffer output = new StringBuffer();
-		if (dump.isFailed())
-			output.append(dump.getFailureReason().toString());
-		else
-			output.append("No errors. "); //$NON-NLS-1$
-		output.append(dump.getOffset());
-		output.append('/');
-		output.append(dump.getFile().length());
-		output.append(" byte(s) read"); //$NON-NLS-1$
-		
-
-		// updates the view contents 
-		viewer.getDocument().set(output.toString());
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
deleted file mode 100644
index cd2c1b8..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.runtime.IPlatformRunnable;
-
-/**
- * A command-line interface for running dumpers on metadata files.
- * This application requires the name of the file to be dumped as its unique
- * argument.  
- */
-public class DumpTool implements IPlatformRunnable {
-
-	/**
-	 * Dumps a given file using the associated dumper, sending its contents to the 
-	 * standard output. 
-	 * 
-	 * @param args the command-line arguments
-	 * @see DumperFactory#getDumper(String)
-	 */	
-	public Object run(Object args) throws Exception {		
-		String fileName = System.getProperty("dump.file"); //$NON-NLS-1$
-		if (fileName == null) {
-			System.err.println("Use \"dump.file\" system property to point to the metadata file to be dumped"); //$NON-NLS-1$			
-			return new Integer(0);
-		}
-
-		File toDump = new File(fileName);
-		if (!toDump.isFile()) {
-			System.err.println("File \"" + toDump.getAbsolutePath() + "\" does not exist or is not a file"); //$NON-NLS-1$ //$NON-NLS-2$			
-			return new Integer(1);
-		}
-
-		IDumper dumper = null;
-		try {
-			dumper = DumperFactory.getInstance().getDumper(fileName);
-		} catch (DumpException de) {
-			System.err.println("Error: \n" + de); //$NON-NLS-1$
-			return new Integer(1);
-		}
-		IDump dump = dumper.dump(new File(fileName));
-		System.out.print("Dump for file: "); //$NON-NLS-1$
-		System.out.println(dump.getFile().getAbsolutePath());
-		System.out.print("Contents: "); //$NON-NLS-1$
-		System.out.println(dump.getContents());
-		if (dump.isFailed()) {
-			System.out.print("*** Dump failed. Reason: "); //$NON-NLS-1$
-			System.out.print(dump.getFailureReason());
-		} else {
-			System.out.print(">>> File is ok"); //$NON-NLS-1$
-		}
-		System.out.print(". Bytes read: "); //$NON-NLS-1$
-		System.out.print(dump.getOffset());
-		System.out.print(" / Total: "); //$NON-NLS-1$
-		System.out.println(dump.getFile().length());
-		return new Integer(0);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
deleted file mode 100644
index 9a4f457..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import java.util.Properties;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tools.CoreToolsPlugin;
-
-/**
- * A dumper factory creates a dumper object given a file name.
- */
-public class DumperFactory {
-
-	private static final String ELEM_DUMPER = "dumper"; //$NON-NLS-1$
-	private static final String ATTR_FILE_NAME = "file-name"; //$NON-NLS-1$
-	private static final String PT_METADATA_DUMPERS = "metadataDumpers"; //$NON-NLS-1$
-	/**
-	 * The <code>DumperFactory</code> singleton reference.
-	 */
-	private static DumperFactory ref;
-
-	/**
-	 * This dumper factory mappings configuration.
-	 */
-	private Properties configuration = new Properties();
-
-	/**
-	 * Provides access to a DumperFactory instance.
-	 * 
-	 * @return a <code>DumperFactory</code> instance
-	 */
-	public synchronized static DumperFactory getInstance() {
-		// currently we allow only one instance for this class
-		if (ref == null)
-			ref = new DumperFactory();
-		return ref;
-	}
-
-	/**
-	 * Constructs a dumper factory, reading dumper definitions from the 
-	 * extension registry. Forbids instantiation from outside this class. 
-	 */
-	private DumperFactory() {
-		loadDumpers();
-	}
-
-	private void loadDumpers() {
-		IExtensionPoint dumpersPoint = Platform.getExtensionRegistry().getExtensionPoint(CoreToolsPlugin.PLUGIN_ID, PT_METADATA_DUMPERS);
-		IConfigurationElement[] dumperDefinitions = dumpersPoint.getConfigurationElements();
-		for (int i = 0; i < dumperDefinitions.length; i++)
-			if (dumperDefinitions[i].getName().equals(ELEM_DUMPER))
-				configuration.put(dumperDefinitions[i].getAttributeAsIs(ATTR_FILE_NAME), dumperDefinitions[i]);
-	}
-
-	/**
-	 * Returns an array containing all known file names.
-	 * 
-	 * @return an array containing file names registered in this factory. 
-	 */
-	public String[] getRegisteredFileNames() {
-		String[] fileNames = new String[configuration.size()];
-		return (String[]) configuration.keySet().toArray(fileNames);
-	}
-
-	/**
-	 * Returns an instance of the dumper class registered for the provided file name. 
-	 * If there is no dumper class registered for the provided file name, raises an 
-	 * exception.
-	 * 
-	 * @param fileName the file to be dumped's name
-	 * @return a <code>IDumper</code> that knows how to read the file
-	 * @throws DumpException if there is no dumper class registered for the 
-	 * provided file name
-	 */
-	public IDumper getDumper(String fileName) throws DumpException {
-		fileName = fileName.substring(fileName.lastIndexOf(File.separator) + 1);
-
-		Object dumper = configuration.get(fileName);
-
-		if (dumper == null)
-			throw new DumpException("There is no dumper class for <" + fileName + "> files"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// legacy-style definition (from the properties file)
-		if (dumper instanceof String)
-			try {
-				return (IDumper) Class.forName((String) dumper).newInstance();
-			} catch (Exception e) {
-				throw new DumpException("Error instantiating dumper for <" + fileName + "> file", e); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		// dumper defined through extension mechanism	
-		try {
-			return (IDumper) ((IConfigurationElement) dumper).createExecutableExtension("class"); //$NON-NLS-1$
-		} catch (CoreException ce) {
-			throw new DumpException("Error instantiating dumper for <" + fileName + "> file", ce); //$NON-NLS-1$ //$NON-NLS-2$		
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDump.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDump.java
deleted file mode 100644
index cd17695..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDump.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-
-/**
- * Represents an object produced by dumping a given file. 
- */
-public interface IDump {
-
-	/**
-	 * Returns the file processed in order to produce this dump.
-	 * 
-	 * @return the file processed
-	 */
-	File getFile();
-
-	/**
-	 * Returns the dump contents. Dump contents objects must have a 
-	 * <code>toString()</code>
-	 * implementation that returns meaningful, human-readable, representation for 
-	 * the contents.
-	 * 
-	 * @return an object representing the contents of the dumped file.
-	 */
-	Object getContents();
-
-	/**
-	 * Returns true if the file reading process ended due to a failure. If 
-	 * <code>getFailureReason()</code> does not return <code>null</code>, this 
-	 * method must return <code>true</code>.
-	 * 
-	 * @return true if the dumping process terminated due to a failure
-	 */
-	boolean isFailed();
-
-	/**
-	 * Returns the exception that caused the failure, or null if a failure did not 
-	 * happen.
-	 * 
-	 * @return the exception that caused the failure, or null if a 
-	 * failure did not happen.
-	 */
-	Exception getFailureReason();
-
-	/**
-	 * Returns the offset where dumper stopped reading the dumped file. Optionally 
-	 * implemented.
-	 * 
-	 * @return the number of bytes read
-	 */
-	long getOffset();
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDumper.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDumper.java
deleted file mode 100644
index eabd369..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IDumper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-
-/**
- * A dumper is an object that knows how to process a given kind of file,
- * translating it to a human-readable form.
- */
-public interface IDumper {
-
-	/** 
-	 * Reads a given file and produces a dump object. Any exception that 
-	 * may occur during file processing must be caught and stored as 
-	 * failure reason in the IDump object returned.
-	 * 
-	 * @param file the file to be dumped
-	 * @return a dump object representing the contents of the file dumped
-	 */
-	IDump dump(File file);
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
deleted file mode 100644
index 8faf31f..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-
-/**
- * A dumping strategy defines how a input stream will be dumped as a string.
- * A given dumper may use different strategies for reading different versions of 
- * a file it understands, or may even use different strategies for reading 
- * different segments of a same file.
- * 
- * @see org.eclipse.core.tools.metadata.AbstractDumper
- */
-public interface IStringDumpingStrategy {
-	/**
-	 * Dumps contents read from the provided stream.
-	 * Concrete implementations should not catch any exceptions. 
-	 * Concrete implementations should not close the input stream.
-	 * This method may read the entire input stream contents, or just part of it.
-	 * 
-	 * @param input the input stream where to dump contents from 
-	 * @return the contents read in string format, or null if no further reading should occur
-	 * @throws IOException an exception occurred while dumping the input stream 
-	 * @throws DumpException an exception occurred while dumping the input stream 
-	 */
-	public String dumpStringContents(DataInputStream input) throws IOException, DumpException;
-
-	/**
-	 * Returns a high-level description for the file format understood by this 
-	 * strategy.
-	 * 
-	 * @return a string describing the file format this strategy understands.
-	 */
-	public String getFormatDescription();
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataPerspective.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataPerspective.java
deleted file mode 100644
index 8e69af7..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataPerspective.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import org.eclipse.ui.*;
-
-/**
- * A perspective for working with metadata files.
- */
-public class MetadataPerspective implements IPerspectiveFactory {
-	/**
-	 * Creates a layout containing the following views: Metadata Tree, Dump Contents
-	 * and Dump Summary, with no editor area.
-	 * 
-	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(
-	 * org.eclipse.ui.IPageLayout)
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		String editorAreaId = layout.getEditorArea();
-
-		layout.setEditorAreaVisible(false);
-
-		IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, (float) 0.30, editorAreaId); //$NON-NLS-1$
-		left.addView(MetadataTreeView.VIEW_ID);
-
-		IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, (float) 0.5, editorAreaId); //$NON-NLS-1$
-		right.addView(DumpContentsView.VIEW_ID);
-
-		IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, (float) 0.70, "right"); //$NON-NLS-1$ //$NON-NLS-2$
-		bottom.addView(DumpSummaryView.VIEW_ID);
-
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeContentProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeContentProvider.java
deleted file mode 100644
index 22d566d..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeContentProvider.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.util.Arrays;
-import org.eclipse.core.internal.runtime.Policy;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.tools.AbstractTreeContentProvider;
-import org.eclipse.core.tools.TreeContentProviderNode;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A tree content provider for Metadata view. Its input is a metadata directory,
- * the root directory from which Eclipse metadata files 
- * will be searched. The result is a tree containing directory that contains 
- * (any directories that contain) metadata files and the metadata files 
- * themselves.<br>
- * This content provider mantains its contents using 
- * <code>TreeContentProviderNode</code>
- * objects.
- * 
- * @see org.eclipse.core.tools.TreeContentProviderNode
- */
-public class MetadataTreeContentProvider extends AbstractTreeContentProvider {
-	/** 
-	 * The file filter. 
-	 * 
-	 * @see MetadataFileFilter
-	 */
-	private FileFilter fileFilter;
-
-	/** 
-	 * The directory filter. 
-	 * 
-	 * @see DirectoryFilter
-	 */
-	private FileFilter directoryFilter;
-
-	private MetadataTreeRebuilder treeRebuilder;
-
-	/**
-	 * Constructs a new content provider. 
-	 * 
-	 * @param registeredFileNames an array containing all metadata file names known 
-	 */
-	public MetadataTreeContentProvider(String[] registeredFileNames) {
-		super(true);
-		this.fileFilter = new MetadataFileFilter(registeredFileNames);
-		this.directoryFilter = new DirectoryFilter();
-		this.treeRebuilder = new MetadataTreeRebuilder();
-	}
-
-	/**
-	 * Returns true if the input is a <code>File</code> object pointing to 
-	 * a directory.
-	 * 
-	 * @return true if this input object is a <code>File</code> pointing to a 
-	 * directory.
-	 * @param input an input object 
-	 * @see org.eclipse.core.tools.AbstractTreeContentProvider#acceptInput(java.lang.Object)
-	 */
-	protected boolean acceptInput(Object input) {
-		return (input instanceof File) && ((File) input).isDirectory(); //$NON-NLS-1$
-	}
-
-	/**
-	 * Updates the data model for this content provider upon the provided input.
-	 * 
-	 * @param input a File object pointing to a metadata directory.
-	 * 
-	 * @see org.eclipse.core.tools.AbstractTreeContentProvider#rebuild(Viewer, Object)
-	 */
-	protected void rebuild(final Viewer viewer, final Object input) {
-		final File metadataRootDir = (File) input;
-		final TreeContentProviderNode metadataRootNode = makeNode(metadataRootDir);
-		getRootNode().addChild(metadataRootNode);
-		treeRebuilder.rebuild(viewer, metadataRootDir, metadataRootNode);
-	}
-
-	private class MetadataTreeRebuilder extends Job {
-		private File rootDir;
-		private TreeContentProviderNode rootNode;
-		private Viewer viewer;
-
-		public MetadataTreeRebuilder() {
-			super("Updating metadata tree"); //$NON-NLS-1$
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			try {
-				extractInfo(rootDir, rootNode, monitor);
-				return Status.OK_STATUS;
-			} finally {
-				final Viewer tmpViewer = viewer;
-				if (!tmpViewer.getControl().isDisposed())
-					tmpViewer.getControl().getDisplay().asyncExec(new Runnable() {
-						public void run() {
-							tmpViewer.refresh();
-						}
-					});
-			}
-		}
-
-		public synchronized void rebuild(Viewer viewer, File rootDir, TreeContentProviderNode rootNode) {
-			this.rootDir = rootDir;
-			this.rootNode = rootNode;
-			this.viewer = viewer;
-			cancel();
-			setName("Loading metadata tree from " + rootDir); //$NON-NLS-1$
-			schedule();
-		}
-	}
-
-	/**
-	 * Builds this content provider data model from a given root directory. This 
-	 * method operates recursively, adding a tree node for each file of a registered 
-	 * type it finds and for each directory that contains (any directories that 
-	 * contain) a file of a registered type. This method returns a boolean value 
-	 * indicating that it (or at least one of its sub dirs) contains files with one 
-	 * of the registered types (so its parent will include it too).
-	 * 
-	 * @param dir a directory potentially containing known metadata files.
-	 * @param dirNode the node corresponding to that directory 
-	 * @return true if the provided dir (or at least one of its sub dirs) 
-	 * contains files with one of the registered types, false otherwise
-	 */
-	boolean extractInfo(File dir, TreeContentProviderNode dirNode, IProgressMonitor monitor) {
-
-		if (monitor.isCanceled())
-			return false;
-
-		TreeContentProviderNode childNode;
-
-		monitor.beginTask("Scanning dir " + dir, 100); //$NON-NLS-1$
-		try {
-			// looks for files of registered types in this directory	
-			File[] selectedFiles = dir.listFiles(fileFilter);
-			monitor.worked(1);
-			Arrays.sort(selectedFiles);
-			for (int i = 0; i < selectedFiles.length; i++) {
-				childNode = makeNode(selectedFiles[i]);
-				dirNode.addChild(childNode);
-			}
-			// looks for files of registered types in its subdirectories
-			File[] subDirs = dir.listFiles(directoryFilter);
-			monitor.worked(1);
-			Arrays.sort(subDirs);
-
-			for (int i = 0; i < subDirs.length; i++) {
-				// constructs a node for each subdir...
-				childNode = makeNode(subDirs[i]);
-				if (extractInfo(subDirs[i], childNode, Policy.subMonitorFor(monitor, 98 / subDirs.length)))
-					// ...but only adds them if they have files of registered types
-					dirNode.addChild(childNode);
-			}
-			// returns true if this dir has any file of any registered type
-			return selectedFiles.length > 0 || dirNode.hasChildren();
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Helper method that creates a new TreeContentroviderNode object given a File 
-	 * object.
-	 * 
-	 * @param file the file a node will created for
-	 * @return a <code>TreeContentProviderNode</code> 
-	 */
-	private TreeContentProviderNode makeNode(final File file) {
-		return new TreeContentProviderNode(file.getName(), file) {
-			// redefines toString so the root shows the full path while any other 
-			// node shows only the file / directory name
-			public String toString() {
-				return isRoot() ? file.getAbsolutePath() : file.getName();
-			}
-		};
-	}
-
-	/**
-	 * Filters accepted files (the ones who are registered in the DumperFactory).
-	 * 
-	 * @see MetadataTreeContentProvider#MetadataTreeContentProvider(String[]) 
-	 * @see java.io.FileFilter
-	 */
-	private class MetadataFileFilter implements FileFilter {
-		private String[] fileNames;
-
-		private MetadataFileFilter(String[] fileNames) {
-			this.fileNames = fileNames;
-			Arrays.sort(this.fileNames);
-		}
-
-		/**
-		 * @see java.io.FileFilter#accept(java.io.File)
-		 */
-		public boolean accept(File file) {
-			return file.isFile() && Arrays.binarySearch(fileNames, file.getName()) >= 0;
-		}
-	}
-
-	/**
-	 * Filters directories entries.
-	 * 
-	 * @see java.io.FileFilter
-	 */
-	private class DirectoryFilter implements FileFilter {
-		/**
-		 * @see java.io.FileFilter#accept(java.io.File)
-		 */
-		public boolean accept(File file) {
-			return file.isDirectory();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeView.java
deleted file mode 100644
index c930109..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MetadataTreeView.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Implements the Metadata Spy view. This view allows the user to browse the
- * known files under a specified directory. "Known files" are those whose names
- * are known by the DumperFactory, thus they can be dumped.
- */
-public class MetadataTreeView extends SpyView {
-
-	/** 
-	 * A JFace widget used to display a tree corresponding to the metadata
-	 * directory structure (containing only files of known types). 
-	 */
-	protected AbstractTreeViewer viewer;
-
-	/** The currently selected metadata dir. */
-	protected File metadataPath;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = MetadataTreeView.class.getName();
-
-	/**
-	 * Dump file action implementation.
-	 */
-	private class DumpFileAction extends Action {
-		/**
-		 * Constructs a DumpFileAction, initializing text and tool tip text.
-		 */
-		DumpFileAction() {
-			this.setText("Dump Selected File"); //$NON-NLS-1$
-			this.setToolTipText("Dump selected file"); //$NON-NLS-1$
-		}
-
-		/**
-		 * This action activates the Dump Contents view with the current selected
-		 * file in this view (if any)
-		 *
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			IStructuredSelection sel = (IStructuredSelection) MetadataTreeView.this.viewer.getSelection();
-			if (sel == null || sel.isEmpty())
-				return;
-
-			TreeContentProviderNode fileNode = (TreeContentProviderNode) sel.getFirstElement();
-
-			File file = (File) fileNode.getValue();
-			// we have no interest in directories
-			if (!file.isFile())
-				return;
-
-			try {
-				DumpContentsView dumpView = (DumpContentsView) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(DumpContentsView.VIEW_ID);
-				dumpView.setFile(file);
-			} catch (PartInitException e) {
-				ErrorUtil.showErrorMessage(e.getMessage(), "Error opening view"); //$NON-NLS-1$
-				ErrorUtil.logException(e, "Error opening view"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Select metadata root action implementation.
-	 */
-	private class SelectMetadataLocationAction extends Action {
-		/**
-		 * Initializes action's text and tool tip text.
-		 */
-		SelectMetadataLocationAction() {
-			this.setText("Select metadata location..."); //$NON-NLS-1$
-			this.setToolTipText("Select metadata location..."); //$NON-NLS-1$
-		}
-
-		/**
-		 * Executes action, opening a file dialog so the user can select which
-		 * metadata directory will be browsed.
-		 *
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			DirectoryDialog dirDialog = new DirectoryDialog(viewer.getControl().getShell());
-
-			dirDialog.setText("Open a metadata directory"); //$NON-NLS-1$
-			dirDialog.setMessage("Please choose a directory where to look for metadata files"); //$NON-NLS-1$
-			if (metadataPath != null)
-				dirDialog.setFilterPath(metadataPath.getAbsolutePath());
-
-			String dirPath = dirDialog.open();
-
-			if (dirPath == null)
-				return;
-
-			setMetadataRoot(new File(dirPath));
-		}
-	}
-
-	/**
-	 * Creates this view widget and actions.
-	 * 
-	 * @param parent the parent control
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent);
-
-		// sets a content provider for the viewer
-		DumperFactory factory = DumperFactory.getInstance();
-		String[] fileNames = factory.getRegisteredFileNames();
-		viewer.setContentProvider(new MetadataTreeContentProvider(fileNames));
-
-		// creates actions
-		final IAction dumpFileAction = new DumpFileAction();
-		final IAction selectMetadataLocationAction = new SelectMetadataLocationAction();
-
-		// adds actions to the menu bar
-		IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
-		barMenuManager.add(selectMetadataLocationAction);
-		barMenuManager.add(dumpFileAction);
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(selectMetadataLocationAction);
-		menuMgr.add(dumpFileAction);
-
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-
-		// associates double-click to dump file action
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				dumpFileAction.run();
-			}
-		});
-	}
-
-	/**
-	 * Rebuilds the viewer content provider.
-	 * 
-	 * @param file
-	 * @see WorkspaceContentProvider#inputChanged(Viewer, Object, Object)
-	 */
-	protected void setMetadataRoot(final File file) {
-		if (file == null)
-			return;
-		if (!file.isDirectory()) {
-			ErrorUtil.showErrorMessage("Selected item is not a directory", "Error selecting metadata location"); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		metadataPath = file;
-		viewer.setInput(file);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MeteredInputStream.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
deleted file mode 100644
index 2776d38..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-
-/**
- * An input stream that counts how many bytes have been read.
- */
-public class MeteredInputStream extends PushbackInputStream {
-
-	/** The current number of bytes read. */
-	private long offset;
-
-	/**
-	 * Constructs a metered input stream chained to the given source input stream.
-	 * 
-	 * @param in the input stream from where to read data
-	 */
-	public MeteredInputStream(InputStream in) {
-		super(in);
-	}
-
-	/**
-	 * Forwards the call to the super class, incrementing the offset if a 
-	 * byte is successfully read.
-	 * 
-	 * @return the next byte or <code>-1</code> if there is more data to be read.
-	 * @throws IOException if a failure occurs while reading the input stream 
-	 * @see java.io.PushbackInputStream#read()
-	 */
-	public int read() throws IOException {
-		int byteRead = super.read();
-		if (byteRead >= 0)
-			offset++;
-		return byteRead;
-	}
-
-	/**
-	 * Forwards the call to the super class, incrementing the current offset
-	 * by the number of bytes read.
-	 * 
-	 * @param b an array containing bytes to be read 
-	 * @return the number of bytes read.
-	 * @throws IOException if a failure occurs while reading the input stream
-	 * @see java.io.PushbackInputStream#read(byte[])
-	 */
-	public int read(byte[] b) throws IOException {
-		return read(b, 0, b.length);
-	}
-
-	/**
-	 * Forwards the call to the super class, incrementing the current offset
-	 * by the number of bytes read.
-	 * 
-	 * @param b an array containing bytes to be read
-	 * @param off the array offset where bytes will be read to
-	 * @param len the number of bytes to be read 
-	 * @return the number of bytes read
-	 * @throws IOException if a failure occurs while reading the input stream
-	 * @see java.io.PushbackInputStream#read(byte[], int, int)
-	 */
-	public int read(byte[] b, int off, int len) throws IOException {
-		int read = super.read(b, off, len);
-		if (read > 0)
-			offset += read;
-		return read;
-	}
-
-	/**
-	 * Returns the current offset value.
-	 * 
-	 * @return long the current number of bytes read
-	 */
-	public long getOffset() {
-		return offset;
-	}
-
-	/**
-	 * Forwards the call to the underlying input stream, decrementing the offset by
-	 * the number of bytes unread.
-	 * 
-	 * @param b an array containing bytes to be unread 
-	 * @throws IOException if a failure occurs
-	 * @see java.io.PushbackInputStream#unread(byte)
-	 */
-	public void unread(byte[] b) throws IOException {
-		super.unread(b);
-		offset -= b.length;
-	}
-
-	/**
-	 * Forwards the call to the underlying input stream, decrementing the offset by
-	 * the number of bytes unread.
-	 * 
-	 * @param b an array containing bytes to be unread
-	 * @param off the array offset from where bytes will be unread
-	 * @param len the number of bytes to be unread 
-	 * @throws IOException if a failure occurs
-	 * @see PushbackInputStream#unread(byte[], int, int)
-	 */
-	public void unread(byte[] b, int off, int len) throws IOException {
-		super.unread(b, off, len);
-		offset -= len;
-	}
-
-	/**
-	 * Forwards the call to the underlying push back input stream, decrementing the 
-	 * offset if a 
-	 * byte is successfully unread.
-	 * 
-	 * @param b the byte to be unread
-	 * @throws IOException if a failure occurs
-	 * @see PushbackInputStream#unread(byte[])
-	 */
-	public void unread(int b) throws IOException {
-		super.unread(b);
-		offset--;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MultiStrategyDumper.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MultiStrategyDumper.java
deleted file mode 100644
index 89c4705..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/MultiStrategyDumper.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-
-/**
- * Subclasses must provide a concrete 
- * implementation for <code>getStringDumpingStrategy(InputStream)</code> method.
- */
-public abstract class MultiStrategyDumper extends AbstractDumper {
-
-	/**
-	 * <p>Subclasses must implement 
-	 * <code>getStringDumpingStrategy(InputStream)</code> in order to select the 
-	 * real dumping behaviour. This method will call 
-	 * <code>IStringDumpingStrategy#dumpStringContents(DataInputStream)</code> on 
-	 * the returned strategy. If, after calling that method,  there are still bytes 
-	 * to be read in the input stream, 
-	 * <code>getStringDumpingStrategy(InputStream)</code> will be called again in 
-	 * order to select another strategy to read the remaining contents, and so on.
-	 * </p> 
-	 * 
-	 * @param file the file to be dumped
-	 * @return a dump object representing the contents of the dumped file
-	 * @see org.eclipse.core.tools.metadata.IDumper#dump(java.io.File)
-	 * @see #getStringDumpingStrategy(DataInputStream)
-	 * @see IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 * @see #openInputStream(File)
-	 */
-	protected final void dumpContents(PushbackInputStream input, StringBuffer contents) throws IOException, Exception, DumpException {
-		DataInputStream dataInput = new DataInputStream(input);
-		int c;
-		while ((c = input.read()) != -1) {
-			input.unread(c);
-			IStringDumpingStrategy strategy = getStringDumpingStrategy(dataInput);
-			String dumpedContents = strategy.dumpStringContents(dataInput);
-			if (dumpedContents == null)
-				break;
-			contents.append("Format: "); //$NON-NLS-1$
-			contents.append(strategy.getFormatDescription());
-			contents.append("\n\n"); //$NON-NLS-1$
-			contents.append(dumpedContents);
-			contents.append("\n"); //$NON-NLS-1$                          
-		}
-		if (contents.length() == 0)
-			contents.append("No contents\n"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns a <code>IStringDumpingStrategy</code> object. Subclasses must provide 
-	 * a concrete implementation for this method. The input stream is connected to 
-	 * the file being dumped. If needed, implementations may consume the input 
-	 * stream in order to choose a strategy.
-	 * 
-	 * @param input the input stream being read
-	 * @return  a <code>IStringDumpingStrategy</code> object
-	 * @throws Exception any exceptions occurred during input stream reading must 
-	 * NOT be caught
-	 */
-	protected abstract IStringDumpingStrategy getStringDumpingStrategy(DataInputStream input) throws Exception;
-
-	/**
-	 * Opens an input stream connected to the file object provided. Provides an 
-	 * opportunity for subclasses to select a different input stream class. By 
-	 * default, returns a <code>FileInputStream</code> object.
-	 * 
-	 * @param file the file to be opened
-	 * @return an input stream connected to the file provided as 
-	 * argument
-	 * @throws IOException if an exception happens while opening the inpuut stream
-	 */
-	protected InputStream openInputStream(File file) throws IOException {
-		return new FileInputStream(file);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/PartialDumpException.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/PartialDumpException.java
deleted file mode 100644
index fa33e77..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/PartialDumpException.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-public class PartialDumpException extends DumpException {
-
-	private static final long serialVersionUID = 1L;
-	/**
-	 * Data read when the error happened. May be 
-	 * null. 
-	 */
-	private Object partialContents;
-
-	public PartialDumpException(String msg, Object partialContents) {
-		super(msg);
-		this.partialContents = partialContents;
-	}
-
-	public PartialDumpException(String msg, Throwable cause, Object partialContents) {
-		super(msg, cause);
-		this.partialContents = partialContents;
-	}
-
-	/**
-	 * Returns the contents partially read when this exception occurred. May 
-	 * return <code>null</code>.
-	 * 
-	 * @return the contents partially read, or <code>null</code> 
-	 */
-	public Object getPartialContents() {
-		return partialContents;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/StateDumper.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/StateDumper.java
deleted file mode 100644
index a1b3d3d..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/StateDumper.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-import java.io.IOException;
-import java.io.PushbackInputStream;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.service.resolver.*;
-
-public class StateDumper extends AbstractDumper {
-
-	protected void dumpContents(PushbackInputStream input, StringBuffer contents) throws IOException, Exception, DumpException {
-		PlatformAdmin admin = Platform.getPlatformAdmin();
-		// use the deprecated API to support running against a 3.0 Eclipse
-		State state = admin.getFactory().readState(new DataInputStream(input));
-		contents.append("State resolved: "); //$NON-NLS-1$
-		contents.append(state.isResolved());
-		contents.append("\n"); //$NON-NLS-1$
-		BundleDescription[] allBundles = state.getBundles();
-		admin.getStateHelper().sortBundles(allBundles);
-		for (int i = 0; i < allBundles.length; i++)
-			dumpBundle(allBundles[i], contents);
-	}
-
-	private void dumpBundle(BundleDescription bundle, StringBuffer contents) {
-		contents.append("\n"); //$NON-NLS-1$
-		contents.append("Bundle: "); //$NON-NLS-1$
-		contents.append(bundle.getSymbolicName());
-		contents.append('_');
-		contents.append(bundle.getVersion());
-		contents.append(" ("); //$NON-NLS-1$
-		contents.append(bundle.isResolved() ? "resolved" : "unresolved"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (bundle.isSingleton())
-			contents.append(", singleton"); //$NON-NLS-1$
-		contents.append(")\n"); //$NON-NLS-1$
-		HostSpecification host = bundle.getHost();
-		if (host != null)
-			dumpHost(host, contents);
-		BundleSpecification[] required = bundle.getRequiredBundles();
-		for (int i = 0; i < required.length; i++)
-			dumpRequired(required[i], contents);
-	}
-
-	private void dumpRequired(BundleSpecification required, StringBuffer contents) {
-		contents.append("\tRequired: "); //$NON-NLS-1$
-		contents.append(required.getName());
-		contents.append(" - Version: "); //$NON-NLS-1$
-		contents.append(required.getVersionRange());
-		contents.append(" ("); //$NON-NLS-1$
-		contents.append(required.isResolved() ? ("actual: "+ required.getSupplier().getVersion().toString()) : "unresolved"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (required.isOptional())
-			contents.append(", optional"); //$NON-NLS-1$
-		contents.append(')');		
-		contents.append('\n');
-	}
-
-	private void dumpHost(HostSpecification host, StringBuffer contents) {
-		contents.append("\tHost: "); //$NON-NLS-1$
-		contents.append(host.getName());
-		contents.append(" - Version: "); //$NON-NLS-1$
-		contents.append(host.getVersionRange());
-		contents.append(" ("); //$NON-NLS-1$
-		contents.append(host.isResolved() ? ("actual: "+ host.getSupplier().getVersion().toString()) : "unresolved");		 //$NON-NLS-1$ //$NON-NLS-2$
-		contents.append(')');
-		contents.append('\n');
-	}
-
-	public String getFormatDescription() {
-		return "Framework state"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/ConvertMessageBundleAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/ConvertMessageBundleAction.java
deleted file mode 100644
index 3040b24..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/ConvertMessageBundleAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;
-import org.eclipse.ltk.core.refactoring.PerformRefactoringOperation;
-import org.eclipse.ui.*;
-
-public class ConvertMessageBundleAction implements IObjectActionDelegate {
-
-	private ICompilationUnit fAccessorUnit;
-	private IWorkbenchPart fPart;
-
-	public void setActivePart(IAction action, IWorkbenchPart part) {
-		fPart = part;
-	}
-
-	public void run(IAction action) {
-		if (fAccessorUnit == null)
-			return;
-		try {
-			final GotoResourceAction pAction = new GotoResourceAction(fPart);
-			IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) {
-					pAction.run();
-				}
-			};
-			PlatformUI.getWorkbench().getProgressService().run(false, false, runnable);
-			IFile propertiesFile = (IFile) pAction.getResource();
-			if (propertiesFile == null)
-				return;
-			MessageBundleRefactoring refactoring = new MessageBundleRefactoring(fAccessorUnit.getTypes()[0], propertiesFile);
-			PerformRefactoringOperation op = new PerformRefactoringOperation(refactoring, CheckConditionsOperation.ALL_CONDITIONS);
-			PlatformUI.getWorkbench().getProgressService().run(false, false, new WorkbenchRunnableAdapter(op));
-		} catch (CoreException e) {
-			throw new RuntimeException(e);
-		} catch (InterruptedException e) {
-			throw new RuntimeException(e);
-		} catch (InvocationTargetException e) {
-			throw new RuntimeException(e);
-		}
-
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		Object element = ((IStructuredSelection) selection).getFirstElement();
-		if (element instanceof ICompilationUnit) {
-			fAccessorUnit = (ICompilationUnit) element;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/GotoResourceAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/GotoResourceAction.java
deleted file mode 100644
index 2b1c05e..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/GotoResourceAction.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IJavaModel;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.dialogs.ResourceListSelectionDialog;
-
-public class GotoResourceAction extends Action {
-	IResource selectedResource;
-	IWorkbenchPart part;
-
-	private static class GotoResourceDialog extends ResourceListSelectionDialog {
-		private IJavaModel fJavaModel;
-
-		public GotoResourceDialog(Shell parentShell, IContainer container) {
-			super(parentShell, container, IResource.FILE | IResource.FOLDER | IResource.PROJECT);
-			fJavaModel = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
-			setTitle("Select the corresponding properties file:"); //$NON-NLS-1$
-		}
-
-		protected boolean select(IResource resource) {
-			IProject project = resource.getProject();
-			try {
-				if (project.getNature(JavaCore.NATURE_ID) != null)
-					return fJavaModel.contains(resource);
-			} catch (CoreException e) {
-				// do nothing. Consider resource;
-			}
-			return true;
-		}
-	}
-
-	public IResource getResource() {
-		return selectedResource;
-	}
-
-	public GotoResourceAction(IWorkbenchPart part) {
-		this.part = part;
-		setText("Select the corresponding properties file:"); //$NON-NLS-1$
-	}
-
-	public void run() {
-		GotoResourceDialog dialog = new GotoResourceDialog(part.getSite().getShell(), ResourcesPlugin.getWorkspace().getRoot());
-		dialog.open();
-		Object[] result = dialog.getResult();
-		if (result == null || result.length == 0 || !(result[0] instanceof IResource))
-			return;
-		selectedResource = (IResource) result[0];
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/IntegerMap.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/IntegerMap.java
deleted file mode 100644
index b23507e..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/IntegerMap.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-public class IntegerMap {
-
-	private static final int DEFAULT = 0;
-	private static final int GROW_SIZE = 10;
-
-	private int[] keys;
-	private int[] values;
-
-	public IntegerMap(int size) {
-		super();
-		keys = new int[size];
-		values = new int[size];
-	}
-
-	public int get(int key) {
-		for (int i = 0; i < keys.length; i++) {
-			int current = keys[i];
-			if (current != 0 && current == key)
-				return values[i];
-		}
-		return DEFAULT;
-	}
-
-	public void put(int key, int value) {
-
-		// replace if exists
-		int emptySlot = -1;
-		for (int i = 0; i < keys.length; i++) {
-			int current = keys[i];
-			if (current == 0) {
-				emptySlot = i;
-				continue;
-			} else if (current == key) {
-				values[i] = value;
-				return;
-			}
-		}
-
-		// grow if needed, then fill the empty slot
-		if (emptySlot == -1)
-			emptySlot = grow();
-		keys[emptySlot] = key;
-		values[emptySlot] = value;
-	}
-
-	private int grow() {
-		int size = keys.length;
-		int[] tempKeys = new int[size + GROW_SIZE];
-		System.arraycopy(keys, 0, tempKeys, 0, size);
-		keys = tempKeys;
-		int[] tempValues = new int[size + GROW_SIZE];
-		System.arraycopy(values, 0, tempValues, 0, size);
-		values = tempValues;
-		return size;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
deleted file mode 100644
index 1ffcbab..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.io.IOException;
-import java.util.List;
-import org.eclipse.core.filebuffers.*;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.core.dom.*;
-import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jdt.internal.corext.dom.Bindings;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringScopeFactory;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine;
-import org.eclipse.jdt.internal.corext.refactoring.changes.CompilationUnitChange;
-import org.eclipse.jdt.internal.corext.refactoring.util.RefactoringASTParser;
-import org.eclipse.jdt.internal.corext.refactoring.util.RefactoringFileBuffers;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ltk.core.refactoring.*;
-
-public class MessageBundleRefactoring extends Refactoring {
-
-	IType fAccessorClass;
-	IFile fPropertiesFile;
-	CompositeChange fChange;
-	ITypeBinding fAccessorTypeBinding;
-
-	public MessageBundleRefactoring(IType accessorClass, IFile propertiesFile) {
-		super();
-		fAccessorClass = accessorClass;
-		fPropertiesFile = propertiesFile;
-	}
-
-	public String getName() {
-		return "Message Bundle Refactoring";
-	}
-
-	public RefactoringStatus checkInitialConditions(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
-		return new RefactoringStatus();
-	}
-
-	public RefactoringStatus checkFinalConditions(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
-		RefactoringStatus result = new RefactoringStatus();
-		fAccessorTypeBinding = computeAccessorClassBinding(new SubProgressMonitor(monitor, 1));
-		if (fAccessorTypeBinding == null) {
-			result.addFatalError("Couldn't resolve accessor class");
-			return result;
-		}
-		fChange = new CompositeChange("Accessor Class Changes");
-		ICompilationUnit[] affectedUnits = RefactoringSearchEngine.findAffectedCompilationUnits(SearchPattern.createPattern(fAccessorClass, IJavaSearchConstants.REFERENCES), RefactoringScopeFactory.create(fAccessorClass), new SubProgressMonitor(monitor, 5), result);
-		monitor.beginTask("", affectedUnits.length + 1);
-		for (int i = 0; i < affectedUnits.length; i++) {
-			ICompilationUnit unit = affectedUnits[i];
-			if (unit.equals(fAccessorClass.getCompilationUnit()))
-				continue;
-			processCompilationUnit(result, unit, new SubProgressMonitor(monitor, 1));
-		}
-		processPropertiesFile(result, new SubProgressMonitor(monitor, 1));
-		return result;
-	}
-
-	private void processPropertiesFile(RefactoringStatus result, IProgressMonitor monitor) throws CoreException {
-		// TODO need to roll the changes to the properties file into a text edit that we can hook into
-		// the "Undo -> Refactoring" framework
-		try {
-			ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
-			try {
-				manager.connect(fPropertiesFile.getFullPath(), null);
-				manager.connect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
-				fChange.addAll(new PropertyFileConverter().convertFile(fAccessorClass, fPropertiesFile));
-			} finally {
-				manager.disconnect(fPropertiesFile.getFullPath(), null);
-				manager.disconnect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
-			}
-		} catch (IOException e) {
-			throw new CoreException(new Status(IStatus.ERROR, NLSPlugin.PI_NLS, IStatus.ERROR, e.getMessage(), e));
-		}
-	}
-
-	private void processCompilationUnit(RefactoringStatus result, ICompilationUnit unit, IProgressMonitor monitor) throws CoreException {
-		monitor.beginTask("", 2);
-		CompilationUnit root = new RefactoringASTParser(AST.JLS3).parse(unit, true, new SubProgressMonitor(monitor, 1));
-		ASTRewrite rewriter = ASTRewrite.create(root.getAST());
-
-		processAST(result, root, rewriter, new SubProgressMonitor(monitor, 1));
-
-		CompilationUnitChange change = new CompilationUnitChange(unit.getElementName(), unit);
-		try {
-			ITextFileBuffer buffer = RefactoringFileBuffers.acquire(unit);
-			IDocument document = buffer.getDocument();
-			change.setEdit(rewriter.rewriteAST(document, null));
-		} finally {
-			RefactoringFileBuffers.release(unit);
-		}
-		fChange.add(change);
-		monitor.done();
-	}
-
-	private void processAST(RefactoringStatus result, final CompilationUnit root, final ASTRewrite rewriter, SubProgressMonitor monitor) {
-		// keep track of the number of changes we make per line so we can get rid of the NLS comments.
-		final IntegerMap map = new IntegerMap(10);
-		ASTVisitor visitor = new ASTVisitor() {
-			public boolean visit(MethodInvocation node) {
-				Name messageBundleName = getMessageBundleReceiver(node);
-				if (messageBundleName == null)
-					return true;
-				IMethodBinding method = node.resolveMethodBinding();
-				// TODO here we have to do some checks whether the called method on the
-				// resource bundle is something we have to rewrite. This depends on
-				// the kind of the bundle and needs some AI.
-				ITypeBinding[] params = method.getParameterTypes();
-				if (params.length == 0)
-					return true;
-				if (!"java.lang.String".equals(params[0].getQualifiedName()))
-					return true;
-				List args = node.arguments();
-				if (args.size() != 1)
-					return true;
-				Object obj = args.get(0);
-				if (!(obj instanceof StringLiteral))
-					return true;
-				// compute the key of the message property
-				StringLiteral string = (StringLiteral) obj;
-				String key = PropertyFileConverter.convertToJavaIdentifier(string.getLiteralValue());
-
-				// create the field access object
-				FieldAccess fieldAccess = root.getAST().newFieldAccess();
-				fieldAccess.setExpression((Expression) rewriter.createCopyTarget(messageBundleName));
-				fieldAccess.setName(root.getAST().newSimpleName(key));
-
-				// replace the method invocation with the field access
-				rewriter.replace(node, fieldAccess, null);
-				int line = 11;
-				int value = map.get(line);
-				value++;
-				map.put(line, value);
-				return true;
-			}
-
-			private Name getMessageBundleReceiver(MethodInvocation node) {
-				Expression expression = node.getExpression();
-				if (expression == null)
-					return null;
-				if (expression instanceof Name && Bindings.equals(fAccessorTypeBinding, ((Name) expression).resolveBinding())) {
-					return (Name) expression;
-				}
-				return null;
-			}
-		};
-		root.accept(visitor);
-
-		// create another visitor to trim the //$NON-NLS-N$ comments
-		//		visitor = new ASTVisitor() {
-		//			public boolean visit(LineComment node) {
-		//				return true;
-		//			}
-		//		};
-		//		root.accept(visitor);
-	}
-
-	public Change createChange(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
-		return fChange;
-	}
-
-	private ITypeBinding computeAccessorClassBinding(IProgressMonitor monitor) {
-		ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setProject(fAccessorClass.getJavaProject());
-		return (ITypeBinding) parser.createBindings(new IJavaElement[] {fAccessorClass}, monitor)[0];
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSFileChange.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSFileChange.java
deleted file mode 100644
index 8ba958f..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSFileChange.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.io.*;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.TextFileChange;
-
-public class NLSFileChange extends TextFileChange {
-	private IFile file;
-	private String contents;
-
-	public NLSFileChange(IFile file) {
-		super("Message bundle properties file change", file); //$NON-NLS-1$
-		this.file = file;
-		setTextType("text"); //$NON-NLS-1$
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws OperationCanceledException {
-		return RefactoringStatus.create(Status.OK_STATUS);
-	}
-
-	void setContents(String text) {
-		this.contents = text;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.TextFileChange#commit(org.eclipse.jface.text.IDocument, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void commit(IDocument document, IProgressMonitor monitor) throws CoreException {
-		if (contents == null) {
-			System.err.println("Cannot write null contents to file: " + file); //$NON-NLS-1$
-			return;
-		}
-		byte[] bytes = null;
-		try {
-			bytes = contents.getBytes(file.getCharset(true));
-		} catch (UnsupportedEncodingException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		if (bytes == null)
-			bytes = contents.getBytes();
-		InputStream input = new BufferedInputStream(new ByteArrayInputStream(bytes));
-		file.setContents(input, IResource.FORCE, null);
-	}
-
-	/* (non-Javadoc)
-	 * @see Change#getModifiedElement()
-	 */
-	public Object getModifiedElement() {
-		return file;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSPlugin.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSPlugin.java
deleted file mode 100644
index 5502911..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/NLSPlugin.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.eclipse.core.tools.nls;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class NLSPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static NLSPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	public static final String PI_NLS = "com.example.nls"; //$NON-NLS-1$
-	
-	/**
-	 * The constructor.
-	 */
-	public NLSPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static NLSPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = NLSPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				resourceBundle = ResourceBundle.getBundle("com.example.nls.NlsPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
deleted file mode 100644
index 66c186f..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.io.*;
-import java.util.HashSet;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.ltk.core.refactoring.Change;
-
-/**
- * Converts a message bundle file to the new format, and generates a Java
- * file with fields for each key in the bundle.
- */
-public class PropertyFileConverter {
-
-	private static final HashSet keywords = new HashSet();
-
-	static {
-		keywords.add("abstract"); //$NON-NLS-1$
-		keywords.add("assert"); //$NON-NLS-1$
-		keywords.add("break"); //$NON-NLS-1$
-		keywords.add("case"); //$NON-NLS-1$
-		keywords.add("catch"); //$NON-NLS-1$
-		keywords.add("class"); //$NON-NLS-1$
-		keywords.add("continue"); //$NON-NLS-1$
-		keywords.add("default"); //$NON-NLS-1$
-		keywords.add("do"); //$NON-NLS-1$
-		keywords.add("else"); //$NON-NLS-1$
-		keywords.add("extends"); //$NON-NLS-1$
-		keywords.add("final"); //$NON-NLS-1$
-		keywords.add("finally"); //$NON-NLS-1$
-		keywords.add("for"); //$NON-NLS-1$
-		keywords.add("if"); //$NON-NLS-1$
-		keywords.add("implements"); //$NON-NLS-1$
-		keywords.add("import"); //$NON-NLS-1$
-		keywords.add("instanceof"); //$NON-NLS-1$
-		keywords.add("interface"); //$NON-NLS-1$
-		keywords.add("native"); //$NON-NLS-1$
-		keywords.add("new"); //$NON-NLS-1$
-		keywords.add("package"); //$NON-NLS-1$
-		keywords.add("private"); //$NON-NLS-1$
-		keywords.add("protected"); //$NON-NLS-1$
-		keywords.add("public"); //$NON-NLS-1$
-		keywords.add("return"); //$NON-NLS-1$
-		keywords.add("static"); //$NON-NLS-1$
-		keywords.add("strictfp"); //$NON-NLS-1$
-		keywords.add("super"); //$NON-NLS-1$
-		keywords.add("switch"); //$NON-NLS-1$
-		keywords.add("synchronized"); //$NON-NLS-1$
-		keywords.add("this"); //$NON-NLS-1$
-		keywords.add("throw"); //$NON-NLS-1$
-		keywords.add("throws"); //$NON-NLS-1$
-		keywords.add("transient"); //$NON-NLS-1$
-		keywords.add("try"); //$NON-NLS-1$
-		keywords.add("volatile"); //$NON-NLS-1$
-		keywords.add("while"); //$NON-NLS-1$
-		keywords.add("true"); //$NON-NLS-1$
-		keywords.add("false"); //$NON-NLS-1$
-		keywords.add("null"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Appends the text to put at the end of each Java messages file.
-	 */
-	private void appendPostText(StringBuffer buffer, String bundlePath, String typeName) {
-		buffer.append("\n\tstatic {\n"); //$NON-NLS-1$
-		buffer.append("\t\t// load message values from bundle file\n"); //$NON-NLS-1$
-		buffer.append("\t\tNLS.initializeMessages(BUNDLE_NAME, "); //$NON-NLS-1$
-		buffer.append(typeName);
-		buffer.append(".class"); //$NON-NLS-1$
-		buffer.append(");\n"); //$NON-NLS-1$
-		buffer.append("\t}\n"); //$NON-NLS-1$
-		buffer.append("}"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Appends the text to put at the beginning of each Java messages file.
-	 */
-	private void appendPreText(StringBuffer buffer, String pkgName, String bundleName, String typeName) {
-		//if this text had typos, would it be a false pretext?
-		buffer.append("/**********************************************************************\n"); //$NON-NLS-1$
-		buffer.append(" * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This\n"); //$NON-NLS-1$
-		buffer.append(" * program and the accompanying materials are made available under the terms of\n"); //$NON-NLS-1$
-		buffer.append(" * the Eclipse Public License v1.0 which accompanies this distribution, and is\n"); //$NON-NLS-1$
-		buffer.append(" * available at http://www.eclipse.org/legal/epl-v10.html\n"); //$NON-NLS-1$
-		buffer.append(" * \n"); //$NON-NLS-1$
-		buffer.append(" * Contributors: \n"); //$NON-NLS-1$
-		buffer.append(" * IBM - Initial API and implementation\n"); //$NON-NLS-1$
-		buffer.append(" **********************************************************************/\n"); //$NON-NLS-1$
-		buffer.append("package "); //$NON-NLS-1$
-		buffer.append(pkgName);
-		buffer.append(";\n\n"); //$NON-NLS-1$
-
-		buffer.append("import org.eclipse.osgi.util.NLS;\n\n"); //$NON-NLS-1$
-		buffer.append("public class "); //$NON-NLS-1$
-		buffer.append(typeName);
-		buffer.append(" extends NLS {\n"); //$NON-NLS-1$
-		buffer.append("\tprivate static final String BUNDLE_NAME = \"" + pkgName + '.' + bundleName + "\";//$NON-NLS-1$\n"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Remove the properties in the specified list from the file.
-	 */
-	public Change trim(IFile propertiesFile, List toDelete) throws IOException, CoreException {
-		if (toDelete == null || toDelete.isEmpty())
-			return null;
-		BufferedReader reader = new BufferedReader(new InputStreamReader(propertiesFile.getContents()));
-		StringBuffer bundle = new StringBuffer();
-
-		try {
-			String line;
-			boolean isContinued = false;
-			boolean wasDeleted = false;
-			while ((line = reader.readLine()) != null) {
-				line = line.trim();
-				// just add comments directly to the output
-				if (skipLine(line)) {
-					bundle.append(line);
-					bundle.append("\r\n"); //$NON-NLS-1$
-					continue;
-				}
-
-				boolean wasContinued = isContinued;
-				isContinued = isContinued(line);
-				// if we are continued from the previous line...
-				if (wasContinued) {
-					// if the previous line was deleted then...
-					if (wasDeleted) {
-						// skip this line
-					} else {
-						// otherwise write it out
-						bundle.append(line);
-						bundle.append("\r\n"); //$NON-NLS-1$
-					}
-				} else {
-					// we weren't continued from the previous line
-					String key = extractKey(line);
-					boolean shouldDelete = toDelete.contains(key);
-					// if the key was in our skip list then don't write it out
-					if (shouldDelete) {
-						wasDeleted = true;
-					} else {
-						wasDeleted = false;
-						bundle.append(line);
-						bundle.append("\r\n"); //$NON-NLS-1$
-					}
-				}
-
-			}
-		} finally {
-			if (reader != null)
-				reader.close();
-		}
-		NLSFileChange pChange = new NLSFileChange(propertiesFile);
-		pChange.setContents(bundle.toString());
-		return pChange;
-	}
-
-	/**
-	 * Reads an old properties file, and creates a new properties file and corresponding
-	 * Java messages file.
-	 */
-	public Change[] convertFile(IType accessorType, IFile propertiesFile) throws IOException, CoreException {
-		String pkgName = accessorType.getPackageFragment().getElementName();
-		IFile accessorFile = (IFile) accessorType.getCompilationUnit().getCorrespondingResource();
-		String typeName = accessorFile.getFullPath().removeFileExtension().lastSegment();
-		BufferedReader reader = new BufferedReader(new InputStreamReader(propertiesFile.getContents()));
-		String bundleName = propertiesFile.getName();
-		StringBuffer clazz = new StringBuffer();
-		// convert the bundle resource (messages.properties) to the simple name (messages)
-		String simpleBundleName = new Path(bundleName).removeFileExtension().toString();
-		appendPreText(clazz, pkgName, simpleBundleName, typeName);
-		StringBuffer bundle = new StringBuffer();
-		int savings = 0;
-		try {
-			String line;
-			boolean isContinued = false;
-			while ((line = reader.readLine()) != null) {
-				line = line.trim();
-				boolean wasContinued = isContinued;
-				isContinued = isContinued(line);
-				if (!wasContinued) {
-					if (skipLine(line)) {
-						clazz.append(convertToComment(line));
-					} else {
-						String key = extractKey(line);
-						savings += 88 + 4 * key.length();
-						String identifier = convertToJavaIdentifier(key);
-						clazz.append("\tpublic static String "); //$NON-NLS-1$
-						clazz.append(identifier);
-						clazz.append(";\n"); //$NON-NLS-1$
-						//convert the bundle file line to use the Java identifier
-						line = identifier + line.substring(key.length());
-					}
-				}
-				//write the line out to the new bundle file
-				bundle.append(line);
-				bundle.append("\r\n"); //$NON-NLS-1$
-			}
-		} finally {
-			if (reader != null)
-				reader.close();
-		}
-		System.out.println("Memory saved by converting to field-based keys: " + savings);
-		appendPostText(clazz, pkgName + '.' + bundleName, typeName);
-
-		NLSFileChange pChange = new NLSFileChange(propertiesFile);
-		pChange.setContents(bundle.toString());
-
-		NLSFileChange cChange = new NLSFileChange(accessorFile);
-		cChange.setContents(clazz.toString());
-
-		return new Change[] {pChange, cChange};
-	}
-
-	/**
-	 * Writes the given line as a comment int the provided class buffer.
-	 * Blank lines are preserved.
-	 */
-	private String convertToComment(String line) {
-		StringBuffer comment = new StringBuffer();
-		if (line.trim().length() > 0) {
-			comment.append("\t//"); //$NON-NLS-1$
-		}
-		int offset = 0;
-		//skip leading comment characters
-		while (offset < line.length()) {
-			char c = line.charAt(offset);
-			if (c != '!' && c != '#')
-				break;
-			offset++;
-		}
-		comment.append(line.substring(offset));
-		comment.append('\n');
-		return comment.toString();
-	}
-
-	/**
-	 * Converts an arbitrary string into a string that represents a valid
-	 * Java identifier.
-	 */
-	public static String convertToJavaIdentifier(String key) {
-		String string = key.trim();
-		int len = string.length();
-		if (len == 0)
-			return string;
-		StringBuffer result = new StringBuffer();
-		char c = string.charAt(0);
-		if (Character.isJavaIdentifierStart(c))
-			result.append(c);
-		else {
-			//if it's a valid part, just add an underscore first but keep the character
-			result.append('_');
-			if (Character.isJavaIdentifierPart(c))
-				result.append(c);
-		}
-		for (int i = 1; i < len; i++) {
-			c = string.charAt(i);
-			if (Character.isJavaIdentifierPart(c))
-				result.append(c);
-			else
-				result.append('_');
-		}
-		//preserve trailing space
-		if (key.endsWith(" ")) //$NON-NLS-1$
-			result.append(' ');
-		return makeUnique(result.toString());
-	}
-
-	/**
-	 * Given a key converted to a Java identifier, ensure it is unique.
-	 * @return A unique key
-	 */
-	private static String makeUnique(String originalKey) {
-		String attempt = originalKey;
-		int counter = 0;
-		while (keywords.contains(attempt))
-			attempt = originalKey + counter++;
-		return attempt;
-	}
-
-	/**
-	 * Extracts and returns the property key from the given property file line.
-	 * The provided line contains no leading or trailing whitespace.
-	 */
-	private String extractKey(String line) {
-		int len = line.length();
-		StringBuffer key = new StringBuffer();
-		for (int i = 0; i < len; i++) {
-			char c = line.charAt(i);
-			//whitespace, colon, or equals characters represent key separators
-			if (Character.isWhitespace(c) || c == ':' || c == '=')
-				break;
-			key.append(c);
-		}
-		return key.toString();
-	}
-
-	/**
-	 * Returns whether the property value on this line will be continued onto the next.
-	 */
-	private boolean isContinued(String line) {
-		//note that literal escaped slash characters at the end of a line are not
-		//treated as continuation markers.
-		boolean continuation = false;
-		for (int i = line.length() - 1; (i >= 0) && (line.charAt(i) == '\\'); i--)
-			continuation = !continuation;
-		return continuation;
-	}
-
-	/**
-	 * Returns whether the given line contains a key that needs to be converted.
-	 */
-	private boolean skipLine(String line) {
-		if (line.length() == 0)
-			return true;
-		char first = line.charAt(0);
-		return first == '#' || first == '!';
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
deleted file mode 100644
index ab3abe9..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.filebuffers.*;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.core.dom.*;
-import org.eclipse.jdt.core.dom.rewrite.ASTRewrite;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringScopeFactory;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine;
-import org.eclipse.jdt.internal.corext.refactoring.changes.CompilationUnitChange;
-import org.eclipse.jdt.internal.corext.refactoring.util.RefactoringASTParser;
-import org.eclipse.jdt.internal.corext.refactoring.util.RefactoringFileBuffers;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ltk.core.refactoring.*;
-
-/*
- * Class that removes field declarations which aren't referenced.
- */
-public class RemoveUnusedMessages extends Refactoring {
-
-	IType accessorClass;
-	IFile propertiesFile;
-	CompositeChange change;
-
-	public RemoveUnusedMessages(IType accessorClass, IFile propertiesFile) {
-		super();
-		this.accessorClass = accessorClass;
-		this.propertiesFile = propertiesFile;
-	}
-
-	public String getName() {
-		return "Fix NLS References";
-	}
-
-	public RefactoringStatus checkInitialConditions(IProgressMonitor monitor) {
-		return new RefactoringStatus();
-	}
-
-	public RefactoringStatus checkFinalConditions(IProgressMonitor monitor) throws CoreException, OperationCanceledException {
-		if (monitor == null)
-			monitor = new NullProgressMonitor();
-		change = new CompositeChange("Accessor Class Changes");
-		RefactoringStatus result = new RefactoringStatus();
-		ICompilationUnit unit = JavaCore.createCompilationUnitFrom((IFile) accessorClass.getResource());
-		CompilationUnit root = new RefactoringASTParser(AST.JLS3).parse(unit, true, null);
-		ASTRewrite rewriter = ASTRewrite.create(root.getAST());
-
-		// Search for references
-		IField[] fields = accessorClass.getFields();
-		ArrayList toDelete = new ArrayList();
-		// 10 units of work for modifying the properties file and AST
-		monitor.beginTask("Searching for references.", fields.length + 10);
-		try {
-			for (int i = 0; i < fields.length; i++) {
-				if (monitor.isCanceled())
-					throw new OperationCanceledException();
-				IField field = fields[i];
-				String fieldName = field.getElementName();
-				monitor.subTask("Searching for references to: " + fieldName);
-				int flags = field.getFlags();
-				// only want to look at the public static String fields
-				if (!(Flags.isPublic(flags) && Flags.isStatic(flags)))
-					continue;
-				// search for references
-				ICompilationUnit[] affectedUnits = RefactoringSearchEngine.findAffectedCompilationUnits(SearchPattern.createPattern(field, IJavaSearchConstants.REFERENCES), RefactoringScopeFactory.create(accessorClass), new SubProgressMonitor(monitor, 1), result);
-				// there are references so go to the next field
-				if (affectedUnits.length > 0)
-					continue;
-				System.out.println("Found unused field: " + fieldName);
-				toDelete.add(fieldName);
-			}
-			System.out.println("Analysis of " + fields.length + " messages found " + toDelete.size() + " unused messages");
-
-			// any work to do?
-			if (toDelete.isEmpty())
-				return result;
-
-			if (monitor.isCanceled())
-				throw new OperationCanceledException();
-
-			// remove the field and its corresponding entry in the messages.properties file
-			processAST(root, rewriter, toDelete);
-			monitor.worked(5);
-			processPropertiesFile(toDelete);
-			monitor.worked(5);
-
-			CompilationUnitChange cuChange = new CompilationUnitChange(unit.getElementName(), unit);
-			try {
-				ITextFileBuffer buffer = RefactoringFileBuffers.acquire(unit);
-				IDocument document = buffer.getDocument();
-				cuChange.setEdit(rewriter.rewriteAST(document, null));
-			} finally {
-				RefactoringFileBuffers.release(unit);
-			}
-			change.add(cuChange);
-
-		} finally {
-			monitor.done();
-		}
-
-		// return the result
-		return result;
-	}
-
-	private void processAST(final CompilationUnit root, final ASTRewrite rewriter, final List toDelete) {
-		ASTVisitor visitor = new ASTVisitor() {
-			public boolean visit(VariableDeclarationFragment node) {
-				// check to see if its in our list of fields to delete
-				if (!toDelete.contains(node.getName().toString()))
-					return true;
-				rewriter.remove(node.getParent(), null);
-				return true;
-			}
-		};
-		root.accept(visitor);
-	}
-
-	private void processPropertiesFile(List list) throws CoreException {
-		try {
-			ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
-			try {
-				manager.connect(propertiesFile.getFullPath(), null);
-				manager.connect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
-				change.add(new PropertyFileConverter().trim(propertiesFile, list));
-			} finally {
-				manager.disconnect(propertiesFile.getFullPath(), null);
-				manager.disconnect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
-			}
-		} catch (IOException e) {
-			throw new CoreException(new Status(IStatus.ERROR, NLSPlugin.PI_NLS, IStatus.ERROR, e.getMessage(), e));
-		}
-	}
-
-	public Change createChange(IProgressMonitor monitor) {
-		return change;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessagesAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessagesAction.java
deleted file mode 100644
index 700577a..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessagesAction.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.nls;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ltk.core.refactoring.CheckConditionsOperation;
-import org.eclipse.ltk.core.refactoring.PerformRefactoringOperation;
-import org.eclipse.ui.*;
-
-public class RemoveUnusedMessagesAction implements IObjectActionDelegate {
-
-	private ICompilationUnit fAccessorUnit;
-	private IWorkbenchPart fPart;
-
-	public void setActivePart(IAction action, IWorkbenchPart part) {
-		fPart = part;
-	}
-
-	public void run(IAction action) {
-		if (fAccessorUnit == null)
-			return;
-		try {
-			final GotoResourceAction pAction = new GotoResourceAction(fPart);
-			IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) {
-					pAction.run();
-				}
-			};
-			PlatformUI.getWorkbench().getProgressService().run(false, false, runnable);
-			IFile propertiesFile = (IFile) pAction.getResource();
-			if (propertiesFile == null)
-				return;
-			RemoveUnusedMessages refactoring = new RemoveUnusedMessages(fAccessorUnit.getTypes()[0], propertiesFile);
-			PerformRefactoringOperation op = new PerformRefactoringOperation(refactoring, CheckConditionsOperation.ALL_CONDITIONS);
-			PlatformUI.getWorkbench().getProgressService().run(false, true, new WorkbenchRunnableAdapter(op));
-		} catch (CoreException e) {
-			throw new RuntimeException(e);
-		} catch (InterruptedException e) {
-			throw new RuntimeException(e);
-		} catch (InvocationTargetException e) {
-			throw new RuntimeException(e);
-		}
-
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		Object element = ((IStructuredSelection) selection).getFirstElement();
-		if (element instanceof ICompilationUnit) {
-			fAccessorUnit = (ICompilationUnit) element;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsView.java
deleted file mode 100644
index 0cae472..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsView.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.core.runtime.internal.stats.BundleStats;
-import org.eclipse.core.runtime.internal.stats.StatsManager;
-import org.eclipse.core.tools.CoreToolsPlugin;
-import org.eclipse.core.tools.TableWithTotalView;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * View used to display the activated plugins 
- */
-public class ActivePluginsView extends TableWithTotalView {
-	private Action refreshAction;
-	private Action displayClassesInfoAction;
-	private Action displayStackAction;
-
-	public static String VIEW_ID = ActivePluginsView.class.getName();
-	private static String columnHeaders[] = {"Plug-in", "Classes", "Alloc", "Used", "Startup time", "Order", "Timestamp", "Class load time", "Startup method time", "RAM Alloc", "RAM Used", "ROM Alloc", "ROM Used"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$ //$NON-NLS-11$ //$NON-NLS-12$ //$NON-NLS-13$
-	private static int columnWidths[] = {500, 150, 200, 200, 150, 100, 0, 0, 0, 0, 0, 0, 0};
-
-	protected String[] getColumnHeaders() {
-		return columnHeaders;
-	}
-
-	protected ColumnLayoutData[] getColumnLayout() {
-		ColumnLayoutData[] result = new ColumnLayoutData[columnWidths.length];
-		for (int i = 0; i < columnWidths.length; i++) {
-			int width = columnWidths[i];
-			result[i] = width == 0 ? (ColumnLayoutData) new ColumnPixelData(width) : (ColumnLayoutData) new ColumnWeightData(width);
-		}
-		return result;
-	}
-
-	protected void createToolbar() {
-		IActionBars actionBars = getViewSite().getActionBars();
-		IToolBarManager manager = actionBars.getToolBarManager();
-		manager.add(refreshAction);
-		manager.add(displayClassesInfoAction);
-		manager.add(displayStackAction);
-	}
-
-	protected void createContextMenu() {
-		// Create menu manager.
-		MenuManager manager = new MenuManager();
-		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager mgr) {
-				fillContextMenu(mgr);
-			}
-		});
-
-		// Create menu.
-		Menu menu = manager.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-
-		// Register menu for extension.
-		getSite().registerContextMenu(manager, viewer);
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		manager.add(refreshAction);
-		manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-		manager.add(new Separator());
-		manager.add(displayClassesInfoAction);
-		manager.add(displayStackAction);
-	}
-
-	protected String[] computeTotalLine(Iterator iterator) {
-		int sumOfClasses = 0;
-		int sumOfMemoryUsed = 0;
-		int sumOfMemoryAlloc = 0;
-		long sumOfStartupTime = 0;
-		long sumOfClassloadtime = 0;
-		int sumOfRAMAlloc = 0;
-		int sumOfRAMUsed = 0;
-		long sumOfStartupMethodTime = 0;
-		int sumOfROMAlloc = 0;
-		int sumOfROMUsed = 0;
-		int count = 0;
-		if (!iterator.hasNext()) {
-			Object[] elements = ((ITreeContentProvider) viewer.getContentProvider()).getElements(viewer.getInput());
-			iterator = Arrays.asList(elements).iterator();
-		}
-		for (; iterator.hasNext();) {
-			BundleStats element = (BundleStats) iterator.next();
-			if (element != null) {
-				VMClassloaderInfo vmInfo = VMClassloaderInfo.getClassloader(element.getSymbolicName());
-				sumOfClasses += element.getClassLoadCount();
-				sumOfMemoryUsed += (vmInfo.getUsedRAM() + vmInfo.getUsedROM());
-				sumOfMemoryAlloc += (vmInfo.getAllocRAM() + vmInfo.getAllocROM());
-				sumOfStartupTime = sumOfStartupTime + element.getStartupTime();
-				sumOfClassloadtime = sumOfClassloadtime + element.getClassLoadTime();
-				sumOfStartupMethodTime = sumOfStartupMethodTime + element.getStartupMethodTime();
-				sumOfRAMAlloc += vmInfo.getAllocRAM();
-				sumOfRAMUsed += vmInfo.getUsedRAM();
-				sumOfROMAlloc += vmInfo.getAllocROM();
-				sumOfROMUsed += vmInfo.getUsedROM();
-				count++;
-			}
-		}
-		String[] totalLine = new String[getColumnHeaders().length];
-		totalLine[0] = "Total: " + count; //$NON-NLS-1$
-		totalLine[1] = "" + sumOfClasses; //$NON-NLS-1$
-		totalLine[2] = "" + sumOfMemoryAlloc; //$NON-NLS-1$
-		totalLine[3] = "" + sumOfMemoryUsed; //$NON-NLS-1$
-		totalLine[4] = "" + sumOfStartupTime; //$NON-NLS-1$
-		totalLine[8] = "" + sumOfStartupMethodTime; //$NON-NLS-1$
-		totalLine[9] = "" + sumOfRAMAlloc; //$NON-NLS-1$
-		totalLine[10] = "" + sumOfRAMUsed; //$NON-NLS-1$
-		totalLine[11] = "" + sumOfROMAlloc; //$NON-NLS-1$
-		totalLine[12] = "" + sumOfROMUsed; //$NON-NLS-1$
-		return totalLine;
-	}
-
-	public void createPartControl(Composite parent) {
-		if (!StatsManager.MONITOR_ACTIVATION) {
-			Text text = new Text(parent, 0);
-			text.setText("Plug-in monitoring is not enabled"); //$NON-NLS-1$
-			return;
-		}
-		super.createPartControl(parent);
-		viewer.setInput(BundleStats.class);
-		getSite().setSelectionProvider(viewer);
-		viewer.setSelection(StructuredSelection.EMPTY);
-	}
-
-	protected void createActions() {
-		refreshAction = new Action("Refresh") { //$NON-NLS-1$
-			public void run() {
-				VMClassloaderInfo.refreshInfos();
-				getViewer().refresh();
-			}
-		};
-		refreshAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("refresh.gif")); //$NON-NLS-1$
-		refreshAction.setToolTipText("Refresh the data"); //$NON-NLS-1$
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction);
-
-		displayClassesInfoAction = new Action("Classes") { //$NON-NLS-1$
-			public void run() {
-				try {
-					LoadedClassesView view = (LoadedClassesView) getSite().getPage().showView(LoadedClassesView.VIEW_ID);
-					IStructuredSelection selection = ((IStructuredSelection) getViewer().getSelection());
-					if (selection == null)
-						return;
-
-					view.setInput(selection.toArray());
-
-				} catch (PartInitException e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		displayClassesInfoAction.setToolTipText("Display classes loaded by the selected plug-in"); //$NON-NLS-1$
-		displayClassesInfoAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("classes.gif")); //$NON-NLS-1$
-
-		displayStackAction = new Action("Stack &Trace") { //$NON-NLS-1$
-			public void run() {
-				try {
-					StackTraceView view = (StackTraceView) getSite().getPage().showView(StackTraceView.VIEW_ID);
-					BundleStats info = (BundleStats) ((IStructuredSelection) getViewer().getSelection()).getFirstElement();
-					if (info == null)
-						return;
-					view.setInput(StatsManager.TRACE_FILENAME, info.getTraceStart(), info.getTraceEnd());
-				} catch (PartInitException e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		displayStackAction.setToolTipText("Display the plug-in activation stack trace"); //$NON-NLS-1$
-		displayStackAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("trace.gif")); //$NON-NLS-1$
-	}
-
-	protected ITreeContentProvider getContentProvider() {
-		return new ActivePluginsViewContentProvider();
-	}
-
-	protected ITableLabelProvider getLabelProvider() {
-		return new ActivePluginsViewLabelProvider();
-	}
-
-	protected ViewerSorter getSorter(int column) {
-		return new ActivePluginsViewSorter(column);
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getStatusLineMessage(Object)
-	 */
-	protected String getStatusLineMessage(Object element) {
-		return ""; //$NON-NLS-1$
-	}
-
-	protected TableTreeViewer getViewer() {
-		return viewer;
-	}
-
-	public void dispose() {
-		// if there is no viewer then we were not monitoring so there
-		// is nothing to dispose.
-		if (viewer == null)
-			return;
-		refreshAction.setImageDescriptor(null);
-		displayClassesInfoAction.setImageDescriptor(null);
-		displayStackAction.setImageDescriptor(null);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewContentProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewContentProvider.java
deleted file mode 100644
index 76512c6..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewContentProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.ArrayList;
-import org.eclipse.core.runtime.internal.stats.BundleStats;
-import org.eclipse.core.runtime.internal.stats.StatsManager;
-import org.eclipse.core.tools.IFlattable;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Content provider for the ActivePluginsView
- */
-public class ActivePluginsViewContentProvider implements ITreeContentProvider, IFlattable {
-	private boolean flat;
-
-	public void setFlat(boolean mode) {
-		flat = mode;
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		// do nothing
-	}
-
-	public Object[] getChildren(Object element) {
-		if (flat || !(element instanceof BundleStats))
-			return new Object[0];
-		if (element == null)
-			return null;
-		ArrayList stats = ((BundleStats) element).getBundlesActivated();
-		return stats.toArray(new Object[stats.size()]);
-	}
-
-	public Object getParent(Object element) {
-		if (flat || !(element instanceof BundleStats))
-			return null;
-		if (element == null)
-			return null;
-		return ((BundleStats) element).getActivatedBy().getSymbolicName();
-	}
-
-	public boolean hasChildren(Object element) {
-		if (flat || !(element instanceof BundleStats))
-			return false;
-		return element == null ? false : ((BundleStats) element).getBundlesActivated().size() > 0;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		if (!StatsManager.MONITOR_ACTIVATION || inputElement != BundleStats.class)
-			return null;
-
-		BundleStats[] active = StatsManager.getDefault().getBundles();
-		ArrayList result = new ArrayList(active.length);
-		for (int i = 0; i < active.length; i++) {
-			if (flat || active[i].getActivatedBy() == null)
-				result.add(active[i]);
-		}
-		return result.toArray(new BundleStats[result.size()]);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewLabelProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewLabelProvider.java
deleted file mode 100644
index 1e0fc38..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewLabelProvider.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import org.eclipse.core.runtime.internal.stats.BundleStats;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Label provider for the ActivePluginsView
- *
- */
-public class ActivePluginsViewLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-	public void addListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-
-	public Image getColumnImage(Object element, int columnIndex) {
-		return null;
-	}
-
-	public String getColumnText(Object element, int columnIndex) {
-		if (!(element instanceof BundleStats))
-			return "not a plug-in"; //$NON-NLS-1$
-		BundleStats info = (BundleStats) element;
-		if (info == null)
-			return "no info for plug-in"; //$NON-NLS-1$
-		VMClassloaderInfo loaderInfo = VMClassloaderInfo.getClassloader(info.getSymbolicName());
-		switch (columnIndex) {
-			case 0 : /* id */
-				return info.getSymbolicName() + (info.isStartupBundle() ? "*" : ""); //$NON-NLS-1$ //$NON-NLS-2$
-			case 1 : /* class load count */
-				return "" + info.getClassLoadCount(); //$NON-NLS-1$
-			case 2 : /* Total Mem Alloc */
-				return "" + (loaderInfo.getAllocRAM() + loaderInfo.getAllocROM()); //$NON-NLS-1$
-			case 3 : /* Total Mem Used */
-				return "" + (loaderInfo.getUsedRAM() + loaderInfo.getUsedROM()); //$NON-NLS-1$
-			case 4 : /* startup time */
-				return "" + (info.getStartupTime()); //$NON-NLS-1$
-			case 5 : /* activation order */
-				return "" + info.getActivationOrder(); //$NON-NLS-1$
-			case 6 : /* activation time */
-				return "" + (int) (info.getTimestamp()); //$NON-NLS-1$
-			case 7 : /* class load time*/
-				return "" + (int) (info.getClassLoadTime()); //$NON-NLS-1$
-			case 8 : /* startup method time */
-				return "" + (int) (info.getStartupMethodTime()); //$NON-NLS-1$
-			case 9 : /* RAM alloc */
-				return "" + loaderInfo.getAllocRAM(); //$NON-NLS-1$
-			case 10 : /* RAM used */
-				return "" + loaderInfo.getUsedRAM(); //$NON-NLS-1$
-			case 11 : /* ROM alloc */
-				return "" + loaderInfo.getAllocROM(); //$NON-NLS-1$
-			case 12 : /* ROM used */
-				return "" + loaderInfo.getUsedROM(); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewSorter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewSorter.java
deleted file mode 100644
index 0b1f48c..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ActivePluginsViewSorter.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.text.Collator;
-import org.eclipse.core.runtime.internal.stats.BundleStats;
-import org.eclipse.core.tools.ISorter;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * Sorter used in the ActivePluginsView
- */
-public class ActivePluginsViewSorter extends ViewerSorter implements ISorter {
-	private boolean reversed = true;
-	private int columnNumber;
-	private Collator collator = Collator.getInstance();
-
-	// column headings: "Plug-in", "Classes", "Alloc", "Used", "Startup time", "Order", "Timestamp", "Class load time", "Startup method time", "RAM Alloc", "RAM Used", "ROM Alloc", "ROM Used" };
-	private int[][] SORT_ORDERS_BY_COLUMN = { //
-	{0}, /* Plugin */{1, 0}, /* Count */{2, 0}, /* Alloc */{3, 0}, /* Used */{4, 0}, /* Startup time */{5, 0}, /* Order */{6, 0}, /* timestamp */{7, 0}, /* Class load time */{8, 0}, /* Startup method time */{9, 0}, /* RAM Alloc */{10, 0}, /* RAM Used */{11, 0}, /*	ROM Alloc */{12, 0} /* ROM Used */
-	};
-
-	public ActivePluginsViewSorter(int columnNumber) {
-		this.columnNumber = columnNumber;
-		if (columnNumber == 0)
-			reversed = false;
-	}
-
-	/**
-	 * Compares two stats objects, sorting first by the main column of this sorter,
-	 * then by subsequent columns, depending on the column sort order.
-	 */
-	public int compare(Viewer viewer, Object o1, Object o2) {
-		BundleStats info1 = (BundleStats) o1;
-		BundleStats info2 = (BundleStats) o2;
-		int[] columnSortOrder = SORT_ORDERS_BY_COLUMN[columnNumber];
-		int result = 0;
-		for (int i = 0; i < columnSortOrder.length; ++i) {
-			result = compareColumnValue(columnSortOrder[i], info1, info2);
-			if (result != 0)
-				break;
-		}
-		return reversed ? -result : result;
-	}
-
-	/**
-	 * Compares two markers, based only on the value of the specified column.
-	 */
-	int compareColumnValue(int column, BundleStats info1, BundleStats info2) {
-		VMClassloaderInfo loaderInfo1 = VMClassloaderInfo.getClassloader(info1.getSymbolicName());
-		VMClassloaderInfo loaderInfo2 = VMClassloaderInfo.getClassloader(info2.getSymbolicName());
-		switch (column) {
-			case 0 : /* id */
-				return collator.compare(info1.getSymbolicName(), info2.getSymbolicName());
-			case 1 : /* Number Of classes loaded */
-				return info1.getClassLoadCount() - info2.getClassLoadCount();
-			case 2 : /* Total Mem Alloc */
-				return (loaderInfo1.getAllocRAM() + loaderInfo1.getAllocROM()) - (loaderInfo2.getAllocRAM() + loaderInfo2.getAllocROM());
-			case 3 : /* Total Mem Used */
-				return (loaderInfo1.getUsedRAM() + loaderInfo1.getUsedROM()) - (loaderInfo2.getUsedRAM() + loaderInfo2.getUsedROM());
-			case 4 : /* startup time */
-				return (int) (info1.getStartupTime() - info2.getStartupTime());
-			case 5 : /* actionvation order */
-				return info1.getActivationOrder() - info2.getActivationOrder();
-			case 6 : /* Activation time */
-				return (int) (info1.getTimestamp() - info2.getTimestamp());
-			case 7 : /* Class load time */
-				return (int) (info1.getClassLoadTime() - info2.getClassLoadTime());
-			case 8 : /* Startup method time */
-				return (int) (info1.getStartupMethodTime() - info2.getStartupMethodTime());
-			case 9 : /* RAM Alloc */
-				return loaderInfo1.getAllocRAM() - loaderInfo2.getAllocRAM();
-			case 10 : /* RAM Alloc */
-				return loaderInfo1.getUsedRAM() - loaderInfo2.getUsedRAM();
-			case 11 :
-				return loaderInfo1.getAllocROM() - loaderInfo2.getAllocROM();
-			case 12 :
-				return loaderInfo1.getUsedROM() - loaderInfo2.getUsedROM();
-		}
-		return 0;
-	}
-
-	public int getColumnNumber() {
-		return columnNumber;
-	}
-
-	public boolean isReversed() {
-		return reversed;
-	}
-
-	public void setReversed(boolean value) {
-		reversed = value;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.ISorter#states()
-	 */
-	public int states() {
-		return 3;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypePropertySource.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypePropertySource.java
deleted file mode 100644
index 44b7380..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypePropertySource.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003, 2004 Geoff Longman and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * Geoff Longman - Initial API and implementation
- * IBM - Tightening integration with existing Platform
- **********************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.ui.views.properties.*;
-
-/**
- * A read-only IPropertySource for Marker attributes.
- */
-public class ContentTypePropertySource implements IPropertySource, IAdaptable {
-	final static IPropertyDescriptor UNIQUE_ID = new TextPropertyDescriptor("id", "Unique ID");
-	final static IPropertyDescriptor NAME = new TextPropertyDescriptor("name", "Name");
-	final static IPropertyDescriptor PARENT_ID = new TextPropertyDescriptor("parent", "Parent ID");
-	final static IPropertyDescriptor FILE_NAMES = new TextPropertyDescriptor("file-names", "Associated file names");
-	final static IPropertyDescriptor FILE_EXTENSIONS = new TextPropertyDescriptor("file-extensions", "Associated file extensions");
-	final static IPropertyDescriptor DEFAULT_CHARSET = new TextPropertyDescriptor("charset", "Default charset");
-
-	final static IPropertyDescriptor[] PROPERTY_DESCRIPTORS = {UNIQUE_ID, NAME, PARENT_ID, FILE_NAMES, FILE_EXTENSIONS, DEFAULT_CHARSET};
-
-	protected IContentType type;
-
-	public ContentTypePropertySource(IContentType type) {
-		this.type = type;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()
-	 */
-	public Object getEditableValue() {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
-	 */
-	public IPropertyDescriptor[] getPropertyDescriptors() {
-		return PROPERTY_DESCRIPTORS;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)
-	 */
-	public Object getPropertyValue(Object id) {
-		if (id.equals(UNIQUE_ID.getId()))
-			return type.getId();
-		if (id.equals(NAME.getId()))
-			return type.getName();
-		if (id.equals(PARENT_ID.getId())) {
-			IContentType baseType = type.getBaseType();
-			return baseType == null ? null : baseType.getId();
-		}
-		if (id.equals(FILE_NAMES.getId()))
-			return toString(type.getFileSpecs(IContentType.FILE_NAME_SPEC));
-		if (id.equals(FILE_EXTENSIONS.getId()))
-			return toString(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC));
-		if (id.equals(DEFAULT_CHARSET.getId()))
-			return type.getDefaultCharset();
-		return null;
-	}
-
-	private Object toString(String[] fileNames) {
-		if (fileNames.length == 0)
-			return ""; //$NON-NLS-1$
-		StringBuffer result = new StringBuffer();
-		for (int i = 0; i < fileNames.length; i++) {
-			result.append(fileNames[i]);
-			result.append(',');
-		}
-		result.deleteCharAt(result.length() - 1);
-		return result.toString();
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(Object)
-	 */
-	public boolean isPropertySet(Object id) {
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(Object)
-	 */
-	public void resetPropertyValue(Object id) {
-		// do nothing
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(Object, Object)
-	 */
-	public void setPropertyValue(Object id, Object value) {
-		// do nothing
-	}
-
-	public boolean equals(Object obj) {
-		if (!(obj instanceof ContentTypePropertySource))
-			return false;
-		return type.getId().equals(((ContentTypePropertySource) obj).type.getId());
-	}
-
-	public int hashCode() {
-		return type.getId().hashCode();
-	}
-
-	public String toString() {
-		return type.getId();
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (adapter == IPropertySource.class)
-			return this;
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
deleted file mode 100644
index 5e75988..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tools.runtime;
-
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.core.internal.content.ContentTypeManager;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Content type Spy view. This view shows detailed information about the currently 
- * the content type registry . 
- * 
- */
-public class ContentTypeView extends SpyView implements IAdaptable {
-
-	private static class ContentTypeContentProvider extends AbstractTreeContentProvider {
-
-		public ContentTypeContentProvider() {
-			super(true);
-		}
-
-		protected boolean acceptInput(Object input) {
-			return true;
-		}
-
-		private TreeContentProviderNode addContentType(IContentType type, Set visited) {
-			ContentTypePropertySource wrapped = new ContentTypePropertySource(type);
-			if (!visited.add(wrapped))
-				return getNodeFor(wrapped);
-			IContentType base = type.getBaseType();
-			TreeContentProviderNode newNode = createNode(null, wrapped);
-			if (base == null) {
-				getRootNode().addChild(newNode);
-				return newNode;
-			}
-			TreeContentProviderNode baseTypeNode = addContentType(base, visited);
-			baseTypeNode.addChild(newNode);
-			return newNode;
-		}
-
-		private TreeContentProviderNode getNodeFor(Object type) {
-			return getRootNode().findNode(type);
-		}
-
-		protected void rebuild(Viewer viewer, Object input) {
-			IContentType[] allTypes = ContentTypeManager.getInstance().getAllContentTypes();
-			Set visited = new HashSet(allTypes.length);
-			for (int i = 0; i < allTypes.length; i++)
-				addContentType(allTypes[i], visited);
-		}
-	}
-
-	/** JFace's tree component used to present resource details. */
-	private AbstractTreeViewer viewer;
-
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new ContentTypeContentProvider());
-		viewer.setInput(""); //$NON-NLS-1$
-		getSite().setSelectionProvider(viewer);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
deleted file mode 100644
index ce178e7..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.ArrayList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.tools.CollapseAllAction;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.*;
-import org.eclipse.ui.part.ViewPart;
-import org.osgi.service.prefs.BackingStoreException;
-
-public class EclipsePreferencesView extends ViewPart {
-
-	private TreeViewer viewer;
-	private IAction collapseAllAction;
-
-	class ViewContentProvider implements IStructuredContentProvider, ITreeContentProvider {
-
-		private IEclipsePreferences invisibleRoot;
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			// do nothing
-		}
-
-		public Object[] getElements(Object parent) {
-			if (parent.equals(getViewSite())) {
-				if (invisibleRoot == null)
-					invisibleRoot = Platform.getPreferencesService().getRootNode();
-				return new Object[] {invisibleRoot};
-			}
-			return getChildren(parent);
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-
-		public Object getParent(Object child) {
-			if (child instanceof IEclipsePreferences)
-				return ((IEclipsePreferences) child).parent();
-			return null;
-		}
-
-		public Object[] getChildren(Object parent) {
-			ArrayList result = new ArrayList();
-			if (parent instanceof IEclipsePreferences) {
-				IEclipsePreferences node = (IEclipsePreferences) parent;
-				try {
-					String[] childrenNames = node.childrenNames();
-					for (int i = 0; childrenNames != null && i < childrenNames.length; i++)
-						result.add(node.node(childrenNames[i]));
-					String[] keys = node.keys();
-					for (int i = 0; i < keys.length; i++)
-						result.add(keys[i] + '=' + node.get(keys[i], "")); //$NON-NLS-1$
-				} catch (BackingStoreException e) {
-					e.printStackTrace();
-				}
-			}
-			return result.toArray(new Object[result.size()]);
-		}
-
-		public boolean hasChildren(Object parent) {
-			if (parent instanceof IEclipsePreferences)
-				try {
-					IEclipsePreferences node = (IEclipsePreferences) parent;
-					return node.childrenNames().length != 0 || node.keys().length != 0;
-				} catch (BackingStoreException e) {
-					e.printStackTrace();
-				}
-			return false;
-		}
-	}
-
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			String result = obj.toString();
-			if (obj instanceof IEclipsePreferences) {
-				IEclipsePreferences node = (IEclipsePreferences) obj;
-				result = node.name();
-				if (result.length() == 0)
-					result = "<root>"; //$NON-NLS-1$
-			}
-			return result;
-		}
-
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof IEclipsePreferences)
-				imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-	public EclipsePreferencesView() {
-		super();
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setSorter(new ViewerSorter());
-		viewer.setInput(getViewSite());
-		getViewSite().setSelectionProvider(viewer);
-		IActionBars bars = getViewSite().getActionBars();
-		collapseAllAction = new CollapseAllAction(viewer);
-		bars.getToolBarManager().add(collapseAllAction);
-		bars.updateActionBars();
-	}
-
-	public void dispose() {
-		super.dispose();
-		collapseAllAction = null;
-	}
-
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
deleted file mode 100644
index 510129d..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.text.Collator;
-import java.util.Arrays;
-import java.util.Comparator;
-import org.eclipse.core.runtime.PerformanceStats;
-import org.eclipse.core.tools.ISorter;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-public class EventsSorter extends ViewerSorter implements ISorter {
-	protected boolean reversed = false;
-	protected int columnNumber;
-
-	protected int[][] SORT_ORDERS_BY_COLUMN = {
-			// Event
-			{EventsView.COLUMN_EVENT, EventsView.COLUMN_BLAME, EventsView.COLUMN_CONTEXT},
-			// Blame
-			{EventsView.COLUMN_BLAME, EventsView.COLUMN_EVENT, EventsView.COLUMN_CONTEXT},
-			// Context
-			{EventsView.COLUMN_CONTEXT, EventsView.COLUMN_EVENT, EventsView.COLUMN_BLAME},
-			// Count
-			{EventsView.COLUMN_COUNT, EventsView.COLUMN_EVENT, EventsView.COLUMN_BLAME, EventsView.COLUMN_CONTEXT},
-			// Time
-			{EventsView.COLUMN_TIME, EventsView.COLUMN_EVENT, EventsView.COLUMN_BLAME, EventsView.COLUMN_CONTEXT}};
-
-	public EventsSorter(int columnNumber) {
-		this.columnNumber = columnNumber;
-	}
-
-	/**
-	 * Returns the number of the column by which this is sorting.
-	 */
-	public int getColumnNumber() {
-		return columnNumber;
-	}
-
-	/**
-	 * Returns true for descending, or false for ascending sorting order.
-	 */
-	public boolean isReversed() {
-		return reversed;
-	}
-
-	/**
-	 * Sets the sorting order.
-	 */
-	public void setReversed(boolean newReversed) {
-		reversed = newReversed;
-	}
-
-	/*
-	 * Overrides method from ViewerSorter
-	 */
-	public void sort(final Viewer viewer, Object[] elements) {
-		Comparator comparator = new Comparator() {
-			Collator c = Collator.getInstance();
-
-			/**
-			 * Compares two stats objects, sorting first by the main column of this sorter,
-			 * then by subsequent columns, depending on the column sort order.
-			 */
-			public int compare(Object o1, Object o2) {
-				PerformanceStats s1 = (PerformanceStats) o1;
-				PerformanceStats s2 = (PerformanceStats) o2;
-				//always sort failures above non-failures
-				if (s1.isFailure() && !s2.isFailure())
-					return -1;
-				if (s2.isFailure() && !s1.isFailure())
-					return 1;
-				int[] columnSortOrder = SORT_ORDERS_BY_COLUMN[columnNumber];
-				int result = 0;
-				for (int i = 0; i < columnSortOrder.length; ++i) {
-					result = compareColumnValue(columnSortOrder[i], s1, s2);
-					if (result != 0)
-						break;
-				}
-				if (reversed)
-					result = -result;
-				return result;
-			}
-
-			/**
-			 * Compares two markers, based only on the value of the specified column.
-			 */
-			int compareColumnValue(int column, PerformanceStats s1, PerformanceStats s2) {
-				switch (column) {
-					case EventsView.COLUMN_EVENT:
-						return c.compare(s1.getEvent(), s2.getEvent());
-					case EventsView.COLUMN_BLAME:
-						return c.compare(s1.getBlameString(), s2.getBlameString());
-					case EventsView.COLUMN_CONTEXT:
-						String name1 = s1.getContext() == null ? "" : s1.getContext(); //$NON-NLS-1$
-						String name2 = s2.getContext() == null ? "" : s2.getContext(); //$NON-NLS-1$
-						return c.compare(name1, name2);
-					case EventsView.COLUMN_COUNT:
-						return s2.getRunCount() - s1.getRunCount();
-					case EventsView.COLUMN_TIME:
-						return (int)(s2.getRunningTime() - s1.getRunningTime());
-				}
-				return 0;
-			}
-		};
-		Arrays.sort(elements, comparator);
-	}
-
-	public int states() {
-		return 2;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
deleted file mode 100644
index c3928a9..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tools.runtime;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.core.runtime.PerformanceStats;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.WorkbenchPart;
-
-/**
- * Stats View
- * 
- * This spy utility will display globally available statistical
- * information on various plug-ins.  The statistics available are those that
- * are available through the PluginStats class of
- * org.eclipse.core.resource/src/org/eclipse/core/internal/utils
- * 
- * Currently available information includes:
- * 	the id of the statistic 
- * 	the number of notification this plug-in received
- * 	the amount of time spent receiving these notifications
- * 	the number of build requests on this plug-in
- * 	the amount of time spent building this plug-in
- * 
- * Build statistics will only be displayed if the tracing/debug option
- * "build/invoking" in the plug-in org.eclipse.core.resources is set to 
- * true.
- */
-
-public class EventsView extends TableWithTotalView {
-	class EventsViewContentProvider implements ITreeContentProvider {
-		/**
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
-		public void dispose() {
-			// do nothing
-		}
-
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */
-		public Object[] getChildren(Object parentElement) {
-			return new Object[0];
-		}
-
-		/** @see IStructuredContentProvider#getElements(Object) */
-		public Object[] getElements(Object input) {
-			return PerformanceStats.getAllStats();
-		}
-
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */
-		public boolean hasChildren(Object element) {
-			return false;
-		}
-
-		/**
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
-		public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
-			// do nothing
-		}
-	}
-
-	/**
-	 * Class to display the labels for the stats view table.
-	 */
-	class EventsViewLabelProvider extends LabelProvider implements ITableLabelProvider, IColorProvider {
-
-		/**
-		 * @see ITableLabelProvider#getColumnImage(Object, int)
-		 */
-		public Image getColumnImage(Object arg0, int arg1) {
-			return null;
-		}
-
-		/**
-		 * @see ITableLabelProvider#getColumnText(Object, int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			if (!(element instanceof PerformanceStats)) {
-				return Messages.stats_badStat;
-			}
-			PerformanceStats stats = (PerformanceStats) element;
-			switch (columnIndex) {
-				case COLUMN_EVENT :
-					return stats.getEvent();
-				case COLUMN_BLAME :
-					return stats.getBlameString();
-				case COLUMN_CONTEXT :
-					return stats.getContext(); //$NON-NLS-1$
-				case COLUMN_COUNT :
-					return Integer.toString(stats.getRunCount());
-				case COLUMN_TIME :
-					return Long.toString(stats.getRunningTime());
-			}
-			return Messages.stats_badColumn;
-		}
-
-		public Color getForeground(Object element) {
-			if (!(element instanceof PerformanceStats)) {
-				return null;
-			}
-			PerformanceStats stats = (PerformanceStats) element;
-			if (stats.isFailure())
-				return Display.getDefault().getSystemColor(SWT.COLOR_RED);
-			return null;
-		}
-
-		public Color getBackground(Object element) {
-			return null;
-		}
-	}
-	
-	class StatsListener extends PerformanceStats.PerformanceListener {
-		private void asyncExec(Runnable runnable) {
-			final Control control = viewer.getControl();
-			if (control == null || control.isDisposed())
-				return;
-			final Display display = control.getDisplay();
-			if (display.isDisposed())
-				return;
-			display.asyncExec(runnable);
-		}
-		/**
-		 * @see PerformanceStats.PerformanceListener#eventsOccurred(PerformanceStats[])
-		 */
-		public void eventsOccurred(final PerformanceStats[] event) {
-			asyncExec(new Runnable() {
-				public void run() {
-					if (!getViewer().getControl().isDisposed())
-						getViewer().refresh();
-				}
-			});
-		}
-		public void eventFailed(final PerformanceStats event, final long duration) {
-			asyncExec(new Runnable() {
-				public void run() {
-					String msg = "Performance event failure: " + event.getEvent() + " blame: " + event.getBlameString() + " context: " + event.getContext()+ " duration: " + duration; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					getViewSite().getActionBars().getStatusLineManager().setErrorMessage(msg);
-//					MessageDialog.openError(getSite().getShell(), "Performance failure", msg);
-				}
-			});
-		}
-	}
-
-	// Table of Column Indices
-	public final static int COLUMN_EVENT = 0;
-	public final static int COLUMN_BLAME = 1;
-	public final static int COLUMN_CONTEXT = 2;
-	public final static int COLUMN_COUNT = 3;
-	public final static int COLUMN_TIME = 4;
-
-	private String columnHeaders[] = {
-			Messages.stats_eventHeader, //
-			Messages.stats_blameHeader, //
-			Messages.stats_contextHeader, //
-			Messages.stats_countHeader, //
-			Messages.stats_timeHeader, //
-	};
-	private ColumnLayoutData columnLayouts[] = {
-			new ColumnWeightData(80), // event
-			new ColumnWeightData(180), // blame
-			new ColumnWeightData(40), // context
-			new ColumnPixelData(65), // count 
-			new ColumnPixelData(65)}; // total time
-	private CopyStructuredSelectionAction copyAction;
-	private Action resetAction;
-	private final StatsListener statsListener = new StatsListener();
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#computeTotalLine(java.util.Iterator)
-	 */
-	protected String[] computeTotalLine(Iterator iter) {
-		String[] totals = new String[getColumnHeaders().length];
-		int count = 0;
-		int events = 0;
-		int time = 0;
-		if (!iter.hasNext()) {
-			Object[] elements = ((ITreeContentProvider) viewer.getContentProvider()).getElements(viewer.getInput());
-			iter = Arrays.asList(elements == null ? new Object[0] : elements).iterator();
-		}
-		while (iter.hasNext()) {
-			PerformanceStats element = (PerformanceStats) iter.next();
-			events += element.getRunCount();
-			time += element.getRunningTime();
-			count++;
-		}
-		totals[0] = "Total: " + count; //$NON-NLS-1$
-		totals[2] = "" + events; //$NON-NLS-1$
-		totals[3] = "" + time; //$NON-NLS-1$
-		return totals;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createActions()
-	 */
-	protected void createActions() {
-		resetAction = new Action("Reset") { //$NON-NLS-1$
-			public void run() {
-				PerformanceStats.clear();
-				getViewer().setInput("");
-				updateTotals();
-			}
-		};
-		resetAction.setToolTipText("Reset all event statistics"); //$NON-NLS-1$
-		resetAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("clear.gif")); //$NON-NLS-1$
-		// Add copy selection action
-
-		IActionBars bars = getViewSite().getActionBars();
-		copyAction = new CopyStructuredSelectionAction(new TableSelectionProviderDecorator(viewer));
-		copyAction.registerAsGlobalAction(bars);
-		bars.updateActionBars();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createContextMenu()
-	 */
-	protected void createContextMenu() {
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(resetAction);
-		menuMgr.add(copyAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	/**
-	 * @see IWorkbenchPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		PerformanceStats.addListener(statsListener);
-		viewer.setInput(""); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createToolbar()
-	 */
-	protected void createToolbar() {
-		IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
-		mgr.add(resetAction);
-	}
-
-	/**
-	 * @see WorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		PerformanceStats.removeListener(statsListener);
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getColumnHeaders()
-	 */
-	protected String[] getColumnHeaders() {
-		return columnHeaders;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getColumnLayout()
-	 */
-	protected ColumnLayoutData[] getColumnLayout() {
-		return columnLayouts;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getContentProvider()
-	 */
-	protected ITreeContentProvider getContentProvider() {
-		return new EventsViewContentProvider();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getLabelProvider()
-	 */
-	protected ITableLabelProvider getLabelProvider() {
-		return new EventsViewLabelProvider();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getSorter(int)
-	 */
-	protected ViewerSorter getSorter(int column) {
-		return new EventsSorter(column);
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getStatusLineMessage(Object)
-	 */
-	protected String getStatusLineMessage(Object element) {
-		if (!(element instanceof PerformanceStats))
-			return ""; //$NON-NLS-1$
-		return  ((PerformanceStats) element).getBlameString();
-	}
-
-	protected TableTreeViewer getViewer() {
-		return viewer;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesView.java
deleted file mode 100644
index 9bd84f3..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesView.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.core.runtime.internal.stats.ClassStats;
-import org.eclipse.core.runtime.internal.stats.StatsManager;
-import org.eclipse.core.tools.CoreToolsPlugin;
-import org.eclipse.core.tools.TableWithTotalView;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-
-/**
- * View that display information about classes
- */
-public class LoadedClassesView extends TableWithTotalView {
-	private Action displayStackAction;
-
-	public static String VIEW_ID = LoadedClassesView.class.getName();
-	private String[] columnHeaders = new String[] {"Class", "Order", "Memory", "Plug-in", "Timestamp", "RAM", "ROM"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-	private ColumnLayoutData[] columnLayout = new ColumnLayoutData[] {new ColumnWeightData(500), new ColumnWeightData(100), new ColumnWeightData(100), new ColumnWeightData(200), new ColumnPixelData(0), new ColumnPixelData(0), new ColumnPixelData(0)};
-
-	protected String[] getColumnHeaders() {
-		return columnHeaders;
-	}
-
-	protected ColumnLayoutData[] getColumnLayout() {
-		return columnLayout;
-	}
-
-	public void createPartControl(Composite parent) {
-		if (!StatsManager.MONITOR_CLASSES) {
-			Text text = new Text(parent, 0);
-			text.setText("Class monitoring is not enabled."); //$NON-NLS-1$
-			return;
-		}
-		super.createPartControl(parent);
-		viewer.setSelection(StructuredSelection.EMPTY);
-	}
-
-	protected ITreeContentProvider getContentProvider() {
-		return new LoadedClassesViewContentProvider();
-	}
-
-	protected ITableLabelProvider getLabelProvider() {
-		return new LoadedClassesViewLabelProvider();
-	}
-
-	protected ViewerSorter getSorter(int column) {
-		return new LoadedClassesViewSorter(column);
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getStatusLineMessage(Object)
-	 */
-	protected String getStatusLineMessage(Object element) {
-		return ""; //$NON-NLS-1$
-	}
-
-	protected TableTreeViewer getViewer() {
-		return viewer;
-	}
-
-	protected void createActions() {
-		displayStackAction = new Action("Stack &Trace") { //$NON-NLS-1$
-			public void run() {
-				try {
-					StackTraceView view = (StackTraceView) getSite().getPage().showView(StackTraceView.VIEW_ID);
-					ClassStats clazz = (ClassStats) ((IStructuredSelection) getViewer().getSelection()).getFirstElement();
-					if (clazz == null)
-						return;
-					view.setInput(StatsManager.TRACE_FILENAME, clazz.getTraceStart(), clazz.getTraceEnd());
-				} catch (PartInitException e) {
-					e.printStackTrace();
-				}
-			}
-		};
-		displayStackAction.setToolTipText("Display the class activation stack trace"); //$NON-NLS-1$
-		displayStackAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("trace.gif")); //$NON-NLS-1$
-	}
-
-	protected void createToolbar() {
-		IToolBarManager manager = getViewSite().getActionBars().getToolBarManager();
-		manager.add(displayStackAction);
-	}
-
-	public void setInput(Object input) {
-		viewer.setInput(input);
-		viewer.setSelection(StructuredSelection.EMPTY);
-	}
-
-	protected String[] computeTotalLine(Iterator iterator) {
-		String[] totals = new String[getColumnHeaders().length];
-		int ramTotal = 0;
-		int romTotal = 0;
-		int jitTotal = 0;
-		int count = 0;
-		if (!iterator.hasNext()) {
-			Object[] elements = ((ITreeContentProvider) viewer.getContentProvider()).getElements(viewer.getInput());
-			iterator = Arrays.asList(elements == null ? new Object[0] : elements).iterator();
-		}
-		while (iterator.hasNext()) {
-			ClassStats clazz = (ClassStats) iterator.next();
-			VMClassloaderInfo loader = VMClassloaderInfo.getClassloader(clazz.getClassloader().getId());
-			VMClassInfo classInfo = loader.getClass(clazz.getClassName());
-			ramTotal += classInfo.getRAMSize();
-			romTotal += classInfo.getROMSize();
-			jitTotal += classInfo.getJitSize();
-			count++;
-		}
-		totals[0] = "Total: " + count; //$NON-NLS-1$
-		totals[2] = Integer.toString(ramTotal + romTotal);
-		totals[5] = Integer.toString(ramTotal);
-		totals[6] = Integer.toString(romTotal);
-		return totals;
-	}
-
-	public void dispose() {
-		if (displayStackAction != null)
-			displayStackAction.setImageDescriptor(null);
-	}
-
-	protected void createContextMenu() {
-		MenuManager manager = new MenuManager();
-		manager.setRemoveAllWhenShown(true);
-		manager.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager mgr) {
-				fillContextMenu(mgr);
-			}
-		});
-		Menu menu = manager.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(manager, viewer);
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-		manager.add(displayStackAction);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewContentProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewContentProvider.java
deleted file mode 100644
index ab12e26..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewContentProvider.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.*;
-import org.eclipse.core.runtime.internal.stats.*;
-import org.eclipse.core.tools.IFlattable;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Content provider for the LoadedClassesView
- */
-public class LoadedClassesViewContentProvider implements ITreeContentProvider, IFlattable {
-	private boolean flat;
-	private String inputNames[] = new String[0];
-
-	public void setFlat(boolean mode) {
-		flat = mode;
-	}
-
-	public Object[] getChildren(Object element) {
-		if (flat || !(element instanceof ClassStats))
-			return new Object[0];
-		ArrayList result = new ArrayList(10);
-		for (Iterator i = ((ClassStats) element).getLoadedClasses().iterator(); i.hasNext();) {
-			ClassStats child = (ClassStats) i.next();
-			if (filterChildren(child, inputNames))
-				result.add(child);
-		}
-		return result.toArray(new Object[result.size()]);
-	}
-
-	private boolean filterChildren(ClassStats element, String[] filters) {
-		String name = element.getClassloader().getId();
-		for (int i = 0; i < filters.length; i++)
-			if (filters[i].equals(name))
-				return true;
-		ArrayList children = element.getLoadedClasses();
-		for (Iterator i = children.iterator(); i.hasNext();)
-			if (filterChildren((ClassStats) i.next(), filters))
-				return true;
-		return false;
-	}
-
-	public Object getParent(Object element) {
-		if (flat || !(element instanceof ClassStats))
-			return null;
-		return ((ClassStats) element).getLoadedBy();
-	}
-
-	public boolean hasChildren(Object element) {
-		if (flat || !(element instanceof ClassStats))
-			return false;
-		for (Iterator i = ((ClassStats) element).getLoadedClasses().iterator(); i.hasNext();)
-			if (filterChildren((ClassStats) i.next(), inputNames))
-				return true;
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		if (!StatsManager.MONITOR_CLASSES)
-			return null;
-		if (inputElement instanceof Object[]) {
-			Object[] elements = (Object[]) inputElement;
-			if (elements.length == 0 || !(elements[0] instanceof BundleStats))
-				return null;
-			Set result = new HashSet(51);
-			for (int i = 0; i < elements.length; i++) {
-				ClassStats[] classes = getClasses(((BundleStats) elements[i]).getSymbolicName());
-				result.addAll(Arrays.asList(classes));
-			}
-			return result.toArray(new Object[result.size()]);
-		}
-		return null;
-	}
-
-	private ClassStats[] getClasses(String id) {
-		ClassloaderStats loader = ClassloaderStats.getLoader(id);
-		if (loader == null)
-			return new ClassStats[0];
-		ClassStats[] classes = loader.getClasses();
-		if (flat)
-			return classes;
-		ArrayList result = new ArrayList();
-		for (int i = 0; i < classes.length; i++) {
-			ClassStats target = classes[i];
-			while (target.getLoadedBy() != null)
-				target = target.getLoadedBy();
-			result.add(target);
-		}
-		return (ClassStats[]) result.toArray(new ClassStats[result.size()]);
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (oldInput == newInput)
-			return;
-		if (newInput == null) {
-			inputNames = new String[0];
-			return;
-		}
-		Object[] list = (Object[]) newInput;
-		inputNames = new String[list.length];
-		for (int i = 0; i < list.length; i++)
-			inputNames[i] = ((BundleStats) list[i]).getSymbolicName();
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewLabelProvider.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewLabelProvider.java
deleted file mode 100644
index 3625c64..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewLabelProvider.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import org.eclipse.core.runtime.internal.stats.ClassStats;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * LabelProvider for the LoadedClassesView
- */
-
-public class LoadedClassesViewLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-	public Image getColumnImage(Object element, int columnIndex) {
-		return null;
-	}
-
-	public String getColumnText(Object element, int columnIndex) {
-		if (!(element instanceof ClassStats))
-			return "not a class info"; //$NON-NLS-1$
-		ClassStats clazz = (ClassStats) element;
-		VMClassloaderInfo loader = VMClassloaderInfo.getClassloader(clazz.getClassloader().getId());
-		VMClassInfo classInfo = loader.getClass(clazz.getClassName());
-
-		switch (columnIndex) {
-			case 0 : //"Class name"
-				return clazz.getClassName() + (clazz.isStartupClass() ? "*" : ""); //$NON-NLS-1$ //$NON-NLS-2$
-			case 1 : //		"Loading order",
-				return clazz.getLoadOrder() == -2 ? "<boot>" : "" + clazz.getLoadOrder(); //$NON-NLS-1$ //$NON-NLS-2$
-			case 2 : //		"Memory",
-				return classInfo == null ? "" : "" + (classInfo.getRAMSize() + classInfo.getROMSize()); //$NON-NLS-1$ //$NON-NLS-2$
-			case 3 : //		"Plug-in Id", 
-				return clazz.getClassloader().getId();
-			case 4 : //		"Activation time",
-				return "" + clazz.getTimestamp(); //$NON-NLS-1$
-			case 5 : //		"RAM",
-				return classInfo == null ? "" : "" + classInfo.getRAMSize(); //$NON-NLS-1$ //$NON-NLS-2$
-			case 6 : //		"ROM"
-				return classInfo == null ? "" : "" + classInfo.getROMSize(); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewSorter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewSorter.java
deleted file mode 100644
index 8d87d3c..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/LoadedClassesViewSorter.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.text.Collator;
-import org.eclipse.core.runtime.internal.stats.ClassStats;
-import org.eclipse.core.tools.ISorter;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-public class LoadedClassesViewSorter extends ViewerSorter implements ISorter {
-	private boolean reversed = true;
-	private int columnNumber;
-	private Collator collator = Collator.getInstance();
-
-	//	columnHeaders = new String[]{ "Class", "Order", "Memory", "Plug-in", "Timestamp", "RAM", "ROM" };
-	private int[][] SORT_ORDERS_BY_COLUMN = { //
-	{0, 3}, /* Class */{1, 0, 3}, /* Order */{2, 0, 3}, /* Memory*/{3, 0}, /* Plugin */{4, 0, 3}, /* Timestamp */{5, 0, 3}, /* RAM */{6, 0, 3}, /* ROM */
-	};
-
-	public LoadedClassesViewSorter(int columnNumber) {
-		this.columnNumber = columnNumber;
-		if (columnNumber == 0)
-			reversed = false;
-	}
-
-	/**
-	 * Compares two stats objects, sorting first by the main column of this sorter,
-	 * then by subsequent columns, depending on the column sort order.
-	 */
-	public int compare(Viewer viewer, Object o1, Object o2) {
-		ClassStats class1 = (ClassStats) o1;
-		ClassStats class2 = (ClassStats) o2;
-
-		int[] columnSortOrder;
-		columnSortOrder = SORT_ORDERS_BY_COLUMN[columnNumber];
-
-		int result = 0;
-		for (int i = 0; i < columnSortOrder.length; ++i) {
-			result = compareColumnValue(columnSortOrder[i], class1, class2);
-			if (result != 0)
-				break;
-		}
-		if (reversed)
-			result = -result;
-		return result;
-	}
-
-	/**
-	 * Compares two markers, based only on the value of the specified column.
-	 */
-	private int compareColumnValue(int column, ClassStats class1, ClassStats class2) {
-		VMClassloaderInfo loader = VMClassloaderInfo.getClassloader(class1.getClassloader().getId());
-		VMClassInfo classInfo1 = loader.getClass(class1.getClassName());
-		loader = VMClassloaderInfo.getClassloader(class2.getClassloader().getId());
-		VMClassInfo classInfo2 = loader.getClass(class2.getClassName());
-		switch (column) {
-			case 0 : { /* class name */
-				String package1 = getPackageName(class1.getClassName());
-				String package2 = getPackageName(class2.getClassName());
-				int result = collator.compare(package1, package2);
-				return result != 0 ? result : collator.compare(class1.getClassName(), class2.getClassName());
-			}
-			case 1 : /*Loading order */
-				return class1.getLoadOrder() - class2.getLoadOrder();
-			case 2 : /* Memory */
-				return (classInfo1.getRAMSize() + classInfo1.getROMSize()) - (classInfo2.getRAMSize() + classInfo2.getROMSize());
-			case 3 : /* Plugin Id */
-				return collator.compare(class1.getClassloader().getId(), class2.getClassloader().getId());
-			case 4 : /* Activation time */
-				return (int) (class1.getTimestamp() - class2.getTimestamp());
-			case 5 : /* RAM */
-				return classInfo1.getRAMSize() - classInfo2.getRAMSize();
-			case 6 : /* ROM */
-				return classInfo1.getROMSize() - classInfo2.getROMSize();
-		}
-		return 0;
-	}
-
-	private String getPackageName(String className) {
-		int index = className.lastIndexOf('.');
-		return index == -1 ? "" : className.substring(0, index); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the number of the column by which this is sorting.
-	 */
-	public int getColumnNumber() {
-		return columnNumber;
-	}
-
-	/**
-	 * Returns true for descending, or false for ascending sorting order.
-	 */
-	public boolean isReversed() {
-		return reversed;
-	}
-
-	/**
-	 * Sets the sorting order.
-	 */
-	public void setReversed(boolean value) {
-		reversed = value;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.ISorter#states()
-	 */
-	public int states() {
-		return 3;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDataSheetView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDataSheetView.java
deleted file mode 100644
index 0dcc924..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDataSheetView.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.internal.stats.*;
-import org.eclipse.core.tools.BaseTextView;
-import org.eclipse.core.tools.DeepSize;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.osgi.framework.Bundle;
-
-/**
- * View displaying information about the resources for a given plugin
- *
- */
-public class PluginDataSheetView extends BaseTextView implements ISelectionListener {
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = PluginDataSheetView.class.getName();
-
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		getViewSite().getPage().addSelectionListener(this);
-	}
-
-	public void dispose() {
-		getViewSite().getPage().removeSelectionListener(this);
-	}
-
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (selection instanceof IStructuredSelection) {
-			Object first = ((IStructuredSelection) selection).getFirstElement();
-			if (first != null && first instanceof BundleStats) {
-				viewer.getDocument().set(printStats((BundleStats) first));
-				viewer.refresh();
-			}
-		}
-	}
-
-	private String printStats(BundleStats descriptor) {
-		StringBuffer result = new StringBuffer(200);
-		ClassloaderStats classloader = ClassloaderStats.getLoader(descriptor.getSymbolicName());
-		printResourceBundleStats(result, classloader == null ? null : classloader.getBundles(), descriptor);
-		result.append('\n');
-		printExtensionLoadingStats(result, Platform.getExtensionRegistry().getExtensions(descriptor.getSymbolicName()));
-		return result.toString();
-	}
-
-	private void printExtensionLoadingStats(StringBuffer result, IExtension[] extensions) {
-		if (extensions.length == 0) {
-			result.append("No extensions contributed by this plug-in\n"); //$NON-NLS-1$
-			return;
-		}
-		result.append("Extension loading stats:\n"); //$NON-NLS-1$
-		for (int i = 0; i < extensions.length; i++) {
-			IExtension extension = extensions[i];
-			result.append('\t');
-			result.append(extension.getExtensionPointUniqueIdentifier());
-			result.append(" <- "); //$NON-NLS-1$
-			result.append(extension.getUniqueIdentifier());
-			result.append('\n');
-		}
-	}
-
-	private void printResourceBundleStats(StringBuffer result, ArrayList bundles, BundleStats info) {
-		if (bundles == null || bundles.size() == 0) {
-			result.append("No resources loaded by this plug-in\n"); //$NON-NLS-1$
-			return;
-		}
-		result.append("Resource bundles stats:\n"); //$NON-NLS-1$
-		for (Iterator iterator = bundles.iterator(); iterator.hasNext();) {
-			ResourceBundleStats resource = (ResourceBundleStats) iterator.next();
-			result.append('\t');
-			result.append(resource.getFileName());
-			result.append("\tElements: #" + resource.getKeyCount()); //$NON-NLS-1$
-			long totalSize;
-			// if hashsize == 0, we should compute the total size using DeepSize
-			if (resource.getHashSize() == 0) {
-				DeepSize.reset();
-				DeepSize calculator = new DeepSize();
-				Bundle bundle = Platform.getBundle(info.getSymbolicName());
-				if (bundle != null)
-					calculator.deepSize(Platform.getResourceBundle(bundle));
-				totalSize = calculator.getSize();
-			} else
-				totalSize = resource.getTotalSize();
-			result.append(" \ttotal: " + totalSize); //$NON-NLS-1$
-			result.append("b \tkeys: " + resource.getKeySize()); //$NON-NLS-1$
-			result.append("b \tvalues: " + resource.getValueSize() + "b\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
deleted file mode 100644
index 324ff54..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.*;
-import org.eclipse.core.tools.Messages;
-import org.eclipse.osgi.service.resolver.BundleDescription;
-import org.eclipse.osgi.util.NLS;
-
-/**
- *  This class is used to build up a dependency graph.  The full dependency
- *  graph is just a hash table containing PluginDependencyGraphNode's.  Each
- *  node represents one plug-in.  They are retrievable based on the plug-in
- *  id.  Each node has a list of all the plug-in ids for plug-ins that this
- *  plug-in requires (children) and another list of all the plug-in ids that
- *  require this particular plug-in (ancestors).
- */
-public class PluginDependencyGraphNode {
-
-	private BundleDescription descriptor = null;
-	private Set children = new HashSet();
-	private Set ancestors = new HashSet();
-
-	/**
-	 * Constructor for this class. Each node is associated with a plug-in so 
-	 * we accept the plug-in descriptor here and keep it around for later use.
-	 */
-	public PluginDependencyGraphNode(BundleDescription descriptor) {
-		this.descriptor = descriptor;
-	}
-
-	/**
-	 * Add the given node to this node's set of ancestors.
-	 */
-	public void addAncestor(PluginDependencyGraphNode ancestor) {
-		ancestors.add(ancestor);
-	}
-
-	/**
-	 * Add the given node to this node's set of children.
-	 */
-	public void addChild(PluginDependencyGraphNode child) {
-		children.add(child);
-	}
-
-	/**
-	 * Return the identifier for this node. It is the unique plug-in identifier
-	 * for this object's plug-in descriptor.
-	 * 
-	 * @return the plug-in id
-	 */
-	public String getId() {
-		return descriptor.getSymbolicName();
-	}
-
-	/**
-	 * Return a string representation of this object. It should be nicely formated
-	 * and include the list of children and ancestor nodes.
-	 */
-	public String toDeepString() {
-		StringBuffer buffer = new StringBuffer();
-
-		// write ID
-		writeln(buffer, 0, NLS.bind(Messages.stats_pluginid, descriptor.getSymbolicName()));
-
-		// write ancestors
-		if (ancestors.size() == 0) {
-			writeln(buffer, 1, Messages.depend_noParentPlugins);
-		} else {
-			writeln(buffer, 1, Messages.depend_requiredBy);
-			for (Iterator i = ancestors.iterator(); i.hasNext();) {
-				PluginDependencyGraphNode ancestor = (PluginDependencyGraphNode) i.next();
-				writeln(buffer, 2, ancestor.getId());
-			}
-		}
-
-		// write children
-		if (children.size() == 0) {
-			writeln(buffer, 1, Messages.depend_noChildrenPlugins);
-		} else {
-			writeln(buffer, 1, Messages.depend_requires);
-			for (Iterator i = children.iterator(); i.hasNext();) {
-				PluginDependencyGraphNode child = (PluginDependencyGraphNode) i.next();
-				writeln(buffer, 2, child.getId());
-			}
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 * Ultility method to write a string and cr to the given buffer. Indent the
-	 * text the given number of tabs.
-	 */
-	private void writeln(StringBuffer buffer, int indent, String text) {
-		for (int i = 0; i < indent; i++)
-			buffer.append('\t');
-		buffer.append(text);
-		buffer.append('\n');
-	}
-
-	/**
-	 * @see java.lang.Object#equals(Object)
-	 */
-	public boolean equals(Object obj) {
-		if (obj == null)
-			return false;
-		if (!(obj instanceof PluginDependencyGraphNode))
-			return false;
-		PluginDependencyGraphNode other = (PluginDependencyGraphNode) obj;
-		return this.getId().equals(other.getId());
-	}
-
-	/**
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return getId().hashCode();
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append("PluginDependencyGraphNode("); //$NON-NLS-1$
-		buffer.append(descriptor.getSymbolicName());
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyPerspective.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyPerspective.java
deleted file mode 100644
index ba8e2d6..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyPerspective.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import org.eclipse.ui.*;
-
-/**
- * A perspective for working with metadata files.
- */
-public class PluginDependencyPerspective implements IPerspectiveFactory {
-	/**
-	 * Creates a layout containing the following views:
-	 * 	PluginListView and
-	 * 	PluginDependencyView
-	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		String editorAreaId = layout.getEditorArea();
-
-		layout.setEditorAreaVisible(false);
-
-		IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, (float) 0.30, editorAreaId); //$NON-NLS-1$
-		left.addView(PluginListView.VIEW_ID);
-
-		IFolderLayout right = layout.createFolder("right", IPageLayout.RIGHT, (float) 0.7, editorAreaId); //$NON-NLS-1$
-		right.addView(PluginDependencyView.VIEW_ID);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyView.java
deleted file mode 100644
index 97f46cc..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyView.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.internal.stats.BundleStats;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.service.resolver.*;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.*;
-
-public class PluginDependencyView extends SpyView implements ISelectionListener {
-
-	private TextViewer viewer;
-	private Map dependencyGraph = null;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = PluginDependencyView.class.getName();
-
-	/**
-	 * @see IWorkbenchPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.WRAP | SWT.READ_ONLY);
-		viewer.setDocument(new Document());
-
-		IActionBars bars = getViewSite().getActionBars();
-
-		final GlobalAction clearOutputAction = new ClearTextAction(viewer.getDocument());
-		clearOutputAction.registerAsGlobalAction(bars);
-
-		final GlobalAction selectAllAction = new SelectAllAction(viewer);
-		selectAllAction.registerAsGlobalAction(bars);
-
-		// Delete action shortcuts are not captured by the workbench
-		// so we need our key binding service to handle Delete keystrokes for us
-		this.viewer.getControl().addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				if (e.character == SWT.DEL)
-					clearOutputAction.run();
-			}
-		});
-
-		GlobalAction copyAction = new CopyTextSelectionAction(viewer);
-		copyAction.registerAsGlobalAction(bars);
-
-		bars.getToolBarManager().add(clearOutputAction);
-
-		bars.updateActionBars();
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(copyAction);
-		menuMgr.add(clearOutputAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-
-		getViewSite().getPage().addSelectionListener(this);
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		getViewSite().getPage().removeSelectionListener(this);
-		super.dispose();
-		dependencyGraph = null;
-	}
-
-	/**
-	 * Build the table of plug-in dependencies. Iterate over all the plug-ins in the
-	 * plug-in registry and the cycle through the list of pre-requisites and create the
-	 * parent/child relationships in the nodes.
-	 */
-	private Map getDependencyGraph() {
-		if (dependencyGraph != null)
-			return dependencyGraph;
-		// Build up the dependency graph (see PluginDependencyGraphNode) so
-		// we have the information readily available for any plug-in.
-		State state = Platform.getPlatformAdmin().getState(false);
-		BundleDescription[] plugins = state.getBundles();
-		dependencyGraph = new HashMap();
-		for (int i = 0; i < plugins.length; i++) {
-			BundleDescription descriptor = plugins[i];
-			PluginDependencyGraphNode node = (PluginDependencyGraphNode) dependencyGraph.get(new Long(descriptor.getBundleId()));
-			if (node == null) {
-				node = new PluginDependencyGraphNode(descriptor);
-				dependencyGraph.put(new Long(descriptor.getBundleId()), node);
-			}
-
-			// Cycle through the prerequisites
-			BundleSpecification[] requires = descriptor.getRequiredBundles();
-			for (int j = 0; j < requires.length; j++) {
-				BundleDescription childDesc = (BundleDescription) requires[j].getSupplier();
-				// if the child doesn't exist then move to the next child
-				if (childDesc == null)
-					continue;
-				
-				// if the child entry is not in the table yet then add it
-				PluginDependencyGraphNode childNode = (PluginDependencyGraphNode) dependencyGraph.get(new Long(childDesc.getBundleId()));
-				if (childNode == null) {
-					childNode = new PluginDependencyGraphNode(childDesc);
-					dependencyGraph.put(new Long(childDesc.getBundleId()), childNode);
-				}
-
-				// Add the child to this node's children and set this node as an ancestor
-				// of the child node
-				node.addChild(childNode);
-				childNode.addAncestor(node);
-			}
-		}
-		return dependencyGraph;
-	}
-
-	/**
-	 * @see ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (!(selection instanceof IStructuredSelection))
-			return;
-		Object element = ((IStructuredSelection) selection).getFirstElement();
-		long id = -1;
-		String name = null;
-		if (element instanceof BundleDescription) {
-			id = ((BundleDescription) element).getBundleId();
-			name = ((BundleDescription) element).getSymbolicName();
-		}
-		if (element instanceof BundleStats) {
-			id = ((BundleStats) element).getId();
-			name = ((BundleStats) element).getSymbolicName();
-		}
-		if (id == -1)
-			return;
-		PluginDependencyGraphNode node = (PluginDependencyGraphNode) getDependencyGraph().get(new Long(id));
-		String text = node == null ? NLS.bind(Messages.depend_noInformation, name) : node.toDeepString();
-		viewer.getDocument().set(text);
-		viewer.refresh();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
deleted file mode 100644
index 881f959..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.*;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.osgi.service.resolver.BundleDescription;
-import org.eclipse.osgi.service.resolver.State;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-public class PluginListView extends SpyView implements IStructuredContentProvider {
-
-	// cache the plug-in list
-	private Object[] bundles = null;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = PluginListView.class.getName();
-
-	/**
-	 * Class which provides the text labels for the view.
-	 */
-	class PluginListLabelProvider extends LabelProvider implements ITableLabelProvider {
-		/**
-		 * @see ITableLabelProvider#getColumnImage(Object, int)
-		 */
-		public Image getColumnImage(Object arg0, int arg1) {
-			return null;
-		}
-
-		/**
-		 * @see ITableLabelProvider#getColumnText(Object, int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			return element == null ? Messages.depend_badPluginId : ((BundleDescription) element).getSymbolicName();
-		}
-	}
-
-	/**
-	 * @see IStructuredContentProvider#getElements(Object)
-	 */
-	public Object[] getElements(Object arg0) {
-		if (bundles == null) {
-			// before caching the array of descriptors, sort them.
-			// we have to use a comparator here because plug-in
-			// descriptors cannot be compared against each other
-			// in a tree set.
-			Comparator comparator = new Comparator() {
-				public int compare(Object obj1, Object obj2) {
-					String id1 = ((BundleDescription) obj1).getSymbolicName();
-					String id2 = ((BundleDescription) obj2).getSymbolicName();
-					return id1.compareTo(id2);
-				}
-			};
-			Set set = new TreeSet(comparator);
-			BundleContext context = CoreToolsPlugin.getDefault().getContext();
-			Bundle[] allBundles = context.getBundles();
-			State state = Platform.getPlatformAdmin().getState(false);
-			for (int i = 0; i < allBundles.length; i++)
-				set.add(state.getBundle(allBundles[i].getBundleId()));
-			bundles = set.toArray();
-		}
-		return bundles;
-	}
-
-	/**
-	 * @see IContentProvider#dispose()
-	 */
-	public void dispose() {
-		bundles = null;
-	}
-
-	/**
-	 * @see IContentProvider#inputChanged(Viewer, Object, Object)
-	 */
-	public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
-		// do nothing
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		// Create viewer.
-		ListViewer viewer = new ListViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(this);
-		viewer.setLabelProvider(new PluginListLabelProvider());
-		viewer.setInput(""); //$NON-NLS-1$
-		getSite().setSelectionProvider(viewer);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
deleted file mode 100644
index 0cd0ce0..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
+++ /dev/null
@@ -1,407 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.tools.runtime;
-
-import java.util.*;
-import org.eclipse.core.internal.preferences.EclipsePreferences;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.preferences.*;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.text.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Text view that dumps sizeof info and stats about the
- * Eclipse preferences tree.
- * 
- * @since 3.0
- */
-public class PreferenceStatsView extends SpyView {
-
-	// The JFace widget used for showing the Element Tree info.  
-	protected TextViewer viewer;
-
-	private IAction updateAction;
-
-	class UpdateAction extends Action {
-
-		// number of nodes in the tree
-		int nodeCount;
-		// number of key/value pairs in the tree
-		int kvCount;
-		// number of nodes without key/value pairs
-		int emptyNodes;
-		// size of the tree
-		int treeSize;
-		// list of node with key/value pairs
-		Set nonEmptyNodes;
-
-		// root node
-		IEclipsePreferences rootNode = Platform.getPreferencesService().getRootNode();
-
-		UpdateAction() {
-			super("Update view"); //$NON-NLS-1$
-			this.setToolTipText("Update"); //$NON-NLS-1$
-			this.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("refresh.gif")); //$NON-NLS-1$
-		}
-
-		public void run() {
-			super.run();
-			reset();
-			try {
-				visitTree();
-			} catch (BackingStoreException e) {
-				e.printStackTrace();
-			}
-			updateTextView();
-			reset();
-		}
-
-		void reset() {
-			nodeCount = 0;
-			kvCount = 0;
-			emptyNodes = 0;
-			treeSize = 0;
-			nonEmptyNodes = new TreeSet();
-		}
-
-		int basicSizeof(IEclipsePreferences node) {
-			if (node instanceof EclipsePreferences)
-				return basicSizeof((EclipsePreferences) node);
-
-			// name
-			int count = sizeof(node.name());
-
-			// key/value pairs
-			try {
-				String[] keys = node.keys();
-				for (int i = 0; i < keys.length; i++) {
-					count += sizeof(keys[i]);
-					String value = node.get(keys[i], null);
-					count += sizeof(value);
-				}
-			} catch (BackingStoreException e) {
-				e.printStackTrace();
-			}
-			return count;
-		}
-
-		int calculateOldSize() {
-			int count = 0;
-			IPluginRegistry registry = Platform.getPluginRegistry();
-			if (registry == null)
-				return count;
-			IPluginDescriptor[] descriptors = registry.getPluginDescriptors();
-			if (descriptors == null)
-				return count;
-			for (int i = 0; i < descriptors.length; i++) {
-				IPluginDescriptor desc = descriptors[i];
-				//				if (desc.isPluginActivated())
-				count += calculateOldSizeFor(desc.getUniqueIdentifier());
-			}
-			return count;
-		}
-
-		int calculateOldSizeFor(String pluginID) {
-			int count = 0;
-			// 12 for the object header + 4 for each field
-			count += 12;
-
-			// dirty boolean
-			count += 4;
-
-			// listener list
-			// TODO
-			count += 4;
-
-			// Properties properties
-			count += 4;
-			IEclipsePreferences node = new InstanceScope().getNode(pluginID);
-			if (node != null) {
-				// add the key/value pairs
-				// TODO rough estimate
-				try {
-					String[] keys = node.keys();
-					for (int i = 0; i < keys.length; i++) {
-						count += sizeof(keys[i]);
-						String value = node.get(keys[i], null);
-						count += sizeof(value);
-					}
-				} catch (BackingStoreException e) {
-					e.printStackTrace();
-				}
-			}
-
-			// Properties defaults
-			count += 4;
-			node = new DefaultScope().getNode(pluginID);
-			if (node != null) {
-				// add the key/value pairs
-				// TODO rough estimate
-				try {
-					String[] keys = node.keys();
-					for (int i = 0; i < keys.length; i++) {
-						count += sizeof(keys[i]);
-						String value = node.get(keys[i], null);
-						count += sizeof(value);
-					}
-				} catch (BackingStoreException e) {
-					e.printStackTrace();
-				}
-			}
-
-			return count;
-		}
-
-		/*
-		 * 12 for the object header
-		 * 4 for each slot
-		 */
-		int basicSizeof(EclipsePreferences node) {
-			int count = 12;
-
-			// name
-			count += 4;
-			count += sizeof(node.name());
-
-			// dirty boolean
-			count += 4;
-
-			// removed boolean
-			count += 4;
-
-			// loading boolean
-			count += 4;
-
-			// slot for the parent pointer
-			count += 4;
-
-			// child map
-			// TODO this isn't quite right but is ok for now
-			count += 4;
-			String[] childrenNames = node.childrenNames();
-			for (int i = 0; i < childrenNames.length; i++)
-				count += sizeof(childrenNames[i]);
-
-			// node change listener list
-			// TODO
-			count += 4;
-
-			// preference change listener list
-			// TODO
-			count += 4;
-
-			// cached path
-			count += 4;
-			count += sizeof(node.absolutePath());
-
-			// key/value pairs
-			// TODO this isn't quite right but is ok for now
-			count += 4;
-			String[] keys = node.keys();
-			for (int i = 0; i < keys.length; i++) {
-				count += sizeof(keys[i]);
-				String value = node.get(keys[i], null);
-				count += sizeof(value);
-			}
-
-			return count;
-		}
-
-		int basicSizeof(Map map) {
-			if (map == null)
-				return 0;
-
-			//formula taken from BundleStats
-			int count = (int) Math.round(44 + (16 + (map.size() * 1.25 * 4)) + (24 * map.size()));
-
-			for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
-				Map.Entry entry = (Map.Entry) it.next();
-				count += sizeof(entry.getKey());
-				count += sizeof(entry.getValue());
-			}
-			return count;
-		}
-
-		/**
-		 * All sizeof tests should go through this central method to weed out
-		 * duplicates.
-		 */
-		int sizeof(Object object) {
-			if (object == null)//|| DeepSize.ignore(object))
-				return 0;
-			if (object instanceof String)
-				return 44 + 2 * ((String) object).length();
-			if (object instanceof byte[])
-				return 16 + ((byte[]) object).length;
-			if (object instanceof Integer)
-				return 16;
-			if (object instanceof Map)
-				return basicSizeof((Map) object);
-			if (object instanceof IEclipsePreferences)
-				return basicSizeof((IEclipsePreferences) object);
-			if (object instanceof QualifiedName) {
-				QualifiedName name = (QualifiedName) object;
-				return 20 + sizeof(name.getQualifier()) + sizeof(name.getLocalName());
-			}
-			// unknown -- use deep size
-			return 0;
-		}
-
-		void visitTree() throws BackingStoreException {
-			// count the number of nodes in the preferences tree
-			reset();
-			IPreferenceNodeVisitor visitor = new IPreferenceNodeVisitor() {
-				public boolean visit(IEclipsePreferences node) {
-					try {
-						treeSize += sizeof(node);
-						nodeCount++;
-						int keys = node.keys().length;
-						kvCount += keys;
-						if (keys == 0)
-							emptyNodes++;
-						else
-							nonEmptyNodes.add(node.absolutePath() + " (" + keys + ")"); //$NON-NLS-1$//$NON-NLS-2$
-					} catch (BackingStoreException e) {
-						e.printStackTrace();
-					}
-					return true;
-				}
-			};
-			rootNode.accept(visitor);
-		}
-
-		void updateTextView() {
-			final StringBuffer buffer = new StringBuffer();
-			buffer.append("Size of Eclipse 2.1 preference objects: " + prettyPrint(calculateOldSize()) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Total node count: " + prettyPrint(nodeCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Nodes without keys: " + prettyPrint(emptyNodes) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Key/value pairs: " + prettyPrint(kvCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Total size of tree: " + prettyPrint(treeSize) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Nodes with key/value pairs:\n"); //$NON-NLS-1$
-			for (Iterator i = nonEmptyNodes.iterator(); i.hasNext();)
-				buffer.append("\t" + i.next() + "\n"); //$NON-NLS-1$//$NON-NLS-2$
-
-			//post changes to UI thread
-			viewer.getControl().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					if (!viewer.getControl().isDisposed()) {
-						IDocument doc = viewer.getDocument();
-						doc.set(buffer.toString());
-						viewer.setDocument(doc);
-					}
-				}
-			});
-		}
-
-		private String prettyPrint(int i) {
-			StringBuffer buf = new StringBuffer();
-			for (;;) {
-				if (i < 1000) {
-					String val = Integer.toString(i);
-					//pad with zeros if necessary
-					if (buf.length() > 0) {
-						if (val.length() < 2)
-							buf.append('0');
-						if (val.length() < 3)
-							buf.append('0');
-					}
-					buf.append(val);
-					return buf.toString();
-				}
-				if (i < 1000000) {
-					String val = Integer.toString(i / 1000);
-					//pad with zeros if necessary
-					if (buf.length() > 0) {
-						if (val.length() < 2)
-							buf.append('0');
-						if (val.length() < 3)
-							buf.append('0');
-					}
-					buf.append(val);
-					buf.append(',');
-					i = i % 1000;
-					continue;
-				}
-				buf.append(Integer.toString(i / 1000000));
-				buf.append(',');
-				i = i % 1000000;
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-
-		viewer = new TextViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.WRAP | SWT.READ_ONLY);
-		viewer.setDocument(new Document());
-
-		IActionBars bars = getViewSite().getActionBars();
-
-		final GlobalAction clearOutputAction = new ClearTextAction(viewer.getDocument());
-		clearOutputAction.registerAsGlobalAction(bars);
-
-		final GlobalAction selectAllAction = new SelectAllAction(viewer);
-		selectAllAction.registerAsGlobalAction(bars);
-
-		IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
-		updateAction = new UpdateAction();
-		barMenuManager.add(updateAction);
-
-		// Delete action shortcuts are not captured by the workbench
-		// so we need our key binding service to handle Delete keystrokes for us
-
-		this.viewer.getControl().addKeyListener(new KeyAdapter() {
-			public void keyPressed(KeyEvent e) {
-				if (e.character == SWT.DEL)
-					clearOutputAction.run();
-			}
-		});
-
-		GlobalAction copyAction = new CopyTextSelectionAction(viewer);
-		copyAction.registerAsGlobalAction(bars);
-
-		bars.getToolBarManager().add(updateAction);
-		bars.getToolBarManager().add(clearOutputAction);
-
-		bars.updateActionBars();
-
-		// creates a context menu with actions and adds it to the viewer control
-		MenuManager menuMgr = new MenuManager();
-		menuMgr.add(copyAction);
-		menuMgr.add(clearOutputAction);
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-
-		// populate the view with the initial data
-		if (updateAction != null)
-			updateAction.run();
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		updateAction = null;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/RuntimeSpyPerspective.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/RuntimeSpyPerspective.java
deleted file mode 100644
index cd62026..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/RuntimeSpyPerspective.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class RuntimeSpyPerspective implements IPerspectiveFactory {
-
-	public RuntimeSpyPerspective() {
-		super();
-	}
-
-	public void createInitialLayout(IPageLayout layout) {
-		layout.setEditorAreaVisible(false);
-		layout.addView(ActivePluginsView.VIEW_ID, IPageLayout.LEFT, 0.75f, layout.getEditorArea());
-		layout.addView(PluginDataSheetView.VIEW_ID, IPageLayout.RIGHT, 0.75f, ActivePluginsView.VIEW_ID);
-		layout.addView(LoadedClassesView.VIEW_ID, IPageLayout.BOTTOM, 0.50f, ActivePluginsView.VIEW_ID);
-		layout.addView(StackTraceView.VIEW_ID, IPageLayout.BOTTOM, 0.25f, PluginDataSheetView.VIEW_ID);
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/StackTraceView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/StackTraceView.java
deleted file mode 100644
index e3b2bd0..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/StackTraceView.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.io.*;
-import org.eclipse.core.tools.BaseTextView;
-
-public class StackTraceView extends BaseTextView {
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = StackTraceView.class.getName();
-
-	public StackTraceView() {
-		super();
-	}
-
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-
-	public void setInput(String stackFileName, long begin, long end) {
-		if (begin == -1 || end == -1) {
-			viewer.getDocument().set("No stack trace available.\nSee <eclipse install>/plugins/org.eclipse.osgi/.options"); //$NON-NLS-1$
-			viewer.refresh();
-			return;
-		}
-
-		try {
-			byte[] chars = new byte[0];
-			FileInputStream fis = new FileInputStream(stackFileName);
-			try {
-				fis.skip(begin);
-				chars = new byte[(int) (end - begin)];
-				fis.read(chars);
-			} finally {
-				fis.close();
-			}
-			viewer.getDocument().set(new String(chars));
-			viewer.refresh();
-		} catch (FileNotFoundException e) {
-			// ignore
-		} catch (IOException e) {
-			e.printStackTrace();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassInfo.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassInfo.java
deleted file mode 100644
index 25cdf8c..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassInfo.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-public class VMClassInfo {
-	String name;
-	int ramSize = 0;
-	int romSize = 0;
-	int jitSize = 0;
-
-	public VMClassInfo(String name) {
-		this.name = name.replace('/', '.');
-	}
-
-	public int getJitSize() {
-		return jitSize;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public int getRAMSize() {
-		return ramSize;
-	}
-
-	public int getROMSize() {
-		return romSize;
-	}
-
-	public void setJITSize(int value) {
-		jitSize = value;
-	}
-
-	public void setRAMSize(int value) {
-		ramSize = value;
-	}
-
-	public void setROMSize(int value) {
-		romSize = value;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassloaderInfo.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassloaderInfo.java
deleted file mode 100644
index 98ef0ff..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/VMClassloaderInfo.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.runtime;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class VMClassloaderInfo {
-
-	protected String id;
-	protected ClassLoader loader;
-	protected VMClassInfo[] classes;
-	protected int allocRAM = 0;
-	protected int allocROM = 0;
-	protected int usedRAM = 0;
-	protected int usedROM = 0;
-
-	public static boolean hasNatives = false;
-	protected static Map loaders = new HashMap(20);
-
-	public static VMClassInfo[] getBaseClasses() {
-		return new VMClassInfo[0];
-	}
-
-	public static VMClassloaderInfo getClassloader(String id) {
-		return new VMClassloaderInfo(id, null);
-	}
-
-	public static void refreshInfos() {
-		loaders = new HashMap(20);
-	}
-
-	protected VMClassloaderInfo(String id, ClassLoader loader) {
-		this.id = id;
-		if (loader != null)
-			this.loader = loader;
-	}
-
-	public int getAllocRAM() {
-		return allocRAM;
-	}
-
-	public int getAllocROM() {
-		return allocROM;
-	}
-
-	public VMClassloaderInfo getClassloader() {
-		return this;
-	}
-
-	public int getCount() {
-		return getClasses().length;
-	}
-
-	public int getFreeRAM() {
-		return getAllocRAM() - getUsedRAM();
-	}
-
-	public int getFreeROM() {
-		return getAllocROM() - getUsedROM();
-	}
-
-	public String getName() {
-		return id;
-	}
-
-	protected int getTotal(long type, int aspect) {
-		return 0;
-	}
-
-	public int getUsedRAM() {
-		return usedRAM;
-	}
-
-	public int getUsedROM() {
-		return usedROM;
-	}
-
-	protected VMClassInfo[] getClasses() {
-		if (classes == null)
-			initializeClasses();
-		return classes;
-	}
-
-	public VMClassInfo getClass(String name) {
-		return new VMClassInfo(name);
-	}
-
-	public void refresh() {
-		allocRAM = 0;
-		allocROM = 0;
-		usedRAM = 0;
-		usedROM = 0;
-		classes = null;
-	}
-
-	public void initializeClasses() {
-		return;
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembers.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembers.java
deleted file mode 100644
index 9380fc7..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembers.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.search;
-
-import java.io.IOException;
-import java.io.Writer;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringScopeFactory;
-import org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-/*
- * Class that removes field declarations which aren't referenced.
- */
-public class FindUnusedMembers implements IRunnableWithProgress {
-	private boolean headerWritten = false;
-	private final Writer output;
-
-	ICompilationUnit unit;
-	protected int unusedMemberCount = 0;
-
-	public FindUnusedMembers(ICompilationUnit unit, Writer output) {
-		super();
-		this.unit = unit;
-		this.output = output;
-	}
-
-	private void doSearchCU(ICompilationUnit cu, IProgressMonitor monitor) throws JavaModelException, IOException {
-		IType[] allTypes = cu.getAllTypes();
-		for (int i = 0; i < allTypes.length; i++)
-			doSearchType(allTypes[i], monitor);
-	}
-
-	public void doSearchType(IType type, IProgressMonitor monitor) throws JavaModelException, IOException {
-		headerWritten = false;
-
-		IMethod[] methods = type.getMethods();
-		IField[] fields = type.getFields();
-		monitor.beginTask("Searching for references.", methods.length + fields.length); //$NON-NLS-1$
-		try {
-			for (int i = 0; i < methods.length; i++) {
-				if (monitor.isCanceled())
-					throw new OperationCanceledException();
-				if (hasReferences(methods[i], monitor))
-					continue;
-				writeResult(methods[i]);
-				unusedMemberCount++;
-			}
-			for (int i = 0; i < fields.length; i++) {
-				if (monitor.isCanceled())
-					throw new OperationCanceledException();
-				if (hasReferences(fields[i], monitor))
-					continue;
-				writeResult(fields[i]);
-				unusedMemberCount++;
-			}
-
-			if (monitor.isCanceled())
-				throw new OperationCanceledException();
-		} finally {
-			monitor.done();
-		}
-	}
-
-	public int getUnusedMethodCount() {
-		return unusedMemberCount;
-	}
-
-	private boolean hasReferences(IMember member, IProgressMonitor monitor) throws JavaModelException {
-		ICompilationUnit[] affectedUnits = RefactoringSearchEngine.findAffectedCompilationUnits(SearchPattern.createPattern(member, IJavaSearchConstants.REFERENCES), RefactoringScopeFactory.create(member.getDeclaringType()), new SubProgressMonitor(monitor, 1), new RefactoringStatus());
-		return affectedUnits.length > 0;
-	}
-
-	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		if (monitor == null)
-			monitor = new NullProgressMonitor();
-		try {
-			doSearchCU(unit, monitor);
-		} catch (OperationCanceledException e) {
-			throw new InterruptedException();
-		} catch (JavaModelException e) {
-			throw new InvocationTargetException(e);
-		} catch (IOException e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-
-	private void writeHeader(IType type) throws IOException {
-		if (!headerWritten) {
-			headerWritten = true;
-			output.write("\n\n" + type.getFullyQualifiedName()); //$NON-NLS-1$
-		}
-	}
-
-	private void writeResult(IField field) throws IOException, IllegalArgumentException, JavaModelException {
-		writeHeader(field.getDeclaringType());
-		output.write("\n\t"); //$NON-NLS-1$
-		output.write(Signature.toString(field.getTypeSignature()));
-		output.write(" "); //$NON-NLS-1$
-		output.write(field.getElementName());
-	}
-
-	/**
-	 * @param method
-	 * @throws IOException
-	 * @throws JavaModelException 
-	 * @throws IllegalArgumentException 
-	 */
-	private void writeResult(IMethod method) throws IOException, IllegalArgumentException, JavaModelException {
-		writeHeader(method.getDeclaringType());
-		output.write("\n\t");//$NON-NLS-1$
-		output.write(Signature.toString(method.getReturnType()));
-		output.write(" "); //$NON-NLS-1$
-		output.write(method.getElementName());
-		output.write("("); //$NON-NLS-1$
-		String[] types = method.getParameterTypes();
-		for (int i = 0; i < types.length; i++) {
-			output.write(Signature.toString(types[i]));
-			if (i < types.length - 1)
-				output.write(","); //$NON-NLS-1$
-		}
-		output.write(")"); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembersAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembersAction.java
deleted file mode 100644
index 21c93b0..0000000
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedMembersAction.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.tools.search;
-
-import java.io.*;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-import org.eclipse.jdt.core.*;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.ui.*;
-
-public class FindUnusedMembersAction implements IObjectActionDelegate {
-
-	private IStructuredSelection selection;
-	private int unusedCount;
-	private IWorkbenchPart part;
-
-	public void setActivePart(IAction action, IWorkbenchPart part) {
-		this.part = part;
-		//not needed
-	}
-
-	public void run(IAction action) {
-		unusedCount = 0;
-		FileDialog dialog = new FileDialog(part.getSite().getShell(), SWT.SAVE);
-		String outFileName = dialog.open();
-		if (outFileName == null)
-			return;
-		File outputFile = new File(outFileName);
-		if (outputFile.exists())
-			outputFile.delete();
-		FileWriter writer = null;
-		try {
-			try {
-				writer = new FileWriter(outputFile);
-				for (Iterator it = selection.iterator(); it.hasNext();) {
-					Object element = it.next();
-					if (element instanceof IJavaElement)
-						traverse((IJavaElement)element, writer);
-				}
-			} finally {
-				String summary = "\n\nSearch complete.  Found " + unusedCount + " unreferenced methods."; //$NON-NLS-1$ //$NON-NLS-2$
-				if (writer != null) {
-					writer.write(summary);
-					writer.close();
-				}
-				MessageDialog.openInformation(part.getSite().getShell(), "Search Complete", summary);   //$NON-NLS-1$
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private void traverse(IJavaElement current, Writer output) throws JavaModelException, InvocationTargetException, InterruptedException {
-		if (current instanceof IJavaProject || current instanceof IPackageFragmentRoot) {
-			IJavaElement[] children = ((IParent) current).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				traverse(children[i], output);
-			}
-		} else if (current instanceof IPackageFragment) {
-			//don't search API packages
-			if (current.getElementName().indexOf("internal") > 0) { //$NON-NLS-1$
-				IJavaElement[] children = ((IParent) current).getChildren();
-				for (int i = 0; i < children.length; i++) {
-					traverse(children[i], output);
-				}
-			}
-		} else if (current instanceof ICompilationUnit)
-			traverseCU((ICompilationUnit)current, output);
-	}
-
-	protected void traverseCU(ICompilationUnit unit, Writer output) throws InvocationTargetException, InterruptedException {
-		FindUnusedMembers search = new FindUnusedMembers(unit, output);
-		PlatformUI.getWorkbench().getProgressService().run(true, true, search);
-		unusedCount += search.getUnusedMethodCount();
-	}
-
-	public void selectionChanged(IAction action, ISelection aSelection) {
-		if (aSelection instanceof IStructuredSelection)
-			this.selection = (IStructuredSelection) aSelection;
-	}
-}
\ No newline at end of file
diff --git a/features/org.eclipse.core.tools-feature/.project b/features/org.eclipse.core.tools-feature/.project
deleted file mode 100644
index 9cdfafd..0000000
--- a/features/org.eclipse.core.tools-feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tools-feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.core.tools-feature/build.properties b/features/org.eclipse.core.tools-feature/build.properties
deleted file mode 100644
index dee3413..0000000
--- a/features/org.eclipse.core.tools-feature/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2004, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = feature.xml, license.html, feature.properties, epl-v10.html, *.jpg
-qualifier=context
\ No newline at end of file
diff --git a/features/org.eclipse.core.tools-feature/cpl-v10.html b/features/org.eclipse.core.tools-feature/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/features/org.eclipse.core.tools-feature/cpl-v10.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<HTML>
-<HEAD>
-<TITLE>Common Public License - v 1.0</TITLE>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-</HEAD>
-
-<BODY BGCOLOR="#FFFFFF" VLINK="#800000">
-
-
-<P ALIGN="CENTER"><B>Common Public License - v 1.0</B>
-<P><B></B><FONT SIZE="3"></FONT>
-<P><FONT SIZE="3"></FONT><FONT SIZE="2">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT").  ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>1.  DEFINITIONS</B></FONT>
-<P><FONT SIZE="2">"Contribution" means:</FONT>
-
-<UL><FONT SIZE="2">a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and<BR CLEAR="LEFT">
-b) in the case of each subsequent Contributor:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	 	changes to the Program, and</FONT></UL>
-
-
-<UL><FONT SIZE="2">ii)		additions to the Program;</FONT></UL>
-
-
-<UL><FONT SIZE="2">where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.  </FONT><FONT SIZE="2">A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf.  </FONT><FONT SIZE="2">Contributions do not include additions to the Program which:  (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Contributor" means any person or entity that distributes the Program.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.  </FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">"Program" means the Contributions distributed in accordance with this Agreement.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.</FONT>
-<P><FONT SIZE="2"><B></B></FONT>
-<P><FONT SIZE="2"><B>2.  GRANT OF RIGHTS</B></FONT>
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">a)	</FONT><FONT SIZE="2">Subject to the terms of this Agreement, each Contributor hereby grants</FONT><FONT SIZE="2"> Recipient a non-exclusive, worldwide, royalty-free copyright license to</FONT><FONT SIZE="2" COLOR="#FF0000"> </FONT><FONT SIZE="2">reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT><FONT SIZE="2">b) 	Subject to the terms of this Agreement, each Contributor hereby grants </FONT><FONT SIZE="2">Recipient a non-exclusive, worldwide,</FONT><FONT SIZE="2" COLOR="#008000"> </FONT><FONT SIZE="2">royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form.  This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents.  The patent license shall not apply to any other combinations which include the Contribution.  No hardware per se is licensed hereunder.   </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">c)	Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity.  Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise.  As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any.  For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.</FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-
-<UL><FONT SIZE="2">d)	Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. </FONT></UL>
-
-
-<UL><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2"><B>3.  REQUIREMENTS</B></FONT>
-<P><FONT SIZE="2"><B></B>A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:</FONT>
-
-<UL><FONT SIZE="2">a)	it complies with the terms and conditions of this Agreement; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	its license agreement:</FONT></UL>
-
-
-<UL><FONT SIZE="2">i)	effectively disclaims</FONT><FONT SIZE="2"> on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; </FONT></UL>
-
-
-<UL><FONT SIZE="2">ii) 	effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; </FONT></UL>
-
-
-<UL><FONT SIZE="2">iii)</FONT><FONT SIZE="2">	states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and</FONT></UL>
-
-
-<UL><FONT SIZE="2">iv)	states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.</FONT><FONT SIZE="2" COLOR="#0000FF"> </FONT><FONT SIZE="2" COLOR="#FF0000"></FONT></UL>
-
-
-<UL><FONT SIZE="2" COLOR="#FF0000"></FONT><FONT SIZE="2"></FONT></UL>
-
-<P><FONT SIZE="2">When the Program is made available in source code form:</FONT>
-
-<UL><FONT SIZE="2">a)	it must be made available under this Agreement; and </FONT></UL>
-
-
-<UL><FONT SIZE="2">b)	a copy of this Agreement must be included with each copy of the Program.  </FONT></UL>
-
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"><STRIKE></STRIKE></FONT><FONT SIZE="2">Contributors may not remove or alter any copyright notices contained within the Program.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.  </FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>4.  COMMERCIAL DISTRIBUTION</B></FONT>
-<P><FONT SIZE="2">Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like.  While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors.   Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering.  The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement.  In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations.  The Indemnified Contributor may participate in any such claim at its own expense.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">For example, a Contributor might include the Program in a commercial product offering, Product X.  That Contributor is then a Commercial Contributor.  If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.  Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2" COLOR="#0000FF"></FONT>
-<P><FONT SIZE="2" COLOR="#0000FF"></FONT><FONT SIZE="2"><B>5.  NO WARRANTY</B></FONT>
-<P><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is</FONT><FONT SIZE="2"> solely responsible for determining the appropriateness of using and distributing </FONT><FONT SIZE="2">the Program</FONT><FONT SIZE="2"> and assumes all risks associated with its exercise of rights under this Agreement</FONT><FONT SIZE="2">, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, </FONT><FONT SIZE="2">programs or equipment, and unavailability or interruption of operations</FONT><FONT SIZE="2">.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"><B>6.  DISCLAIMER OF LIABILITY</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES </FONT><FONT SIZE="2">(INCLUDING WITHOUT LIMITATION LOST PROFITS),</FONT><FONT SIZE="2"> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"><B>7.  GENERAL</B></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed.  In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance.  If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable.  However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.  </FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2">Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted  and may only be modified in the following manner. The Agreement Steward reserves the right to </FONT><FONT SIZE="2">publish new versions (including revisions) of this Agreement from time to </FONT><FONT SIZE="2">time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward.   IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity.  </FONT><FONT SIZE="2">Each new version of the Agreement will be given a distinguishing version number.  The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new </FONT><FONT SIZE="2">version.  </FONT><FONT SIZE="2">Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, </FONT><FONT SIZE="2">by implication, estoppel or otherwise</FONT><FONT SIZE="2">.</FONT><FONT SIZE="2">  All rights in the Program not expressly granted under this Agreement are reserved.</FONT>
-<P><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2">This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose.  Each party waives its rights to a jury trial in any resulting litigation.</FONT>
-<P><FONT SIZE="2"></FONT><FONT SIZE="2"></FONT>
-<P><FONT SIZE="2"></FONT>
-
-</BODY>
-
-</HTML>
\ No newline at end of file
diff --git a/features/org.eclipse.core.tools-feature/eclipse_update_120.jpg b/features/org.eclipse.core.tools-feature/eclipse_update_120.jpg
deleted file mode 100644
index 68e3e02..0000000
--- a/features/org.eclipse.core.tools-feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.core.tools-feature/feature.properties b/features/org.eclipse.core.tools-feature/feature.properties
deleted file mode 100644
index b347cab..0000000
--- a/features/org.eclipse.core.tools-feature/feature.properties
+++ /dev/null
@@ -1,123 +0,0 @@
-###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=Eclipse Core Tools
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=Eclipse.org update site
-
-# "description" property - description of the feature
-description=Tools for plug-in developers by plug-in developers
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE.ORG SOFTWARE USER AGREEMENT\n\
-14th August, 2003\n\
-\n\
-Usage Of Content\n\
-\n\
-ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by Eclipse.org\n\
-is provided to you under the terms and conditions of the Common Public\n\
-License Version 1.0 ("CPL"). A copy of the CPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/cpl-v10.html.\n\
-For purposes of the CPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments\n\
-("Fragments"), and features ("Features"). A Feature is a bundle of one or\n\
-more Plug-ins and/or Fragments and associated material. Files named\n\
-"feature.xml" may contain a list of the names and version numbers of the\n\
-Plug-ins and/or Fragments associated with a Feature. Plug-ins and Fragments\n\
-are located in directories named "plugins" and Features are located in\n\
-directories named "features".\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Subdirectories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by Eclipse.org is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact Eclipse.org to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.core.tools-feature/feature.xml b/features/org.eclipse.core.tools-feature/feature.xml
deleted file mode 100644
index b0b7ebd..0000000
--- a/features/org.eclipse.core.tools-feature/feature.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.core.tools"
-      label="%featureName"
-      version="1.2.0.qualifier"
-      provider-name="%providerName"
-      image="eclipse_update_120.jpg">
-
-   <description>
-      %description
-   </description>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://update.eclipse.org/updates"/>
-   </url>
-
-   <plugin
-         id="org.eclipse.core.tools"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.tools.resources"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.core.resources.spysupport"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-</feature>
diff --git a/features/org.eclipse.core.tools-feature/license.html b/features/org.eclipse.core.tools-feature/license.html
deleted file mode 100644
index af8c380..0000000
--- a/features/org.eclipse.core.tools-feature/license.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<title>Eclipse.org Software User Agreement</title>
-</head>
-
-<body lang="EN-US" link=blue vlink=purple>
-<h2>Eclipse.org Software User Agreement</h2>
-<p>14th August, 2003</p>
-
-<h3>Usage Of Content</h3>
-
-<p>ECLIPSE.ORG MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-   
-<h3>Applicable Licenses</h3>   
-   
-<p>Unless otherwise indicated, all Content made available by Eclipse.org is provided to you under the terms and conditions of the Common Public License Version 1.0
-   (&quot;CPL&quot;).  A copy of the CPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-   For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse.org CVS repository (&quot;Repository&quot;) in CVS
-   modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<p>Content may be apportioned into plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;). A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of  the Plug-ins and/or Fragments associated with a Feature.   Plug-ins and Fragments are located in directories
-   named &quot;plugins&quot; and Features are located in directories named &quot;features&quot;.</p>
-  
-<p>Features may also include other Features (&quot;Included Features&quot;). Files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</p>
-  
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-	<li>The top-level (root) directory</li>
-	<li>Plug-in and Fragment directories</li>
-	<li>Subdirectories of the directory named &quot;src&quot; of certain Plug-ins</li>
-	<li>Feature directories</li>
-</ul>
-		
-<p>Note: if a Feature made available by Eclipse.org is installed using the Eclipse Update Manager, you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot;.
-Such Abouts, Feature Licenses and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE CPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-	<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-	<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>	
-	<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-	<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License or Feature Update License is provided, please
-contact Eclipse.org to determine what terms and conditions govern that particular Content.</p>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-</body>
-</html>
\ No newline at end of file