This commit was manufactured by cvs2svn to create branch
'v20040707_IndexedStoreRewrite'.

Sprout from master 2004-06-24 17:48:02 UTC DJ Houghton <dj> 'Updated buildnotes.'
Delete:
    bundles/org.eclipse.core.resources.spysupport/.classpath
    bundles/org.eclipse.core.resources.spysupport/.cvsignore
    bundles/org.eclipse.core.resources.spysupport/.project
    bundles/org.eclipse.core.resources.spysupport/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.resources.spysupport/about.html
    bundles/org.eclipse.core.resources.spysupport/build.properties
    bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/dtree/SpySupport.java
    bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/properties/SpySupport.java
    bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/resources/SpySupport.java
    bundles/org.eclipse.core.tools.resources/.classpath
    bundles/org.eclipse.core.tools.resources/.cvsignore
    bundles/org.eclipse.core.tools.resources/.options
    bundles/org.eclipse.core.tools.resources/.project
    bundles/org.eclipse.core.tools.resources/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.core.tools.resources/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.tools.resources/about.html
    bundles/org.eclipse.core.tools.resources/about.ini
    bundles/org.eclipse.core.tools.resources/about.mappings
    bundles/org.eclipse.core.tools.resources/about.properties
    bundles/org.eclipse.core.tools.resources/build.properties
    bundles/org.eclipse.core.tools.resources/cpl-v10.html
    bundles/org.eclipse.core.tools.resources/doc/hglegal2002.htm
    bundles/org.eclipse.core.tools.resources/doc/ngibmcpy2002.gif
    bundles/org.eclipse.core.tools.resources/doc/readme.html
    bundles/org.eclipse.core.tools.resources/icons/classes.gif
    bundles/org.eclipse.core.tools.resources/icons/clear.gif
    bundles/org.eclipse.core.tools.resources/icons/collapseall.gif
    bundles/org.eclipse.core.tools.resources/icons/datasheet.gif
    bundles/org.eclipse.core.tools.resources/icons/plugin.gif
    bundles/org.eclipse.core.tools.resources/icons/refresh.gif
    bundles/org.eclipse.core.tools.resources/icons/req_plugins_obj.gif
    bundles/org.eclipse.core.tools.resources/icons/reset.gif
    bundles/org.eclipse.core.tools.resources/icons/spy.gif
    bundles/org.eclipse.core.tools.resources/icons/trace.gif
    bundles/org.eclipse.core.tools.resources/icons/zoom.gif
    bundles/org.eclipse.core.tools.resources/notice.html
    bundles/org.eclipse.core.tools.resources/plugin.xml
    bundles/org.eclipse.core.tools.resources/src/dumper_factory.properties
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/AbstractDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/Dump.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpContentsView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpException.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpTool.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumperFactory.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDump.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationStrategy.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_1.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_2.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_3.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_1.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_2.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MetadataPerspective.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/PropertiesDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_2.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_3.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumper.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumpingStrategy_3.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceContentProvider.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/CountResourcesAction.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/DeltaView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ElementTreeView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsSorter.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectContentProvider.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceContentProvider.java
    bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceView.java
    tests/org.eclipse.core.tests.resources.saveparticipant/.classpath
    tests/org.eclipse.core.tests.resources.saveparticipant/.cvsignore
    tests/org.eclipse.core.tests.resources.saveparticipant/.project
    tests/org.eclipse.core.tests.resources.saveparticipant/about.html
    tests/org.eclipse.core.tests.resources.saveparticipant/build.properties
    tests/org.eclipse.core.tests.resources.saveparticipant/plugin.xml
    tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager1Test.java
    tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager2Test.java
    tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager3Test.java
    tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManagerTest.java
    tests/org.eclipse.core.tests.resources.saveparticipant1/.classpath
    tests/org.eclipse.core.tests.resources.saveparticipant1/.cvsignore
    tests/org.eclipse.core.tests.resources.saveparticipant1/.project
    tests/org.eclipse.core.tests.resources.saveparticipant1/about.html
    tests/org.eclipse.core.tests.resources.saveparticipant1/build.properties
    tests/org.eclipse.core.tests.resources.saveparticipant1/plugin.xml
    tests/org.eclipse.core.tests.resources.saveparticipant1/src/org/eclipse/core/tests/resources/saveparticipant1/SaveParticipant1Plugin.java
    tests/org.eclipse.core.tests.resources.saveparticipant2/.classpath
    tests/org.eclipse.core.tests.resources.saveparticipant2/.cvsignore
    tests/org.eclipse.core.tests.resources.saveparticipant2/.project
    tests/org.eclipse.core.tests.resources.saveparticipant2/about.html
    tests/org.eclipse.core.tests.resources.saveparticipant2/build.properties
    tests/org.eclipse.core.tests.resources.saveparticipant2/plugin.xml
    tests/org.eclipse.core.tests.resources.saveparticipant2/src/org/eclipse/core/tests/resources/saveparticipant2/SaveParticipant2Plugin.java
    tests/org.eclipse.core.tests.resources.saveparticipant3/.classpath
    tests/org.eclipse.core.tests.resources.saveparticipant3/.cvsignore
    tests/org.eclipse.core.tests.resources.saveparticipant3/.project
    tests/org.eclipse.core.tests.resources.saveparticipant3/about.html
    tests/org.eclipse.core.tests.resources.saveparticipant3/build.properties
    tests/org.eclipse.core.tests.resources.saveparticipant3/plugin.xml
    tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipant3Plugin.java
    tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipantPlugin.java
diff --git a/bundles/org.eclipse.core.resources.spysupport/.classpath b/bundles/org.eclipse.core.resources.spysupport/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/.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.resources.spysupport/.cvsignore b/bundles/org.eclipse.core.resources.spysupport/.cvsignore
deleted file mode 100644
index 0e7468b..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-bin
-temp.folder
-spysupport.jar
-build.xml
diff --git a/bundles/org.eclipse.core.resources.spysupport/.project b/bundles/org.eclipse.core.resources.spysupport/.project
deleted file mode 100644
index 23eea9c..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/.project
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.resources.spysupport</name>
-	<comment></comment>
-	<projects>
-		<project>org.apache.xerces</project>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</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.resources.spysupport/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.resources.spysupport/META-INF/MANIFEST.MF
deleted file mode 100644
index e50e07f..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-Name: Core Resource Management Spy Support Fragment
-Bundle-SymbolicName: org.eclipse.core.resources.spysupport
-Bundle-Version: 1.0.2.qualifier
-Bundle-Vendor: Eclipse.org
-Fragment-Host: org.eclipse.core.resources;bundle-version="3.0.0"
-Bundle-Localization: plugin
-Provide-Package: org.eclipse.core.internal.properties,
- org.eclipse.core.internal.resources,
- org.eclipse.core.internal.dtree
diff --git a/bundles/org.eclipse.core.resources.spysupport/about.html b/bundles/org.eclipse.core.resources.spysupport/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.resources.spysupport/build.properties b/bundles/org.eclipse.core.resources.spysupport/build.properties
deleted file mode 100644
index 4d10b4d..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-src.includes=about.html
-bin.includes=fragment.xml,about.html, META-INF/,.
-qualifier=context
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/dtree/SpySupport.java b/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/dtree/SpySupport.java
deleted file mode 100644
index d84c2c0..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/dtree/SpySupport.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.internal.dtree;
-
-
-/**
- * Provides special internal access to the workspace resource implementation.
- * This class is to be used for testing purposes only.
- */
-public class SpySupport {
-
-	/* 
-	 * Class cannot be instantiated.
-	 */
-	private SpySupport() {
-		// not allowed
-	}
-	
-	public static AbstractDataTreeNode getRootNode(DeltaDataTree node) {
-		return node.getRootNode();
-	}
-}
diff --git a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/properties/SpySupport.java b/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/properties/SpySupport.java
deleted file mode 100644
index 011b1b3..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/properties/SpySupport.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.internal.properties;
-
-import org.eclipse.core.internal.resources.Resource;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Provides special internal access to the property store implementation.
- * This class is to be used for testing purposes only.
- */
-public class SpySupport {
-
-/**
- * Return the property store which is associated with the given resource.
- *
- * @param resource the resource whose property store is being accessed
- * @return the resource's property store
- * @throws CoreException if there was a problem accessing the resource's property store
- */
-public static PropertyStore getPropertyStore(IResource resource) throws CoreException {
-	return ((Resource) resource).getPropertyManager().getPropertyStore(resource);
-}
-
-}
diff --git a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/resources/SpySupport.java b/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/resources/SpySupport.java
deleted file mode 100644
index 569cff3..0000000
--- a/bundles/org.eclipse.core.resources.spysupport/src/org/eclipse/core/internal/resources/SpySupport.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.internal.resources;
-
-import java.util.Map;
-import org.eclipse.core.internal.utils.Cache;
-import org.eclipse.core.internal.watson.ElementTree;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-/**
- * Provides special internal access to the workspace resource implementation.
- * This class is to be used for testing purposes only.
- */
-public class SpySupport {
-
-	/* 
-	 * Class cannot be instantiated.
-	 */
-	private SpySupport() {
-		// not allowed
-	}
-	/**
-	 * Returns a copy of the session properties for the given resource. If the resource
-	 * is not accessible or any problems occur accessing it, then <code>null</code> is
-	 * returned.
-	 * 
-	 * @param resource the resource to get the properties from
-	 * @return the resource's session properties or <code>null</code>
-	 */
-	public static Map getSessionProperties(IResource resource) {
-		ResourceInfo info = ((Resource) resource).getResourceInfo(true, false);
-		if (info == null)
-			return null;
-		return getSessionProperties(info);
-	}
-	public static Map getSessionProperties(ResourceInfo info) {
-		return info.sessionProperties == null ? null : (Map) info.sessionProperties.clone();
-	}
-	public static Map getSyncInfo(ResourceInfo info) {
-		return info.syncInfo;
-	}
-	public static ElementTree getOldestTree() {
-		return ((Workspace) ResourcesPlugin.getWorkspace()).getSaveManager().lastSnap;
-	}
-	/**
-	 * Returns the number of bytes of memory occupied by the given marker set
-	 */
-	public static IMarkerSetElement[] getElements(MarkerSet markerSet) {
-		return markerSet.elements;
-	}
-	public static Object[] getElements(MarkerAttributeMap markerMap) {
-		return markerMap.elements;
-	}
-	public static boolean isContentDescriptionCached(File file) {
-		ResourceInfo info = file.getResourceInfo(false, false);
-		Cache.Entry entry = ((Workspace) ResourcesPlugin.getWorkspace()).getContentDescriptionManager().getCache().getEntry(file.getFullPath(), false);
-		return entry != null && info.getContentId() == entry.getTimestamp();
-	}
-}
diff --git a/bundles/org.eclipse.core.tools.resources/.classpath b/bundles/org.eclipse.core.tools.resources/.classpath
deleted file mode 100644
index 3e34eb2..0000000
--- a/bundles/org.eclipse.core.tools.resources/.classpath
+++ /dev/null
@@ -1,8 +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="src" path="/org.eclipse.core.resources.spysupport"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.tools.resources/.cvsignore b/bundles/org.eclipse.core.tools.resources/.cvsignore
deleted file mode 100644
index 3aa6193..0000000
--- a/bundles/org.eclipse.core.tools.resources/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-coretools.jar
diff --git a/bundles/org.eclipse.core.tools.resources/.options b/bundles/org.eclipse.core.tools.resources/.options
deleted file mode 100644
index b28b8ed..0000000
--- a/bundles/org.eclipse.core.tools.resources/.options
+++ /dev/null
@@ -1,11 +0,0 @@
-
-#### Resources settings
-# enable Resourced debugging
-org.eclipse.core.resources/debug=true
-
-# Monitor builders and gather time statistics etc.
-org.eclipse.core.resources/monitor/builders=true
-
-# Monitor resource change listeners and gather time statistics etc.
-org.eclipse.core.resources/monitor/listeners=true
-
diff --git a/bundles/org.eclipse.core.tools.resources/.project b/bundles/org.eclipse.core.tools.resources/.project
deleted file mode 100644
index df20d2b..0000000
--- a/bundles/org.eclipse.core.tools.resources/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tools.resources</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.resources/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.core.tools.resources/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index f3ab745..0000000
--- a/bundles/org.eclipse.core.tools.resources/.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.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.tools.resources/META-INF/MANIFEST.MF
deleted file mode 100644
index bf8d33c..0000000
--- a/bundles/org.eclipse.core.tools.resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-Name: Core Resources Tools
-Bundle-SymbolicName: org.eclipse.core.tools.resources;singleton=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Provide-Package: org.eclipse.core.tools.metadata,
- org.eclipse.core.tools.resources
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jface.text,
- org.eclipse.ui,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors,
- org.eclipse.ui.ide,
- org.eclipse.core.tools
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.core.tools.resources/about.html b/bundles/org.eclipse.core.tools.resources/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/bundles/org.eclipse.core.tools.resources/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/about.ini b/bundles/org.eclipse.core.tools.resources/about.ini
deleted file mode 100644
index e521604..0000000
--- a/bundles/org.eclipse.core.tools.resources/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.resources/about.mappings b/bundles/org.eclipse.core.tools.resources/about.mappings
deleted file mode 100644
index 720ca87..0000000
--- a/bundles/org.eclipse.core.tools.resources/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.resources/about.properties b/bundles/org.eclipse.core.tools.resources/about.properties
deleted file mode 100644
index b382b4c..0000000
--- a/bundles/org.eclipse.core.tools.resources/about.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# 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, 2002.  All rights reserved.\n\
-Visit http://eclipse.org/eclipse/development/performance
-
diff --git a/bundles/org.eclipse.core.tools.resources/build.properties b/bundles/org.eclipse.core.tools.resources/build.properties
deleted file mode 100644
index 8318141..0000000
--- a/bundles/org.eclipse.core.tools.resources/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-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.resources/cpl-v10.html b/bundles/org.eclipse.core.tools.resources/cpl-v10.html
deleted file mode 100644
index 36aa208..0000000
--- a/bundles/org.eclipse.core.tools.resources/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.resources/doc/hglegal2002.htm b/bundles/org.eclipse.core.tools.resources/doc/hglegal2002.htm
deleted file mode 100644
index 5df454d..0000000
--- a/bundles/org.eclipse.core.tools.resources/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.resources/doc/ngibmcpy2002.gif b/bundles/org.eclipse.core.tools.resources/doc/ngibmcpy2002.gif
deleted file mode 100644
index 61cef48..0000000
--- a/bundles/org.eclipse.core.tools.resources/doc/ngibmcpy2002.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/doc/readme.html b/bundles/org.eclipse.core.tools.resources/doc/readme.html
deleted file mode 100644
index 6caf1c7..0000000
--- a/bundles/org.eclipse.core.tools.resources/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 to 
-    maintain the resource model. Point these tools at a workspace 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 Workspace-&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 workspace 
-metadata directory, browse its structure and see supported files contents and 
-integrity status. 
-<h4></h4>
-<dl> 
-  <dt><b>Workspace Files Spy</b></dt>
-  <dd>This view allows the user to select a given workspace .metadata directory 
-    and uses a tree view to show a directory hierarchy (having .metadata as root) 
-    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 through a command-line tool: 
-  <code>org.eclipse.core.tools.dumper.DumpTool</code>. To run it, you need to 
-  provide the file to be dumped as an argument. Beware the classpath must include 
-  both Spy and Resources plug-ins' JARs. </p>
-<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.resources/icons/classes.gif b/bundles/org.eclipse.core.tools.resources/icons/classes.gif
deleted file mode 100644
index 4fa0940..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/classes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/clear.gif b/bundles/org.eclipse.core.tools.resources/icons/clear.gif
deleted file mode 100644
index 2558326..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/clear.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/collapseall.gif b/bundles/org.eclipse.core.tools.resources/icons/collapseall.gif
deleted file mode 100644
index 0bae56c..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/datasheet.gif b/bundles/org.eclipse.core.tools.resources/icons/datasheet.gif
deleted file mode 100644
index ec0cba1..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/datasheet.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/plugin.gif b/bundles/org.eclipse.core.tools.resources/icons/plugin.gif
deleted file mode 100644
index 8a87648..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/plugin.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/refresh.gif b/bundles/org.eclipse.core.tools.resources/icons/refresh.gif
deleted file mode 100644
index a063c23..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/req_plugins_obj.gif b/bundles/org.eclipse.core.tools.resources/icons/req_plugins_obj.gif
deleted file mode 100644
index 689f522..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/req_plugins_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/reset.gif b/bundles/org.eclipse.core.tools.resources/icons/reset.gif
deleted file mode 100644
index 8d50500..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/reset.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/spy.gif b/bundles/org.eclipse.core.tools.resources/icons/spy.gif
deleted file mode 100644
index ce3fc51..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/spy.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/trace.gif b/bundles/org.eclipse.core.tools.resources/icons/trace.gif
deleted file mode 100644
index 34027a5..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/trace.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/icons/zoom.gif b/bundles/org.eclipse.core.tools.resources/icons/zoom.gif
deleted file mode 100644
index 3c10582..0000000
--- a/bundles/org.eclipse.core.tools.resources/icons/zoom.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.core.tools.resources/notice.html b/bundles/org.eclipse.core.tools.resources/notice.html
deleted file mode 100644
index af8c380..0000000
--- a/bundles/org.eclipse.core.tools.resources/notice.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
diff --git a/bundles/org.eclipse.core.tools.resources/plugin.xml b/bundles/org.eclipse.core.tools.resources/plugin.xml
deleted file mode 100644
index 6766aa5..0000000
--- a/bundles/org.eclipse.core.tools.resources/plugin.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-<!--  Actions -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Count resources"
-            visible="true"
-            id="org.eclipse.core.tools.resources.actionSet">
-         <action
-               label="Count resources"
-               icon="icons/spy.gif"
-               class="org.eclipse.core.tools.resources.CountResourcesAction"
-               tooltip="Count resources"
-               toolbarPath="Normal/spyGroup"
-               id="org.eclipse.core.tools.countResourcesAction">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <actionSet
-               id="org.eclipse.core.tools.resources.actionSet">
-         </actionSet>
-      </perspectiveExtension>
-   </extension>
-<!--  Perspectives -->
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Metadata Perspective"
-            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="Workspace Files Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.metadata"
-            class="org.eclipse.core.tools.metadata.WorkspaceView"
-            id="org.eclipse.core.tools.metadata.WorkspaceView">
-      </view>
-   </extension>
-<!-- Resources Views  -->
-   <extension point="org.eclipse.ui.views">
-      <category name="Resources Tools" id="org.eclipse.core.tools.resources"/>
-      <view
-            name="Delta Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.DeltaView"
-            id="org.eclipse.core.tools.resources.DeltaView"/>
-      <view
-            name="Builder/Listener Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.EventsView"
-            id="org.eclipse.core.tools.resources.EventsView"/>
-      <view
-            name="Element Tree Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.ElementTreeView"
-            id="org.eclipse.core.tools.resources.ElementTreeView"/>
-      <view
-            name="Resource Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.ResourceView"
-            id="org.eclipse.core.tools.resources.ResourceView"/>
-      <view
-            name="Project Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.ProjectView"
-            id="org.eclipse.core.tools.resources.ProjectView"/>
-      <view
-            name="Graphical Delta Spy"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.ResourceChangeView"
-            id="org.eclipse.core.tools.resources.ResourceChangeView"/>
-      <view
-            name="Local History Browser"
-            icon="icons/spy.gif"
-            category="org.eclipse.core.tools.resources"
-            class="org.eclipse.core.tools.resources.LocalHistoryBrowserView"
-            id="org.eclipse.core.tools.resources.LocalHistoryBrowserView"/>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.core.tools.resources/src/dumper_factory.properties b/bundles/org.eclipse.core.tools.resources/src/dumper_factory.properties
deleted file mode 100644
index f80c7f9..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/dumper_factory.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-
-#This file contains mappings between file names and dumper classes.
-#It is intended to be used by DumperFactory.
-
-.markers=org.eclipse.core.tools.metadata.MarkersDumper
-.markers.snap=org.eclipse.core.tools.metadata.MarkersSnapshotDumper
-.syncinfo=org.eclipse.core.tools.metadata.SyncInfoDumper
-.syncinfo.snap=org.eclipse.core.tools.metadata.SyncInfoSnapshotDumper
-.properties=org.eclipse.core.tools.metadata.PropertiesDumper
-.location=org.eclipse.core.tools.metadata.LocationDumper
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/AbstractDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/AbstractDumper.java
deleted file mode 100644
index 95dd319..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/AbstractDumper.java
+++ /dev/null
@@ -1,118 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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. Subclasses must provide a concrete 
- * implementation for <code>getStringDumpingStrategy(InputStream)</code> method.
- */
-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 #getStringDumpingStrategy(DataInputStream)
-	 * @see IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 * @see #openInputStream(File)
-	 */
-	public final IDump dump(File file) {
-
-		DataInputStream dataInput = null;
-		MeteredInputStream meteredInput = null;
-		Dump dump = new Dump();
-
-		dump.setFile(file);
-		IStringDumpingStrategy strategy;
-		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));
-			dataInput = new DataInputStream(meteredInput);
-
-			int c;
-			while ((c = meteredInput.read()) != -1) {
-				meteredInput.unread(c);
-				strategy = getStringDumpingStrategy(dataInput);
-				contents.append("Format: "); //$NON-NLS-1$
-				contents.append(strategy.getFormatDescription());
-				contents.append("\n\n"); //$NON-NLS-1$
-				contents.append(strategy.dumpStringContents(dataInput));
-				contents.append("\n"); //$NON-NLS-1$                          
-			}
-
-			if (contents.length() == 0)
-				contents.append("No contents\n"); //$NON-NLS-1$
-
-		} 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;
-	}
-
-	/**
-	 * 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);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/Dump.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/Dump.java
deleted file mode 100644
index 339c63b..0000000
--- a/bundles/org.eclipse.core.tools.resources/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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpContentsView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpContentsView.java
deleted file mode 100644
index d74358f..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpContentsView.java
+++ /dev/null
@@ -1,196 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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() {
-		try {
-			dumperFactory = DumperFactory.getInstance();
-			this.registeredFileNames = dumperFactory.getRegisteredFileNames();
-		} catch (DumpException de) {
-			ErrorUtil.logException(de, null);
-			ErrorUtil.showErrorMessage(de.getMessage(), "Error creating view"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * 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()) {
-			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.setTitle(initialTitle + " : " + this.currentFile.getName());
-		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));
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpException.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpException.java
deleted file mode 100644
index 2962c9c..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpException.java
+++ /dev/null
@@ -1,115 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 {
-
-	/**
-	 * The low-level exception that caused this <coed>DumpException</code>. May be 
-	 * null.
-	 */
-	private Throwable cause;
-
-	/**
-	 * Constructs a non-initialized <code>DumpException</code>.
-	 */
-	public DumpException() {
-		super();
-	}
-
-	/**
-	 * 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;
-	}
-
-	/**
-	 * Constructs a <code>DumpException</code> with the provided cause.
-	 * 
-	 * @param cause the exception that caused this <code>DumpException</code>
-	 */
-	public DumpException(Throwable cause) {
-		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);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpSummaryView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
deleted file mode 100644
index 1529819..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpSummaryView.java
+++ /dev/null
@@ -1,96 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.setTitle(initialTitle + " : " + file.getName());
-		this.setTitleToolTip("Dump summary for file " + file.getAbsolutePath());
-
-		// generates text to be shown on this view
-		StringBuffer output = new StringBuffer();
-		if (dump.isFailed()) {
-			output.append(dump.getFailureReason().toString());
-			output.append('\n');
-			output.append("\nOffset: " + dump.getOffset()); //$NON-NLS-1$
-		} else
-			output.append("No errors"); //$NON-NLS-1$
-
-		// updates the view contents 
-		viewer.getDocument().set(output.toString());
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpTool.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpTool.java
deleted file mode 100644
index 28b0ad8..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumpTool.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-
-/**
- * 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 {
-
-	/**
-	 * 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 void run(String[] args) {
-
-		if (args.length < 1) {
-			System.err.println("Usage:\tDumpTool <filename>"); //$NON-NLS-1$
-			System.exit(0);
-		}
-
-		String fileName = args[0];
-
-		try {
-			IDumper dumper = DumperFactory.getInstance().getDumper(fileName);
-			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());
-
-		} catch (DumpException de) {
-			System.err.println("Error: \n" + de); //$NON-NLS-1$
-			System.exit(1);
-		}
-	}
-
-	/**
-	 * Command-line entry point. Just instantiates DumpTool and invokes its 
-	 * <code>run()</code> method passing arguments provided in the command-line.
-	 * 
-	 * @param args the command-line arguments
-	 */
-	public static void main(String[] args) {
-		new DumpTool().run(args);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumperFactory.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumperFactory.java
deleted file mode 100644
index ea1ba2f..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/DumperFactory.java
+++ /dev/null
@@ -1,107 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-import java.util.Map;
-import java.util.Properties;
-
-/**
- * A dumper factory creates a dumper object given a file name.
- */
-public class DumperFactory {
-
-	/**
-	 * The <code>DumperFactory</code> singleton reference.
-	 */
-	private static DumperFactory ref;
-
-	/**
-	 * This dumper factory mappings configuration.
-	 */
-	private Map configuration;
-
-	/**
-	 * Provides access to a DumperFactory instance.
-	 * 
-	 * @return a <code>DumperFactory</code> instance
-	 * @throws DumpException if a problem occurs while instantiating the factory
-	 * object
-	 */
-	public synchronized static DumperFactory getInstance() throws DumpException {
-		// currently we allow only one instance for this class
-		if (ref == null)
-			ref = new DumperFactory();
-		return ref;
-	}
-
-	/**
-	 * Constructs a dumper factory, reading mappings configuration from a properties
-	 * file. Forbids instantiation from outside this class. 
-	 * 
-	 * @throws DumpException if there is no mappings configuration file, or if 
-	 * there was a error when reading it.   
-	 */
-	private DumperFactory() throws DumpException {
-		InputStream input = getClass().getResourceAsStream("/dumper_factory.properties"); //$NON-NLS-1$
-		if (input == null)
-			throw new DumpException("Dumper factory registry file not found"); //$NON-NLS-1$
-
-		Properties configuration = new Properties();
-		try {
-			configuration.load(input);
-			this.configuration = configuration;
-		} catch (IOException ioe) {
-			throw new DumpException("Error opening Dumper factory registry file", ioe); //$NON-NLS-1$
-		} finally {
-			try {
-				input.close();
-			} catch (IOException ioe) {
-				throw new DumpException("Error closing Dumper factory registry file", ioe); //$NON-NLS-1$
-			}
-		}
-
-	}
-
-	/**
-	 * 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);
-		String className = (String) configuration.get(fileName);
-
-		if (className == null)
-			throw new DumpException("There is no dumper class for <" + fileName + "> files"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		try {
-			return (IDumper) Class.forName(className).newInstance();
-		} catch (Exception e) {
-			throw new DumpException("Error instantiating dumper for <" + fileName + "> file", e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDump.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDump.java
deleted file mode 100644
index fd495d1..0000000
--- a/bundles/org.eclipse.core.tools.resources/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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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();
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IDumper.java
deleted file mode 100644
index 0b279ee..0000000
--- a/bundles/org.eclipse.core.tools.resources/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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
deleted file mode 100644
index 008fadf..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/IStringDumpingStrategy.java
+++ /dev/null
@@ -1,44 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-
-/**
- * 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
-	 * @throws Exception any exception occurred while dumping the input stream 
-	 */
-	public String dumpStringContents(DataInputStream input) throws Exception;
-
-	/**
-	 * 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();
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationDumper.java
deleted file mode 100644
index 74051bf..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationDumper.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-import org.eclipse.core.internal.localstore.SafeChunkyInputStream;
-
-/**
- * A dumper for .location files.
- *  
- * @see org.eclipse.core.tools.metadata.AbstractDumper
- * @see org.eclipse.core.tools.metadata.LocationStrategy  
- */
-public class LocationDumper extends AbstractDumper {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#getStringDumpingStrategy(java.io.DataInputStream)
-	 */
-	protected IStringDumpingStrategy getStringDumpingStrategy(DataInputStream input) throws Exception {
-		return new LocationStrategy();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#openInputStream(java.io.File)
-	 */
-	protected InputStream openInputStream(File file) throws IOException {
-		return new SafeChunkyInputStream(file);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationStrategy.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationStrategy.java
deleted file mode 100644
index 06b502a..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/LocationStrategy.java
+++ /dev/null
@@ -1,33 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-
-/**
- * A strategy for reading .location files. 
- */
-class LocationStrategy implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		return "Location: " + dataInput.readUTF(); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Project location file"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumper.java
deleted file mode 100644
index 33f5d04..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumper.java
+++ /dev/null
@@ -1,56 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-
-/**
- * A dumper for .markers files.
- * 
- * @see org.eclipse.core.tools.metadata.AbstractDumper
- * @see org.eclipse.core.tools.metadata.MarkersDumpingStrategy_1 
- * @see org.eclipse.core.tools.metadata.MarkersDumpingStrategy_2
- * @see org.eclipse.core.tools.metadata.MarkersDumpingStrategy_3  
- */
-public class MarkersDumper extends AbstractDumper {
-
-	// type constants
-	static final byte INDEX = 1;
-	static final byte QNAME = 2;
-
-	// marker attribute types
-	static final byte ATTRIBUTE_NULL = 0;
-	static final byte ATTRIBUTE_BOOLEAN = 1;
-	static final byte ATTRIBUTE_INTEGER = 2;
-	static final byte ATTRIBUTE_STRING = 3;
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#getStringDumpingStrategy(java.io.DataInputStream)
-	 */
-	protected IStringDumpingStrategy getStringDumpingStrategy(DataInputStream dataInput) throws Exception {
-		int versionId = dataInput.readInt();
-		IStringDumpingStrategy strategy;
-		switch (versionId) {
-			case 1 :
-				strategy = new MarkersDumpingStrategy_1();
-				break;
-			case 2 :
-				strategy = new MarkersDumpingStrategy_2();
-				break;
-			case 3 :
-				strategy = new MarkersDumpingStrategy_3();
-				break;
-			default :
-				throw new DumpException("Unknown markers file version: " + versionId); //$NON-NLS-1$
-		}
-		return strategy;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_1.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_1.java
deleted file mode 100644
index 4e4abc2..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_1.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A strategy for reading .markers files version 1. Layout:
- * <pre>
- * SAVE_FILE -> VERSION_ID RESOURCE+
- * VERSION_ID -> 
- * RESOURCE -> RESOURCE_PATH MARKERS_SIZE MARKER*
- * RESOURCE_PATH -> String
- * MARKERS_SIZE -> int
- * MARKER -> MARKER_ID TYPE ATTRIBUTES_SIZE ATTRIBUTE*
- * MARKER_ID -> long
- * TYPE -> INDEX | QNAME
- * INDEX -> int int
- * QNAME -> int String
- * ATTRIBUTES_SIZE -> int
- * ATTRIBUTE -> ATTRIBUTE_KEY ATTRIBUTE_VALUE
- * ATTRIBUTE_KEY -> String
- * ATTRIBUTE_VALUE -> INTEGER_VALUE | BOOLEAN_VALUE | STRING_VALUE | NULL_VALUE
- * INTEGER_VALUE -> int int
- * BOOLEAN_VALUE -> int boolean
- * STRING_VALUE -> int String
- * NULL_VALUE -> int
- * </pre>
- */
-public class MarkersDumpingStrategy_1 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		List markerTypes = new ArrayList();
-		while (dataInput.available() > 0) {
-			String resourceName = dataInput.readUTF();
-			contents.append("Resource: "); //$NON-NLS-1$
-			contents.append(resourceName);
-			contents.append('\n');
-			dumpMarkers(dataInput, contents, markerTypes);
-			contents.append('\n');
-		}
-		return contents.toString();
-	}
-
-	private void dumpMarkers(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		int markersSize = input.readInt();
-		contents.append("Markers ["); //$NON-NLS-1$
-		contents.append(markersSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int i = 0; i < markersSize; i++) {
-			contents.append("ID: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-			dumpMarkerType(input, contents, markerTypes);
-			dumpAttributes(input, contents);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpAttributes(DataInputStream input, StringBuffer contents) throws IOException, DumpException {
-		int attributesSize = input.readInt();
-		contents.append("Attributes ["); //$NON-NLS-1$
-		contents.append(attributesSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int j = 0; j < attributesSize; j++) {
-			contents.append(input.readUTF());
-			int type = input.readInt();
-			Object value = null;
-			switch (type) {
-				case MarkersDumper.ATTRIBUTE_INTEGER :
-					value = new Integer(input.readInt());
-					break;
-				case MarkersDumper.ATTRIBUTE_BOOLEAN :
-					value = input.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
-					break;
-				case MarkersDumper.ATTRIBUTE_STRING :
-					value = "\"" + input.readUTF() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case MarkersDumper.ATTRIBUTE_NULL :
-					break;
-				default :
-					throw new DumpException("Invalid marker attribute type found: " + type); //$NON-NLS-1$
-			}
-			contents.append('=');
-			contents.append(value);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpMarkerType(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		String markerType;
-		int constant = input.readInt();
-		switch (constant) {
-			case MarkersDumper.QNAME :
-				markerType = input.readUTF();
-				markerTypes.add(markerType);
-				break;
-			case MarkersDumper.INDEX :
-				markerType = (String) markerTypes.get(input.readInt());
-				break;
-			default :
-				throw new DumpException("Invalid marker type constant found: " + constant); //$NON-NLS-1$
-		}
-		contents.append("Marker Type: "); //$NON-NLS-1$
-		contents.append(markerType);
-		contents.append('\n');
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Markers snapshot file version 1"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_2.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_2.java
deleted file mode 100644
index 69f7321..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_2.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A strategy for reading .markers files version 2. Layout:
- * <pre>
- * SAVE_FILE -> VERSION_ID RESOURCE+
- * VERSION_ID -> int
- * RESOURCE -> RESOURCE_PATH MARKERS_SIZE MARKER+
- * RESOURCE_PATH -> String
- * MARKERS_SIZE -> int
- * MARKER -> MARKER_ID TYPE ATTRIBUTES_SIZE ATTRIBUTE*
- * MARKER_ID -> long
- * TYPE -> INDEX | QNAME
- * INDEX -> byte int
- * QNAME -> byte String
- * ATTRIBUTES_SIZE -> short
- * ATTRIBUTE -> ATTRIBUTE_KEY ATTRIBUTE_VALUE
- * ATTRIBUTE_KEY -> String
- * ATTRIBUTE_VALUE -> INTEGER_VALUE | BOOLEAN_VALUE | STRING_VALUE | NULL_VALUE
- * INTEGER_VALUE -> byte int
- * BOOLEAN_VALUE -> byte boolean
- * STRING_VALUE -> byte String
- * NULL_VALUE -> byte
- * </pre> 
- */
-public class MarkersDumpingStrategy_2 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		List markerTypes = new ArrayList();
-		while (dataInput.available() > 0) {
-			String resourceName = dataInput.readUTF();
-			contents.append("Resource: "); //$NON-NLS-1$
-			contents.append(resourceName);
-			contents.append('\n');
-			dumpMarkers(dataInput, contents, markerTypes);
-			contents.append('\n');
-		}
-		return contents.toString();
-	}
-
-	private void dumpMarkers(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		int markersSize = input.readInt();
-		contents.append("Markers ["); //$NON-NLS-1$
-		contents.append(markersSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int i = 0; i < markersSize; i++) {
-			contents.append("ID: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-			dumpMarkerType(input, contents, markerTypes);
-			dumpAttributes(input, contents);
-		}
-	}
-
-	private void dumpAttributes(DataInputStream input, StringBuffer contents) throws IOException, DumpException {
-		int attributesSize = input.readShort();
-		contents.append("Attributes ["); //$NON-NLS-1$
-		contents.append(attributesSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int j = 0; j < attributesSize; j++) {
-			contents.append(input.readUTF());
-			byte type = input.readByte();
-			Object value = null;
-			switch (type) {
-				case MarkersDumper.ATTRIBUTE_INTEGER :
-					value = new Integer(input.readInt());
-					break;
-				case MarkersDumper.ATTRIBUTE_BOOLEAN :
-					value = input.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
-					break;
-				case MarkersDumper.ATTRIBUTE_STRING :
-					value = "\"" + input.readUTF() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case MarkersDumper.ATTRIBUTE_NULL :
-					break;
-				default :
-					throw new DumpException("Invalid marker attribute type found: " + type); //$NON-NLS-1$
-			}
-			contents.append('=');
-			contents.append(value);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpMarkerType(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		String markerType;
-		byte constant = input.readByte();
-		switch (constant) {
-			case MarkersDumper.QNAME :
-				markerType = input.readUTF();
-				markerTypes.add(markerType);
-				break;
-			case MarkersDumper.INDEX :
-				markerType = (String) markerTypes.get(input.readInt());
-				break;
-			default :
-				throw new DumpException("Invalid marker type constant found: " + constant); //$NON-NLS-1$
-		}
-		contents.append("Marker Type: "); //$NON-NLS-1$
-		contents.append(markerType);
-		contents.append('\n');
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Markers snapshot file version 2"; //$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_3.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_3.java
deleted file mode 100644
index 9efd3e2..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersDumpingStrategy_3.java
+++ /dev/null
@@ -1,137 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A strategy for reading .markers files version 3. Layout:
- * <pre>
- * SAVE_FILE -> VERSION_ID RESOURCE+
- * VERSION_ID -> int
- * RESOURCE -> RESOURCE_PATH MARKERS_SIZE MARKER+
- * RESOURCE_PATH -> String
- * MARKERS_SIZE -> int
- * MARKER -> MARKER_ID TYPE ATTRIBUTES_SIZE ATTRIBUTE* CREATION_TIME
- * MARKER_ID -> long
- * TYPE -> INDEX | QNAME
- * INDEX -> byte int
- * QNAME -> byte String
- * ATTRIBUTES_SIZE -> short
- * ATTRIBUTE -> ATTRIBUTE_KEY ATTRIBUTE_VALUE
- * ATTRIBUTE_KEY -> String
- * ATTRIBUTE_VALUE -> INTEGER_VALUE | BOOLEAN_VALUE | STRING_VALUE | NULL_VALUE
- * INTEGER_VALUE -> byte int
- * BOOLEAN_VALUE -> byte boolean
- * STRING_VALUE -> byte String
- * NULL_VALUE -> byte
- * CREATION_TIME -> long
- * </pre> 
- */
-
-public class MarkersDumpingStrategy_3 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		List markerTypes = new ArrayList();
-		while (dataInput.available() > 0) {
-			String resourceName = dataInput.readUTF();
-			contents.append("Resource: "); //$NON-NLS-1$
-			contents.append(resourceName);
-			contents.append('\n');
-			dumpMarkers(dataInput, contents, markerTypes);
-			contents.append('\n');
-		}
-		return contents.toString();
-	}
-
-	private void dumpMarkers(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		int markersSize = input.readInt();
-
-		contents.append("Markers ["); //$NON-NLS-1$
-		contents.append(markersSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int i = 0; i < markersSize; i++) {
-			contents.append("ID: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-			dumpMarkerType(input, contents, markerTypes);
-			dumpAttributes(input, contents);
-			contents.append("Creation time: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-		}
-	}
-
-	private void dumpAttributes(DataInputStream input, StringBuffer contents) throws IOException, DumpException {
-		int attributesSize = input.readShort();
-		contents.append("Attributes ["); //$NON-NLS-1$
-		contents.append(attributesSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int j = 0; j < attributesSize; j++) {
-			contents.append(input.readUTF());
-			byte type = input.readByte();
-			Object value = null;
-			switch (type) {
-				case MarkersDumper.ATTRIBUTE_INTEGER :
-					value = new Integer(input.readInt());
-					break;
-				case MarkersDumper.ATTRIBUTE_BOOLEAN :
-					value = input.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
-					break;
-				case MarkersDumper.ATTRIBUTE_STRING :
-					value = "\"" + input.readUTF() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case MarkersDumper.ATTRIBUTE_NULL :
-					break;
-				default :
-					throw new DumpException("Invalid marker attribute type found: " + type); //$NON-NLS-1$
-			}
-			contents.append('=');
-			contents.append(value);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpMarkerType(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		String markerType;
-		byte constant = input.readByte();
-		switch (constant) {
-			case MarkersDumper.QNAME :
-				markerType = input.readUTF();
-				markerTypes.add(markerType);
-				break;
-			case MarkersDumper.INDEX :
-				markerType = (String) markerTypes.get(input.readInt());
-				break;
-			default :
-				throw new DumpException("Invalid marker type constant found: " + constant); //$NON-NLS-1$
-		}
-		contents.append("Marker Type: "); //$NON-NLS-1$
-		contents.append(markerType);
-		contents.append('\n');
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Markers snapshot file version 3"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumper.java
deleted file mode 100644
index 3a52777..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumper.java
+++ /dev/null
@@ -1,62 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-import org.eclipse.core.internal.localstore.SafeChunkyInputStream;
-
-/**
- * A dumper for .markers.snap files.
- * 
- * @see org.eclipse.core.tools.metadata.AbstractDumper
- * @see org.eclipse.core.tools.metadata.MarkersSnapshotDumpingStrategy_1
- * @see org.eclipse.core.tools.metadata.MarkersSnapshotDumpingStrategy_2 
- */
-public class MarkersSnapshotDumper extends AbstractDumper {
-
-	// type constants
-	static final byte INDEX = 1;
-	static final byte QNAME = 2;
-
-	// marker attribute types
-	static final byte ATTRIBUTE_NULL = 0;
-	static final byte ATTRIBUTE_BOOLEAN = 1;
-	static final byte ATTRIBUTE_INTEGER = 2;
-	static final byte ATTRIBUTE_STRING = 3;
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#getStringDumpingStrategy(java.io.DataInputStream)
-	 */
-	protected IStringDumpingStrategy getStringDumpingStrategy(DataInputStream dataInput) throws Exception {
-		int versionId;
-		IStringDumpingStrategy strategy;
-		versionId = dataInput.readInt();
-		switch (versionId) {
-			case 1 :
-				strategy = new MarkersSnapshotDumpingStrategy_1();
-				break;
-			case 2 :
-				strategy = new MarkersSnapshotDumpingStrategy_2();
-				break;
-			default :
-				throw new DumpException("Unknown markers snapshot file version: " + versionId); //$NON-NLS-1$
-		}
-		return strategy;
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#openInputStream(java.io.File)
-	 */
-	protected InputStream openInputStream(File file) throws IOException {
-		return new SafeChunkyInputStream(file);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_1.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_1.java
deleted file mode 100644
index 28d6b0e..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_1.java
+++ /dev/null
@@ -1,130 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A strategy for reading .markers.snap files version 1. Layout:
- * <pre>
-
- * SNAP_FILE -> [VERSION_ID RESOURCE]*
- * VERSION_ID -> int (used for backwards compatibiliy)
- * RESOURCE -> RESOURCE_PATH MARKER_SIZE MARKER+
- * RESOURCE_PATH -> String
- * MARKER_SIZE -> int
- * MARKER -> MARKER_ID TYPE ATTRIBUTES_SIZE ATTRIBUTE*
- * MARKER_ID -> long
- * TYPE -> INDEX | QNAME
- * INDEX -> byte int
- * QNAME -> byte String
- * ATTRIBUTES_SIZE -> short
- * ATTRIBUTE -> ATTRIBUTE_KEY ATTRIBUTE_VALUE
- * ATTRIBUTE_KEY -> String
- * ATTRIBUTE_VALUE -> BOOLEAN_VALUE | INTEGER_VALUE | STRING_VALUE | NULL_VALUE
- * BOOLEAN_VALUE -> byte boolean
- * INTEGER_VALUE -> byte int
- * STRING_VALUE -> byte String
- * NULL_VALUE -> byte
- * </pre>
- */
-class MarkersSnapshotDumpingStrategy_1 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream input) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		DataInputStream dataInput = new DataInputStream(input);
-		List markerTypes = new ArrayList();
-		String resourceName = dataInput.readUTF();
-		contents.append("Resource: "); //$NON-NLS-1$
-		contents.append(resourceName);
-		contents.append('\n');
-		dumpMarkers(dataInput, contents, markerTypes);
-		return contents.toString();
-	}
-
-	private void dumpMarkers(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		int markersSize = input.readInt();
-		contents.append("Markers ["); //$NON-NLS-1$
-		contents.append(markersSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int i = 0; i < markersSize; i++) {
-			contents.append("ID: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-			dumpMarkerType(input, contents, markerTypes);
-			dumpAttributes(input, contents);
-		}
-	}
-
-	private void dumpAttributes(DataInputStream input, StringBuffer contents) throws IOException, DumpException {
-		int attributesSize = input.readShort();
-		contents.append("Attributes ["); //$NON-NLS-1$
-		contents.append(attributesSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int j = 0; j < attributesSize; j++) {
-			contents.append(input.readUTF());
-			byte type = input.readByte();
-			Object value = null;
-			switch (type) {
-				case MarkersSnapshotDumper.ATTRIBUTE_INTEGER :
-					value = new Integer(input.readInt());
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_BOOLEAN :
-					value = input.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_STRING :
-					value = "\"" + input.readUTF() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_NULL :
-					break;
-				default :
-					throw new DumpException("Invalid marker attribute type found: " + type); //$NON-NLS-1$
-			}
-			contents.append('=');
-			contents.append(value);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpMarkerType(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		String markerType;
-		byte constant = input.readByte();
-		switch (constant) {
-			case MarkersSnapshotDumper.QNAME :
-				markerType = input.readUTF();
-				markerTypes.add(markerType);
-				break;
-			case MarkersSnapshotDumper.INDEX :
-				markerType = (String) markerTypes.get(input.readInt());
-				break;
-			default :
-				throw new DumpException("Invalid marker type constant found: " + constant); //$NON-NLS-1$
-		}
-		contents.append("Marker Type: "); //$NON-NLS-1$
-		contents.append(markerType);
-		contents.append('\n');
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Markers snapshot file version 1"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_2.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_2.java
deleted file mode 100644
index aab1a77..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MarkersSnapshotDumpingStrategy_2.java
+++ /dev/null
@@ -1,136 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A strategy for reading .markers.snap files version 2. Layout:
- * <pre>
-
- * SNAP_FILE -> [VERSION_ID RESOURCE]*
- * VERSION_ID -> int (used for backwards compatibiliy)
- * RESOURCE -> RESOURCE_PATH MARKER_SIZE MARKER+
- * RESOURCE_PATH -> String
- * MARKER_SIZE -> int
- * MARKER -> MARKER_ID TYPE ATTRIBUTES_SIZE ATTRIBUTE* CREATION_TIME
- * MARKER_ID -> long
- * TYPE -> INDEX | QNAME
- * INDEX -> byte int
- * QNAME -> byte String
- * ATTRIBUTES_SIZE -> short
- * ATTRIBUTE -> ATTRIBUTE_KEY ATTRIBUTE_VALUE
- * ATTRIBUTE_KEY -> String
- * ATTRIBUTE_VALUE -> BOOLEAN_VALUE | INTEGER_VALUE | STRING_VALUE | NULL_VALUE
- * BOOLEAN_VALUE -> byte boolean
- * INTEGER_VALUE -> byte int
- * STRING_VALUE -> byte String
- * NULL_VALUE -> byte
- * CREATION_TIME -> long
- * </pre>
- */
-class MarkersSnapshotDumpingStrategy_2 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream input) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		DataInputStream dataInput = new DataInputStream(input);
-		List markerTypes = new ArrayList();
-		String resourceName = dataInput.readUTF();
-		contents.append("Resource: "); //$NON-NLS-1$
-		contents.append(resourceName);
-		contents.append('\n');
-		dumpMarkers(dataInput, contents, markerTypes);
-		return contents.toString();
-	}
-
-	private void dumpMarkers(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-		int markersSize = input.readInt();
-		contents.append("Markers ["); //$NON-NLS-1$
-		contents.append(markersSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int i = 0; i < markersSize; i++) {
-			contents.append("ID: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-			dumpMarkerType(input, contents, markerTypes);
-			dumpAttributes(input, contents);
-			contents.append("Creation time: "); //$NON-NLS-1$
-			contents.append(input.readLong());
-			contents.append('\n');
-		}
-	}
-
-	private void dumpAttributes(DataInputStream input, StringBuffer contents) throws IOException, DumpException {
-		int attributesSize = input.readShort();
-		contents.append("Attributes ["); //$NON-NLS-1$
-		contents.append(attributesSize);
-		contents.append("]:"); //$NON-NLS-1$
-		contents.append('\n');
-		for (int j = 0; j < attributesSize; j++) {
-			contents.append(input.readUTF());
-			byte type = input.readByte();
-			Object value = null;
-			switch (type) {
-				case MarkersSnapshotDumper.ATTRIBUTE_INTEGER :
-					value = new Integer(input.readInt());
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_BOOLEAN :
-					value = input.readBoolean() ? Boolean.TRUE : Boolean.FALSE;
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_STRING :
-					value = "\"" + input.readUTF() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case MarkersSnapshotDumper.ATTRIBUTE_NULL :
-					break;
-				default :
-					throw new DumpException("Invalid marker attribute type found: " + type); //$NON-NLS-1$
-
-			}
-			contents.append('=');
-			contents.append(value);
-			contents.append('\n');
-		}
-	}
-
-	private void dumpMarkerType(DataInputStream input, StringBuffer contents, List markerTypes) throws IOException, DumpException {
-
-		String markerType;
-		byte constant = input.readByte();
-		switch (constant) {
-			case MarkersSnapshotDumper.QNAME :
-				markerType = input.readUTF();
-				markerTypes.add(markerType);
-				break;
-			case MarkersSnapshotDumper.INDEX :
-				markerType = (String) markerTypes.get(input.readInt());
-				break;
-			default :
-				throw new DumpException("Invalid marker type constant found: " + constant); //$NON-NLS-1$
-		}
-		contents.append("Marker Type: "); //$NON-NLS-1$
-		contents.append(markerType);
-		contents.append('\n');
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Markers file version 2"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MetadataPerspective.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MetadataPerspective.java
deleted file mode 100644
index 5fd4761..0000000
--- a/bundles/org.eclipse.core.tools.resources/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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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: Workspace, 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(WorkspaceView.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);
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MeteredInputStream.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
deleted file mode 100644
index 0da06c8..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/MeteredInputStream.java
+++ /dev/null
@@ -1,126 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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 {
-		int read = super.read(b);
-		offset += read;
-		return read;
-	}
-	/**
-	 * 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);
-		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.resources/src/org/eclipse/core/tools/metadata/PropertiesDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/PropertiesDumper.java
deleted file mode 100644
index 1181250..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/PropertiesDumper.java
+++ /dev/null
@@ -1,78 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.internal.indexing.*;
-import org.eclipse.core.internal.properties.StoreKey;
-import org.eclipse.core.tools.ByteUtil;
-
-/**
- * A dumper for .properties files.
- */
-public class PropertiesDumper implements IDumper {
-
-	/**
-	 * Dumps a properties file. This implementation uses core internal classes for
-	 * reading properties files.
-	 * 
-	 * @param file the file to be dumped
-	 * @return a dump object representing the contents of the file dumped
-	 * @see org.eclipse.core.tools.metadata.IDumper#dump(java.io.File)
-	 */
-	public IDump dump(File file) {
-		Dump dump = new Dump();
-		dump.setFile(file);
-		StringBuffer contents = new StringBuffer();
-		IndexedStore store = null;
-		try {
-			store = new IndexedStore();
-			store.open(file.getAbsolutePath());
-			IndexCursor cursor = store.getIndex("index").open(); //$NON-NLS-1$
-			cursor.findFirstEntry();
-			StoreKey key;
-			String value;
-			contents.append("Keys are ( <qualifier> , <local-name> , <resource-name> )\n"); //$NON-NLS-1$
-			for (int i = 0; !cursor.isAtEnd(); i++) {
-				key = new StoreKey(cursor.getKey());
-				contents.append("\nKey #"); //$NON-NLS-1$
-				contents.append(i + 1);
-				contents.append(" ( "); //$NON-NLS-1$
-				contents.append(key.getQualifier());
-				contents.append(" , "); //$NON-NLS-1$
-				contents.append(key.getLocalName());
-				contents.append(" , "); //$NON-NLS-1$
-				contents.append(key.getResourceName());
-				contents.append(" )"); //$NON-NLS-1$
-				contents.append('\n');
-				contents.append("Value: "); //$NON-NLS-1$
-				value = ByteUtil.byteArrayToString(cursor.getValue());
-				contents.append(value);
-				contents.append("\n"); //$NON-NLS-1$
-				cursor.next();
-			}
-		} catch (Exception e) {
-			dump.setFailureReason(e);
-		} finally {
-			// closing the store will close the cursor too.
-			try {
-				if (store != null)
-					store.close();
-			} catch (IndexedStoreException ise) {
-				if (!dump.isFailed())
-					dump.setFailureReason(ise);
-			}
-		}
-		dump.setContents(contents.toString());
-		return dump;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumper.java
deleted file mode 100644
index fe7818e..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumper.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-
-/**
- * A dumper for .syncinfo files.
- *
- * @see org.eclipse.core.tools.metadata.AbstractDumper 
- * @see org.eclipse.core.tools.metadata.SyncInfoDumpingStrategy_2
- * @see org.eclipse.core.tools.metadata.SyncInfoDumpingStrategy_3
- */
-public class SyncInfoDumper extends AbstractDumper {
-
-	// type constants
-	static final byte INDEX = 1;
-	static final byte QNAME = 2;
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#getStringDumpingStrategy(java.io.DataInputStream)
-	 */
-	protected IStringDumpingStrategy getStringDumpingStrategy(DataInputStream dataInput) throws Exception {
-		int versionId = dataInput.readInt();
-		IStringDumpingStrategy strategy;
-		switch (versionId) {
-			case 2 :
-				strategy = new SyncInfoDumpingStrategy_2();
-				break;
-			case 3 :
-				strategy = new SyncInfoDumpingStrategy_3();
-				break;
-			default :
-				throw new DumpException("Unknown sync info file version: " + versionId); //$NON-NLS-1$
-		}
-		return strategy;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_2.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_2.java
deleted file mode 100644
index 817a84a..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_2.java
+++ /dev/null
@@ -1,101 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.tools.ByteUtil;
-
-/**
- * A strategy for reading .syncinfo files version 2. Layout:
- * <pre>
- * SAVE_FILE -> VERSION_ID RESOURCE*
- * VERSION_ID -> int
- * RESOURCE -> RESOURCE_PATH SIZE SYNCINFO*
- * RESOURCE_PATH -> String
- * SIZE -> int
- * SYNCINFO -> TYPE BYTES
- * TYPE -> INDEX | QNAME
- * INDEX -> int int
- * QNAME -> int String
- * BYTES -> byte[] 
- * </pre>
- */
-class SyncInfoDumpingStrategy_2 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		List readPartners = new ArrayList();
-		String resourceName;
-		while (dataInput.available() > 0) {
-			resourceName = dataInput.readUTF();
-
-			contents.append("Resource: "); //$NON-NLS-1$
-			contents.append(resourceName);
-			contents.append('\n');
-			dumpReadPartners(dataInput, contents, readPartners);
-			contents.append('\n');
-		}
-		return contents.toString();
-	}
-
-	private void dumpReadPartners(DataInputStream input, StringBuffer contents, List readPartners) throws DumpException, IOException {
-		int size = input.readInt();
-		for (int i = 0; i < size; i++) {
-			String qualifiedName;
-			int type = input.readInt();
-			switch (type) {
-				case SyncInfoDumper.QNAME :
-					String qualifier = input.readUTF();
-					String localName = input.readUTF();
-					if (qualifier.length() > 0)
-						qualifiedName = qualifier + ":" + localName; //$NON-NLS-1$
-					else
-						qualifiedName = localName;
-					readPartners.add(qualifiedName);
-					break;
-				case SyncInfoDumper.INDEX :
-					qualifiedName = (String) readPartners.get(input.readInt());
-					break;
-				default :
-					//if we get here then the sync info file is corrupt
-					throw new DumpException("Invalid read partner type found: " + type); //$NON-NLS-1$
-			}
-			contents.append("Read Partner: "); //$NON-NLS-1$
-			contents.append(qualifiedName);
-			contents.append('\n');
-
-			// read the bytes
-			int length = input.readInt();
-			byte[] bytes = new byte[length];
-			input.readFully(bytes);
-			// just show the first ones
-			contents.append("Bytes ("); //$NON-NLS-1$
-			contents.append(length);
-			contents.append("): "); //$NON-NLS-1$
-			contents.append(ByteUtil.byteArrayToString(bytes, 64));
-			contents.append('\n');
-		}
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Sync info file version 2"; //$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_3.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_3.java
deleted file mode 100644
index 53e76a3..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoDumpingStrategy_3.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.tools.ByteUtil;
-
-/**
- * A strategy for reading .syncinfo files version 3. Layout:
- * <pre>
- * SAVE_FILE -> VERSION_ID RESOURCE+
- * VERSION_ID -> int
- * RESOURCE -> RESOURCE_PATH SIZE SYNCINFO*
- * RESOURCE_PATH -> String
- * SIZE -> int
- * SYNCINFO -> TYPE BYTES
- * TYPE -> INDEX | QNAME
- * INDEX -> byte int
- * QNAME -> byte String
- * BYTES -> byte[]
- * </pre>
- */
-class SyncInfoDumpingStrategy_3 implements IStringDumpingStrategy {
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		List readPartners = new ArrayList();
-		String resourceName;
-		while (dataInput.available() > 0) {
-			resourceName = dataInput.readUTF();
-
-			contents.append("Resource: "); //$NON-NLS-1$
-			contents.append(resourceName);
-			contents.append('\n');
-			dumpReadPartners(dataInput, contents, readPartners);
-			contents.append('\n');
-		}
-		return contents.toString();
-	}
-
-	private void dumpReadPartners(DataInputStream input, StringBuffer contents, List readPartners) throws DumpException, IOException {
-		int size = input.readInt();
-
-		for (int i = 0; i < size; i++) {
-
-			String qualifiedName;
-			byte type = input.readByte();
-			switch (type) {
-				case SyncInfoDumper.QNAME :
-					String qualifier = input.readUTF();
-					String localName = input.readUTF();
-					if (qualifier.length() > 0)
-						qualifiedName = qualifier + ":" + localName; //$NON-NLS-1$
-					else
-						qualifiedName = localName;
-					readPartners.add(qualifiedName);
-					break;
-				case SyncInfoDumper.INDEX :
-					qualifiedName = (String) readPartners.get(input.readInt());
-					break;
-				default :
-					//if we get here then the sync info file is corrupt
-					throw new DumpException("Invalid read partner type found: " + type); //$NON-NLS-1$
-			}
-			contents.append("Read Partner: "); //$NON-NLS-1$
-			contents.append(qualifiedName);
-			contents.append('\n');
-
-			// read the bytes
-			int length = input.readInt();
-			byte[] bytes = new byte[length];
-			input.readFully(bytes);
-			// just show the first ones
-			contents.append("Bytes ("); //$NON-NLS-1$
-			contents.append(length);
-			contents.append("): "); //$NON-NLS-1$
-			contents.append(ByteUtil.byteArrayToString(bytes, 64));
-			contents.append('\n');
-
-		}
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Sync info file version 3"; //$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumper.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumper.java
deleted file mode 100644
index d9a2d94..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumper.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.*;
-import org.eclipse.core.internal.localstore.SafeChunkyInputStream;
-
-/**
- * A dumper for .syncinfo.snap files.
- * 
- * @see org.eclipse.core.tools.metadata.SyncInfoSnapshotDumpingStrategy_3
- */
-public class SyncInfoSnapshotDumper extends AbstractDumper {
-
-	static final byte INDEX = 1;
-	static final byte QNAME = 2;
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#getStringDumpingStrategy(DataInputStream)
-	 */
-	protected IStringDumpingStrategy getStringDumpingStrategy(DataInputStream dataInput) throws Exception {
-		int versionId = dataInput.readInt();
-		if (versionId != 3)
-			throw new DumpException("Unknown sync info's snapshot file version: " + versionId); //$NON-NLS-1$
-		return new SyncInfoSnapshotDumpingStrategy_3();
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.AbstractDumper#openInputStream(File)
-	 */
-	protected InputStream openInputStream(File file) throws IOException {
-		return new SafeChunkyInputStream(file);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumpingStrategy_3.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumpingStrategy_3.java
deleted file mode 100644
index 501fb14..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/SyncInfoSnapshotDumpingStrategy_3.java
+++ /dev/null
@@ -1,78 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import org.eclipse.core.tools.ByteUtil;
-
-/**
- * A strategy for reading .syncinfo.snap files version 3. Layout:
- * <pre>
- * SNAP_FILE -> [VERSION_ID RESOURCE]*
- * VERSION_ID -> int
- * RESOURCE -> RESOURCE_PATH SIZE SYNCINFO*
- * RESOURCE_PATH -> String
- * SIZE -> int
- * SYNCINFO -> QNAME BYTES
- * QNAME -> String String
- * BYTES -> byte[]
- * </pre>
- */
-class SyncInfoSnapshotDumpingStrategy_3 implements IStringDumpingStrategy {
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#dumpStringContents(DataInputStream)
-	 */
-	public String dumpStringContents(DataInputStream dataInput) throws Exception {
-		StringBuffer contents = new StringBuffer();
-		String resourceName = dataInput.readUTF();
-
-		contents.append("Resource: "); //$NON-NLS-1$
-		contents.append(resourceName);
-		contents.append('\n');
-		dumpReadPartners(dataInput, contents);
-		contents.append('\n');
-		return contents.toString();
-	}
-
-	private void dumpReadPartners(DataInputStream input, StringBuffer contents) throws DumpException, IOException {
-		int size = input.readInt();
-		for (int i = 0; i < size; i++) {
-			String qualifier = input.readUTF();
-			String localName = input.readUTF();
-
-			String qualifiedName = (qualifier.length() > 0) ? (qualifier + ":" + localName) : localName; //$NON-NLS-1$
-
-			contents.append("Read Partner: "); //$NON-NLS-1$
-			contents.append(qualifiedName);
-			contents.append('\n');
-
-			// read the bytes - what to do with them???
-			int length = input.readInt();
-			byte[] bytes = new byte[length];
-			input.readFully(bytes);
-			// just show the first ones
-			contents.append("Bytes ("); //$NON-NLS-1$
-			contents.append(length);
-			contents.append("): "); //$NON-NLS-1$
-			contents.append(ByteUtil.byteArrayToString(bytes, 64));
-			contents.append('\n');
-		}
-	}
-
-	/**
-	 * @see org.eclipse.core.tools.metadata.IStringDumpingStrategy#getFormatDescription()
-	 */
-	public String getFormatDescription() {
-		return "Sync info snapshot file version 3"; //$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceContentProvider.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceContentProvider.java
deleted file mode 100644
index 56e6e28..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceContentProvider.java
+++ /dev/null
@@ -1,180 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-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.tools.AbstractTreeContentProvider;
-import org.eclipse.core.tools.TreeContentProviderNode;
-
-/**
- * A tree content provider for Workspace view. Its input is .metadata directory,
- * the root directory from which Eclipse workspace 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 WorkspaceContentProvider extends AbstractTreeContentProvider {
-	/** 
-	 * The file filter. 
-	 * 
-	 * @see MetadataFileFilter
-	 */
-	private FileFilter fileFilter;
-
-	/** 
-	 * The directory filter. 
-	 * 
-	 * @see DirectoryFilter
-	 */
-	private FileFilter directoryFilter;
-
-	/**
-	 * Constructs a new content provider. 
-	 * 
-	 * @param registeredFileNames an array containing all metadata file names known 
-	 */
-	public WorkspaceContentProvider(String[] registeredFileNames) {
-		super(true);
-		this.fileFilter = new MetadataFileFilter(registeredFileNames);
-		this.directoryFilter = new DirectoryFilter();
-	}
-
-	/**
-	 * Returns true if the input is a <code>File</code> object pointing to 
-	 * a directory called ".metadata".
-	 * 
-	 * @return true if this input object is a <code>File</code> pointing to a 
-	 * .metadata directory.
-	 * @param input an input object 
-	 * @see org.eclipse.core.tools.AbstractTreeContentProvider#acceptInput(java.lang.Object)
-	 */
-	protected boolean acceptInput(Object input) {
-		if (!(input instanceof File))
-			return false;
-
-		File rootDir = (File) input;
-		return (rootDir.isDirectory() && rootDir.getName().equals(".metadata")); //$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(java.lang.Object)
-	 */
-	protected void rebuild(Object input) {
-		File metadataRootDir = (File) input;
-		TreeContentProviderNode metadataRootNode = makeNode(metadataRootDir);
-		getRootNode().addChild(metadataRootNode);
-		extractInfo((File) input, metadataRootNode);
-	}
-
-	/**
-	 * 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
-	 */
-	private boolean extractInfo(File dir, TreeContentProviderNode dirNode) {
-
-		TreeContentProviderNode childNode;
-
-		// looks for files of registered types in this directory	
-		File[] selectedFiles = dir.listFiles(fileFilter);
-		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);
-		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))
-				// ...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();
-	}
-
-	/**
-	 * 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 WorkspaceContentProvider#WorkspaceContentProvider(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();
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceView.java
deleted file mode 100644
index c6cd929..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/metadata/WorkspaceView.java
+++ /dev/null
@@ -1,189 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.metadata;
-
-import java.io.File;
-import org.eclipse.core.runtime.Platform;
-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 Workspace Spy view. This view allows the user to browse the
- * known files in a .metadata directory. "Known files" are those whose names
- * are known by the DumperFactory, thus they can be dumped.
- */
-public class WorkspaceView 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 current selected workspace's metadata dir. */
-	protected File metadataPath;
-
-	/** The id by which this view is known in the plug-in registry */
-	public static final String VIEW_ID = WorkspaceView.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) WorkspaceView.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 workspace action implementation.
-	 */
-	private class SelectWorkspaceAction extends Action {
-		/**
-		 * Initializes action's text and tool tip text.
-		 */
-		SelectWorkspaceAction() {
-			this.setText("Select workspace..."); //$NON-NLS-1$
-			this.setToolTipText("Select workspace..."); //$NON-NLS-1$
-		}
-
-		/**
-		 * Executes action, opening a file dialog so the user can select which
-		 * workspace .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 .metadata directory"); //$NON-NLS-1$
-			dirDialog.setMessage("Please choose a Eclipse workspace .metadata directory"); //$NON-NLS-1$
-			dirDialog.setFilterPath(metadataPath.getAbsolutePath());
-
-			String dirPath = dirDialog.open();
-
-			if (dirPath == null)
-				return;
-
-			setMetadataRoot(new File(dirPath));
-		}
-	}
-
-	/** 
-	 * Constructs a WorkspaceView.
-	 */
-	public WorkspaceView() {
-		// initializes the default .metadata location with the current platform 
-		// instance .metadata location
-		this.metadataPath = new File(Platform.getLocation().toFile(), ".metadata"); //$NON-NLS-1$
-	}
-
-	/**
-	 * 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) {
-		try {
-			viewer = new TreeViewer(parent);
-
-			// sets a content provider for the viewer
-			DumperFactory factory = DumperFactory.getInstance();
-			String[] fileNames = factory.getRegisteredFileNames();
-			WorkspaceContentProvider contentProvider;
-			contentProvider = new WorkspaceContentProvider(fileNames);
-			viewer.setContentProvider(contentProvider);
-
-			// creates actions
-			final IAction dumpFileAction = new DumpFileAction();
-			final IAction selectWorkspaceAction = new SelectWorkspaceAction();
-
-			// adds actions to the menu bar
-			IMenuManager barMenuManager = getViewSite().getActionBars().getMenuManager();
-			barMenuManager.add(selectWorkspaceAction);
-			barMenuManager.add(dumpFileAction);
-
-			// creates a context menu with actions and adds it to the viewer control
-			MenuManager menuMgr = new MenuManager();
-			menuMgr.add(selectWorkspaceAction);
-			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();
-				}
-			});
-
-		} catch (DumpException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Rebuilds the viewer content provider.
-	 * 
-	 * @param file
-	 * @see WorkspaceContentProvider#inputChanged(Viewer, Object, Object)
-	 */
-	protected void setMetadataRoot(File file) {
-		if (!file.isDirectory()) {
-			ErrorUtil.showErrorMessage("Selected item is not a directory", "Error selecting workspace"); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		if (!file.getName().equals(".metadata")) { //$NON-NLS-1$
-			ErrorUtil.showErrorMessage("Selected directory must be .metadata", "Error selecting workspace"); //$NON-NLS-1$ //$NON-NLS-2$
-			return;
-		}
-		this.metadataPath = file;
-		this.viewer.setInput(file);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/CountResourcesAction.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/CountResourcesAction.java
deleted file mode 100644
index 92a71e5..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/CountResourcesAction.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.util.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.tools.ErrorUtil;
-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.ui.*;
-
-/**
- * This action pops-up a <code>MessageDialog</code> showing the number of
- * resources (and their child resources) currently selected. 
- */
-public class CountResourcesAction implements IWorkbenchWindowActionDelegate {
-
-	/** A reference to the window where this action will work in.*/
-	private IWorkbenchWindow window;
-
-	/**
-	 * Executes this action, popping up a <code>MessageDialog</code> showing the
-	 * number of resources (and their child resources) currently selected.
-	 * 
-	 * @param action the action proxy that handles the presentation portion of the
-	 *   action
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run(IAction action) {
-		List resources = getSelectedResources();
-		try {
-			int count = countResources(resources);
-			showResourcesCount(resources, count);
-		} catch (CoreException ce) {
-			ErrorUtil.logException(ce, "Error counting resources."); //$NON-NLS-1$
-			ErrorUtil.showErrorMessage(ce.toString(), "Error counting resources"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns a list of resources currently selected. If no resource is currently
-	 * selected, returns a list containing the workspace root.
-	 * 
-	 * @return a list of resources
-	 */
-	private List getSelectedResources() {
-
-		List resources = new LinkedList();
-
-		ISelectionService selectionService = window.getSelectionService();
-		ISelection selection = selectionService.getSelection();
-
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-			for (Iterator elements = structuredSelection.iterator(); elements.hasNext();) {
-				IResource resource = convertToResource(elements.next());
-				if (resource != null)
-					resources.add(resource);
-			}
-			eliminateRedundancies(resources);
-		}
-
-		// if no resources were selected, add the workspace root to the list
-		if (resources.size() == 0)
-			resources.add(ResourcesPlugin.getWorkspace().getRoot());
-
-		return resources;
-	}
-
-	/**
-	 * Pops-up a <code>MessageDialog</code> showing the number of resources (and
-	 * their child resources) currently selected.
-	 * 
-	 * @param resources a list containing all resources used as a starting point in
-	 * the search
-	 * @param count the number of resources found
-	 */
-
-	private void showResourcesCount(List resources, int count) {
-		StringBuffer message = new StringBuffer();
-		message.append("Number of resources visited: "); //$NON-NLS-1$
-		message.append(count);
-		message.append("\nStarting point(s): \n"); //$NON-NLS-1$
-		for (Iterator resourcesIter = resources.iterator(); resourcesIter.hasNext();) {
-			message.append('\t');
-			message.append(((IResource) resourcesIter.next()).getFullPath());
-			message.append('\n');
-		}
-		MessageDialog.openInformation(window.getShell(), "Resource counting", message.toString()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Helper method that converts an object to the <code>IResource</code>
-	 * interface. The conversion is a bare cast operation (if the object is instance
-	 * of <code>IResource</code>, or an adaptation (if the object is instance of
-	 * <code>IAdaptable</code>).
-	 * 
-	 * @param object the object to be cast to <code>IResource</code>
-	 * @return a reference to an IResource corresponding to the object provided, or
-	 * null if it is not possible to convert the provided object to
-	 * <code>IResource</code>.
-	 */
-	private IResource convertToResource(Object object) {
-
-		if (object instanceof IResource)
-			return (IResource) object;
-
-		if (object instanceof IAdaptable) {
-			IAdaptable adaptable = (IAdaptable) object;
-			return (IResource) adaptable.getAdapter(IResource.class);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Counts the number of resources (and its sub-resources) in the list of
-	 * resources provided.
-	 * 
-	 * @param resources a <code>List</code> object containing resource objects 
-	 * @return the number of resources found
-	 * @throws CoreException if a visited resource does not exist
-	 * @see IResource#accept(org.eclipse.core.resources.IResourceVisitor)
-	 */
-	private int countResources(List resources) throws CoreException {
-
-		ResourceCounterVisitor counter = new ResourceCounterVisitor();
-
-		for (Iterator resourcesIter = resources.iterator(); resourcesIter.hasNext();)
-			((IResource) resourcesIter.next()).accept(counter);
-
-		return counter.count;
-	}
-
-	/**
-	 * A helper class that implements <code>IResourceVisitor</code>. Visits each
-	 * resource in a resource hierarchy, counting them.
-	 */
-	class ResourceCounterVisitor implements IResourceVisitor {
-		protected int count;
-
-		/**
-		 * @see org.eclipse.core.resources.IResourceVisitor#visit(org.eclipse.core.resources.IResource)
-		 */
-		public boolean visit(IResource resource) {
-			count++;
-			return true;
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		// do nothing
-	}
-
-	/**
-	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	/**
-	 * Initializes this action delegate with the workbench window it will work in.
-	 *
-	 * @param window the window that provides the context for this delegate
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-
-	/**
-	 * Eliminates from the resource list provided any redundant resources.
-	 * Redundant resources are resources that have any other resources in the list
-	 * as ancestors.
-	 * 
-	 * @param resourcesList a <code>List</code> object containing resource objects.
-	 */
-	private void eliminateRedundancies(List resourcesList) {
-		if (resourcesList.size() <= 1)
-			return;
-
-		//	we sort the resources list by path so it is easier to check for redundancies     
-		Collections.sort(resourcesList, new Comparator() {
-			public int compare(Object arg1, Object arg2) {
-				IResource resource1 = (IResource) arg1;
-				IResource resource2 = (IResource) arg2;
-				return resource1.getFullPath().toString().compareTo(resource2.getFullPath().toString());
-			}
-		});
-
-		// We iterate through the list removing any resource which is descendant 
-		// from any resource previously visited 
-		Iterator resourcesIter = resourcesList.iterator();
-		IResource last = (IResource) resourcesIter.next();
-		while (resourcesIter.hasNext()) {
-			IResource current = (IResource) resourcesIter.next();
-			if (last.getFullPath().isPrefixOf(current.getFullPath()))
-				resourcesIter.remove();
-			else
-				last = current;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/DeltaView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/DeltaView.java
deleted file mode 100644
index f029937..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/DeltaView.java
+++ /dev/null
@@ -1,162 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import org.eclipse.core.internal.events.ResourceDelta;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.MenuManager;
-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.eclipse.ui.IWorkbenchPart;
-
-/**
- * Implements the Delta Spy view. This view uses a <code>TextViewer</code> to 
- * show resource deltas resulting of workspace changes (it is a <code>
- * IResourceChangeListener</code>).
- * 
- * @see org.eclipse.core.resources.IResourceChangeListener  
- */
-
-public class DeltaView extends SpyView implements IResourceChangeListener {
-
-	/** The JFace widget used for showing resource deltas. */
-	protected TextViewer viewer;
-
-	/** The maximum number of characters to be shown on this view. */
-	private final static int MAX_SIZE = 1024 * 20;
-
-	/** A reference to the parent control. */
-	protected Composite parent;
-
-	/**
-	 * Constructs a <code>DeltaView</code> object, adding it as a workspace's 
-	 * resource change listener. 
-	 */
-	public DeltaView() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
-	}
-
-	/**
-	 * Creates this view's text widget and actions.
-	 * 
-	 * @param parent the parent control
-	 * @see IWorkbenchPart#createPartControl
-	 */
-	public void createPartControl(Composite parent) {
-
-		this.parent = 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);
-
-	}
-
-	/**
-	 * Unregister this resource change listener.
-	 * 
-	 * @see IWorkbenchPart#dispose
-	 */
-	public void dispose() {
-		super.dispose();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-	}
-
-	/**
-	 * Updates view contents, appending new delta information. This method relies
-	 * on <code>ResourceDelta.toDeepDebugString()</code> to produce a string 
-	 * representation for a resource delta.
-	 *   
-	 * @param event the resource change event
-	 * @see ResourceDelta#toDeepDebugString()
-	 * @see IResourceChangeListener#resourceChanged  
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		if (event.getType() != IResourceChangeEvent.POST_CHANGE)
-			return;
-
-		if (parent == null || parent.isDisposed())
-			return;
-
-		// if we have no changes, there is nothing to do
-		final ResourceDelta delta = (ResourceDelta) event.getDelta();
-		if (delta == null)
-			return;
-
-		// we need to access UI widgets from a SWT thread 
-		Runnable update = new Runnable() {
-			public void run() {
-				// the view might have been disposed at the moment this code runs
-				if (parent.isDisposed())
-					return;
-
-				// updates viewer document, appending new delta information     
-				IDocument doc = viewer.getDocument();
-				StringBuffer contents = new StringBuffer(doc.get());
-				contents.append('\n');
-
-				// asks for a string representation for the delta
-				contents.append(delta.toDeepDebugString());
-
-				// save current number of lines
-				int previousNOL = doc.getNumberOfLines();
-
-				// sets the viewer document's new contents
-				// ensuring there will be no more than MAX_SIZE chars in it 						
-				int length = contents.length();
-				doc.set(contents.substring(length - (Math.min(MAX_SIZE, length))));
-
-				// ensures the added content will be immediately visible
-				viewer.setTopIndex(previousNOL + 1);
-			}
-		};
-		// run our code in the SWT thread
-		parent.getDisplay().syncExec(update);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ElementTreeView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ElementTreeView.java
deleted file mode 100644
index 23e30b3..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ElementTreeView.java
+++ /dev/null
@@ -1,490 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.core.tools.resources;
-
-import java.util.*;
-import org.eclipse.core.internal.dtree.AbstractDataTreeNode;
-import org.eclipse.core.internal.dtree.DataTreeNode;
-import org.eclipse.core.internal.resources.*;
-import org.eclipse.core.internal.watson.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.QualifiedName;
-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;
-
-public class ElementTreeView extends SpyView implements IResourceChangeListener {
-
-	// The JFace widget used for showing the Element Tree info.  
-	protected TextViewer viewer;
-
-	private IAction updateAction;
-
-	class UpdateAction extends Action {
-
-		int resourceCount;
-		int teamPrivateCount;
-		int phantomCount;
-		int layerCount;
-		int nodeCount;
-		int markerCount;
-		int syncInfoCount;
-
-		//tree memory includes memory for strings and child array
-		int treeNodeMemory;
-		int stringMemory;
-		int markerMemory;
-		int syncInfoMemory;
-		DeepSize sessionPropertyMemory;
-
-		final Map strings = new HashMap();
-		List sortedList;
-		int nonIdenticalStrings;
-		Workspace workspace = (Workspace) ResourcesPlugin.getWorkspace();
-
-		class Counter implements Comparable {
-			int count = 1;
-			String name;
-
-			Counter(String name) {
-				this.name = name;
-			}
-
-			void add() {
-				count++;
-			}
-
-			int getCount() {
-				return count;
-			}
-
-			String getName() {
-				return name;
-			}
-
-			public int compareTo(Object o) {
-				return ((Counter) o).getCount() - count;
-			}
-
-		}
-
-		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();
-			countResources();
-			analyzeTrees();
-			analyzeStrings();
-			updateTextView();
-			reset();
-		}
-
-		void reset() {
-			resourceCount = 0;
-			teamPrivateCount = 0;
-			phantomCount = 0;
-			layerCount = 0;
-			nodeCount = 0;
-
-			treeNodeMemory = 0;
-			stringMemory = 0;
-			markerMemory = 0;
-			syncInfoMemory = 0;
-			sessionPropertyMemory = new DeepSize();
-
-			strings.clear();
-			DeepSize.reset();
-			sortedList = null;
-			nonIdenticalStrings = 0;
-		}
-
-		void analyzeTrees() {
-			// count the number of layers and the number of nodes
-			// at each layer
-			ElementTree tree = SpySupport.getOldestTree();
-			for (this.layerCount = 0; tree != null; tree = tree.getParent()) {
-				layerCount++;
-				visit(tree);
-			}
-		}
-
-		void visit(ElementTree tree) {
-			AbstractDataTreeNode node = org.eclipse.core.internal.dtree.SpySupport.getRootNode(tree.getDataTree());
-			visit(node);
-		}
-
-		void visit(AbstractDataTreeNode node) {
-			//			if ("CVS".equals(node.getName())) {
-			//				System.out.println("here");
-			//			}
-			nodeCount++;
-			addToStringCount(node);
-			treeNodeMemory += sizeof(node);
-			AbstractDataTreeNode[] children = node.getChildren();
-			for (int i = 0; i < children.length; i++)
-				visit(children[i]);
-		}
-
-		int sizeof(AbstractDataTreeNode node) {
-			int count = 12;//three slots for an empty object
-			if (node instanceof DataTreeNode) {
-				//count memory for data
-				count += 4;//reference to data
-				Object data = ((DataTreeNode) node).getData();
-				if (data instanceof ResourceInfo) {
-					count += sizeof((ResourceInfo) data);
-				}
-			}
-			//name
-			count += 4;//reference to name
-			//NOTE: space for name string is counted separately (see addToStringCount)
-
-			//children
-			count += 4;//reference to child array
-			AbstractDataTreeNode[] children = node.getChildren();
-			if (children != null && !DeepSize.ignore(children)) {
-				count += 16 + (4 * children.length);//object header plus slots
-			}
-			return count;
-		}
-
-		int sizeof(ResourceInfo resourceInfo) {
-			//object header plus all slots
-			int count = 12 + (13 * 4);
-
-			//markers
-			markerMemory += sizeof(resourceInfo.getMarkers());
-
-			//sync info
-			syncInfoMemory += sizeof(SpySupport.getSyncInfo(resourceInfo));
-
-			//session properties
-			sessionPropertyMemory.deepSize(SpySupport.getSessionProperties(resourceInfo));
-
-			if (resourceInfo.getClass() == RootInfo.class) {
-				count += 4;//ref to property store
-			}
-			if (resourceInfo.getClass() == ProjectInfo.class) {
-				count += 4 * 4;//four more slots
-			}
-			return count;
-		}
-
-		int basicSizeof(MarkerSet markerSet) {
-			if (markerSet == null)
-				return 0;
-			int count = 20;//object size plus two slots
-			IMarkerSetElement[] elements = SpySupport.getElements(markerSet);
-			if (elements != null) {
-				count += 16 + 4 * elements.length;//size of elements array object
-				for (int i = 0; i < elements.length; i++)
-					if (elements[i] != null)
-						count += sizeof(elements[i]);
-			}
-			return count;
-		}
-
-		int basicSizeof(MarkerAttributeMap markerMap) {
-			int count = 20;//object header plus two slots
-			Object[] elements = SpySupport.getElements(markerMap);
-			if (elements != null) {
-				count += 16 + 4 * elements.length;
-				for (int i = 0; i < elements.length; i++)
-					count += sizeof(elements[i]);
-			}
-			return count;
-		}
-
-		int basicSizeof(MarkerInfo info) {
-			int count = 36;//object plus slots
-			count += sizeof(info.getType());
-			count += sizeof(info.getAttributes(false));
-			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 MarkerAttributeMap)
-				return basicSizeof((MarkerAttributeMap) object);
-			if (object instanceof MarkerInfo)
-				return basicSizeof((MarkerInfo) object);
-			if (object instanceof MarkerSet)
-				return basicSizeof((MarkerSet) object);
-			if (object instanceof Integer)
-				return 16;
-			if (object instanceof Map)
-				return basicSizeof((Map) object);
-			if (object instanceof QualifiedName) {
-				QualifiedName name = (QualifiedName) object;
-				return 20 + sizeof(name.getQualifier()) + sizeof(name.getLocalName());
-			}
-			// unknown -- use deep size
-			return 0;
-		}
-
-		void addToStringCount(AbstractDataTreeNode node) {
-			String name = node.getName();
-			if (name == null)
-				return;
-			//want to track the number of non-identical strings
-			if (!DeepSize.ignore(name)) {
-				nonIdenticalStrings++;
-				//can't call sizeof because it will call isUnique again and weed out duplicates
-				stringMemory += 44 + 2 * name.length();
-
-				//now want to count the number of duplicate equal but non-identical strings
-				Counter counter = (Counter) strings.get(name);
-				if (counter == null)
-					strings.put(name, new Counter(name));
-				else
-					counter.add();
-			}
-		}
-
-		void analyzeStrings() {
-			sortedList = new ArrayList(strings.values());
-			Collections.sort(sortedList);
-		}
-
-		void countResources() {
-			// count the number of resources
-			resourceCount = 0;
-			markerCount = 0;
-			teamPrivateCount = 0;
-			phantomCount = 0;
-			syncInfoCount = 0;
-			IElementContentVisitor visitor = new IElementContentVisitor() {
-				public boolean visitElement(ElementTree tree, IPathRequestor requestor, Object elementContents) {
-					ResourceInfo info = (ResourceInfo) elementContents;
-					if (info == null)
-						return true;
-					resourceCount++;
-					if (info.isSet(ICoreConstants.M_TEAM_PRIVATE_MEMBER))
-						teamPrivateCount++;
-					if (info.isSet(ICoreConstants.M_PHANTOM))
-						phantomCount++;
-					MarkerSet markers = info.getMarkers();
-					if (markers != null)
-						markerCount += markers.size();
-					Map syncInfo = SpySupport.getSyncInfo(info);
-					if (syncInfo != null)
-						syncInfoCount += syncInfo.size();
-					return true;
-				}
-			};
-			new ElementTreeIterator(workspace.getElementTree(), Path.ROOT).iterate(visitor);
-		}
-
-		void updateTextView() {
-			final StringBuffer buffer = new StringBuffer();
-			buffer.append("Total resource count: " + prettyPrint(resourceCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tTeam private: " + prettyPrint(teamPrivateCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tPhantom: " + prettyPrint(phantomCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tMarkers: " + prettyPrint(markerCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tSyncInfo: " + prettyPrint(syncInfoCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Number of layers: " + layerCount + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Number of nodes: " + prettyPrint(nodeCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("Number of non-identical strings: " + prettyPrint(nonIdenticalStrings) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-			int sessionSize = sessionPropertyMemory.getSize();
-			int totalMemory = treeNodeMemory + stringMemory + markerMemory + syncInfoMemory + sessionSize;
-			buffer.append("Total memory used by nodes: " + prettyPrint(totalMemory) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tNodes and ResourceInfo: " + prettyPrint(treeNodeMemory) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tStrings: " + prettyPrint(stringMemory) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tMarkers: " + prettyPrint(markerMemory) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tSync info: " + prettyPrint(syncInfoMemory) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			buffer.append("\tSession properties: " + prettyPrint(sessionSize) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			//breakdown of session property size by class
-			List sortedEntries = sortEntrySet(sessionPropertyMemory.getSizes().entrySet());
-			for (Iterator it = sortedEntries.iterator(); it.hasNext();) {
-				Map.Entry entry = (Map.Entry) it.next();
-				buffer.append("\t\t" + entry.getKey() + ": " + prettyPrint(((Integer) entry.getValue()).intValue()) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-
-			int max = 20;
-			buffer.append("The top " + max + " equal but non-identical strings are:\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			for (int i = 0; i < max && i < sortedList.size(); i++) {
-				Counter c = (Counter) sortedList.get(i);
-				buffer.append("\t" + c.getName() + "->" + prettyPrint(c.getCount()) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			//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;
-			}
-		}
-
-		/**
-		 * Sorts a set of entries whose keys are strings and values are Integer
-		 * objects, in decreasing order by the integer value.
-		 */
-		private List sortEntrySet(Set set) {
-			List result = new ArrayList();
-			result.addAll(set);
-			Collections.sort(result, new Comparator() {
-				public int compare(Object arg0, Object arg1) {
-					Integer value1 = (Integer) ((Map.Entry) arg0).getValue();
-					Integer value2 = (Integer) ((Map.Entry) arg1).getValue();
-					return value2.intValue() - value1.intValue();
-				}
-			});
-			return result;
-		}
-	}
-
-	/**
-	 * @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);
-
-		// add the resource change listener		
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
-
-		// populate the view with the initial data
-		if (updateAction != null)
-			updateAction.run();
-	}
-
-	/**
-	 * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		if (updateAction != null)
-			updateAction.run();
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-		updateAction = null;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsSorter.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsSorter.java
deleted file mode 100644
index eaf8b32..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsSorter.java
+++ /dev/null
@@ -1,133 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.text.Collator;
-import java.util.Arrays;
-import java.util.Comparator;
-import org.eclipse.core.internal.events.EventStats;
-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 = {
-	// Statistic Id
-			{EventsView.STAT_ID_COLUMN, EventsView.PROJECT_COLUMN},
-			// Project
-			{EventsView.PROJECT_COLUMN, EventsView.STAT_ID_COLUMN, EventsView.TIME_COLUMN},
-			// Count
-			{EventsView.COUNT_COLUMN, EventsView.STAT_ID_COLUMN, EventsView.PROJECT_COLUMN},
-			// Time
-			{EventsView.TIME_COLUMN, EventsView.STAT_ID_COLUMN, EventsView.PROJECT_COLUMN},
-			// Core Exceptions
-			{EventsView.EXCEPTIONS_COLUMN, EventsView.STAT_ID_COLUMN}};
-
-	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 c = 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) {
-				EventStats s1 = (EventStats) o1;
-				EventStats s2 = (EventStats) o2;
-				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 columnNumber, EventStats s1, EventStats s2) {
-				if (s1.getProject() == null) {
-					if (s2.getProject() != null)
-						return -1;
-				} else {
-					if (s2.getProject() == null)
-						return +1;
-				}
-				boolean notification = s1.getProject() == null;
-				switch (columnNumber) {
-					case EventsView.STAT_ID_COLUMN : {
-						return c.compare(s1.getName(), s2.getName());
-					}
-					case EventsView.PROJECT_COLUMN : {
-						if (notification)
-							return 0;
-						return c.compare(s1.getProject().getName(), s2.getProject().getName());
-					}
-					case EventsView.COUNT_COLUMN : {
-						if (notification)
-							return s1.getNotifyCount() - s2.getNotifyCount();
-						return s1.getBuildCount() - s2.getBuildCount();
-					}
-					case EventsView.TIME_COLUMN : {
-						if (notification)
-							return (int) (s1.getNotifyRunningTime() - s2.getNotifyRunningTime());
-						return (int) (s1.getBuildRunningTime() - s2.getBuildRunningTime());
-					}
-					case EventsView.EXCEPTIONS_COLUMN : {
-						return s1.getExceptionCount() - s2.getExceptionCount();
-					}
-				}
-				return 0;
-			}
-		};
-		Arrays.sort(elements, c);
-	}
-
-	public int states() {
-		return 2;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsView.java
deleted file mode 100644
index 1a6ba8f..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/EventsView.java
+++ /dev/null
@@ -1,289 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-
-package org.eclipse.core.tools.resources;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import org.eclipse.core.internal.events.EventStats;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-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
- * 	the number core exceptions associated with 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 implements IResourceChangeListener {
-	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 arg0) {
-			return EventStats.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 viewer, Object oldInput, Object newInput) {
-			// do nothing
-		}
-	}
-
-	/**
-	 * Class to display the labels for the stats view table.
-	 */
-	class EventsViewLabelProvider 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) {
-			if (!(element instanceof EventStats)) {
-				return Policy.bind("stats.badStat"); //$NON-NLS-1$
-			}
-			EventStats stats = (EventStats) element;
-			boolean notification = stats.getProject() == null;
-			switch (columnIndex) {
-				case STAT_ID_COLUMN :
-					return stats.getName();
-				case PROJECT_COLUMN :
-					return notification ? "" : stats.getProject().getName(); //$NON-NLS-1$
-				case COUNT_COLUMN :
-					return Integer.toString(notification ? stats.getNotifyCount() : stats.getBuildCount());
-				case TIME_COLUMN :
-					return Long.toString(notification ? stats.getNotifyRunningTime() : stats.getBuildRunningTime());
-				case EXCEPTIONS_COLUMN :
-					return Integer.toString(stats.getExceptionCount());
-			}
-			return Policy.bind("stats.badColumn"); //$NON-NLS-1$
-		}
-	}
-
-	public final static int COUNT_COLUMN = 2;
-	public final static int EXCEPTIONS_COLUMN = 4;
-	public final static int PROJECT_COLUMN = 1;
-	// Table of Column Indices
-	public final static int STAT_ID_COLUMN = 0;
-	public final static int TIME_COLUMN = 3;
-
-	private String columnHeaders[] = {Policy.bind("stats.statIdHeader"), //$NON-NLS-1$
-			Policy.bind("stats.projectHeader"), //$NON-NLS-1$
-			Policy.bind("stats.countHeader"), //$NON-NLS-1$
-			Policy.bind("stats.timeHeader"), //$NON-NLS-1$
-			Policy.bind("stats.errorsHeader"), //$NON-NLS-1$
-	};
-	private ColumnLayoutData columnLayouts[] = {new ColumnWeightData(175), // statistics id
-			new ColumnWeightData(75), // project name
-			new ColumnPixelData(50), // count 
-			new ColumnPixelData(60), // total time
-			new ColumnPixelData(40)}; // number of exceptions
-	private CopyStructuredSelectionAction copyAction;
-	private Action resetAction;
-
-	/**
-	 * @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;
-		int exceptions = 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()) {
-			EventStats element = (EventStats) iter.next();
-			events += element.getProject() == null ? element.getNotifyCount() : element.getBuildCount();
-			time += element.getProject() == null ? element.getNotifyRunningTime() : element.getBuildRunningTime();
-			exceptions += element.getExceptionCount();
-			count++;
-		}
-		totals[0] = "Total: " + count; //$NON-NLS-1$
-		totals[2] = "" + events; //$NON-NLS-1$
-		totals[3] = "" + time; //$NON-NLS-1$
-		totals[4] = "" + exceptions; //$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() {
-				EventStats.resetStats();
-				getViewer().refresh();
-				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);
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
-		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() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-		super.dispose();
-	}
-
-	/**
-	 * @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 EventStats))
-			return ""; //$NON-NLS-1$
-		IPluginDescriptor plugin = ((EventStats) element).getPlugin();
-		return plugin == null ? "" : plugin.getUniqueIdentifier(); //$NON-NLS-1$
-	}
-
-	protected TableTreeViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * @see IResourceChangeListener#resourceChanged
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		viewer.getControl().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				getViewer().refresh();
-			}
-		});
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
deleted file mode 100644
index a3e4b3a..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/LocalHistoryBrowserView.java
+++ /dev/null
@@ -1,311 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.util.*;
-import org.eclipse.core.internal.localstore.HistoryStore;
-import org.eclipse.core.internal.resources.FileState;
-import org.eclipse.core.internal.resources.Workspace;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.tools.CoreToolsPlugin;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-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.swt.widgets.Menu;
-import org.eclipse.ui.*;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.part.DrillDownAdapter;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Tree viewer class used to construct a view on the local history store. The 
- * tree navigates over the actual contents of the history store rather than 
- * going to the navigator and asking each file for its list of file states. This allows
- * the browser to see the deleted files for containers.
- */
-public class LocalHistoryBrowserView extends ViewPart {
-	TreeViewer viewer;
-	DrillDownAdapter drillDownAdapter;
-	Action refreshAction;
-	Action doubleClickAction;
-
-	class NameSorter extends ViewerSorter {
-		// empty impl
-	}
-
-	class FileStateEditorInput implements IStorageEditorInput {
-		private IFileState state;
-
-		public FileStateEditorInput(IFileState state) {
-			super();
-			this.state = state;
-		}
-
-		public IStorage getStorage() {
-			return state;
-		}
-
-		public boolean exists() {
-			return false;
-		}
-
-		public ImageDescriptor getImageDescriptor() {
-			return null;
-		}
-
-		public String getName() {
-			if (state instanceof FileState)
-				return ((FileState) state).getUUID() + " (" + state.getFullPath() + ')'; //$NON-NLS-1$
-			return state.getFullPath().toString();
-		}
-
-		public IPersistableElement getPersistable() {
-			return null;
-		}
-
-		public String getToolTipText() {
-			return null;
-		}
-
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-	}
-
-	class Node {
-
-		Node parent;
-		String name;
-		ArrayList children;
-
-		public Node(Node parent, String name) {
-			super();
-			this.parent = parent;
-			this.name = name;
-			this.children = new ArrayList();
-		}
-
-		public void addChild(Object child) {
-			children.add(child);
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public Node getParent() {
-			return parent;
-		}
-
-		public Object[] getChildren() {
-			return children.toArray(new Object[0]);
-		}
-
-		public Object getChild(String childName) {
-			for (Iterator i = children.iterator(); i.hasNext();) {
-				Object next = i.next();
-				if (next instanceof Node) {
-					if (((Node) next).getName().equals(childName))
-						return next;
-				}
-			}
-			return null;
-		}
-
-		public String toString() {
-			return name;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, ITreeContentProvider {
-		private HistoryStore store = ((Workspace) ResourcesPlugin.getWorkspace()).getFileSystemManager().getHistoryStore();
-
-		private Node invisibleRoot;
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			// do nothing
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-
-		public Object[] getElements(Object parent) {
-			if (parent.equals(getViewSite())) {
-				if (invisibleRoot == null)
-					initialize();
-				return getChildren(invisibleRoot);
-			}
-			return getChildren(parent);
-		}
-
-		public Object getParent(Object child) {
-			return child instanceof Node ? ((Node) child).getParent() : null;
-		}
-
-		public Object[] getChildren(Object parent) {
-			return parent instanceof Node ? ((Node) parent).getChildren() : new Object[0];
-		}
-
-		public boolean hasChildren(Object parent) {
-			return parent instanceof Node ? ((Node) parent).getChildren().length != 0 : false;
-		}
-
-		public void initialize() {
-			invisibleRoot = new Node(null, "/"); //$NON-NLS-1$
-			Set allFiles = store.allFiles(Path.ROOT, IResource.DEPTH_INFINITE);
-			for (Iterator iterator = allFiles.iterator(); iterator.hasNext();) {
-				IPath path = (IPath) iterator.next();
-				Node current = invisibleRoot;
-				String[] segments = path.segments();
-				for (int i = 0; i < segments.length; i++) {
-					Object child = current.getChild(segments[i]);
-					if (child == null) {
-						child = new Node(current, segments[i]);
-						current.addChild(child);
-					}
-					current = (Node) child;
-				}
-				IFileState[] states = store.getStates(path);
-				for (int i = 0; i < states.length; i++)
-					current.addChild(states[i]);
-			}
-		}
-	}
-
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			if (obj instanceof IFileState)
-				imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-	public LocalHistoryBrowserView() {
-		super();
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		drillDownAdapter = new DrillDownAdapter(viewer);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(getViewSite());
-		viewer.setSorter(new NameSorter());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-		contributeToActionBars();
-	}
-
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				LocalHistoryBrowserView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-	}
-
-	private void fillLocalPullDown(IMenuManager manager) {
-		manager.add(refreshAction);
-	}
-
-	protected void fillContextMenu(IMenuManager manager) {
-		manager.add(refreshAction);
-		manager.add(new Separator());
-		drillDownAdapter.addNavigationActions(manager);
-		// Other plug-ins can contribute there actions here
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	private void fillLocalToolBar(IToolBarManager manager) {
-		manager.add(refreshAction);
-		manager.add(new Separator());
-		drillDownAdapter.addNavigationActions(manager);
-	}
-
-	private void makeActions() {
-		refreshAction = new Action() {
-			public void run() {
-				((ViewContentProvider) viewer.getContentProvider()).initialize();
-				showMessage("View refreshed."); //$NON-NLS-1$
-			}
-		};
-		refreshAction.setText("Refresh View"); //$NON-NLS-1$
-		refreshAction.setToolTipText("Refresh View"); //$NON-NLS-1$
-		refreshAction.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("refresh.gif")); //$NON-NLS-1$
-
-		doubleClickAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				Object obj = ((IStructuredSelection) selection).getFirstElement();
-				if (obj instanceof IFileState) {
-					// Show the file contents
-					IFileState state = (IFileState) obj;
-					IWorkbench workbench = CoreToolsPlugin.getDefault().getWorkbench();
-					IEditorRegistry editorRegistry = workbench.getEditorRegistry();
-					IEditorDescriptor descriptor = editorRegistry.getDefaultEditor(state.getName());
-					String editorID = descriptor == null ? EditorsUI.DEFAULT_TEXT_EDITOR_ID : descriptor.getId();
-					IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
-					try {
-						page.openEditor(new FileStateEditorInput(state), editorID);
-					} catch (PartInitException e) {
-						e.printStackTrace();
-					}
-				} else if (obj instanceof Node) {
-					// TODO expand/collapse tree node
-				}
-			}
-		};
-	}
-
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				doubleClickAction.run();
-			}
-		});
-	}
-
-	protected void showMessage(String message) {
-		MessageDialog.openInformation(viewer.getControl().getShell(), "Local History Browser", message); //$NON-NLS-1$
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectContentProvider.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectContentProvider.java
deleted file mode 100644
index 595aca6..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectContentProvider.java
+++ /dev/null
@@ -1,231 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.util.Iterator;
-import java.util.Map;
-import org.eclipse.core.internal.events.BuildManager;
-import org.eclipse.core.internal.events.BuilderPersistentInfo;
-import org.eclipse.core.internal.resources.Workspace;
-import org.eclipse.core.internal.watson.ElementTree;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.tools.AbstractTreeContentProvider;
-import org.eclipse.core.tools.TreeContentProviderNode;
-import org.eclipse.jface.util.SafeRunnable;
-
-/**
- * Constructs a tree made of <code>TreeContentProviderNode</code>s, representing
- * several details about projects.
- * Details include:
- * <ul>
- *   <li>project's name;</li>
- *   <li>the builders associated to this project. For each builder it shows:<ul>
- *       <li>the builder's name;</li>        
- *       <li>the arguments;</li>
- *       <li>persistent info (interesting projects &amp; last built tree);</li> * 
- *   </ul></li> 
- 
- *   <li>the natures associated to this project. For each nature it shows:<ul>
- *       <li>the nature's label &amp; Id;</li>
- *       <li>the nature sets it belongs to;</li>
- *       <li>the required natures;</li>  
- *   </ul></li> 
- * </ul>
- * 
- * 
- * @see org.eclipse.core.tools.TreeContentProviderNode
- */
-public class ProjectContentProvider extends AbstractTreeContentProvider {
-
-	/**
-	 * Collects project info. Calls all other <code>extract...</code> methods. 
-	 * 
-	 * @param project the project object from where to extract information
-	 */
-	protected void extractInfo(IProject project) {
-		try {
-			IProjectDescription description = project.getDescription();
-			extractBasicInfo(project);
-			extractBuildersInfo(project, description);
-			extractNaturesInfo(description);
-		} catch (CoreException ce) {
-			getRootNode().addChild(createNode("Error accessing project details", ce)); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Extracts basic project information.
-	 * 
-	 * @param project the project from where to extract information
-	 */
-
-	protected void extractBasicInfo(IProject project) {
-		getRootNode().addChild(createNode("Project name", project.getName())); //$NON-NLS-1$
-	}
-
-	/**
-	 * Extracts builders information from the project info object, building a 'Builders' 
-	 * subtree in the project information tree.
-	 * 
-	 * @param project the project from where to extract information
-	 * @param description the description from where to extract information
-	 */
-
-	protected void extractBuildersInfo(IProject project, IProjectDescription description) {
-		ICommand[] commands = description.getBuildSpec();
-		if (commands.length == 0)
-			return;
-
-		// tries to retrieve builder persistent info for all builders in this 
-		// project's builder spec
-		Workspace workspace = (Workspace) ResourcesPlugin.getWorkspace();
-		BuildManager manager = workspace.getBuildManager();
-		Map allPersistInfo = null;
-		try {
-			allPersistInfo = manager.getBuildersPersistentInfo(project);
-		} catch (CoreException ce) {
-			getRootNode().addChild(createNode("Error extracting builders info: " + ce, null)); //$NON-NLS-1$
-			return;
-		}
-
-		// extracts information for each builder
-		TreeContentProviderNode buildersRoot = createNode("Builders"); //$NON-NLS-1$
-		getRootNode().addChild(buildersRoot);
-		for (int i = 0; i < commands.length; i++) {
-			String builderName = commands[i].getBuilderName();
-			TreeContentProviderNode builderNode = createNode("Builder name", builderName); //$NON-NLS-1$
-			buildersRoot.addChild(builderNode);
-
-			// extracts information about arguments
-			extractBuilderArguments(builderNode, commands[i].getArguments());
-
-			// extracts information from persistent info (if available) 
-			if (allPersistInfo != null)
-				extractBuilderPersistentInfo(builderNode, (BuilderPersistentInfo) allPersistInfo.get(builderName));
-		}
-	}
-
-	/**
-	 * Extracts information related to builder arguments for a given builder. 
-	 * 
-	 * @param builderNode the node where to add builder arguments nodes
-	 * @param builderArgs a map containing arguments for a builder
-	 */
-	protected void extractBuilderArguments(TreeContentProviderNode builderNode, Map builderArgs) {
-		if (builderArgs == null || builderArgs.size() == 0)
-			return;
-
-		TreeContentProviderNode builderArgsRoot = createNode("Builder args"); //$NON-NLS-1$
-		builderNode.addChild(builderArgsRoot);
-		for (Iterator builderArgsIter = builderArgs.entrySet().iterator(); builderArgsIter.hasNext();) {
-			Map.Entry entry = (Map.Entry) builderArgsIter.next();
-			TreeContentProviderNode builderArgNode = createNode((String) entry.getKey(), entry.getValue());
-			builderArgsRoot.addChild(builderArgNode);
-		}
-	}
-
-	/**
-	 * Extracts builder persistent info, if any.
-	 * 
-	 * @param builderNode the node where to add persistent info nodes
-	 * @param persistInfo the persistent info 
-	 */
-	protected void extractBuilderPersistentInfo(TreeContentProviderNode builderNode, BuilderPersistentInfo persistInfo) {
-
-		if (persistInfo == null)
-			return;
-
-		// extracts information about interesting projects
-		IProject[] interestingProjects = persistInfo.getInterestingProjects();
-		if (interestingProjects.length > 0) {
-			TreeContentProviderNode interestingRoot = createNode("Interesting projects"); //$NON-NLS-1$
-			for (int j = 0; j < interestingProjects.length; j++)
-				interestingRoot.addChild(createNode(interestingProjects[j].getName()));
-			builderNode.addChild(interestingRoot);
-		}
-
-		// extracts information about last built tree (just a String rep for now)
-		ElementTree lastBuiltTree = persistInfo.getLastBuiltTree();
-		builderNode.addChild(createNode("Last built tree", lastBuiltTree.toString())); //$NON-NLS-1$
-	}
-
-	/**
-	 * Extracts from project description object all information regarding natures,
-	 * building a 'Natures' subtree in the projects information tree.
-	 * 
-	 * @param description a project description
-	 */
-	protected void extractNaturesInfo(IProjectDescription description) {
-		String[] natureIds = description.getNatureIds();
-		if (natureIds.length == 0)
-			return;
-
-		// extracts information about each nature assigned to the project
-		TreeContentProviderNode naturesRoot = createNode("Natures"); //$NON-NLS-1$
-		getRootNode().addChild(naturesRoot);
-		Workspace workspace = (Workspace) ResourcesPlugin.getWorkspace();
-		for (int i = 0; i < natureIds.length; i++) {
-			IProjectNatureDescriptor descriptor = workspace.getNatureDescriptor(natureIds[i]);
-			String nodeName = (descriptor == null ? "Missing" : descriptor.getLabel()) + " (" + natureIds[i] + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			TreeContentProviderNode natureNode = createNode(nodeName);
-			naturesRoot.addChild(natureNode);
-
-			// we may not have the descriptor for this nature if (for instance) the 
-			// project was created in a different workspace with a plug-in that we don't have
-			if (descriptor != null) {
-				// lists nature sets to which the current nature belongs
-				String[] natureSets = descriptor.getNatureSetIds();
-				if (natureSets.length > 0) {
-					TreeContentProviderNode setsNode = createNode("Nature sets"); //$NON-NLS-1$
-					for (int j = 0; j < natureSets.length; j++)
-						setsNode.addChild(createNode(natureSets[i]));
-					natureNode.addChild(setsNode);
-				}
-
-				// lists nature sets which the current nature requires
-				String[] requiredNatures = descriptor.getRequiredNatureIds();
-				if (requiredNatures.length > 0) {
-					TreeContentProviderNode requiredNaturesNode = createNode("Required natures", null); //$NON-NLS-1$
-					for (int j = 0; j < requiredNatures.length; j++)
-						requiredNaturesNode.addChild(createNode(requiredNatures[i], null));
-					natureNode.addChild(requiredNaturesNode);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Reconstructs this content provider data model upon the provided input object.
-	 *  
-	 * @param input the new input object - must not be null
-	 */
-	protected void rebuild(final Object input) {
-		Platform.run(new SafeRunnable() {
-			public void run() throws Exception {
-				extractInfo(((IResource) input).getProject());
-			}
-		});
-	}
-
-	/**
-	 * Returns true if the input is a resource.
-	 * 
-	 * @param input an input object
-	 * @return true if the provided input is a resource
-	 * @see org.eclipse.core.tools.AbstractTreeContentProvider#acceptInput(java.lang.Object)
-	 */
-	protected boolean acceptInput(Object input) {
-		return input instanceof IResource;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectView.java
deleted file mode 100644
index b460158..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ProjectView.java
+++ /dev/null
@@ -1,210 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.tools.CopyStructuredSelectionAction;
-import org.eclipse.core.tools.SpyView;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-
-/**
- * Project Spy view. This view shows detailed information about the currently 
- * selected resource in any other view in the platform. For 
- * details on the information being presented, see <code>ProjectContentProvider
- * </code> documentation (link below).
- * 
- * @see org.eclipse.core.tools.resources.ProjectContentProvider
- */
-public class ProjectView extends SpyView {
-
-	/** JFace's tree component used to present project details. */
-	protected AbstractTreeViewer viewer;
-
-	/** 
-	 * Our listener to selection changes. Every time a new resource is 
-	 * selected, this view gets updated.
-	 */
-	private ISelectionListener selectionListener;
-
-	/** The content provider for this view's TreeViewer. */
-	private ProjectContentProvider contentProvider;
-
-	/** 
-	 * Our listener to resource changes. Every time the current selected 
-	 * project is changed, this view gets updated.	 
-	 */
-	private IResourceChangeListener resourceChangeListener;
-
-	/**
-	 * Constructs a project view object, registering a resource change listener.
-	 */
-	public ProjectView() {
-		addResourceChangeListener();
-	}
-
-	/**
-	 * Creates this view widgets and actions.
-	 * 
-	 * @param parent the parent control 
-	 * @see IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent);
-		contentProvider = new ProjectContentProvider();
-		viewer.setContentProvider(contentProvider);
-
-		addSelectionListener();
-		createActions();
-	}
-
-	/**
-	 * Creates and publishes this view's actions. 
-	 */
-	private void createActions() {
-		final IAction copyAction = new CopyStructuredSelectionAction(viewer);
-
-		final MenuManager menuMgr = new MenuManager();
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				manager.add(copyAction);
-				// Other plug-ins can contribute their actions here
-				manager.add(new Separator("Additions")); //$NON-NLS-1$
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	/**
-	 * Process the given selection. If it is not a structured selection, the event
-	 * is discarded. If the selection is a resource (or has a resource), 
-	 * updates the resource view. Otherwise, the resource view is cleaned out.
-	 * 
-	 * @param selection the selection object to be processed 
-	 */
-	protected void processSelection(ISelection selection) {
-		// if it is not a strucutured selection, ignore	
-		if (!(selection instanceof IStructuredSelection))
-			return;
-
-		IResource resource = null;
-
-		IStructuredSelection structuredSel = (IStructuredSelection) selection;
-		if (!structuredSel.isEmpty()) {
-			Object item = ((IStructuredSelection) selection).getFirstElement();
-
-			if (item instanceof IResource)
-				resource = (IResource) item;
-			else if (item instanceof IAdaptable)
-				resource = (IResource) ((IAdaptable) item).getAdapter(IResource.class);
-		}
-
-		// loads a new resource (or cleans the resource view, if resource == null)
-		loadResource(resource);
-
-	}
-
-	/**
-	 * Creates a selection listener that will be notified any time a selection has
-	 * changed in any place.
-	 * 
-	 * @see #processSelection(ISelection)
-	 */
-	private void addSelectionListener() {
-		ISelectionService selectionService = getSite().getPage().getWorkbenchWindow().getSelectionService();
-		selectionListener = new ISelectionListener() {
-			public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-				processSelection(sel);
-			}
-		};
-		selectionService.addSelectionListener(selectionListener);
-		processSelection(selectionService.getSelection());
-	}
-
-	/**
-	 * Loads a resource to be shown on this project view (or cleans it, 
-	 * if resource == null). 
-	 * This method must be run in the SWT thread.
-	 * 
-	 * @param resource the resource to be shown
-	 * @see ProjectContentProvider#inputChanged(Viewer, Object, Object)
-	 */
-	public void loadResource(IResource resource) {
-
-		if (viewer.getControl().isDisposed())
-			return;
-
-		// turn redraw off so the UI will reflect changes only after we are done
-		viewer.getControl().setRedraw(false);
-
-		// fires viewer update			
-		viewer.setInput(resource);
-
-		// shows all nodes in the resource tree		
-		viewer.expandAll();
-
-		// we are done, turn redraw on
-		viewer.getControl().setRedraw(true);
-	}
-
-	/**
-	 * Removes all listeners added.
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		ISelectionService selectionService = getSite().getPage().getWorkbenchWindow().getSelectionService();
-		selectionService.removeSelectionListener(selectionListener);
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
-	}
-
-	/**
-	 * Creates a resource change listener so we can know if the currently 
-	 * selected resource has changed.   
-	 */
-	private void addResourceChangeListener() {
-		resourceChangeListener = new SelectedResourceChangeListener();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	private class SelectedResourceChangeListener implements IResourceChangeListener {
-		public void resourceChanged(IResourceChangeEvent event) {
-			final IResource currentResource = (IResource) viewer.getInput();
-
-			// if we don't have a resource currently loaded, ignore the event
-			if (event.getType() != IResourceChangeEvent.POST_CHANGE || currentResource == null)
-				return;
-
-			// looks for a delta for the currently loaded resource's project
-			IResourceDelta rootDelta = event.getDelta();
-			IResourceDelta projectDelta = rootDelta.findMember(currentResource.getProject().getFullPath());
-
-			// if there is no delta, ignore
-			if (projectDelta == null)
-				return;
-
-			// rebuild the project view contents with the new state
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					loadResource(currentResource);
-				}
-			});
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
deleted file mode 100644
index 58c2c28..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceChangeView.java
+++ /dev/null
@@ -1,461 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002, 2004 Geoff Longman and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * Geoff Longman - Initial API and implementation
- * IBM - Tightening integration with existing Platform
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.util.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.tools.SpyView;
-import org.eclipse.jface.action.*;
-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.swt.widgets.Display;
-import org.eclipse.ui.*;
-
-/**
- * This sample class demonstrates how to plug-in a new
- * workbench view. The view shows data obtained from the
- * model. The sample creates a dummy model on the fly,
- * but a real implementation would connect to the model
- * available either in this or another plug-in (e.g. the workspace).
- * The view is connected to the model using a content provider.
- * <p>
- * The view uses a label provider to define how model
- * objects should be presented in the view. Each
- * view can present the same model objects using
- * different labels and icons, if needed. Alternatively,
- * a single label provider can be shared between views
- * in order to ensure that objects of the same type are
- * presented in the same way everywhere.
- * <p>
- */
-
-public class ResourceChangeView extends SpyView implements IResourceChangeListener {
-	protected TreeViewer viewer;
-	protected Set eventActions = new HashSet();
-	private Action POST_BUILD;
-	private Action PRE_BUILD;
-	private Action POST_CHANGE;
-	private Action PHANTOMS;
-	protected Object rootObject = ResourcesPlugin.getWorkspace();
-	protected int typeFilter = IResourceChangeEvent.POST_CHANGE;
-	protected boolean showPhantoms = false;
-
-	/**
-	 * The constructor.
-	 */
-	public ResourceChangeView() {
-		super();
-	}
-
-	private void setRoot(IResourceChangeEvent event) {
-		if (viewer == null)
-			return;
-		Display display = viewer.getControl().getDisplay();
-		if (display == null)
-			return;
-		rootObject = event;
-		display.asyncExec(new Runnable() {
-			public void run() {
-				viewer.getControl().setRedraw(false);
-				viewer.setInput(ResourceChangeView.this.rootObject);
-				viewer.expandAll();
-				viewer.getControl().setRedraw(true);
-			}
-		});
-	}
-
-	/**
-	 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		if (event.getType() != typeFilter)
-			return;
-		setRoot(event);
-	}
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-	}
-
-	/**
-	 * This is a callback that will allow us
-	 * to create the viewer and initialize it.
-	 */
-	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.setInput(rootObject);
-
-		initializeActions();
-
-		IActionBars bars = getViewSite().getActionBars();
-		IMenuManager menuMgr = bars.getMenuManager();
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(final IMenuManager manager) {
-				fillPullDownBar(manager);
-			}
-		});
-		fillPullDownBar(menuMgr);
-
-		// register for all types of events and then filter out the one that we
-		// want based on the action settings.
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD | IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_BUILD);
-	}
-
-	private void initializeActions() {
-		// create the actions for the drop-down menu
-		POST_BUILD = new FilterAction("POST_BUILD", IResourceChangeEvent.POST_BUILD); //$NON-NLS-1$
-		POST_CHANGE = new FilterAction("POST_CHANGE", IResourceChangeEvent.POST_CHANGE); //$NON-NLS-1$
-		// default event type
-		POST_CHANGE.setChecked(true);
-		PRE_BUILD = new FilterAction("PRE_BUILD", IResourceChangeEvent.PRE_BUILD); //$NON-NLS-1$
-		eventActions.add(POST_BUILD);
-		eventActions.add(POST_CHANGE);
-		eventActions.add(PRE_BUILD);
-		PHANTOMS = new FilterPhantoms();
-	}
-
-	protected void fillPullDownBar(IMenuManager manager) {
-		manager.removeAll();
-
-		for (Iterator i = eventActions.iterator(); i.hasNext();)
-			manager.add((IAction) i.next());
-		manager.add(new Separator("phantoms")); //$NON-NLS-1$
-		manager.add(PHANTOMS);
-	}
-
-	class DeltaNode implements IAdaptable {
-		private DeltaNode parent = null;
-		private int deltaKind = -1;
-		private int deltaFlags = -1;
-		private IResource resource;
-		private IPath path;
-		private ArrayList children;
-
-		public DeltaNode() {
-			children = new ArrayList();
-		}
-
-		public DeltaNode(IResourceDelta delta) {
-			this();
-			populateFromDelta(delta);
-		}
-
-		public void setParent(DeltaNode parent) {
-			this.parent = parent;
-		}
-
-		public IResource getResource() {
-			return resource;
-		}
-
-		public DeltaNode getParent() {
-			return parent;
-		}
-
-		public void addChild(DeltaNode child) {
-			children.add(child);
-			child.setParent(this);
-		}
-
-		public void removeChild(DeltaNode child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-
-		public DeltaNode[] getChildren() {
-			return (DeltaNode[]) children.toArray(new DeltaNode[children.size()]);
-		}
-
-		public boolean hasChildren() {
-			return children.size() > 0;
-		}
-
-		public String toString() {
-			return resource.getName();
-		}
-
-		public Object getAdapter(Class key) {
-			if (key != IResource.class)
-				return null;
-			return resource;
-		}
-
-		public int getDeltaKind() {
-			return deltaKind;
-		}
-
-		public int getDeltaFlags() {
-			return deltaFlags;
-		}
-
-		public IPath getPath() {
-			return path;
-		}
-
-		public void populateFromDelta(IResourceDelta delta) {
-			deltaFlags = delta.getFlags();
-			deltaKind = delta.getKind();
-			path = delta.getFullPath();
-			resource = delta.getResource();
-			IResourceDelta[] children = delta.getAffectedChildren();
-			for (int i = 0; i < children.length; i++)
-				addChild(new DeltaNode(children[i]));
-		}
-	}
-
-	class ResourceEventNode extends DeltaNode {
-		private int eventType;
-
-		public ResourceEventNode(IResourceChangeEvent event) {
-			super(event.getDelta());
-			eventType = event.getType();
-		}
-
-		public int getEventType() {
-			return eventType;
-		}
-	}
-
-	/*
-	 * The content provider class is responsible for
-	 * providing objects to the view. It can wrap
-	 * existing objects in adapters or simply return
-	 * objects as-is. These objects may be sensitive
-	 * to the current input of the view, or ignore
-	 * it and always show the same content
-	 * (like Task List, for example).
-	 */
-
-	class ViewContentProvider implements IStructuredContentProvider, ITreeContentProvider {
-		private DeltaNode invisibleRoot;
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			invisibleRoot = null;
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-
-		public Object[] getElements(Object parent) {
-
-			if (parent.equals(rootObject)) {
-				if (invisibleRoot == null) {
-					if (rootObject instanceof IResourceChangeEvent) {
-						initialize(rootObject);
-					} else {
-						initialize();
-					}
-				}
-				return getChildren(invisibleRoot);
-			}
-			return getChildren(parent);
-		}
-
-		public Object getParent(Object child) {
-			return ((DeltaNode) child).getParent();
-		}
-
-		public Object[] getChildren(Object parent) {
-			return ((DeltaNode) parent).getChildren();
-		}
-
-		public boolean hasChildren(Object parent) {
-			return ((DeltaNode) parent).hasChildren();
-		}
-
-		/*
-		 * We will set up a dummy model to initialize tree heararchy.
-		 * In a real code, you will connect to a real model and
-		 * expose its hierarchy.
-		 */
-		private void initialize() {
-			invisibleRoot = new DeltaNode();
-		}
-
-		private void initialize(Object input) {
-			if (!(input instanceof IResourceChangeEvent))
-				return;
-			IResourceChangeEvent evt = (IResourceChangeEvent) input;
-			ResourceEventNode root = new ResourceEventNode(evt);
-			invisibleRoot = new DeltaNode();
-			invisibleRoot.addChild(root);
-		}
-	}
-
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			StringBuffer buffer = new StringBuffer(obj.toString());
-			if (obj instanceof ResourceEventNode) {
-				buffer.append("Workspace Root - "); //$NON-NLS-1$
-				buffer.append(getEventTypeAsString(((ResourceEventNode) obj).getEventType()));
-			}
-			buffer.append(getKindAsString(((DeltaNode) obj).getDeltaKind()));
-			buffer.append(getFlagsAsString(((DeltaNode) obj).getDeltaFlags()));
-			return buffer.toString();
-		}
-
-		public Image getImage(Object obj) {
-			DeltaNode node = (DeltaNode) obj;
-			String imageKey;
-			switch (node.getResource().getType()) {
-				case IResource.ROOT :
-					imageKey = ISharedImages.IMG_OBJ_FOLDER;
-					break;
-				case IResource.PROJECT :
-					imageKey = ISharedImages.IMG_OBJ_PROJECT;
-					break;
-				case IResource.FOLDER :
-					imageKey = ISharedImages.IMG_OBJ_FOLDER;
-					break;
-				case IResource.FILE :
-				default :
-					imageKey = ISharedImages.IMG_OBJ_FILE;
-					break;
-			}
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-
-		private String getKindAsString(int kind) {
-			if (kind == -1)
-				return ""; //$NON-NLS-1$
-			return " kind(" + getFlagsAsString(kind) + ") "; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		private String getEventTypeAsString(int eventType) {
-			switch (eventType) {
-				case IResourceChangeEvent.POST_BUILD :
-					return "POST_BUILD"; //$NON-NLS-1$
-				case IResourceChangeEvent.POST_CHANGE :
-					return "POST_CHANGE"; //$NON-NLS-1$
-				case IResourceChangeEvent.PRE_BUILD :
-					return "PRE_BUILD"; //$NON-NLS-1$
-			}
-			return null;
-		}
-
-		/**
-		 * Return a string representation of the change flags found
-		 * within a resource change event.
-		 */
-		private String getFlagsAsString(int flags) {
-			StringBuffer buffer = new StringBuffer();
-			if ((IResourceDelta.ADDED & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("ADDED"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.ADDED_PHANTOM & flags) != 0 && showPhantoms) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("ADDED_PHANTOM"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.ALL_WITH_PHANTOMS & flags) != 0 && showPhantoms) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("ALL_WITH_PHANTOMS"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.CHANGED & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("CHANGED"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.CONTENT & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("CONTENT"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.DESCRIPTION & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("DESCRIPTION"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.MARKERS & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("MARKERS"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.MOVED_FROM & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("MOVED_FROM"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.MOVED_TO & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("MOVED_TO"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.NO_CHANGE & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("NO_CHANGE"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.OPEN & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("OPEN"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.REMOVED & flags) != 0) {
-				buffer.append("-");
-				buffer.append("REMOVED");
-			}
-			if ((IResourceDelta.REMOVED_PHANTOM & flags) != 0 && showPhantoms) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("REMOVED_PHANTOM"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.REPLACED & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("REPLACED"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.SYNC & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("SYNC"); //$NON-NLS-1$
-			}
-			if ((IResourceDelta.TYPE & flags) != 0) {
-				buffer.append("-"); //$NON-NLS-1$
-				buffer.append("TYPE"); //$NON-NLS-1$
-			}
-			return buffer.toString();
-		}
-	}
-
-	class FilterAction extends Action {
-		private int type;
-
-		public FilterAction(String text, int eventType) {
-			super(text);
-			type = eventType;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			typeFilter = type;
-			for (Iterator i = eventActions.iterator(); i.hasNext();) {
-				IAction action = (IAction) i.next();
-				action.setChecked(action.equals(this));
-			}
-		}
-	}
-
-	class FilterPhantoms extends Action {
-		public FilterPhantoms() {
-			super("Show Phantoms"); //$NON-NLS-1$
-		}
-
-		public void run() {
-			showPhantoms = !showPhantoms;
-			setChecked(showPhantoms);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceContentProvider.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceContentProvider.java
deleted file mode 100644
index c3b9ef9..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceContentProvider.java
+++ /dev/null
@@ -1,349 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import java.util.*;
-import org.eclipse.core.internal.properties.*;
-import org.eclipse.core.internal.resources.*;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.util.SafeRunnable;
-
-/**
- * Constructs a tree made of <code>TreeContentProviderNode</code>, representing
- * several details about resources. 
- * Details include:
- * <ul>
- *   <li>resource's full path;</li>
- *   <li>content ID;</li>
- *   <li>node ID;</li>  
- *   <li>resource type;</li>
- *   <li>local sync info;</li>
- *   <li>resource info flags;</li>
- *   <li>markers' type and attributes;</li>
- *   <li>sync info;</li>
- *   <li>session properties;</li>
- *   <li>persistent properties.</li> 
- * </ul>
- * 
- * @see org.eclipse.core.tools.TreeContentProviderNode
- */
-public class ResourceContentProvider extends AbstractTreeContentProvider {
-
-	/**
-	 * The maximum number of bytes to be shown for sync info  
-	 */
-	private final static int MAX_SYNC_INFO_BYTES = 8;
-
-	/**
-	 * Collects resource info. Calls all other <code>extract...</code> methods. 
-	 *
-	 * @param selectedResource the resource object from where to extract information
-	 */
-	protected void extractInfo(IResource selectedResource) {
-
-		if (!(selectedResource instanceof Resource)) {
-			String message = Policy.bind("resource.error_unknown_resource_impl", selectedResource.getClass().getName()); //$NON-NLS-1$
-			getRootNode().addChild(message);
-			return;
-		}
-
-		Resource resource = (Resource) selectedResource;
-
-		ResourceInfo info = resource.getResourceInfo(true, false);
-		// Resource#getResourceInfo may return null when the resource 
-		// does not exist anymore. In this case, we just ignore it.
-		if (info == null)
-			return;
-
-		extractBasicInfo(resource, info);
-		extractFlags(info);
-		extractContentDescription(resource);
-		extractMarkersInfo(resource, info);
-		extractSyncInfo(info);
-		extractPersistentProperties(resource);
-		extractSessionProperties(resource);
-
-	}
-
-	/**
-	 * Collects persistent properties information.
-	 * 
-	 * @param resource the resource object from where to extract information
-	 */
-	protected void extractPersistentProperties(IResource resource) {
-		try {
-
-			PropertyStore store = org.eclipse.core.internal.properties.SpySupport.getPropertyStore(resource);
-			if (store == null)
-				return;
-
-			// retrieves the properties for the selected resource
-			IPath path = resource.getProjectRelativePath();
-			ResourceName resourceName = new ResourceName("", path); //$NON-NLS-1$
-			QueryResults results = store.getAll(resourceName, 1);
-			List projectProperties = results.getResults(resourceName);
-			int listSize = projectProperties.size();
-			if (listSize == 0)
-				return;
-
-			// creates a node for persistent properties and populates it
-			TreeContentProviderNode propertiesRootNode = createNode(Policy.bind("resource.persistent_properties")); //$NON-NLS-1$
-			getRootNode().addChild(propertiesRootNode);
-
-			for (int i = 0; i < listSize; i++) {
-				StoredProperty prop = (StoredProperty) projectProperties.get(i);
-				propertiesRootNode.addChild(createNode(prop.getName().toString(), prop.getStringValue()));
-			}
-
-		} catch (CoreException ce) {
-			getRootNode().addChild(createNode(Policy.bind("resources.error_stored_properties", ce.toString()))); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Collects session properties information.
-	 * 
-	 * @param resource the resource object from where to extract information
-	 */
-	protected void extractSessionProperties(IResource resource) {
-
-		// retrieves all session properties for the selected resource 
-		Map properties = org.eclipse.core.internal.resources.SpySupport.getSessionProperties(resource);
-		if (properties == null || properties.size() == 0)
-			return;
-
-		// creates a node for session properties and populates it
-		TreeContentProviderNode propertiesRootNode = createNode(Policy.bind("resource.session_properties")); //$NON-NLS-1$
-		getRootNode().addChild(propertiesRootNode);
-
-		Set set = properties.entrySet();
-		for (Iterator propertiesIter = set.iterator(); propertiesIter.hasNext();) {
-			Map.Entry entry = (Map.Entry) propertiesIter.next();
-			propertiesRootNode.addChild(createNode(entry.getKey().toString(), entry.getValue()));
-		}
-
-	}
-
-	/**
-	 * Extracts basic resource info.
-	 * 
-	 * @param resource the resource object from where to extract information
-	 * @param info the resource info object from where to extract information
-	 */
-	protected void extractBasicInfo(IResource resource, ResourceInfo info) {
-
-		// extracts information from IResource
-		IPath resourcePath = resource.getFullPath();
-		long id = info.getContentId();
-
-		String type = null;
-		switch (resource.getType()) {
-			case IResource.FILE :
-				type = Policy.bind("resource.file"); //$NON-NLS-1$
-				break;
-			case IResource.FOLDER :
-				type = Policy.bind("resource.folder"); //$NON-NLS-1$
-				break;
-			case IResource.PROJECT :
-				type = Policy.bind("resource.project"); //$NON-NLS-1$
-				break;
-			case IResource.ROOT :
-				type = Policy.bind("resource.root"); //$NON-NLS-1$
-				break;
-		}
-
-		// extracts information from ResourceInfo
-		long localSyncInfo = info.getLocalSyncInfo();
-		long nodeId = info.getNodeId();
-
-		// creates a root node for each basic information
-		getRootNode().addChild(createNode(Policy.bind("resource.full_path"), resourcePath)); //$NON-NLS-1$
-		getRootNode().addChild(createNode(Policy.bind("resource.content_id"), Long.toString(id))); //$NON-NLS-1$
-		getRootNode().addChild(createNode(Policy.bind("resource.type"), type)); //$NON-NLS-1$
-		getRootNode().addChild(createNode(Policy.bind("resource.node_id"), Long.toString(nodeId))); //$NON-NLS-1$
-		getRootNode().addChild(createNode(Policy.bind("resource.local_sync_info"), Long.toString(localSyncInfo))); //$NON-NLS-1$
-	}
-
-	/**
-	 * Extracts flags from the resource info object, building a 'Flags' 
-	 * subtree in the resource details' tree.
-	 * 
-	 * @param info the resource info object from where to extract information
-	 */
-
-	protected void extractFlags(ResourceInfo info) {
-		// extract flags'values for the resource info object 
-		boolean isOpen = info.isSet(ICoreConstants.M_OPEN);
-		boolean localExists = info.isSet(ICoreConstants.M_LOCAL_EXISTS);
-		boolean isPhantom = info.isSet(ICoreConstants.M_PHANTOM);
-		boolean isUsed = info.isSet(ICoreConstants.M_USED);
-		boolean isDerived = info.isSet(ICoreConstants.M_DERIVED);
-		boolean isTeamPrivateMember = info.isSet(ICoreConstants.M_TEAM_PRIVATE_MEMBER);
-		boolean isMarkersSnapDirty = info.isSet(ICoreConstants.M_MARKERS_SNAP_DIRTY);
-		boolean isSyncInfoSnapDirty = info.isSet(ICoreConstants.M_SYNCINFO_SNAP_DIRTY);
-		boolean noContentDescription = info.isSet(ICoreConstants.M_NO_CONTENT_DESCRIPTION);
-		boolean defaultContentDescription = info.isSet(ICoreConstants.M_DEFAULT_CONTENT_DESCRIPTION);
-
-		// creates a node for flags
-		TreeContentProviderNode flagsParentNode = createNode(Policy.bind("resource.flags")); //$NON-NLS-1$
-		getRootNode().addChild(flagsParentNode);
-
-		// creates a child node in "Flags" node for each basic information
-		flagsParentNode.addChild(createNode(Policy.bind("resource.open"), Boolean.valueOf(isOpen))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.local_exists"), Boolean.valueOf(localExists))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.phantom"), Boolean.valueOf(isPhantom))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.used"), Boolean.valueOf(isUsed))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.derived"), Boolean.valueOf(isDerived))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.team_private"), Boolean.valueOf(isTeamPrivateMember))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.markers_snap_dirty"), Boolean.valueOf(isMarkersSnapDirty))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.sync_info_snap_dirty"), Boolean.valueOf(isSyncInfoSnapDirty))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.no_content_description"), Boolean.valueOf(noContentDescription))); //$NON-NLS-1$
-		flagsParentNode.addChild(createNode(Policy.bind("resource.default_content_description"), Boolean.valueOf(defaultContentDescription))); //$NON-NLS-1$
-
-	}
-
-	protected void extractContentDescription(Resource resource) {
-		if (resource.getType() != IResource.FILE)
-			return;
-		File file = (File) resource;
-		// creates a node for flags
-		try {
-			boolean cached = org.eclipse.core.internal.resources.SpySupport.isContentDescriptionCached(file);
-			String description = file.getContentDescription() + " (" + Policy.bind("resource.content_description_from_cache", Boolean.toString(cached)) + ")"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-			TreeContentProviderNode contentDescriptionNode = createNode(Policy.bind("resource.content_description"), description); //$NON-NLS-1$
-			getRootNode().addChild(contentDescriptionNode);
-		} catch (CoreException ce) {
-			// in the case of a CoreException, just present it as node
-			getRootNode().addChild(createNode(Policy.bind("resource.error_content_description", ce.toString()))); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * Extracts from resource info object all information regarding markers,
-	 * building a 'Markers' subtree in the resource details tree.
-	 * 
-	 * @param resource the resource object from where to extract information
-	 * @param info the resource info object from where to extract information
-	 */
-	protected void extractMarkersInfo(IResource resource, ResourceInfo info) {
-		MarkerSet markerSet = info.getMarkers();
-		if (markerSet == null)
-			return;
-
-		IMarkerSetElement[] markerSetElements = markerSet.elements();
-		if (markerSetElements.length == 0)
-			return;
-
-		// creates a root node for all markers
-		TreeContentProviderNode markersParentNode = createNode(Policy.bind("resource.markers")); //$NON-NLS-1$
-		getRootNode().addChild(markersParentNode);
-
-		int markerSetSize = markerSetElements.length;
-		for (int i = 0; i < markerSetSize; i++) {
-			try {
-				long markerID = markerSetElements[i].getId();
-				IMarker marker = resource.getMarker(markerID);
-
-				// creates a marker node 
-				String id = " [id = " + marker.getId() + "]"; //$NON-NLS-1$//$NON-NLS-2$
-				TreeContentProviderNode markerNode = createNode(marker.getType() + id);
-				markersParentNode.addChild(markerNode);
-				extractMarkerAttributes(markerNode, marker);
-
-			} catch (CoreException ce) {
-				// in the case of a CoreException, just present it as node
-				markersParentNode.addChild(createNode(Policy.bind("resource.error_marker", ce.toString()))); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Retrieves all attributes from a marker, adding them as sub-nodes in the 
-	 * marker's node. 
-	 * 
-	 * @param markerNode the marker's node
-	 * @param marker the marker object
-	 * @throws CoreException 
-	 */
-	protected void extractMarkerAttributes(TreeContentProviderNode markerNode, IMarker marker) throws CoreException {
-
-		Map attributes = marker.getAttributes();
-		if (attributes == null || attributes.size() == 0)
-			return;
-
-		// create a node (under markerNode) for each attribute found
-		Set entrySet = attributes.entrySet();
-		for (Iterator iterator = entrySet.iterator(); iterator.hasNext();) {
-			Map.Entry mapEntry = (Map.Entry) iterator.next();
-			String attributeName = (String) mapEntry.getKey();
-			Object attributeValue = mapEntry.getValue();
-			// adds each attribute as a subnode under 
-			// this marker's node
-			markerNode.addChild(createNode(attributeName, attributeValue));
-		}
-		// attributes will be ordered by attribute name
-		markerNode.sort();
-	}
-
-	/**
-	 * Extracts from the resource info object all information related to VCM,
-	 * building a 'Sync Info' subtree in the resource details tree.
-	 * 
-	 * @param info the resource info object from where to extract information
-	 */
-	protected void extractSyncInfo(ResourceInfo info) {
-		Map syncInfo = info.getSyncInfo(true);
-		if (syncInfo == null || syncInfo.size() == 0)
-			return;
-
-		// creates a root node for all sync info		
-		TreeContentProviderNode syncInfoParentNode = createNode(Policy.bind("resource.sync_info")); //$NON-NLS-1$
-		getRootNode().addChild(syncInfoParentNode);
-
-		Set entrySet = syncInfo.entrySet();
-		for (Iterator syncInfoIterator = entrySet.iterator(); syncInfoIterator.hasNext();) {
-			Map.Entry entry = (Map.Entry) syncInfoIterator.next();
-			// creates a sync info node	
-			String name = entry.getKey().toString();
-			String value = ByteUtil.byteArrayToString((byte[]) entry.getValue(), MAX_SYNC_INFO_BYTES);
-			syncInfoParentNode.addChild(createNode(name, value));
-		}
-
-	}
-
-	/**
-	 * Reconstructs this content provider data model upon the provided input object.
-	 *  
-	 * @param input the new input object - must not be null
-	 */
-	protected void rebuild(final Object input) {
-		Platform.run(new SafeRunnable() {
-			public void run() throws Exception {
-				extractInfo((IResource) input);
-			}
-		});
-	}
-
-	/**
-	 * Returns true if the input is a resource.
-	 * 
-	 * @param input an input object
-	 * @see org.eclipse.core.tools.AbstractTreeContentProvider#acceptInput(java.lang.Object)
-	 */
-	protected boolean acceptInput(Object input) {
-		return input instanceof IResource;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceView.java b/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceView.java
deleted file mode 100644
index 70ddb10..0000000
--- a/bundles/org.eclipse.core.tools.resources/src/org/eclipse/core/tools/resources/ResourceView.java
+++ /dev/null
@@ -1,251 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tools.resources;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.tools.*;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-
-/**
- * Resource Spy view. This view shows detailed information about the currently 
- * selected resource in any other view in the platform. For 
- * details on the information being presented, see <code>ResourceContentProvider
- * </code> documentation (link below).
- * 
- * @see org.eclipse.core.tools.resources.ResourceContentProvider
- */
-public class ResourceView extends SpyView {
-
-	/** JFace's tree component used to present resource details. */
-	protected AbstractTreeViewer viewer;
-
-	/** 
-	 * Our listener to selection changes. Every time a new resource is 
-	 * selected, this view gets updated.
-	 */
-	private ISelectionListener selectionListener;
-
-	/** 
-	 * Our listener to resource changes. Every time the current selected 
-	 * resource is changed, this view gets updated.	 
-	 */
-	private IResourceChangeListener resourceChangeListener;
-
-	/** The content provider for this view's TreeViewer. */
-	private ResourceContentProvider contentProvider;
-
-	/**
-	 * Constructs a resource view object, registering a resource change listener.
-	 */
-	public ResourceView() {
-		addResourceChangeListener();
-	}
-
-	/**
-	 * Creates the SWT controls for the resource view.
-	 * 
-	 * @param parent the parent control
-	 * @see IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) 
-	 */
-	public void createPartControl(Composite parent) {
-
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		contentProvider = new ResourceContentProvider();
-		viewer.setContentProvider(contentProvider);
-		addSelectionListener();
-		createActions();
-
-	}
-
-	/**
-	 * Creates and publishes this view's actions. 
-	 */
-	private void createActions() {
-		IActionBars actionBars = this.getViewSite().getActionBars();
-
-		final GlobalAction copyAction = new CopyStructuredSelectionAction(new TreeSelectionProviderDecorator(viewer));
-		copyAction.registerAsGlobalAction(actionBars);
-
-		final GlobalAction selectAllAction = new SelectAllAction(new TreeTextOperationTarget((Tree) viewer.getControl()));
-		selectAllAction.registerAsGlobalAction(actionBars);
-
-		actionBars.updateActionBars();
-
-		final MenuManager menuMgr = new MenuManager();
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				manager.add(copyAction);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-	}
-
-	/**
-	 * Process the given selection. If it is not an structured selection, the event
-	 * is discarded. If the selection is a resource (or maps to a resource), 
-	 * updates the resource view. Otherwise, the resource view is cleaned out.
-	 * 
-	 * @param sel the selection object to be processed
-	 */
-	protected void processSelection(ISelection sel) {
-		// if it is not a strucutured selection, ignore
-		if (!(sel instanceof IStructuredSelection))
-			return;
-
-		IResource resource = null;
-
-		IStructuredSelection structuredSel = (IStructuredSelection) sel;
-
-		if (!structuredSel.isEmpty()) {
-			Object item = ((IStructuredSelection) sel).getFirstElement();
-
-			if (item instanceof IResource)
-				resource = (IResource) item;
-			else if (item instanceof IAdaptable)
-				resource = (IResource) ((IAdaptable) item).getAdapter(IResource.class);
-		}
-		// loads the selected resource 
-		if (resource != null)
-			loadResource(resource);
-	}
-
-	/**
-	 * Creates a selection listener that will call 
-	 * <code>processSelection(ISelection)</code> everytime a selection has
-	 * changed in any place.
-	 * 
-	 * @see #processSelection(ISelection)
-	 */
-	private void addSelectionListener() {
-		ISelectionService selectionService = getSite().getPage().getWorkbenchWindow().getSelectionService();
-
-		// creates a selection listener that ignores who generated the event	
-		selectionListener = new ISelectionListener() {
-			public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-				processSelection(sel);
-			}
-		};
-
-		selectionService.addSelectionListener(selectionListener);
-
-		// forces a call to processSelection() to recognize any existing selection	
-		processSelection(selectionService.getSelection());
-
-	}
-
-	/**
-	 * Creates a resource change listener so we can know if the currently selected 
-	 * resource has changed or a marker has been added to or removed from it.
-	 */
-	private void addResourceChangeListener() {
-		resourceChangeListener = new SelectedResourceChangeListener();
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * Loads a resource to be shown on this resource view (or cleans it, if 
-	 * resource == null). This method must be run in the SWT thread.
-	 * 
-	 * @param resource the resource to be shown on this view
-	 * @see ResourceContentProvider#inputChanged(Viewer, Object, Object)
-	 */
-	public void loadResource(IResource resource) {
-
-		if (viewer.getControl().isDisposed())
-			return;
-
-		// turn redraw off so the UI will reflect changes only after we are done
-		viewer.getControl().setRedraw(false);
-
-		// fires viewer update			
-		viewer.setInput(resource);
-
-		// shows all nodes in the resource tree		
-		viewer.expandAll();
-
-		// we are done, turn redraw on
-		viewer.getControl().setRedraw(true);
-	}
-
-	/**
-	 * Removes all listeners added.
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		removeSelectionListener();
-		removeResourceChangeListener();
-	}
-
-	/**
-	 * Removes the resource change listener added by this view.
-	 */
-	private void removeResourceChangeListener() {
-		if (resourceChangeListener == null)
-			return;
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
-
-		resourceChangeListener = null;
-	}
-
-	/**
-	 * Removes the selection listener added by this view.
-	 */
-	private void removeSelectionListener() {
-		if (selectionListener == null)
-			return;
-
-		ISelectionService selectionService = getSite().getPage().getWorkbenchWindow().getSelectionService();
-
-		selectionService.removeSelectionListener(selectionListener);
-
-		selectionListener = null;
-	}
-
-	/**
-	 * A resource change listener that is interested on changes in the resource 
-	 * being currently shown.
-	 */
-	private class SelectedResourceChangeListener implements IResourceChangeListener {
-		public void resourceChanged(IResourceChangeEvent event) {
-
-			final IResource currentResource = (IResource) viewer.getInput();
-
-			// if we don't have a resource currently loaded, ignore the event
-			if (event.getType() != IResourceChangeEvent.POST_CHANGE || currentResource == null)
-				return;
-
-			// looks for a delta for the currently loaded resource
-			IResourceDelta rootDelta = event.getDelta();
-			IResourceDelta resourceDelta = rootDelta.findMember(currentResource.getFullPath());
-
-			// if there is a delta, something has changed
-			if (resourceDelta != null) {
-				// so rebuild the resource view contents with the new state
-				Display.getDefault().asyncExec(new Runnable() {
-					public void run() {
-						loadResource(currentResource);
-					}
-				});
-			}
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/.classpath b/tests/org.eclipse.core.tests.resources.saveparticipant/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/.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/tests/org.eclipse.core.tests.resources.saveparticipant/.cvsignore b/tests/org.eclipse.core.tests.resources.saveparticipant/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/.project b/tests/org.eclipse.core.tests.resources.saveparticipant/.project
deleted file mode 100644
index e35cc91..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tests.resources.saveparticipant</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.core.tests.resources</project>
-		<project>org.eclipse.core.tests.resources.saveparticipant1</project>
-		<project>org.eclipse.core.tests.resources.saveparticipant2</project>
-		<project>org.eclipse.core.tests.resources.saveparticipant3</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/about.html b/tests/org.eclipse.core.tests.resources.saveparticipant/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/build.properties b/tests/org.eclipse.core.tests.resources.saveparticipant/build.properties
deleted file mode 100644
index bc2aef2..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.saveparticipant.jar=src/
-bin.includes=plugin.xml,*.jar,about.xml
-
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/plugin.xml b/tests/org.eclipse.core.tests.resources.saveparticipant/plugin.xml
deleted file mode 100644
index f6f6554..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/plugin.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-  name="Eclipse Core Tests Save Participant"
-  id="org.eclipse.core.tests.resources.saveparticipant"
-  version="3.0.0"
-  provider-name="Eclipse.org">
-
-  <requires>
-    <import plugin="org.eclipse.core.resources"/>
-    <import plugin="org.eclipse.core.tests.harness"/>
-    <import plugin="org.eclipse.core.runtime.compatibility"/> 
-    <import plugin="org.junit"/>
-    <import plugin="org.eclipse.core.tests.resources"/>
-    <import plugin="org.eclipse.core.tests.resources.saveparticipant1"/>
-    <import plugin="org.eclipse.core.tests.resources.saveparticipant2"/>
-    <import plugin="org.eclipse.core.tests.resources.saveparticipant3"/>
-  </requires>
-
-  <runtime>
-    <library name="saveparticipant.jar">
-      <export name="*"/>
-    </library>
-  </runtime>
-
-  <extension point="org.eclipse.core.tests.harness.tests">
-    <test id="org.eclipse.core.tests.resources.saveparticipant.SaveManagerTest">
-      <run class="org.eclipse.core.tests.resources.saveparticipant.SaveManagerTest"/>
-    </test>
-  </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager1Test.java b/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager1Test.java
deleted file mode 100644
index 6d2a863..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager1Test.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- * IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.internal.builders.DeltaVerifierBuilder;
-import org.eclipse.core.tests.resources.regression.SimpleBuilder;
-import org.eclipse.core.tests.resources.saveparticipant1.SaveParticipant1Plugin;
-import org.eclipse.core.tests.resources.saveparticipant2.SaveParticipant2Plugin;
-import org.eclipse.core.tests.resources.saveparticipant3.SaveParticipant3Plugin;
-/**
- * This class needs to be used with SaveManager2Test. Basically this
- * one builds up an environment in a platform session and the other,
- * running in another session, makes sure the environment is safelly
- * restored.
- *
- * @see SaveManager2Test
- * @see SaveManager3Test
- */
-public class SaveManager1Test extends SaveManagerTest {
-/**
- * Need a zero argument constructor to satisfy the test harness.
- * This constructor should not do any real work nor should it be
- * called by user code.
- */
-public SaveManager1Test() {
-}
-public SaveManager1Test(String name) {
-	super(name);
-}
-// copy and paste into the scrapbook
-public static void doIt() throws Exception {
-	String[] testIds = { 
-	"saveparticipant.SaveManager1Test", 
-	"saveparticipant.SaveManager2Test", 
-	"saveparticipant.SaveManager3Test"};
-	for (int i = 0; i < testIds.length; i++) {
-		Process p = Runtime.getRuntime().exec(new String[] {
-		"java", "org.eclipse.core.tests.harness.launcher.Main", 
-		"-test", testIds[i],
-		"-data", "c:/temp/save_manager",
-		(i < (testIds.length-1) ? "-nocleanup" : "") });
-		p.waitFor();
-		java.io.InputStream input = p.getInputStream();
-		int c;
-		while ((c = input.read()) != -1)
-			System.out.print((char) c);
-		input.close();
-		input = p.getErrorStream();
-		while ((c = input.read()) != -1)
-			System.out.print((char) c);
-		input.close();
-	}
-	System.exit(-1);
-}
-public static Test suite() {
-	// we do not add the whole class because the order is important
-	TestSuite suite = new TestSuite();
-	suite.addTest(new SaveManager1Test("testSaveEmptyWorkspace"));
-	suite.addTest(new SaveManager1Test("testCreateMyProject"));
-	suite.addTest(new SaveManager1Test("testCreateProject2"));
-	suite.addTest(new SaveManager1Test("testAddSaveParticipant"));
-	suite.addTest(new SaveManager1Test("testBuilder"));
-	suite.addTest(new SaveManager1Test("testSaveWorkspace"));
-	suite.addTest(new SaveManager1Test("testPostSave"));
-	return suite;
-}
-public void testAddSaveParticipant() {
-	// get plugin
-	IPluginDescriptor descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_1);
-	SaveParticipant1Plugin plugin1 = null;
-	try {
-		plugin1 = (SaveParticipant1Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", plugin1 != null);
-
-	//	prepare plugin to the save operation
-	plugin1.resetDeltaVerifier();
-	IStatus status;
-	try {
-		status = plugin1.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("1.0");
-		}
-	} catch (CoreException e) {
-		fail("1.1", e);
-	}
-	plugin1.setExpectedSaveKind(ISaveContext.FULL_SAVE);
-
-	// SaveParticipant2Plugin
-	descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_2);
-	SaveParticipant2Plugin plugin2 = null;
-	try {
-		plugin2 = (SaveParticipant2Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("5.0", e);
-	}
-	assertTrue("5.1", plugin2 != null);
-
-	//	prepare plugin to the save operation
-	plugin2.getDeltaVerifier().reset();
-	try {
-		status = plugin2.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("6.0");
-		}
-	} catch (CoreException e) {
-		fail("6.1", e);
-	}
-	plugin1.setExpectedSaveKind(ISaveContext.FULL_SAVE);
-
-	// SaveParticipant3Plugin
-	descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_3);
-	SaveParticipant3Plugin plugin3 = null;
-	try {
-		plugin3 = (SaveParticipant3Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("7.0", e);
-	}
-	assertTrue("7.1", plugin3 != null);
-	try {
-		status = plugin3.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("7.2");
-		}
-	} catch (CoreException e) {
-		fail("7.3", e);
-	}
-}
-/**
- * Create another project and leave it closed for next session.
- */
-public void testAnotherProject() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	try {
-		project.create(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", project.exists());
-	assertTrue("0.2", project.isOpen());
-
-	try {
-		project.close(null);
-	} catch (CoreException e) {
-		fail("1.0", e);
-	}
-	assertTrue("1.1", project.exists());
-	assertTrue("1.2", !project.isOpen());
-
-	// when closing and opening the project again, it should still exist
-	project = getWorkspace().getRoot().getProject(PROJECT_1);
-	try {
-		project.open(null);
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-	assertTrue("2.1", project.exists());
-	assertTrue("2.2", project.isOpen());
-
-	// create some children
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_1));
-	ensureExistsInWorkspace(resources, true);
-	assertExistsInFileSystem("3.1", resources);
-	assertExistsInWorkspace("3.2", resources);
-
-	try {
-		project.close(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("4.0", e);
-	}
-	assertExistsInFileSystem("4.1", resources);
-	assertExistsInWorkspace("4.2", resources);
-
-	try {
-		getWorkspace().save(true, null);
-	} catch (CoreException e) {
-		fail("5.0", e);
-	}
-}
-public void testBuilder() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	assertTrue("0.0", project.isAccessible());
-
-	try {
-		// Make sure autobuild is on
-		if (!getWorkspace().isAutoBuilding()) {
-			IWorkspaceDescription wsDesc = getWorkspace().getDescription();
-			wsDesc.setAutoBuilding(true);
-			getWorkspace().setDescription(wsDesc);
-		}
-		// Create and set a build spec for the project
-		IProjectDescription description = project.getDescription();
-		ICommand command = description.newCommand();
-		command.setBuilderName(DeltaVerifierBuilder.BUILDER_NAME);
-		description.setBuildSpec(new ICommand[] { command });
-		project.setDescription(description, null);
-		project.build(IncrementalProjectBuilder.FULL_BUILD, getMonitor());
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-
-	// close and open the project and see if the builder gets a good delta
-	try {
-		project.close(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("3.0", e);
-	}
-	IFile added = project.getFile("added file");
-	DeltaVerifierBuilder verifier = DeltaVerifierBuilder.getInstance();
-	verifier.addExpectedChange(added, project, IResourceDelta.ADDED, 0);
-	try {
-		added.create(getRandomContents(), true, null);
-	} catch (CoreException e) {
-		fail("3.1", e);
-	}
-	assertTrue("3.2", verifier.wasAutoBuild());
-	assertTrue("3.3", verifier.isDeltaValid());
-	// remove the file because we don't want it to affect any other delta in the test
-	try {
-		added.delete(true, false, null);
-	} catch (CoreException e) {
-		fail("3.4", e);
-	}
-}
-/**
- * Create some resources and save the workspace.
- */
-public void testCreateMyProject() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	try {
-		project.create(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", project.exists());
-	assertTrue("0.2", project.isOpen());
-
-	try {
-		project.close(null);
-	} catch (CoreException e) {
-		fail("1.0", e);
-	}
-	assertTrue("1.1", project.exists());
-	assertTrue("1.2", !project.isOpen());
-
-	// when closing and opening the project again, it should still exist
-	project = getWorkspace().getRoot().getProject(PROJECT_1);
-	try {
-		project.open(null);
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-	assertTrue("2.1", project.exists());
-	assertTrue("2.2", project.isOpen());
-
-	// create some children
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_1));
-	ensureExistsInWorkspace(resources, true);
-	assertExistsInFileSystem("3.1", resources);
-	assertExistsInWorkspace("3.2", resources);
-
-	try {
-		project.close(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("4.0", e);
-	}
-	assertExistsInFileSystem("4.1", resources);
-	assertExistsInWorkspace("4.2", resources);
-}
-/**
- * Create another project and leave it closed for next session.
- */
-public void testCreateProject2() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_2);
-	try {
-		project.create(null);
-		project.open(null);
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", project.exists());
-	assertTrue("0.2", project.isOpen());
-
-	// create some children
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_2));
-	ensureExistsInWorkspace(resources, true);
-	assertExistsInFileSystem("3.1", resources);
-	assertExistsInWorkspace("3.2", resources);
-
-	// add a builder to this project
-	try {
-		IProjectDescription description = project.getDescription();
-		ICommand command = description.newCommand();
-		command.setBuilderName(SimpleBuilder.BUILDER_ID);
-		description.setBuildSpec(new ICommand[] { command });
-		project.setDescription(description, null);
-		project.build(IncrementalProjectBuilder.FULL_BUILD, null);
-	} catch (CoreException e) {
-		fail("4.0", e);
-	}
-
-	try {
-		project.close(null);
-	} catch (CoreException e) {
-		fail("5.0", e);
-	}
-	assertTrue("5.1", project.exists());
-	assertTrue("5.2", !project.isOpen());
-}
-public void testPostSave() {
-	// get plugin
-	IPluginDescriptor descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_1);
-	SaveParticipant1Plugin plugin = null;
-	try {
-		plugin = (SaveParticipant1Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", plugin != null);
-
-	// look at the plugin save lifecycle
-	IStatus status = plugin.getSaveLifecycleLog();
-	if (!status.isOK()) {
-		System.out.println(status.getMessage());
-		assertTrue("1.0", false);
-	}
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager2Test.java b/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager2Test.java
deleted file mode 100644
index 366a5e9..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager2Test.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- * IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.internal.builders.DeltaVerifierBuilder;
-import org.eclipse.core.tests.resources.regression.SimpleBuilder;
-import org.eclipse.core.tests.resources.saveparticipant1.SaveParticipant1Plugin;
-import org.eclipse.core.tests.resources.saveparticipant3.SaveParticipant3Plugin;
-/**
- * @see SaveManager1Test
- * @see SaveManager3Test
- */
-public class SaveManager2Test extends SaveManagerTest {
-/**
- * Need a zero argument constructor to satisfy the test harness.
- * This constructor should not do any real work nor should it be
- * called by user code.
- */
-public SaveManager2Test() {
-}
-public SaveManager2Test(String name) {
-	super(name);
-}
-public static Test suite() {
-	// we do not add the whole class because the order is important
-	TestSuite suite = new TestSuite();
-	suite.addTest(new SaveManager2Test("testVerifyRestoredWorkspace"));
-	suite.addTest(new SaveManager2Test("testBuilder"));
-	suite.addTest(new SaveManager2Test("testSaveParticipant"));
-	suite.addTest(new SaveManager2Test("testVerifyProject2"));
-	suite.addTest(new SaveManager1Test("testSaveWorkspace"));
-	return suite;
-}
-public void testBuilder() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	assertTrue("0.0", project.isAccessible());
-
-	IFile added = project.getFile("added file");
-	DeltaVerifierBuilder verifier = DeltaVerifierBuilder.getInstance();
-	verifier.addExpectedChange(added, project, IResourceDelta.ADDED, 0);
-	try {
-		added.create(getRandomContents(), true, null);
-	} catch (CoreException e) {
-		fail("3.1", e);
-	}
-	assertTrue("3.2", verifier.wasAutoBuild());
-	assertTrue("3.3", verifier.isDeltaValid());
-	// remove the file because we don't want it to affect any other delta in the test
-	try {
-		added.delete(true, false, null);
-	} catch (CoreException e) {
-		fail("3.4", e);
-	}
-}
-public void testSaveParticipant() {
-	// get plugin
-	IPluginDescriptor descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_1);
-	SaveParticipant1Plugin plugin1 = null;
-	try {
-		plugin1 = (SaveParticipant1Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", plugin1 != null);
-
-	// prepare plugin to the save operation
-	plugin1.resetDeltaVerifier();
-	IResource added1 = getWorkspace().getRoot().getFile(new Path(PROJECT_1).append("addedFile"));
-	plugin1.addExpectedChange(added1, IResourceDelta.ADDED, 0);
-	IStatus status;
-	try {
-		status = plugin1.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			assertTrue("1.0", false);
-		}
-	} catch (CoreException e) {
-		fail("1.1", e);
-	}
-
-	// SaveParticipant3Plugin
-	descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_3);
-	SaveParticipant3Plugin plugin3 = null;
-	try {
-		plugin3 = (SaveParticipant3Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("7.0", e);
-	}
-	assertTrue("7.1", plugin3 != null);
-	try {
-		status = plugin3.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("7.2");
-		}
-	} catch (CoreException e) {
-		fail("7.3", e);
-	}
-}
-public void testVerifyProject2() {
-	// project2 should be closed
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_2);
-	assertTrue("0.0", project.exists());
-	assertTrue("0.1", !project.isOpen());
-
-	// verify its children
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_2));
-	assertExistsInFileSystem("1.0", resources);
-	assertDoesNotExistInWorkspace("1.1", resources);
-
-	try {
-		project.open(null);
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-	assertTrue("2.1", project.exists());
-	assertTrue("2.2", project.isOpen());
-	assertExistsInFileSystem("2.3", resources);
-	assertExistsInWorkspace("2.4", resources);
-
-	// verify builder -- cause an incremental build
-	try {
-		touch(project);
-	} catch (CoreException e) {
-		fail("2.5", e);
-	}
-	SimpleBuilder builder = SimpleBuilder.getInstance();
-	assertTrue("2.6", builder.wasAutoBuild());
-
-	// add a file to test save participant delta
-	IFile file = project.getFile("addedFile");
-	try {
-		file.create(getRandomContents(), true, null);
-	} catch (CoreException e) {
-		fail("3.0", e);
-	}
-}
-public void testVerifyRestoredWorkspace() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	assertTrue("0.0", project.exists());
-	assertTrue("0.1", project.isOpen());
-
-	// verify children still exist
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_1));
-	assertExistsInFileSystem("1.0", resources);
-	assertExistsInWorkspace("1.1", resources);
-
-	// add a file to test save participant delta
-	IFile file = project.getFile("addedFile");
-	try {
-		file.create(getRandomContents(), true, null);
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager3Test.java b/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager3Test.java
deleted file mode 100644
index 084145f..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManager3Test.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- * IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.tests.internal.builders.DeltaVerifierBuilder;
-import org.eclipse.core.tests.resources.saveparticipant1.SaveParticipant1Plugin;
-import org.eclipse.core.tests.resources.saveparticipant2.SaveParticipant2Plugin;
-import org.eclipse.core.tests.resources.saveparticipant3.SaveParticipant3Plugin;
-/**
- * @see SaveManager1Test
- * @see SaveManager2Test
- */
-public class SaveManager3Test extends SaveManagerTest {
-/**
- * Need a zero argument constructor to satisfy the test harness.
- * This constructor should not do any real work nor should it be
- * called by user code.
- */
-public SaveManager3Test() {
-}
-public SaveManager3Test(String name) {
-	super(name);
-}
-public static Test suite() {
-	// we do not add the whole class because the order is important
-	TestSuite suite = new TestSuite();
-	suite.addTest(new SaveManager3Test("testSaveParticipant"));
-	suite.addTest(new SaveManager3Test("testBuilder"));
-	suite.addTest(new SaveManager3Test("cleanUp"));
-	return suite;
-}
-public void testBuilder() {
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	assertTrue("0.0", project.isAccessible());
-
-	try {
-		setAutoBuilding(false);
-		touch(project);
-		project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
-		setAutoBuilding(true);
-	} catch (CoreException e) {
-		fail("1.0", e);
-	}
-	DeltaVerifierBuilder verifier = DeltaVerifierBuilder.getInstance();
-	assertTrue("1.1", verifier.wasIncrementalBuild());
-
-	IFile added = project.getFile("added file");
-	verifier.addExpectedChange(added, project, IResourceDelta.ADDED, 0);
-	try {
-		added.create(getRandomContents(), true, null);
-	} catch (CoreException e) {
-		fail("3.1", e);
-	}
-	assertTrue("3.2", verifier.wasAutoBuild());
-	assertTrue("3.3", verifier.isDeltaValid());
-	// remove the file because we don't want it to affect any other delta in the test
-	try {
-		added.delete(true, false, null);
-	} catch (CoreException e) {
-		fail("3.4", e);
-	}
-}
-public void testSaveParticipant() {
-	// SaveParticipant1Plugin
-	IPluginDescriptor descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_1);
-	SaveParticipant1Plugin plugin1 = null;
-	try {
-		plugin1 = (SaveParticipant1Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("0.0", e);
-	}
-	assertTrue("0.1", plugin1 != null);
-
-	// check saved state and delta
-	plugin1.resetDeltaVerifier();
-	IStatus status;
-	try {
-		status = plugin1.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			assertTrue("1.0", false);
-		}
-	} catch (CoreException e) {
-		fail("1.1", e);
-	}
-
-	// SaveParticipant2Plugin
-	descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_2);
-	SaveParticipant2Plugin plugin2 = null;
-	try {
-		plugin2 = (SaveParticipant2Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("5.0", e);
-	}
-	assertTrue("5.1", plugin2 != null);
-
-	// check saved state and delta
-	plugin2.resetDeltaVerifier();
-	// MyProject changes
-	IProject project = getWorkspace().getRoot().getProject(PROJECT_1);
-	IResource file = project.getFile("addedFile");
-	plugin2.addExpectedChange(file, IResourceDelta.ADDED, 0);
-	
-	// Project2 changes
-	project = getWorkspace().getRoot().getProject(PROJECT_2);
-	plugin2.addExpectedChange(project, IResourceDelta.CHANGED, IResourceDelta.OPEN);
-	file = project.getFile("addedFile");
-	plugin2.addExpectedChange(file, project, IResourceDelta.ADDED, 0);
-	IResource prjFile = project.getFile(".project");
-	plugin2.addExpectedChange(prjFile, IResourceDelta.ADDED, 0);
-	IResource[] resources = buildResources(project, defineHierarchy(PROJECT_2));
-	plugin2.addExpectedChange(resources, IResourceDelta.ADDED, 0);
-	//
-	try {
-		status = plugin2.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("6.0");
-		}
-	} catch (CoreException e) {
-		fail("6.1", e);
-	}
-
-	// SaveParticipant3Plugin
-	descriptor = Platform.getPluginRegistry().getPluginDescriptor(PI_SAVE_PARTICIPANT_3);
-	SaveParticipant3Plugin plugin3 = null;
-	try {
-		plugin3 = (SaveParticipant3Plugin) descriptor.getPlugin();
-	} catch (CoreException e) {
-		fail("7.0", e);
-	}
-	assertTrue("7.1", plugin3 != null);
-	try {
-		status = plugin3.registerAsSaveParticipant();
-		if (!status.isOK()) {
-			System.out.println(status.getMessage());
-			fail("7.2");
-		}
-	} catch (CoreException e) {
-		fail("7.3", e);
-	}
-}
-public void cleanUp() {
-	try {
-		ensureDoesNotExistInWorkspace(getWorkspace().getRoot());
-		getWorkspace().save(true, null);
-	} catch(CoreException e) {
-		fail("1.0", e);
-	}
-}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManagerTest.java b/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManagerTest.java
deleted file mode 100644
index 35a7610..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant/src/org/eclipse/core/tests/resources/saveparticipant/SaveManagerTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- * IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.tests.harness.WorkspaceSessionTest;
-
-/**
- * Runs all the SaveManager tests as a single session test.
- */
-public class SaveManagerTest extends WorkspaceSessionTest {
-
-	/** project names */
-	static final String PROJECT_1 = "MyProject";
-	static final String PROJECT_2 = "Project2";
-
-	/** activities */
-	static final String COMMENT_1 = "COMMENT ONE";
-	static final String COMMENT_2 = "COMMENT TWO";
-
-	/** plugin ids */
-	static final String PI_SAVE_PARTICIPANT_1 = "org.eclipse.core.tests.resources.saveparticipant1";
-	static final String PI_SAVE_PARTICIPANT_2 = "org.eclipse.core.tests.resources.saveparticipant2";
-	static final String PI_SAVE_PARTICIPANT_3 = "org.eclipse.core.tests.resources.saveparticipant3";
-public SaveManagerTest() {
-}
-public SaveManagerTest(String name) {
-	super(name);
-}
-protected String[] defineHierarchy(String project) {
-	if (project.equals(PROJECT_1))
-		return defineHierarchy1();
-	if (project.equals(PROJECT_2))
-		return defineHierarchy2();
-	return new String[0];
-}
-protected String[] defineHierarchy1() {
-	return new String[] {
-		"/folder110/",
-		"/folder110/folder120/",
-		"/folder110/folder120/folder130/",
-		"/folder110/folder120/folder130/folder140/",
-		"/folder110/folder120/folder130/folder140/folder150/",
-		"/folder110/folder120/folder130/folder140/folder150/file160",
-		"/folder110/folder120/folder130/folder140/file150",
-		"/folder110/folder121/",
-		"/folder110/folder121/folder131/",
-		"/folder110/folder120/folder130/folder141/"
-	};
-}
-protected String[] defineHierarchy2() {
-	return new String[] {
-		"/file110",
-		"/folder110/",
-		"/folder110/file120",
-		"/folder111/",
-		"/folder111/folder120/",
-		"/folder111/file121"
-	};
-}
-public void saveWorkspace() {
-	try {
-		getWorkspace().save(true, null);
-	} catch (CoreException e) {
-		fail("2.0", e);
-	}
-}
-/**
- * Sets the workspace autobuilding to the desired value.
- */
-protected void setAutoBuilding(boolean value) throws CoreException {
-	IWorkspace workspace = getWorkspace();
-	if (workspace.isAutoBuilding() == value)
-		return;
-	IWorkspaceDescription desc = workspace.getDescription();
-	desc.setAutoBuilding(value);
-	workspace.setDescription(desc);
-}
-public void test1() {
-	SaveManager1Test test = new SaveManager1Test();
-	test.saveWorkspace();
-	test.testCreateMyProject();
-	test.testCreateProject2();
-	test.testAddSaveParticipant();
-	test.testBuilder();
-	test.saveWorkspace();
-	test.testPostSave();
-	
-}
-public void test2() {
-	SaveManager2Test test = new SaveManager2Test();
-	test.testVerifyRestoredWorkspace();
-	test.testBuilder();
-	test.testSaveParticipant();
-	test.testVerifyProject2();
-	test.saveWorkspace();
-}
-public void test3() {
-	SaveManager3Test test = new SaveManager3Test();
-	test.testSaveParticipant();
-	test.testBuilder();
-	test.cleanUp();
-}
-protected void touch(IProject project) throws CoreException {
-	project.accept(new IResourceVisitor() {
-		public boolean visit(IResource resource) throws CoreException {
-			if (resource.getType() == IResource.FILE) {
-				resource.touch(null);
-				return false;
-			}
-			return true;
-		}
-	});
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/.classpath b/tests/org.eclipse.core.tests.resources.saveparticipant1/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/.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/tests/org.eclipse.core.tests.resources.saveparticipant1/.cvsignore b/tests/org.eclipse.core.tests.resources.saveparticipant1/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/.project b/tests/org.eclipse.core.tests.resources.saveparticipant1/.project
deleted file mode 100644
index c926019..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tests.resources.saveparticipant1</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.core.tests.resources</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/about.html b/tests/org.eclipse.core.tests.resources.saveparticipant1/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/build.properties b/tests/org.eclipse.core.tests.resources.saveparticipant1/build.properties
deleted file mode 100644
index 485f4c4..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.saveparticipant1.jar=src/
-bin.includes=plugin.xml,*.jar,about.xml
-
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/plugin.xml b/tests/org.eclipse.core.tests.resources.saveparticipant1/plugin.xml
deleted file mode 100644
index 2ddc448..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-  name="Save Participant 1"
-  id="org.eclipse.core.tests.resources.saveparticipant1"
-  class="org.eclipse.core.tests.resources.saveparticipant1.SaveParticipant1Plugin"
-  version="3.0.0"
-  provider-name="Eclipse.org">
-
-  <requires>
-    <import plugin="org.eclipse.core.resources"/>
-    <import plugin="org.eclipse.core.tests.resources"/>
-    <import plugin="org.eclipse.core.runtime.compatibility"/> 
-    <import plugin="org.junit"/>
-  </requires>
-
-  <runtime>
-    <library name="saveparticipant1.jar">
-      <export name="*" /> 
-    </library>
-  </runtime>
-</plugin>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant1/src/org/eclipse/core/tests/resources/saveparticipant1/SaveParticipant1Plugin.java b/tests/org.eclipse.core.tests.resources.saveparticipant1/src/org/eclipse/core/tests/resources/saveparticipant1/SaveParticipant1Plugin.java
deleted file mode 100644
index 6f1d956..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant1/src/org/eclipse/core/tests/resources/saveparticipant1/SaveParticipant1Plugin.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant1;
-
-import java.io.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.resources.ResourceDeltaVerifier;
-/**
- * This plugin was designed to test the save facility provided by the ResourcesPlugin.
- * So, it does not act by itself. Another plugin (like a test) needs to call its methods in order
- * to something happen (like add it as a save participant, provide the expected values and so on...).
- */
-public class SaveParticipant1Plugin extends Plugin implements ISaveParticipant {
-	/** expected values */
-	private ResourceDeltaVerifier deltaVerifier;
-	private int expectedPreviousSaveNumber;
-	private int saveKind;
-
-	/** lifecycle log */
-	protected MultiStatus saveLifecycleLog;
-
-	/** constants */
-	private static final String SAVE_NUMBER_LOCATION = "saveNumber";
-public SaveParticipant1Plugin(IPluginDescriptor descriptor) {
-	super(descriptor);
-	deltaVerifier = new ResourceDeltaVerifier();
-}
-public void addExpectedChange(IResource resource, int status, int changeFlags) {
-	deltaVerifier.addExpectedChange(resource, status, changeFlags);
-}
-public void addExpectedChange(IResource resource, IResource topLevelParent, int status, int changeFlags) {
-	deltaVerifier.addExpectedChange(resource, topLevelParent, status, changeFlags);
-}
-public void deregisterAsSaveParticipant() {
-	getWorkspace().removeSaveParticipant(this);
-}
-public void doneSaving(ISaveContext context) {
-	try {
-		writeExpectedSaveNumber(context.getSaveNumber());
-	} catch (Exception e) {
-		e.printStackTrace(System.out);
-	}
-}
-private String getMessage(int expectedPreviousSaveNumber, int previousSaveNumber) {
-	StringBuffer message = new StringBuffer();
-	message.append("Expected previous saved id was: ");
-	message.append(expectedPreviousSaveNumber);
-	message.append("\nPrevious saved id is: ");
-	message.append(previousSaveNumber);
-	message.append("\n");
-	return message.toString();
-}
-public String getPluginId() {
-	return getDescriptor().getUniqueIdentifier();
-}
-/**
- * @return a status indicating any problem during the save lifecycle of this plugin.
- */
-public IStatus getSaveLifecycleLog() {
-	return saveLifecycleLog;
-}
-private IWorkspace getWorkspace() {
-	return ResourcesPlugin.getWorkspace();
-}
-public void prepareToSave(ISaveContext context) throws CoreException {
-	resetSaveLifecycleLog();
-	IStatus status = validate(context);
-	if (!status.isOK())
-		saveLifecycleLog.addAll(status);
-	context.needDelta();
-	context.needSaveNumber();
-}
-/**
- * We do not care about deltas, only saved id.
- */
-private void readExpectedSavedNumber() {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	try {
-		DataInputStream input = new DataInputStream(new FileInputStream(location.toOSString()));
-		try {
-			expectedPreviousSaveNumber = input.readInt();
-		} finally {
-			input.close();
-		}
-	} catch (IOException e) {
-		expectedPreviousSaveNumber = 0;
-	}
-}
-/**
- * @return a status indicating if the ISavedState is the expected one or not.
- */
-public IStatus registerAsSaveParticipant() throws CoreException {
-	ISavedState state = getWorkspace().addSaveParticipant(this, this);
-	readExpectedSavedNumber();
-	return validate(state);
-}
-public void resetDeltaVerifier() {
-	deltaVerifier.reset();
-}
-private void resetSaveLifecycleLog() {
-	String message = "save lifecycle log for SaveParticipantPlugin";
-	saveLifecycleLog = new MultiStatus(getPluginId(), Status.OK, message, null);
-}
-public void rollback(ISaveContext context) {
-}
-public void saving(ISaveContext context) throws CoreException {
-}
-public void setExpectedSaveKind(int saveKind) {
-	this.saveKind = saveKind;
-}
-private IStatus validate(ISaveContext context) {
-	// previous saved id
-	if (context.getPreviousSaveNumber() != 0 || expectedPreviousSaveNumber != 0) {
-		try {
-			// Test if id is different than expected. Also, catch NullPointerException
-			// in cases we do not expect any of the ids to be null.
-			if (context.getPreviousSaveNumber() != expectedPreviousSaveNumber) {
-				String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-				return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-			}
-		} catch (NullPointerException e) {
-			String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-		}
-	}
-	// save kind
-	if (context.getKind() != saveKind) {
-		String message = "Save kind was different than expected.";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-private IStatus validate(ISavedState state) {
-	if (state == null && expectedPreviousSaveNumber == 0)
-		return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-	try {
-		// Test if id or delta are different than expected. Also, catch NullPointerException
-		// in cases we do not expect any of the states to be null.
-		state.processResourceChangeEvents(deltaVerifier);
-		if (state.getSaveNumber() != expectedPreviousSaveNumber) {
-			String message = "saved id is different than expected";
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-		if (!deltaVerifier.isDeltaValid()) {
-			String message = "delta is different than expected\n";
-			message = message + deltaVerifier.getMessage();
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-	} catch (NullPointerException e) {
-		String message = "ISavedState is different than expected";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-/**
- * We do not care about deltas, only save number.
- */
-private void writeExpectedSaveNumber(int saveNumber) throws IOException {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	DataOutputStream output = new DataOutputStream(new FileOutputStream(location.toOSString()));
-	try {
-		output.writeInt(saveNumber);
-	} finally {
-		output.close();
-	}
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/.classpath b/tests/org.eclipse.core.tests.resources.saveparticipant2/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/.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/tests/org.eclipse.core.tests.resources.saveparticipant2/.cvsignore b/tests/org.eclipse.core.tests.resources.saveparticipant2/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/.project b/tests/org.eclipse.core.tests.resources.saveparticipant2/.project
deleted file mode 100644
index e966917..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tests.resources.saveparticipant2</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.core.tests.resources</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/about.html b/tests/org.eclipse.core.tests.resources.saveparticipant2/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/build.properties b/tests/org.eclipse.core.tests.resources.saveparticipant2/build.properties
deleted file mode 100644
index f5a40e0..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-source.saveparticipant2.jar=src/
-bin.includes=plugin.xml,*.jar,about.xml
-
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/plugin.xml b/tests/org.eclipse.core.tests.resources.saveparticipant2/plugin.xml
deleted file mode 100644
index f78586d..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-  name="Save Participant 2"
-  id="org.eclipse.core.tests.resources.saveparticipant2"
-  class="org.eclipse.core.tests.resources.saveparticipant2.SaveParticipant2Plugin"
-  version="3.0.0"
-  provider-name="Eclipse.org">
-
-  <requires>
-    <import plugin="org.eclipse.core.resources"/>
-    <import plugin="org.eclipse.core.tests.resources"/>
-    <import plugin="org.eclipse.core.runtime.compatibility"/> 
-    <import plugin="org.junit"/>
-  </requires>
-
-  <runtime>
-    <library name="saveparticipant2.jar">
-      <export name="*" /> 
-    </library>
-  </runtime>
-</plugin>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant2/src/org/eclipse/core/tests/resources/saveparticipant2/SaveParticipant2Plugin.java b/tests/org.eclipse.core.tests.resources.saveparticipant2/src/org/eclipse/core/tests/resources/saveparticipant2/SaveParticipant2Plugin.java
deleted file mode 100644
index adc775b..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant2/src/org/eclipse/core/tests/resources/saveparticipant2/SaveParticipant2Plugin.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant2;
-
-import java.io.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.resources.ResourceDeltaVerifier;
-/**
- * This plugin was designed to test the save facility provided by the ResourcesPlugin.
- * So, it does not act by itself. Another plugin (like a test) needs to call its methods in order
- * to something happen (like add it as a save participant, provide the expected values and so on...).
- */
-public class SaveParticipant2Plugin extends Plugin implements ISaveParticipant {
-	/** expected values */
-	private ResourceDeltaVerifier deltaVerifier;
-	private int expectedPreviousSaveNumber;
-	private int saveKind;
-
-	/** lifecycle log */
-	protected MultiStatus saveLifecycleLog;
-
-	/** constants */
-	private static final String SAVE_NUMBER_LOCATION = "saveNumber";
-public SaveParticipant2Plugin(IPluginDescriptor descriptor) {
-	super(descriptor);
-	deltaVerifier = new ResourceDeltaVerifier();
-}
-public void addExpectedChange(IResource[] resources, int status, int changeFlags) {
-	deltaVerifier.addExpectedChange(resources, status, changeFlags);
-}
-public void addExpectedChange(IResource resource, int status, int changeFlags) {
-	deltaVerifier.addExpectedChange(resource, status, changeFlags);
-}
-public void addExpectedChange(IResource resource, IResource topLevelParent, int status, int changeFlags) {
-	deltaVerifier.addExpectedChange(resource, topLevelParent, status, changeFlags);
-}
-public void deregisterAsSaveParticipant() {
-	getWorkspace().removeSaveParticipant(this);
-}
-public void doneSaving(ISaveContext context) {
-	try {
-		writeExpectedSaveNumber(context.getSaveNumber());
-	} catch (Exception e) {
-		e.printStackTrace(System.out);
-	}
-}
-/**
- * Used to set the expected delta from the saved id.
- */ 
-public ResourceDeltaVerifier getDeltaVerifier() {
-	return deltaVerifier;
-}
-private String getMessage(int expectedPreviousSaveNumber, int previousSaveNumber) {
-	StringBuffer message = new StringBuffer();
-	message.append("Expected previous saved id was: ");
-	message.append(expectedPreviousSaveNumber);
-	message.append("\nPrevious saved id is: ");
-	message.append(previousSaveNumber);
-	message.append("\n");
-	return message.toString();
-}
-public String getPluginId() {
-	return getDescriptor().getUniqueIdentifier();
-}
-/**
- * @return a status indicating any problem during the save lifecycle of this plugin.
- */
-public IStatus getSaveLifecycleLog() {
-	return saveLifecycleLog;
-}
-private IWorkspace getWorkspace() {
-	return ResourcesPlugin.getWorkspace();
-}
-public void prepareToSave(ISaveContext context) throws CoreException {
-	resetSaveLifecycleLog();
-	IStatus status = validate(context);
-	if (!status.isOK())
-		saveLifecycleLog.addAll(status);
-	context.needDelta();
-	context.needSaveNumber();
-}
-/**
- * We do not care about deltas, only saved id.
- */
-private void readExpectedSavedNumber() {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	try {
-		DataInputStream input = new DataInputStream(new FileInputStream(location.toOSString()));
-		try {
-			expectedPreviousSaveNumber = input.readInt();
-		} finally {
-			input.close();
-		}
-	} catch (IOException e) {
-		expectedPreviousSaveNumber = 0;
-	}
-}
-/**
- * @return a status indicating if the ISavedState is the expected one or not.
- */
-public IStatus registerAsSaveParticipant() throws CoreException {
-	ISavedState state = getWorkspace().addSaveParticipant(this, this);
-	readExpectedSavedNumber();
-	return validate(state);
-}
-public void resetDeltaVerifier() {
-	deltaVerifier.reset();
-}
-protected void resetSaveLifecycleLog() {
-	String message = "save lifecycle log for SaveParticipantPlugin";
-	saveLifecycleLog = new MultiStatus(getPluginId(), Status.OK, message, null);
-}
-public void rollback(ISaveContext context) {
-}
-public void saving(ISaveContext context) throws CoreException {
-}
-public void setExpectedSaveKind(int saveKind) {
-	this.saveKind = saveKind;
-}
-private IStatus validate(ISaveContext context) {
-	// previous saved id
-	if (context.getPreviousSaveNumber() != 0 || expectedPreviousSaveNumber != 0) {
-		try {
-			// Test if id is different than expected. Also, catch NullPointerException
-			// in cases we do not expect any of the ids to be null.
-			if (context.getPreviousSaveNumber() != expectedPreviousSaveNumber) {
-				String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-				return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-			}
-		} catch (NullPointerException e) {
-			String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-		}
-	}
-	// save kind
-	if (context.getKind() != saveKind) {
-		String message = "Save kind was different than expected.";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-private IStatus validate(ISavedState state) {
-	if (state == null && expectedPreviousSaveNumber == 0)
-		return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-	try {
-		// Test if id or delta are different than expected. Also, catch NullPointerException
-		// in cases we do not expect any of the states to be null.
-		state.processResourceChangeEvents(deltaVerifier);
-		if (state.getSaveNumber() != expectedPreviousSaveNumber) {
-			String message = "saved id is different than expected";
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-		if (!deltaVerifier.isDeltaValid()) {
-			String message = "delta is different than expected\n";
-			message = message + deltaVerifier.getMessage();
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-	} catch (NullPointerException e) {
-		String message = "ISavedState is different than expected";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-/**
- * We do not care about deltas, only save number.
- */
-private void writeExpectedSaveNumber(int saveNumber) throws IOException {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	DataOutputStream output = new DataOutputStream(new FileOutputStream(location.toOSString()));
-	try {
-		output.writeInt(saveNumber);
-	} finally {
-		output.close();
-	}
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/.classpath b/tests/org.eclipse.core.tests.resources.saveparticipant3/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/.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/tests/org.eclipse.core.tests.resources.saveparticipant3/.cvsignore b/tests/org.eclipse.core.tests.resources.saveparticipant3/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/.project b/tests/org.eclipse.core.tests.resources.saveparticipant3/.project
deleted file mode 100644
index 51d3195..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/.project
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.tests.resources.saveparticipant3</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.core.tests.harness</project>
-		<project>org.eclipse.core.tests.resources</project>
-		<project>org.junit</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/about.html b/tests/org.eclipse.core.tests.resources.saveparticipant3/about.html
deleted file mode 100644
index 9db411a..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/about.html
+++ /dev/null
@@ -1,30 +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>20th June, 2002</p>	
-<h3>License</h3>
-<p>Eclipse.org 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
-Common Public License Version 1.0 (&quot;CPL&quot;).  A copy of the CPL is 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>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License.  In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/build.properties b/tests/org.eclipse.core.tests.resources.saveparticipant3/build.properties
deleted file mode 100644
index cbca661..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-source.saveparticipant3.jar=src/
-bin.includes=plugin.xml,*.jar,about.xml
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/plugin.xml b/tests/org.eclipse.core.tests.resources.saveparticipant3/plugin.xml
deleted file mode 100644
index 6cae5af..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-  name="Save Participant 3"
-  id="org.eclipse.core.tests.resources.saveparticipant3"
-  class="org.eclipse.core.tests.resources.saveparticipant3.SaveParticipant3Plugin"
-  version="3.0.0"
-  provider-name="Eclipse.org">
-
-  <requires>
-    <import plugin="org.eclipse.core.resources"/>
-    <import plugin="org.eclipse.core.runtime.compatibility"/> 
-    <import plugin="org.eclipse.core.tests.resources"/>
-    <import plugin="org.junit"/>
-  </requires>
-
-  <runtime>
-    <library name="saveparticipant3.jar">
-      <export name="*" /> 
-    </library>
-  </runtime>
-</plugin>
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipant3Plugin.java b/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipant3Plugin.java
deleted file mode 100644
index 633ad24..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipant3Plugin.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
- * 
- * Contributors:
- * IBM - Initial API and implementation
- ******************************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant3;
-
-import org.eclipse.core.resources.ISaveContext;
-import org.eclipse.core.runtime.*;
-/**
- * This plugin is intended to the .safetable of config files.
- */
-public class SaveParticipant3Plugin extends SaveParticipantPlugin {
-	protected boolean shouldFail = false;
-	protected static final String file1 = "file_1";
-public SaveParticipant3Plugin(IPluginDescriptor descriptor) {
-	super(descriptor);
-}
-protected IPath getFilePath(String name) {
-	return getStateLocation().append(name);
-}
-protected IPath getRealPath(String name, int saveNumber) {
-	return getFilePath(name + "." + saveNumber);
-}
-public void prepareToSave(ISaveContext context) throws CoreException {
-	resetSaveLifecycleLog();
-	context.needSaveNumber();
-	IPath file = getFilePath(file1);
-	if (context.lookup(file) != null) {
-		validate(context);
-		shouldFail = true;
-		return;
-	}
-	IPath realPath = getRealPath(file1, context.getSaveNumber());
-	context.map(file, realPath);
-}
-public void rollback(ISaveContext context) {
-}
-public void saving(ISaveContext context) throws CoreException {
-	if (shouldFail)
-		throw new CoreException(new Status(0, getDescriptor().getUniqueIdentifier(), 0, "fake failure", null));
-}
-protected void validate(ISaveContext context) {
-	IPath file = getFilePath(file1);
-	IPath realPath = getRealPath(file1, context.getPreviousSaveNumber());
-	IPath value = context.lookup(file);
-	if (value != null && value.equals(realPath))
-		return;
-	String message = "Name of configuration file is different than expected.";
-	saveLifecycleLog.add(new Status(IStatus.ERROR, getDescriptor().getUniqueIdentifier(), 111, message, null));
-}
-}
diff --git a/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipantPlugin.java b/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipantPlugin.java
deleted file mode 100644
index 6550b37..0000000
--- a/tests/org.eclipse.core.tests.resources.saveparticipant3/src/org/eclipse/core/tests/resources/saveparticipant3/SaveParticipantPlugin.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.core.tests.resources.saveparticipant3;
-
-import java.io.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.tests.resources.ResourceDeltaVerifier;
-/**
- * This plugin was designed to test the save facility provided by the ResourcesPlugin.
- * So, it does not act by itself. Another plugin (like a test) needs to call its methods in order
- * to something happen (like add it as a save participant, provide the expected values and so on...).
- */
-public class SaveParticipantPlugin extends Plugin implements ISaveParticipant {
-	/** expected values */
-	private ResourceDeltaVerifier deltaVerifier;
-	private int expectedPreviousSaveNumber;
-	private int saveKind;
-
-	/** lifecycle log */
-	protected MultiStatus saveLifecycleLog;
-
-	/** constants */
-	private static final String SAVE_NUMBER_LOCATION = "saveNumber";
-public SaveParticipantPlugin(IPluginDescriptor descriptor) {
-	super(descriptor);
-	deltaVerifier = new ResourceDeltaVerifier();
-}
-public void deregisterAsSaveParticipant() {
-	getWorkspace().removeSaveParticipant(this);
-}
-public void doneSaving(ISaveContext context) {
-	try {
-		writeExpectedSaveNumber(context.getSaveNumber());
-	} catch (Exception e) {
-		e.printStackTrace(System.out);
-	}
-}
-/**
- * Used to set the expected delta from the saved id.
- */ 
-public ResourceDeltaVerifier getDeltaVerifier() {
-	return deltaVerifier;
-}
-private String getMessage(int expectedPreviousSaveNumber, int previousSaveNumber) {
-	StringBuffer message = new StringBuffer();
-	message.append("Expected previous saved id was: ");
-	message.append(expectedPreviousSaveNumber);
-	message.append("\nPrevious saved id is: ");
-	message.append(previousSaveNumber);
-	message.append("\n");
-	return message.toString();
-}
-public String getPluginId() {
-	return getDescriptor().getUniqueIdentifier();
-}
-/**
- * @return a status indicating any problem during the save lifecycle of this plugin.
- */
-public IStatus getSaveLifecycleLog() {
-	return saveLifecycleLog;
-}
-private IWorkspace getWorkspace() {
-	return ResourcesPlugin.getWorkspace();
-}
-public void prepareToSave(ISaveContext context) throws CoreException {
-	resetSaveLifecycleLog();
-	IStatus status = validate(context);
-	if (!status.isOK())
-		saveLifecycleLog.addAll(status);
-	context.needDelta();
-	context.needSaveNumber();
-}
-/**
- * We do not care about deltas, only saved id.
- */
-private void readExpectedSavedNumber() {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	try {
-		DataInputStream input = new DataInputStream(new FileInputStream(location.toOSString()));
-		try {
-			expectedPreviousSaveNumber = input.readInt();
-		} finally {
-			input.close();
-		}
-	} catch (IOException e) {
-		expectedPreviousSaveNumber = 0;
-	}
-}
-/**
- * @return a status indicating if the ISavedState is the expected one or not.
- */
-public IStatus registerAsSaveParticipant() throws CoreException {
-	ISavedState state = getWorkspace().addSaveParticipant(this, this);
-	readExpectedSavedNumber();
-	return validate(state);
-}
-protected void resetSaveLifecycleLog() {
-	String message = "save lifecycle log for SaveParticipantPlugin";
-	saveLifecycleLog = new MultiStatus(getPluginId(), Status.OK, message, null);
-}
-public void rollback(ISaveContext context) {
-}
-public void saving(ISaveContext context) throws CoreException {
-}
-public void setExpectedSaveKind(int saveKind) {
-	this.saveKind = saveKind;
-}
-private IStatus validate(ISaveContext context) {
-	// previous saved id
-	if (context.getPreviousSaveNumber() != 0 || expectedPreviousSaveNumber != 0) {
-		try {
-			// Test if id is different than expected. Also, catch NullPointerException
-			// in cases we do not expect any of the ids to be null.
-			if (context.getPreviousSaveNumber() != expectedPreviousSaveNumber) {
-				String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-				return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-			}
-		} catch (NullPointerException e) {
-			String message = getMessage(expectedPreviousSaveNumber, context.getPreviousSaveNumber());
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-		}
-	}
-	// save kind
-	if (context.getKind() != saveKind) {
-		String message = "Save kind was different than expected.";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-private IStatus validate(ISavedState state) {
-	if (state == null && expectedPreviousSaveNumber == 0)
-		return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-	try {
-		// Test if id or delta are different than expected. Also, catch NullPointerException
-		// in cases we do not expect any of the states to be null.
-		state.processResourceChangeEvents(deltaVerifier);
-		if (state.getSaveNumber() != expectedPreviousSaveNumber) {
-			String message = "saved id is different than expected";
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-		if (!deltaVerifier.isDeltaValid()) {
-			String message = "delta is different than expected\n";
-			message = message + deltaVerifier.getMessage();
-			return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, null);
-		}
-	} catch (NullPointerException e) {
-		String message = "ISavedState is different than expected";
-		return new Status(Status.ERROR, getPluginId(), Status.ERROR, message, e);
-	}
-	return new Status(Status.OK, getPluginId(), Status.OK, "OK", null);
-}
-/**
- * We do not care about deltas, only save number.
- */
-private void writeExpectedSaveNumber(int saveNumber) throws IOException {
-	IPath location = getStateLocation().append(SAVE_NUMBER_LOCATION);
-	DataOutputStream output = new DataOutputStream(new FileOutputStream(location.toOSString()));
-	try {
-		output.writeInt(saveNumber);
-	} finally {
-		output.close();
-	}
-}
-}