This commit was manufactured by cvs2svn to create tag
'Root_R1_5_maintenance'.
diff --git a/docs/org.eclipse.wst.validation.infopop/.cvsignore b/docs/org.eclipse.wst.validation.infopop/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/docs/org.eclipse.wst.validation.infopop/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/docs/org.eclipse.wst.validation.infopop/.project b/docs/org.eclipse.wst.validation.infopop/.project
deleted file mode 100644
index 28f5b4f..0000000
--- a/docs/org.eclipse.wst.validation.infopop/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.validation.infopop</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<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.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF b/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF
deleted file mode 100644
index 44e4e45..0000000
--- a/docs/org.eclipse.wst.validation.infopop/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.wst.validation.infopop; singleton:=true
-Bundle-Version: 1.0.201.qualifier
-Bundle-Localization: plugin
-Bundle-Vendor: %Plugin.providerName
-Require-Bundle: org.eclipse.help;bundle-version="[3.2.0,3.3.0)"
diff --git a/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml b/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml
deleted file mode 100644
index 9a8ccfa..0000000
--- a/docs/org.eclipse.wst.validation.infopop/ValidationPrefs_HelpContexts.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS type="org.eclipse.help.contexts"?>
-
-<contexts>
-	<!-- Eclipse Validation preferences -->
-<context id="jvgp0000">
-<description>The validation preferences page allows you to view or change the default validation settings for all workbench projects. A validator is a tool that checks that resources conform to a specification, DTD, or some other set of rules.
-
-Each validator can apply to certain types of files, certain project natures, and certain project facets. When a validator applies to a project facet or nature, the workbench uses that validator only on projects that have that facet or nature. Likewise, most validators apply only to certain types of files, so the workbench uses those validators only on those types of files.
-
-Select the <b>Allow projects to override these preference settings</b> check box if you want to allow individual projects to set their own validation preferences. To configure new validation settings for an individual project, select the project in the Navigator view, right-click and select <b>Properties</b>   &gt; <b>Validation</b> .
-
-Select the <b>Suspend all validators</b> check box to prevent validation at the global level. If you select this check box, you can still enable validation at the project level.
-
-Select the <b>Save all modified resources automatically prior to validating</b> check box if you want to save any resources you have modified before the validation begins.
-
-In the list of validators, select the check boxes next to each validator you want to use at the global level. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator by clicking the button in the <b>Settings</b> column. Not all validators have alternate implementations.
-
-</description>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" label="Validating code in enterprise applications"/>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.html" label="Overriding global validation preferences"/>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/rvalerr.html" label="Common validation errors and solutions"/>
-</context>
-
-</contexts>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml b/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml
deleted file mode 100644
index 489af37..0000000
--- a/docs/org.eclipse.wst.validation.infopop/ValidationProjPrefs_HelpContexts.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS type="org.eclipse.help.contexts"?>
-
-<contexts>
-	<!-- Validation settings for project -->
-
-<context id="jvpp0000">
-<description>The project validation page allows you to view or change the validation settings for a project. A validator is a tool that checks that resources conform to a specification, DTD, or some other set of rules.
-
-Each validator can apply to certain types of files, certain project natures, and certain project facets. When a validator applies to a project facet or nature, the workbench uses that validator only on projects that have that facet or nature. Likewise, most validators apply only to certain types of files, so the workbench uses those validators only on those types of files.
-
-Select the <b>Override validation preferences</b> check box if you want to override the default validation preferences set in the workbench Preferences page. If the <b>Override validation preferences</b> check box is not enabled, go to <b>Window</b>   &gt; <b>Preferences</b>   &gt; <b>Validation</b> and select the <b>Allow projects to override these preference settings</b> check box.
-
-Select the <b>Suspend all validators</b> check box to prevent validation for this project.
-
-In the list of validators, select the check boxes next to each validator you want to use for this project. Each validator has a check box to specify whether it is used on manual validation or on build validation. Choose an alternate implementation for a validator by clicking the button in the <b>Settings</b> column. Not all validators have alternate implementations.
-
-</description>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjval.html" label="Validating code in enterprise applications"/>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/tjvalglobalpref.html" label="Overriding global validation preferences"/>
-<topic href="../org.eclipse.jst.j2ee.doc.user/topics/rvalerr.html" label="Common validation errors and solutions"/>
-</context>
-
-</contexts>
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/about.html b/docs/org.eclipse.wst.validation.infopop/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/docs/org.eclipse.wst.validation.infopop/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/docs/org.eclipse.wst.validation.infopop/build.properties b/docs/org.eclipse.wst.validation.infopop/build.properties
deleted file mode 100644
index ac322ed..0000000
--- a/docs/org.eclipse.wst.validation.infopop/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               ValidationPrefs_HelpContexts.xml,\
-               ValidationProjPrefs_HelpContexts.xml,\
-               plugin.properties,\
-               about.html
-src.includes = build.properties
diff --git a/docs/org.eclipse.wst.validation.infopop/plugin.properties b/docs/org.eclipse.wst.validation.infopop/plugin.properties
deleted file mode 100644
index b0c0709..0000000
--- a/docs/org.eclipse.wst.validation.infopop/plugin.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-# NLS_MESSAGEFORMAT_VAR
-# ==============================================================================
-# Translation Instruction: section to be translated
-# ==============================================================================
-Plugin.name = WST validation infopop plug-in
-Plugin.providerName = Eclipse.org
\ No newline at end of file
diff --git a/docs/org.eclipse.wst.validation.infopop/plugin.xml b/docs/org.eclipse.wst.validation.infopop/plugin.xml
deleted file mode 100644
index aaf27bf..0000000
--- a/docs/org.eclipse.wst.validation.infopop/plugin.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.help.contexts">
-    <contexts file="ValidationProjPrefs_HelpContexts.xml" plugin="org.eclipse.wst.validation.ui" />
-	<contexts file="ValidationPrefs_HelpContexts.xml" plugin="org.eclipse.wst.validation.ui" />
-   </extension>
-
-</plugin>
diff --git a/features/org.eclipse.wst.common_core.feature/feature.properties b/features/org.eclipse.wst.common_core.feature/feature.properties
index 6f51274..73beb52 100644
--- a/features/org.eclipse.wst.common_core.feature/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature/feature.properties
@@ -24,7 +24,7 @@
 updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
-description=WST common core functionality.
+description=WST common core functionality
 
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/features/org.eclipse.wst.common_core.feature/feature.xml b/features/org.eclipse.wst.common_core.feature/feature.xml
index 0932a3a..29c2946 100644
--- a/features/org.eclipse.wst.common_core.feature/feature.xml
+++ b/features/org.eclipse.wst.common_core.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.common_core.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -13,7 +13,7 @@
       %copyright
    </copyright>
 
-   <license url="%licenseURL">
+   <license url="license.html">
       %license
    </license>
 
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
index ac52189..4bb9440 100644
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.properties
@@ -15,28 +15,15 @@
 # This file should be translated.
 
 # "featureName" property - name of the feature
-featureName=WST Common Core Developer Resources
+
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
 # "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
+updateSiteName=Eclipse.org update site
 
 # "description" property - description of the feature
-description=Source code zips for WST common core.
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
+description=Source Code Feature
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
 licenseURL=license.html
diff --git a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.xml
index 880429b..6208ed0 100644
--- a/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.common_core.feature/sourceTemplateFeature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.common_core.feature.source"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -13,14 +13,16 @@
       %copyright
    </copyright>
 
-   <license url="%licenseURL">
+   <license url="license.html">
       %license
    </license>
 
    <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
    </url>
 
+
+
    <plugin
          id="org.eclipse.wst.common_core.feature.source"
          download-size="0"
diff --git a/features/org.eclipse.wst.common_sdk.feature/.cvsignore b/features/org.eclipse.wst.common_sdk.feature/.cvsignore
deleted file mode 100644
index 413925b..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.wst.common_sdk.feature_1.0.0.bin.dist.zip
-build.xml
-features
-plugins
diff --git a/features/org.eclipse.wst.common_sdk.feature/.project b/features/org.eclipse.wst.common_sdk.feature/.project
deleted file mode 100644
index fb86250..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common_sdk.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.common_sdk.feature/build.properties b/features/org.eclipse.wst.common_sdk.feature/build.properties
deleted file mode 100644
index 5391fbd..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-generate.feature@org.eclipse.wst.common_ui.feature.source=org.eclipse.wst.common_ui.feature
-bin.includes = feature.xml,\
-               epl-v10.html,\
-               license.html,\
-               eclipse_update_120.jpg,\
-               feature.properties
diff --git a/features/org.eclipse.wst.common_sdk.feature/eclipse_update_120.jpg b/features/org.eclipse.wst.common_sdk.feature/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.common_sdk.feature/epl-v10.html b/features/org.eclipse.wst.common_sdk.feature/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. 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. 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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; 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. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>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. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims 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; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>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.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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 (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) 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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; 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 solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), 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.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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. </span></p>
-
-<p><span style='font-size:10.0pt'>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 publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. 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 version. 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, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>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.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.common_sdk.feature/feature.properties b/features/org.eclipse.wst.common_sdk.feature/feature.properties
deleted file mode 100644
index d7bdfa2..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/feature.properties
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=WST Common Plug-in Developer Resources
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=Source code zips for WST common tools
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-March 17, 2005\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.common_sdk.feature/feature.xml b/features/org.eclipse.wst.common_sdk.feature/feature.xml
deleted file mode 100644
index f94d6f9..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/feature.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.common_sdk.feature"
-      label="%featureName"
-      version="1.6.0.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="license.html">
-      %license
-   </license>
-
-   <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
-   </url>
-
-   <includes
-         id="org.eclipse.wst.common_ui.feature.source"
-         version="0.0.0"/>
-
-</feature>
diff --git a/features/org.eclipse.wst.common_sdk.feature/license.html b/features/org.eclipse.wst.common_sdk.feature/license.html
deleted file mode 100644
index 2347060..0000000
--- a/features/org.eclipse.wst.common_sdk.feature/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). 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 the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
-For purposes of the EPL, "Program" 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 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" 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 "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" 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 "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). 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>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") 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 "license" property of 
-files named "feature.properties". 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 EPL 
-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>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <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>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>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 the Eclipse Foundation 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>
diff --git a/features/org.eclipse.wst.common_ui.feature/feature.properties b/features/org.eclipse.wst.common_ui.feature/feature.properties
index f3e8ae8..6b589f4 100644
--- a/features/org.eclipse.wst.common_ui.feature/feature.properties
+++ b/features/org.eclipse.wst.common_ui.feature/feature.properties
@@ -24,7 +24,7 @@
 updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
 
 # "description" property - description of the feature
-description=WST common UI functionality.
+description=WST common UI functionality
 
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
diff --git a/features/org.eclipse.wst.common_ui.feature/feature.xml b/features/org.eclipse.wst.common_ui.feature/feature.xml
index 33413df..fc1b2d3 100644
--- a/features/org.eclipse.wst.common_ui.feature/feature.xml
+++ b/features/org.eclipse.wst.common_ui.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.wst.common_ui.feature"
       label="%featureName"
-      version="1.6.0.qualifier"
+      version="1.5.0.qualifier"
       provider-name="%providerName">
 
    <description>
@@ -13,7 +13,7 @@
       %copyright
    </copyright>
 
-   <license url="%licenseURL">
+   <license url="license.html">
       %license
    </license>
 
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
index 8423d38..01950e3 100644
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.properties
@@ -15,29 +15,16 @@
 # This file should be translated.
 
 # "featureName" property - name of the feature
-featureName=WST Common UI Developer Resources
+featureName=Eclipse JDT Plug-in Developer Resources
 
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
 
 # "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
+updateSiteName=Eclipse.org update site
 
 # "description" property - description of the feature
-description=Source code zips for WST Common UI.
-
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2006 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
+description=API documentation and source code zips for Eclipse Java development tools.
 
 # "licenseURL" property - URL of the "Feature License"
 # do not translate value - just change to point to a locale-specific HTML page
diff --git a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.xml b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.xml
index 4f1a618..2e2eeca 100644
--- a/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.xml
+++ b/features/org.eclipse.wst.common_ui.feature/sourceTemplateFeature/feature.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.eclipse.wst.common_ui.feature.source"
-      label="%featureName"
-      version="1.6.0.qualifier"
-      provider-name="%providerName">
+      label="WST Common UI Feature Source"
+      version="1.5.0.qualifier"
+      provider-name="Eclipse.org">
 
    <description>
       %description
@@ -13,20 +13,23 @@
       %copyright
    </copyright>
 
-   <license url="%licenseURL">
+   <license url="license.html">
       %license
    </license>
-
+   
    <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/webtools/updates/"/>
+      <update label="Web Tools Platform (WTP) Updates" url="http://download.eclipse.org/webtools/updates/"/>
    </url>
 
+
    <includes
          id="org.eclipse.wst.common_core.feature"
          version="0.0.0"/>
 
    <includes
          id="org.eclipse.wst.common_core.feature.source"
+         download-size="0"
+         install-size="0"
          version="0.0.0"/>
 
    <plugin
diff --git a/plugins/org.eclipse.jem.util/.classpath b/plugins/org.eclipse.jem.util/.classpath
deleted file mode 100644
index d4d58af..0000000
--- a/plugins/org.eclipse.jem.util/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="jemutil"/>
-	<classpathentry kind="src" path="property_files"/>
-	<classpathentry kind="src" path="jemutil-nonworkbnech"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry sourcepath="org.eclipse.perfmsr.core.stub/perfmsr.jar" kind="lib" path="org.eclipse.perfmsr.core.stub/perfmsr.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jem.util/.cvsignore b/plugins/org.eclipse.jem.util/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/plugins/org.eclipse.jem.util/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/plugins/org.eclipse.jem.util/.options b/plugins/org.eclipse.jem.util/.options
deleted file mode 100644
index 0565417..0000000
--- a/plugins/org.eclipse.jem.util/.options
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.jem.util/debug/logtrace=false
-org.eclipse.jem.util/debug/logtracefile=false
-org.eclipse.jem.util/debug/loglevel=WARNING
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/.project b/plugins/org.eclipse.jem.util/.project
deleted file mode 100644
index e0e4120..0000000
--- a/plugins/org.eclipse.jem.util/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jem.util</name>
-	<comment></comment>
-	<projects>
-	</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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d78073f..0000000
--- a/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,289 +0,0 @@
-#Tue Feb 21 10:09:19 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=150
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=150
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
diff --git a/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 6c8e1bc..0000000
--- a/plugins/org.eclipse.jem.util/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Tue Feb 21 10:09:19 EST 2006
-eclipse.preferences.version=1
-formatter_profile=_jve
-formatter_settings_version=10
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;org.eclipse.wtp;org.eclipse.jem;org.eclipse.ve.internal.cdm;org.eclipse.ve.internal.cde;org.eclipse.ve.internal.jcm;org.eclipse.ve.internal.java;org.eclipse.ve;com;
-org.eclipse.jdt.ui.ondemandthreshold=3
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
diff --git a/plugins/org.eclipse.jem.util/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.jem.util/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index fb46b28..0000000
--- a/plugins/org.eclipse.jem.util/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri May 13 10:10:04 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=2
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=2
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=2
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF b/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF
deleted file mode 100644
index 69586e5..0000000
--- a/plugins/org.eclipse.jem.util/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jem.util; singleton:=true
-Bundle-Version: 1.2.1.qualifier
-Bundle-Activator: org.eclipse.jem.util.plugin.JEMUtilPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jem.internal.util.emf.workbench;x-friends:="org.eclipse.jem.beaninfo",
- org.eclipse.jem.internal.util.emf.workbench.nature;x-internal:=true,
- org.eclipse.jem.internal.util.emf.workbench.nls;x-internal:=true,
- org.eclipse.jem.util,
- org.eclipse.jem.util.emf.workbench,
- org.eclipse.jem.util.emf.workbench.nature,
- org.eclipse.jem.util.logger,
- org.eclipse.jem.util.logger.proxy,
- org.eclipse.jem.util.logger.proxyrender,
- org.eclipse.jem.util.plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.perfmsr.core;resolution:=optional,
- com.ibm.icu;bundle-version="[3.4.4.1,4.0.0)"
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.jem.util/PERFMSR_README.txt b/plugins/org.eclipse.jem.util/PERFMSR_README.txt
deleted file mode 100644
index ea51258..0000000
--- a/plugins/org.eclipse.jem.util/PERFMSR_README.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-org.eclipse.perfmsr.core code can be found in the perfmsr.jar loaded as binary in this
-project. Since this is optional, we needed to be able to compile without the true
-plugin being available. So we created the stub jar containing just what we needed.
-
-If there is a need to change anything in the stub jar, you will need to checkout
-the folder org.eclipse.jem.util/org.eclipse.perfmsr.core.stub. This will then
-be a separate project. You can then make the changes there, and then following the
-README in that project to create and commit the changes. 
-
-The jar is in this project's classpath, but it is not exported and is not in
-the plugin.xml or build.properties. This means it will be available for compilation
-but it won't show up in the runtime workbench.
\ No newline at end of file
diff --git "a/plugins/org.eclipse.jem.util/READ_ME_BEFORE_CHANGING_MANIFEST\041\041\041" "b/plugins/org.eclipse.jem.util/READ_ME_BEFORE_CHANGING_MANIFEST\041\041\041"
deleted file mode 100644
index 718e94a..0000000
--- "a/plugins/org.eclipse.jem.util/READ_ME_BEFORE_CHANGING_MANIFEST\041\041\041"
+++ /dev/null
@@ -1,8 +0,0 @@
-Do not include a new dependency plugin to the MANIFEST for this plugind!!!
-
-The reason for this is that this plugin is also executed outside of Eclipse framework, such IBM Websphere Application Server (c) IBM. We cannot add
-new dependencies to the plugin because the current set is considered to be API. Adding a new set without consulting those users would break
-them.
-
-The external API is anything in the jemutil-nonworkbench folder. If it is only for a class in the other source folder(s) it may be OK since they would not be 
-using that code. But it would be best to consult with them first.
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/about.html b/plugins/org.eclipse.jem.util/about.html
deleted file mode 100644
index afceed0..0000000
--- a/plugins/org.eclipse.jem.util/about.html
+++ /dev/null
@@ -1,25 +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>May 2, 2006</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
-at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
-being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
-apply to your use of any object code in the Content.  Check the Redistributor's license that was 
-provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any source code in the Content
-and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/build.properties b/plugins/org.eclipse.jem.util/build.properties
deleted file mode 100644
index b40afd0..0000000
--- a/plugins/org.eclipse.jem.util/build.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               about.html,\
-               plugin.properties,\
-               META-INF/,\
-               .
-src.includes = schema/,\
-               about.html
-output.. = bin/
-source.. = jemutil/,\
-           property_files/,\
-           jemutil-nonworkbnech/
-jars.compile.order = .
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java
deleted file mode 100644
index d44372b..0000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/LogEntry.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: LogEntry.java,v $
- *  $Revision: 1.5 $  $Date: 2006/05/17 20:13:45 $ 
- */
-package org.eclipse.jem.util.logger;
-
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
-
-/**
- * This class should be used when logging information which should be grouped together. Instead of creating a new instance of this class every time it
- * is needed, for performance reasons, create an instance and reuse it.
- * <p>
- * Currently the only fields that are logged are the {@link #getText()} and {@link #getTargetException()}.
- * 
- * @since 1.0.0
- */
-public class LogEntry {
-
-	private int _executionMap = 0;
-
-	private Throwable _caughtException = null;
-
-	private String _propertiesFileName = null;
-
-	private String localeOfOrigin = null;
-
-	private String sourceIdentifier;
-
-	private String elapsedTime;
-
-	private String text;
-
-	private String messageTypeIdentifier;
-
-	/**
-	 * The file name parameter must be a name which can be used by ResourceBundle to load the string from the .properties file. The parameter must not
-	 * be null or the empty string.
-	 * 
-	 * @param propertiesFileName
-	 * 
-	 * @since 1.0.0
-	 */
-	public LogEntry(String propertiesFileName) {
-		setPropertiesFileName(propertiesFileName);
-	}
-
-	/**
-	 * Default Constructor
-	 */
-	public LogEntry() {
-	}
-
-	/**
-	 * Get execution map
-	 * 
-	 * @return execution map
-	 * 
-	 * @since 1.0.0
-	 */
-	public int getExecutionMap() {
-		return _executionMap;
-	}
-
-	/**
-	 * Get the properties file name
-	 * 
-	 * @return properties file name or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getPropertiesFileName() {
-		return _propertiesFileName;
-	}
-
-	/**
-	 * Get target exception
-	 * 
-	 * @return target exception or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public Throwable getTargetException() {
-		return _caughtException;
-	}
-
-	/**
-	 * Get locale of origin
-	 * 
-	 * @return locale of origin or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getLocaleOfOrigin() {
-		return localeOfOrigin;
-	}
-
-	/**
-	 * Get source identifier.
-	 * 
-	 * @return source identifier or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getSourceidentifier() {
-		return sourceIdentifier;
-	}
-
-	/**
-	 * Get elapsed time
-	 * 
-	 * @return elapsed time
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getElapsedTime() {
-		return elapsedTime;
-	}
-
-	/**
-	 * Get the message type identifier
-	 * 
-	 * @return message type identifier or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getMessageTypeIdentifier() {
-		return messageTypeIdentifier;
-	}
-
-	/**
-	 * Set execution map
-	 * 
-	 * @param map
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setExecutionMap(int map) {
-		_executionMap = map;
-	}
-
-	/**
-	 * Set properties file name
-	 * 
-	 * @param fName
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setPropertiesFileName(String fName) {
-		_propertiesFileName = fName;
-	}
-
-	/**
-	 * Set target exception
-	 * 
-	 * @param exc
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setTargetException(Throwable exc) {
-		_caughtException = exc;
-	}
-
-	/**
-	 * Append stacktrace of current stack (at the time of call to this method) to the text buffer.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public void appendStackTrace() {
-		// Grab the stack trace from the Thread ...
-		ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
-		PrintWriter printWriter = new PrintWriter(byteOutput);
-		// Can't call Thread.dumpStack() because it doesn't take a writer as input.
-		// Copy its mechanism instead.
-		new Exception("Stack trace").printStackTrace(printWriter); //$NON-NLS-1$
-		printWriter.flush();
-
-		// and update the text to the LogEntry's text.
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(getText());
-		buffer.append("\n"); //$NON-NLS-1$
-		buffer.append(byteOutput.toString());
-		setText(buffer.toString());
-	}
-
-	/**
-	 * Get the text.
-	 * 
-	 * @return text or or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Set the text
-	 * 
-	 * @param string
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setText(String string) {
-		text = string;
-	}
-
-	/**
-	 * Set every entry to the default value except the properties file name.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public void reset() {
-		setExecutionMap(0);
-		setTargetException(null);
-		localeOfOrigin = null;
-		sourceIdentifier = null;
-		elapsedTime = null;
-		setText(null);
-	}
-
-	/**
-	 * Set locale of origin.
-	 * 
-	 * @param origin
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setLocaleOfOrigin(String origin) {
-		localeOfOrigin = origin;
-	}
-
-	/**
-	 * Set source id.
-	 * 
-	 * @param id
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setSourceID(String id) {
-		sourceIdentifier = id;
-	}
-
-	/**
-	 * Set elapsed time.
-	 * 
-	 * @param time
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setElapsedTime(long time) {
-		elapsedTime = String.valueOf(time);
-	}
-
-	/**
-	 * Set source identifier.
-	 * 
-	 * @param string
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setSourceIdentifier(String string) {
-		setSourceID(string);
-	}
-
-	/**
-	 * Set message type identifier.
-	 * 
-	 * @param string
-	 * 
-	 * @since 1.0.0
-	 * @deprecated Use {@link #setText(String)} instead and calling it with the result of {@link java.text.MessageFormat#format(java.lang.String, java.lang.Object[])}
-	 */
-	public void setMessageTypeIdentifier(String string) {
-		messageTypeIdentifier = string;
-	}
-
-	/**
-	 * Set message type id. Same as <code>setMessageTypeIdentifier.</code>
-	 * @param string
-	 * 
-	 * @since 1.0.0
-	 * @deprecated Use {@link #setText(String)} instead and calling it with the result of {@link java.text.MessageFormat#format(java.lang.String, java.lang.Object[])}
-	 */
-	public void setMessageTypeID(String string) {
-		setMessageTypeIdentifier(string);
-	}
-
-	/**
-	 * Set tokens. (Currently this is ignored).
-	 * 
-	 * @param strings
-	 * 
-	 * @since 1.0.0
-	 * @deprecated Use {@link #setText(String)} instead and calling it with the result of {@link java.text.MessageFormat#format(java.lang.String, java.lang.Object[])}
-	 */
-	public void setTokens(String[] strings) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
-		PrintWriter printWriter = new PrintWriter(byteOutput);
-		if (text != null)
-			printWriter.println(text);
-		if (_caughtException != null) {
-			_caughtException.printStackTrace(printWriter);
-		}
-		printWriter.flush();
-		return byteOutput.toString();
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java
deleted file mode 100644
index 3ba7c4d..0000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ILogRenderer.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:05:54 $ 
- */
-package org.eclipse.jem.util.logger.proxy;
-
-/**
- * Basic log renderer interface. It is replaced by the extension <code>ILogRenderer2.</code>
- * 
- * @since 1.0.0
- */
-public interface ILogRenderer {
-
-	/**
-	 * Logged to console.
-	 */
-	final public static String CONSOLE_DESCRIPTION = "console"; //$NON-NLS-1$
-
-	/**
-	 * Logged to workbench.
-	 */
-	final public static String WORKBENCH_DESCRIPTION = "workbench log"; //$NON-NLS-1$
-
-	/**
-	 * Not logged.
-	 */
-	final public static String NOLOG_DESCRIPTION = ""; //$NON-NLS-1$
-
-	/**
-	 * Log levels. These are deprecated, use <code>java.util.logging.Level</code> codes instead.
-	 */
-	final public static int LOG_ERROR = 0;
-
-	final public static int LOG_TRACE = 1;
-
-	final public static int LOG_WARNING = 2;
-
-	final public static int LOG_INFO = 3;
-
-	final public static String DefaultPluginID = "org.eclipse.jem.util"; //$NON-NLS-1$
-
-	/**
-	 * Log the string at the specified type.
-	 * 
-	 * @param msg
-	 * @param type
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(String msg, int type);
-
-	/**
-	 * Start or stop the tracing.
-	 * 
-	 * @param Flag
-	 *            <code>true</code> to start the tracing.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setTraceMode(boolean Flag);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java
deleted file mode 100644
index 69ee144..0000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/ILogRenderer2.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ILogRenderer2.java,v $
- *  $Revision: 1.4 $  $Date: 2005/08/24 21:10:34 $ 
- */
-package org.eclipse.jem.util.logger.proxy;
-
-import java.util.logging.Level;
- 
-/**
- * Log renderer that provides more function. Basically it can handle
- * the logging of specific types in a different manner than the default
- * conversion to string supplied by Logger.
- * 
- * It also uses the Level classes from java.util.logging as the logging levels.
- * 
- * @since 1.0.0
- */
-public interface ILogRenderer2 extends ILogRenderer {
-	
-	/**
-	 * When Logger.setLevel(DEFAULT): restore to what the default level was.
-	 * When log(...,DEFAULT): Log at the default level for the type of object.
-	 */
-	static final Level DEFAULT = new Logger.LocalLevel("DEFAULT", Integer.MAX_VALUE-1); //$NON-NLS-1$
-	
-	/**
-	 * When log(...,TRACE) : Log only when in trace mode.
-	 * Don't use in Logger.setLevel(). Has no meaning in that case.
-	 */
-	static final Level TRACE = new Logger.LocalLevel("TRACE", Integer.MAX_VALUE-2);	 //$NON-NLS-1$
-
-	/**
-	 * Log the throwable at the given level (if DEFAULT, use default level for a throwable).
-	 * 
-	 * @param t
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(Throwable t, Level level);
-	
-	/**
-	 * Log the object at the given level (if DEFAULT, use default level for an object).
-	 * 
-	 * @param o
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(Object o, Level level);
-	
-	/**
-	 * Log the boolean at the given level (if DEFAULT, use default level for a boolean).
-	 * 
-	 * @param b
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(boolean b, Level level);	
-
-	/**
-	 * Log the char at the given level (if DEFAULT, use default level for a char).
-	 * 
-	 * @param c
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(char c, Level level);	
-	
-	/**
-	 * Log the byte at the given level (if DEFAULT, use default level for a byte).
-	 * 
-	 * @param b
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(byte b, Level level);
-	
-	/**
-	 * Log the short at the given level (if DEFAULT, use default level for a short).
-	 * 
-	 * @param s
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(short s, Level level);
-	
-	/**
-	 * Log the int at the given level (if DEFAULT, use default level for an int).
-	 * 
-	 * @param i
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(int i, Level level);
-
-	/**
-	 * Log the long at the given level (if DEFAULT, use default level for a long).
-	 * 
-	 * @param l
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(long l, Level level);
-
-	/**
-	 * Log the float at the given level (if DEFAULT, use default level for a float).
-	 * 
-	 * @param f
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(float f, Level level);
-
-	/**
-	 * Log the double at the given level (if DEFAULT, use default level for a double).
-	 * 
-	 * @param d
-	 * @param level
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	String log(double d, Level level);
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java
deleted file mode 100644
index 6f0f828..0000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/JDKConsoleRenderer.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: JDKConsoleRenderer.java,v $
- *  $Revision: 1.3 $  $Date: 2005/08/24 21:10:34 $ 
- */
-package org.eclipse.jem.util.logger.proxy;
-
-import java.util.logging.Level;
-
-/**
- * Default log renderer to use when not running under Eclipse. It logs to sysout and syserr.
- * 
- * @since 1.1.0
- */
-
-public class JDKConsoleRenderer implements ILogRenderer2 {
-
-	private boolean fTraceMode = false; // will we actually punch trace messaged or not
-
-	private boolean fSettingTrace = false;
-
-	private Logger fMyLogger = null;
-
-	/**
-	 * Constructer taking a logger.
-	 * 
-	 * @param logger
-	 * 
-	 * @since 1.1.0
-	 */
-	public JDKConsoleRenderer(Logger logger) {
-		super();
-		fMyLogger = logger;
-		fTraceMode = fMyLogger.getTraceMode();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer#log(java.lang.String, int)
-	 */
-	public String log(String msg, int type) {
-
-		if (type == ILogRenderer.LOG_TRACE && !fTraceMode)
-			return null;
-
-		if (type == ILogRenderer.LOG_ERROR)
-			System.err.println(msg);
-		else
-			System.out.println(msg);
-		return ILogRenderer.CONSOLE_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer#setTraceMode(boolean)
-	 */
-	public void setTraceMode(boolean flag) {
-
-		if (fSettingTrace)
-			return;
-		fSettingTrace = true;
-		fTraceMode = flag;
-		fMyLogger.setTraceMode(flag);
-		fSettingTrace = false;
-	}
-
-	/**
-	 * Log the string at the given level.
-	 * 
-	 * @param msg
-	 * @param level
-	 * @return <code>CONSOLE_DESCRIPTION</code>
-	 * 
-	 * @since 1.1.0
-	 */
-	protected String log(String msg, Level level) {
-		if (level == Level.SEVERE)
-			System.err.println(msg);
-		else
-			System.out.println(msg);
-		return ILogRenderer.CONSOLE_DESCRIPTION;
-	}
-
-	/**
-	 * Answer if logging at the given level
-	 * 
-	 * @param logLevel
-	 * @return <code>true</code> if logging at the given level.
-	 * 
-	 * @since 1.1.0
-	 */
-	protected boolean isLogging(Level logLevel) {
-		return fTraceMode || fMyLogger.isLoggingLevel(logLevel);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(boolean, java.util.logging.Level)
-	 */
-	public String log(boolean b, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(b), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(byte, java.util.logging.Level)
-	 */
-	public String log(byte b, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(b), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(char, java.util.logging.Level)
-	 */
-	public String log(char c, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(c), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(double, java.util.logging.Level)
-	 */
-	public String log(double d, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(d), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(float, java.util.logging.Level)
-	 */
-	public String log(float f, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(f), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(int, java.util.logging.Level)
-	 */
-	public String log(int i, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(i), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(long, java.util.logging.Level)
-	 */
-	public String log(long l, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(l), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(java.lang.Object, java.util.logging.Level)
-	 */
-	public String log(Object o, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(o), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(short, java.util.logging.Level)
-	 */
-	public String log(short s, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(String.valueOf(s), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(java.lang.Throwable, java.util.logging.Level)
-	 */
-	public String log(Throwable t, Level level) {
-		if (level == DEFAULT)
-			level = Level.SEVERE;
-		if (isLogging(level))
-			return log(fMyLogger.getGenericMsg(fMyLogger.exceptionToString(t), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java b/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
deleted file mode 100644
index 24e891a..0000000
--- a/plugins/org.eclipse.jem.util/jemutil-nonworkbnech/org/eclipse/jem/util/logger/proxy/Logger.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: Logger.java,v $
- *  $Revision: 1.8 $  $Date: 2006/05/17 20:13:45 $ 
- */
-package org.eclipse.jem.util.logger.proxy;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.*;
-import java.util.logging.Level;
-
-/**
- * This is a base, UI independent logger.   It will
- * construct a consistent msg. body, and call an enfironment specific ILogRenderer.
- * By default, this logger will use a console based ILogRenderer,
- * and a J2EE Plugin identification.
- * 
- * <p>
- * When running outside of Eclipse, the trace and logging level come from the system properties
- * <ul>
- * 		<li>"debug" (="true") - The default is <code>false</code>. 
- * 		<li>"logLevel" (="level" where "level" is a level string, e.g. SEVERE, WARNING, etc. from the <code>java.util.logging.Level</code> class).
- * 			The default is "WARNING".
- * </ul>
- * 
- * 
- * @since 1.0.0
- */
-public class Logger {
-	
-	// This is used by ILogRenderer2 to define the default level.
-	static class LocalLevel extends Level {
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 * 
-		 * @since 1.1.0
-		 */
-		private static final long serialVersionUID = -6273357074767854883L;
-
-		public LocalLevel(String name, int level) {
-			super(name, level);
-		}
-	}	
-	
-	private boolean fTraceMode = false; // will we actually punch trace messaged or not              
-	private String fPluginID;
-	private ILogRenderer fRenderer = null;
-	private ILogRenderer2 renderer2 = null;
-	public String fLineSeperator;
-	private Level level;
-	private Level defaultLevel = Level.SEVERE;	// By default only severe or greater are logged.
-	private String logFileName;
-	private final static String DefaultLoggerPlugin = ILogRenderer.DefaultPluginID;
-	static private Hashtable Loggers = new Hashtable(); // Keep track of all the Loggers
-	final protected static String[] LogMark = { "*** ERROR *** ", //$NON-NLS-1$
-		"[Trace] ", //$NON-NLS-1$
-		"+++ Warning +++ ", //$NON-NLS-1$
-		"Info " }; //$NON-NLS-1$
-
-	final protected static String Filler = "    "; // Use this to indent msg. body //$NON-NLS-1$
-	
-	protected Logger() {
-		this(ILogRenderer.DefaultPluginID);
-	}
-	
-	protected Logger(String pluginID) {
-		fPluginID = pluginID;
-		setRenderer(new JDKConsoleRenderer(this));	// Set up default to this. Someone can change it later.
-	}
-
-	/**
-	 * Return the stacktrace as a print formatted string.
-	 * @param e
-	 * @return the stacktrace as a string.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String exceptionToString(Throwable e) {
-		StringWriter stringWriter = new StringWriter();
-		e.printStackTrace(new PrintWriter(stringWriter));
-		return stringWriter.toString();
-	}
-	
-	/**
-	 * Get the system default logger. This is used for clients that don't know if they
-	 * are running in Eclipse or outside of it. This way they have a common logger format
-	 * which switch correctly.
-	 * @return default logger.
-	 * 
-	 * @since 1.0.0
-	 */
-	static public Logger getLogger() {
-		Logger defaultLogger = (Logger) Loggers.get(DefaultLoggerPlugin);
-		if (defaultLogger == null) {
-			defaultLogger = new Logger();
-			defaultLogger.init();
-			Loggers.put(DefaultLoggerPlugin, defaultLogger);
-		}
-		return defaultLogger;
-	}
-	
-	/**
-	 * Get the logger for a specific plugin.
-	 * @param pluginId
-	 * @return logger for a specific pluggin.
-	 * 
-	 * @since 1.0.0
-	 */
-	static public Logger getLogger(String pluginId) {
-		if (pluginId == null)
-			return Logger.getLogger();
-		Logger Logger = (Logger) Loggers.get(pluginId);
-		if (Logger == null) {
-			Logger = new Logger(pluginId);
-			Logger.init();
-			Loggers.put(pluginId, Logger);
-		}
-		return Logger;
-	}
-	
-	/**
-	 * Used by subclass to get a logger if it exists, but not create one.
-	 * @param pluginId
-	 * @return logger.
-	 * 
-	 * @since 1.0.0
-	 */
-	static protected Logger getLoggerIfExists(String pluginId) {
-		if (pluginId == null)
-			return Logger.getLogger();
-		else
-			return (Logger) Loggers.get(pluginId);
-	}
-
-	/**
-	 * Get the plugin id for this logger.
-	 * @return pluginid
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getPluginID() {
-		return fPluginID;
-	}
-	
-	/**
-	 * Get the trace mode for this logger
-	 * @return <code>true</code> if tracing is going on.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean getTraceMode() {
-		return fTraceMode;
-	}
-	
-	/*
-	 * Indent the Msg. Body to make it easier to read the log
-	 */
-	private void indentMsg(String msg, StringBuffer logMsg) {
-		// Line seperator is different on different platform, unix = \n, windows \r\n and mac \r
-		String sep = fLineSeperator;
-		if (msg.indexOf("\r\n") != -1) //$NON-NLS-1$
-			sep = "\r\n"; //$NON-NLS-1$
-		else if (msg.indexOf("\n") != -1) //$NON-NLS-1$
-			sep = "\n"; //$NON-NLS-1$
-		else if (msg.indexOf("\r") != -1) //$NON-NLS-1$
-			sep = "\r"; //$NON-NLS-1$
-		StringTokenizer tokenizer = new StringTokenizer(msg, sep);
-		boolean first = true;
-		while (tokenizer.hasMoreTokens()) {
-			if (first) {
-				first = false;
-				logMsg.append(Filler + tokenizer.nextToken());
-			} else
-				logMsg.append(fLineSeperator + Filler + tokenizer.nextToken());
-		}
-	}
-	/*
-	 * If Eclipse is started with the -XDebug or -debug turn traces on for this Logger
-	 * Creation date: (8/23/2001 7:37:04 PM)
-	 */
-	private void init() {
-		if (System.getProperty("debug") != null) //$NON-NLS-1$
-			fTraceMode = true;
-		level = defaultLevel = Level.parse(System.getProperty("logLevel", Level.WARNING.getName())); //$NON-NLS-1$
-		
-		try {
-			fLineSeperator = System.getProperty("line.separator"); // Diff on Win/Unix/Mac //$NON-NLS-1$
-		} catch (Throwable e) {
-			fLineSeperator = "\n"; //$NON-NLS-1$
-		}
-	}
-	/*
-	 * Generic log.
-	 * Creation date: (8/24/2001 1:55:34 PM)
-	 * @return java.lang.String
-	 * @param msg java.lang.String
-	 * @param type int
-	 */
-	private String logAny(String msg, int type) {
-		StringBuffer logMsg = new StringBuffer();
-		logMsg.append(fLineSeperator);
-		logMsg.append(LogMark[type]);
-		return punchLog(logRest(msg, logMsg), type);
-	}
-	
-	/**
-	 * This is to be used by renderers that want to put a msg out
-	 * in a generic format. This just returns the string that
-	 * should be logged. It puts things like headers on it.
-	 * 
-	 * @param msg
-	 * @param aLevel
-	 * @return The generic message for the string and level.
-	 * 
-	 * @since 1.0.0
-	 */
-	public String getGenericMsg(String msg, Level aLevel) {
-		StringBuffer genMsg = new StringBuffer(msg.length()+16);
-		genMsg.append(fLineSeperator);
-		genMsg.append(getLevelHeader(aLevel));
-		genMsg.append(": "); //$NON-NLS-1$
-		genMsg.append(new Date());
-		indentMsg(msg, genMsg);
-		return genMsg.toString();
-	}
-	
-	private static final Level[] LEVEL_SEARCH = new Level[] {
-		Level.SEVERE,
-		Level.WARNING,
-		Level.INFO,
-		ILogRenderer2.TRACE
-	};
-	
-	private static final String[] LEVEL_MARK = new String[] {
-		"*** ERROR ***", //$NON-NLS-1$
-		"+++ Warning +++", //$NON-NLS-1$
-		"Info", //$NON-NLS-1$
-		"[Trace]" //$NON-NLS-1$
-	};
-	
-	private String getLevelHeader(Level aLevel) {
-		for (int i=0; i<LEVEL_SEARCH.length; i++)
-			if (LEVEL_SEARCH[i] == aLevel)
-				return LEVEL_MARK[i];
-		return aLevel.getName();	// Not found, just use level string.
-	}
-	
-	// The write's are here for history. Will implement using log(obj, Level) for all of the types.
-
-
-	/**
-	 * deprecated use log(Level, Exception)
-	 * @param aLevel
-	 * @param ex
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 * 
-	 */
-	public String write(Level aLevel, Exception ex) {
-		return log(aLevel, ex);
-	}
-	
-	/**
-	 * deprecated use log(Throwable)
-	 * @param ex
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 * 
-	 */
-	public String write(Throwable ex) {
-		return log(ex);
-	}
-	
-	/**
-	 * deprecated use log(Object, Level)
-	 * @param aLevel
-	 * @param logEntry
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public String write(Level aLevel, Object logEntry) {
-		return log(logEntry, aLevel);
-	}
-	
-	/**
-	 * deprecated use log(String, Level)
-	 * @param aLevel
-	 * @param string
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public String write(Level aLevel, String string) {
-		return log(string, aLevel);
-	}
-	/**
-	 * deprecated use log(Throwable, Level)
-	 * @param aLevel
-	 * @param ex
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public String write(Level aLevel, Throwable ex) {
-		return log(ex, aLevel);
-	}
-	/**
-	 * deprecated use log(Throwable, Level)
-	 * @param aLevel
-	 * @param ex
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(Level aLevel, Exception ex) {
-		return log(ex, aLevel);
-	}
-	/**
-	 * deprecated use log(Throwable, Level)
-	 * @param aLevel
-	 * @param ex
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(Level aLevel, Throwable ex) {
-		return log(ex, aLevel);
-	}
-	
-	/**
-	 * Get the logging level
-	 * @return logging level
-	 * 
-	 * @since 1.0.0
-	 */
-	public Level getLevel() {
-		return level;
-	}
-	
-	/**
-	 * Check if the requested level is being logged. (e.g. if current level is SEVERE, then FINE will not be logged).
-	 * @param requestlevel
-	 * @return <code>true</code> if the level will be logged.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isLoggingLevel(Level requestlevel) {
-		if (requestlevel == ILogRenderer2.TRACE && !getTraceMode())
-			return false;	// We aren't tracing but requested trace.
-		
-		return !(requestlevel.intValue() < getLevel().intValue() || getLevel() == Level.OFF);
-	}
-
-	/**
-	 * Log an error string.
-	 * @param msg
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logError(String msg) {
-		return log(msg, Level.SEVERE);
-	}
-
-	/**
-	 * Log an error throwable
-	 * @param e
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logError(Throwable e) {
-		return log(e, Level.SEVERE);
-	}
-
-	/**
-	 * Log an info message.
-	 * @param msg
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logInfo(String msg) {
-		return log(msg, Level.INFO);
-	}
-	
-/**
- * Log a throwable as a warning.
- * @param e
- * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
- * 
- * @since 1.0.0
- */
-	public String logInfo(Throwable e) {
-		return log(e, Level.INFO);
-	}
-
-	/**
-	 * Append the string to logMsg buffer passed in. Append the date and format the
-	 * string with nice indentation.
-	 * 
-	 * @param msg
-	 * @param logMsg
-	 * @return the string from the logMsg after logging the rest.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected String logRest(String msg, StringBuffer logMsg) {
-		logMsg.append(new Date());
-		indentMsg(msg, logMsg);
-		return logMsg.toString();
-	}
-
-	/**
-	 * Log the msg as trace only.
-	 * @param msg
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logTrace(String msg) {
-		if (fTraceMode)
-			return log(msg, ILogRenderer2.TRACE);
-		else
-			return ILogRenderer.NOLOG_DESCRIPTION;
-	}
-
-	/**
-	 * Log the throwable as trace only.
-	 * @param e
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logTrace(Throwable e) {
-		return log(e, ILogRenderer2.TRACE);
-	}
-
-	/**
-	 * Log the message as warning.
-	 * @param msg
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logWarning(String msg) {
-		return log(msg, Level.WARNING);
-	}
-	/**
-	 * Log the throwable as a warning.
-	 * @param e
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String logWarning(Throwable e) {
-		return log(e, Level.WARNING);
-	}
-	
-	/**
-	 * Ask the Renderer to punch the msg. in the log.. one
-	 * caller at the time
-	 * Creation date: (8/24/2001 9:19:17 AM)
-	 * @return java.lang.String
-	 * @param msg java.lang.String
-	 * @param type int
-	 */
-	protected synchronized String punchLog(String msg, int type) {
-		return fRenderer.log(msg, type);
-	}
-	
-	/**
-	 * Set the renderer to use.
-	 * @param renderer
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setRenderer(ILogRenderer renderer) {
-		fRenderer = renderer;
-		renderer2 = (renderer instanceof ILogRenderer2) ? (ILogRenderer2) renderer : null;
-		renderer.setTraceMode(getTraceMode());
-	}
-	
-	/**
-	 * Set the trace mode.
-	 * @param flag <code>true</code> to turn on tracing.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setTraceMode(boolean flag) {
-		fTraceMode = flag;
-		if (fRenderer != null)
-			fRenderer.setTraceMode(flag);
-	}
-	
-	/**
-	 * Set the level cutoff for logging. Anything below this level will not log.
-	 * Do not set level to <code>ILogRenderer2.TRACE</code>. It doesn't make sense.
-	 * 
-	 * @param level (Use <code>ILogRenderer2.DEFAULT</code> to restore to default for this logger.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setLevel(Level level) {
-		this.level = level != ILogRenderer2.DEFAULT ? level : defaultLevel;
-	}
-	
-	/**
-	 * Set the default level for this logger. It won't touch the current level.
-	 * 
-	 * @param level
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setDefaultLevel(Level level) {
-		this.defaultLevel = level;
-	}
-	
-	/**
-	 * Get the log file name.
-	 * @return Returns the logFileName.
-	 */
-	public String getLogFileName() {
-		return logFileName;
-	}
-
-	/**
-	 * Set the log file name.
-	 * @param logFileName The logFileName to set.
-	 */
-	public void setLogFileName(String logFileName) {
-		this.logFileName = logFileName;
-	}
-	
-	// Now all of the log() types that use a Level.
-
-	/**
-	 * Log the throwable at the default level for a throwable. 
-	 * @param e
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(Throwable e) {
-		return log(e, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the throwable at the given level.
-	 * @param e
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(Throwable e, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(e, logLevel);
-		} else {
-			// Do it the old way.
-			String stackTrace = exceptionToString(e);
-			return logAny(stackTrace, getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.SEVERE));
-		}
-	}
-	
-	public String log(Object o) {
-		return log(o, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the object at the given level.
-	 * @param o
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(Object o, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(o, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(o), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}	
-	
-	// The following are added to match up with Hyades so that primitives can be logged too.
-	
-	/**
-	 * Log a boolean at the default level. 
-	 * @param b
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(boolean b) {
-		return log(b, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log a boolean at the given level.
-	 * @param b
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(boolean b, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(b, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(b), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}	
-	
-	/**
-	 * Log the character at the default level.
-	 * @param c
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(char c) {
-		return log(c, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the character at the given level.
-	 * @param c
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(char c, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(c, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(c), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}
-	
-	/**
-	 * Log the byte at the default level.
-	 * @param b
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(byte b) {
-		return log(b, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the byte at the given level.
-	 * @param b
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(byte b, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(b, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(b), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}	
-	
-	/**
-	 * Log the short at the default level.
-	 * @param s
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(short s) {
-		return log(s, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the short at the given level.
-	 * @param s
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(short s, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(s, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(s), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}
-	
-	/**
-	 * Log the int at the default level.
-	 * @param i
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(int i) {
-		return log(i, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the int at the default level.
-	 * @param i
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(int i, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(i, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(i), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}
-	
-	/**
-	 * Log the long at the default level.
-	 * @param l
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(long l) {
-		return log(l, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the long at the given level.
-	 * @param l
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(long l, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(l, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(l), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}	
-	
-	/**
-	 * Log the float at the default level.
-	 * @param f
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(float f) {
-		return log(f, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the float at the given level.
-	 * @param f
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(float f, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(f, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(f), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}
-	
-	/**
-	 * Log the double at the default level
-	 * @param d
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(double d) {
-		return log(d, ILogRenderer2.DEFAULT);
-	}
-	
-	/**
-	 * Log the double at the given level
-	 * 
-	 * @param d
-	 * @param logLevel
-	 * @return how it was logged. See <code>CONSOLE_DESCRIPTION.</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	public String log(double d, Level logLevel) {
-		if (renderer2 != null) {
-			return renderer2.log(d, logLevel);
-		} else {
-			// Do it the old way.
-			return logAny(String.valueOf(d), getOldType(logLevel != ILogRenderer2.DEFAULT ? level : Level.FINEST));
-		}
-	}	
-	
-	/*
-	 * Turn new type into old type. The defaultLevel is the
-	 * level to use if the incoming level is marked as default.
-	 */
-	private int getOldType(Level aLevel) {
-		if (aLevel == Level.SEVERE)
-			return ILogRenderer.LOG_ERROR;
-		else if (aLevel == Level.WARNING)
-			return ILogRenderer.LOG_WARNING;
-		else if (aLevel == Level.INFO)
-			return ILogRenderer.LOG_INFO;
-		else if (aLevel == ILogRenderer2.TRACE)
-			return ILogRenderer.LOG_TRACE;
-		else
-			return ILogRenderer.LOG_INFO;		
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/EMFWorkbenchContextFactory.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/EMFWorkbenchContextFactory.java
deleted file mode 100644
index 698a435..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/EMFWorkbenchContextFactory.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: EMFWorkbenchContextFactory.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2005/06/16 20:14:27 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench;
-
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.jem.internal.util.emf.workbench.nls.EMFWorkbenchResourceHandler;
-import org.eclipse.jem.util.RegistryReader;
-import org.eclipse.jem.util.emf.workbench.*;
-import org.eclipse.jem.util.emf.workbench.nature.EMFNature;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-
-public class EMFWorkbenchContextFactory  {
-	public static final EMFWorkbenchContextFactory INSTANCE;
-	
-	static {
-		INSTANCE = createFactoryInstance();
-	}
-	private final Class CONTRIBUTOR_CLASS = IEMFContextContributor.class;
-	protected Map emfContextCache = new WeakHashMap();
-
-	
-	private static EMFWorkbenchContextFactory createFactoryInstance() {
-		EMFWorkbenchContextFactory factory = createFactoryInstanceFromExtension();
-		if (factory == null)
-			factory = new EMFWorkbenchContextFactory();
-		return factory;
-	}
-	
-	private static EMFWorkbenchContextFactory createFactoryInstanceFromExtension() {
-		final EMFWorkbenchContextFactory[] factoryHolder = new EMFWorkbenchContextFactory[1];
-		RegistryReader reader = new RegistryReader(JEMUtilPlugin.ID, "internalWorkbenchContextFactory") { //$NON-NLS-1$
-			public boolean readElement(IConfigurationElement element) {
-				if (element.getName().equals("factoryClass")) //$NON-NLS-1$
-					try {
-						factoryHolder[0] = (EMFWorkbenchContextFactory)element.createExecutableExtension("name"); //$NON-NLS-1$
-						return true;
-					} catch (CoreException e) {
-						Logger.getLogger().logError(e);
-					}				
-				return false;
-			}
-		};
-		reader.readRegistry();
-		return factoryHolder[0];
-	}
-
-	/**
-	 * Constructor for EMFNatureFactory.
-	 */
-	protected EMFWorkbenchContextFactory() {
-		super();
-
-	}
-
-
-	protected void cacheEMFContext(IProject aProject, EMFWorkbenchContextBase emfContext) {
-		if (aProject != null && emfContext != null)
-			emfContextCache.put(aProject, emfContext);
-	}
-
-	protected EMFWorkbenchContextBase getCachedEMFContext(IProject aProject) {
-		if (aProject != null)
-			return (EMFWorkbenchContextBase) emfContextCache.get(aProject);
-		return null;
-	}
-
-	/**
-	 * <code>aProject</code> is either being closed or deleted so we need to cleanup our cache.
-	 */
-	public void removeCachedProject(IProject aProject) {
-		if (aProject != null) 
-			emfContextCache.remove(aProject); 
-		
-	}
-	/**
-	 * Return a new or existing EMFNature on <code>aProject</code>. Allow the <code>contributor</code>
-	 * to contribute to the new or existing nature prior to returning.
-	 */
-	public EMFWorkbenchContextBase createEMFContext(IProject aProject, IEMFContextContributor contributor) {
-		if (aProject == null)
-			throw new IllegalStateException("[EMFWorkbenchContextBase]" + EMFWorkbenchResourceHandler.getString("EMFWorkbenchContextFactory_UI_0")); //$NON-NLS-1$ //$NON-NLS-2$
-		if (!aProject.isAccessible())
-			throw new IllegalStateException("[EMFWorkbenchContextBase]" + EMFWorkbenchResourceHandler.getString("EMFWorkbenchContextFactory_UI_1", new Object[]{aProject.getName()})); //$NON-NLS-1$ //$NON-NLS-2$
-		EMFWorkbenchContextBase context = getCachedEMFContext(aProject);
-		boolean contributorFound = false;
-		if (context == null) {
-			context = primCreateEMFContext(aProject);
-			cacheEMFContext(aProject, context);
-			contributorFound = initializeEMFContextFromContributors(aProject, context, contributor);
-		}
-		if (contributor != null && context != null && !contributorFound)
-			contributor.primaryContributeToContext(context);
-		return context;
-	}
-	
-	protected boolean initializeEMFContextFromContributors(IProject aProject, EMFWorkbenchContextBase emfContext, IEMFContextContributor contributor) {
-		boolean contributorFound = false;
-		if (aProject == null || emfContext == null)
-			return contributorFound;
-		List runtimes = EMFNature.getRegisteredRuntimes(aProject);
-		for (int i = 0; i < runtimes.size(); i++) {
-			IProjectNature nature = (IProjectNature) runtimes.get(i);
-			if (nature != null && CONTRIBUTOR_CLASS.isInstance(nature)) {
-				if (nature == contributor)
-					contributorFound = true;
-				((IEMFContextContributor) nature).primaryContributeToContext(emfContext);
-			}
-		}
-		return contributorFound;
-	}
-
-	protected boolean isNatureEnabled(IProject aProject, String natureId) {
-		try {
-			return aProject.isNatureEnabled(natureId);
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-
-	protected String[] getNatureIds(IProject aProject) {
-		try {
-			if (aProject.isAccessible())
-				return aProject.getDescription().getNatureIds();
-		} catch (CoreException e) {
-		}
-		return null;
-	}
-
-	protected IProjectNature getNature(IProject aProject, String natureId) {
-		try {
-			return aProject.getNature(natureId);
-		} catch (CoreException e) {
-			return null;
-		}
-	}
-
-	protected EMFWorkbenchContextBase primCreateEMFContext(IProject aProject) {
-		return new EMFWorkbenchContextBase(aProject);
-	}
-	/**
-	 * Return an existing EMFNature on <code>aProject</code>.
-	 */
-	public EMFWorkbenchContextBase getEMFContext(IProject aProject) {
-		return getCachedEMFContext(aProject);
-	}
-
-	public ResourceSetWorkbenchSynchronizer createSynchronizer(ResourceSet aResourceSet, IProject aProject) {
-		return new ResourceSetWorkbenchSynchronizer(aResourceSet, aProject);
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
deleted file mode 100644
index 36c8f4d..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/ProjectResourceSetImpl.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ProjectResourceSetImpl.java,v $$
- *  $$Revision: 1.8 $$  $$Date: 2005/03/18 18:52:06 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench;
-
-import java.io.IOException;
-import java.util.*;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.NotificationImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-import org.eclipse.emf.ecore.xmi.XMLResource;
-
-import org.eclipse.jem.util.emf.workbench.*;
-import org.eclipse.jem.util.emf.workbench.nature.EMFNature;
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-public class ProjectResourceSetImpl extends ResourceSetImpl implements ProjectResourceSet {
-	private boolean isReleasing = false;
-	private IProject project;
-	protected List resourceHandlers = new ArrayList();
-	protected ResourceSetWorkbenchSynchronizer synchronizer;
-	protected ProjectResourceSetImpl() {
-		setURIResourceMap(new HashMap(10));	// Tell it to cache uri->resource access.
-		getLoadOptions().put(XMLResource.OPTION_USE_PARSER_POOL, EMFNature.SHARED_PARSER_POOL);
-	}
-	public ProjectResourceSetImpl(IProject aProject) {
-		this();
-		setProject(aProject);
-		initializeSharedCacheListener();
-	}
-	protected void initializeSharedCacheListener() {
-		JEMUtilPlugin.getSharedCache().beginListening(this);
-	}
-	protected boolean isReleasing() {
-		return isReleasing;
-	}
-	/**
-	 * @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#delegatedGetResource(URI, boolean)
-	 */
-	protected Resource delegatedGetResource(URI uri, boolean loadOnDemand) {
-		Resource res = super.delegatedGetResource(uri, loadOnDemand);
-		if (res == null)
-			res = getResourceFromHandlers(uri);
-		return res;
-	}
-	public Resource createResource(URI uri) {
-		if (isReleasing) return null;
-		//Check the map first when creating the resource and do not
-		//normalize if a value is found.
-		boolean isMapped = !(((URIConverterImpl.URIMap)getURIConverter().getURIMap()).getURI(uri).equals(uri));
-		URI converted = uri;
-		if (!isMapped)
-			converted = getURIConverter().normalize(uri);
-		Resource result = createResourceFromHandlers(converted);
-		if (result == null)
-			result = super.createResource(converted);
-		
-		return result;
-	}
-	/**
-	 * @see org.eclipse.emf.ecore.resource.impl.ResourceSetImpl#demandLoad(Resource)
-	 */
-	protected void demandLoad(Resource resource) throws IOException {
-		if (!isReleasing)
-			super.demandLoad(resource);
-	}
-	
-	/**
-	 * See if any resource handlers from the WorkbenchContext
-	 * decide to create the Resource in another manner.
-	 */
-	protected Resource createResourceFromHandlers(URI uri) {
-		Resource resource = null;
-		ResourceHandler handler = null;
-		for (int i = 0; i < resourceHandlers.size(); i++) {
-			handler = (ResourceHandler) resourceHandlers.get(i);
-			resource = handler.createResource(this, uri);
-			if (resource != null)
-				return resource;
-		}
-		return null;
-	}
-	/**
-	 * See if any resource handlers from the WorkbenchContext
-	 * can return a Resource from a <code>uri</code>.
-	 */
-	protected Resource getResourceFromHandlers(URI uri) {
-		if (isReleasing) return null;
-		for (int i = 0; i < resourceHandlers.size(); i++) {
-			Resource resource = ((ResourceHandler) resourceHandlers.get(i)).getResource(this, uri);
-			if (resource != null)
-				return resource;
-		}
-		return null;
-	}
-	
-	public void release() {
-		// Send out notification of release.
-		if (eNotificationRequired()) {
-			eNotify(new NotificationImpl(SPECIAL_NOTIFICATION_TYPE, null, null, Notification.NO_INDEX, false) {
-				/* (non-Javadoc)
-				 * @see org.eclipse.emf.common.notify.impl.NotificationImpl#getFeatureID(java.lang.Class)
-				 */
-				public int getFeatureID(Class expectedClass) {
-					return PROJECTRESOURCESET_ABOUT_TO_RELEASE_ID;
-				}
-				
-				/* (non-Javadoc)
-				 * @see org.eclipse.emf.common.notify.impl.NotificationImpl#getNotifier()
-				 */
-				public Object getNotifier() {
-					return ProjectResourceSetImpl.this;
-				}
-			});
-		}
-		setIsReleasing(true);
-		if (synchronizer != null)
-			synchronizer.dispose();
-		synchronizer = null;
-		removeAndUnloadAllResources();
-		resourceHandlers = null;
-		eAdapters().clear();
-		setProject(null);
-		JEMUtilPlugin.getSharedCache().stopListening(this);
-	}
-	protected void removeAndUnloadAllResources() {
-		boolean caughtException = false;
-		if (getResources().isEmpty()) return;
-		List list = new ArrayList(getResources());
-		getResources().clear();
-		Resource res;
-		int size = list.size();
-		for (int i = 0; i < size; i++) {
-			res = (Resource) list.get(i);
-			try {
-				res.unload();
-			} catch (RuntimeException ex) {
-				Logger.getLogger().logError(ex);
-				caughtException = true;
-			}
-		}
-		if (caughtException)
-			throw new RuntimeException("Exception(s) unloading resources - check log files"); //$NON-NLS-1$
-	}
-	protected void setIsReleasing(boolean aBoolean) {
-		isReleasing = aBoolean;
-	}
-	/**
-	 * Gets the project.
-	 * @return Returns a IProject
-	 */
-	public IProject getProject() {
-		return project;
-	}
-	/**
-	 * Sets the project.
-	 * @param project The project to set
-	 */
-	protected void setProject(IProject project) {
-		this.project = project;
-	}
-	/*
-	 * Javadoc copied from interface.
-	 */
-	public EObject getEObject(URI uri, boolean loadOnDemand) {
-		if (isReleasing) return null;
-		Resource resource = getResource(uri.trimFragment(), loadOnDemand);
-		EObject result = null;
-		if (resource != null && resource.isLoaded())
-			result = resource.getEObject(uri.fragment());
-		if (result == null)
-			result = getEObjectFromHandlers(uri, loadOnDemand);
-		return result;
-	}
-	/**
-	 * See if any resource handlers from the WorkbenchContext
-	 * can return a EObject from a <code>uri</code> after
-	 * failing to find it using the normal mechanisms.
-	 */
-	protected EObject getEObjectFromHandlers(URI uri, boolean loadOnDemand) {
-		EObject obj = null;
-		ResourceHandler handler = null;
-		for (int i = 0; i < resourceHandlers.size(); i++) {
-			handler = (ResourceHandler) resourceHandlers.get(i);
-			obj = handler.getEObjectFailed(this, uri, loadOnDemand);
-			if (obj != null)
-				return obj;
-		}
-		return null;
-	}
-	
-	public boolean add(ResourceHandler resourceHandler) {
-		return resourceHandlers.add(resourceHandler);
-	}
-	public void addFirst(ResourceHandler resourceHandler) {
-		resourceHandlers.add(0, resourceHandler);
-	}
-	public boolean remove(ResourceHandler resourceHandler) {
-		return resourceHandlers.remove(resourceHandler);
-	}
-	/**
-	 * Returns the synchronizer.
-	 * @return ResourceSetWorkbenchSynchronizer
-	 */
-	public ResourceSetWorkbenchSynchronizer getSynchronizer() {
-		return synchronizer;
-	}
-	/**
-	 * Sets the synchronizer.
-	 * @param synchronizer The synchronizer to set
-	 */
-	public void setSynchronizer(ResourceSetWorkbenchSynchronizer synchronizer) {
-		this.synchronizer = synchronizer;
-	}
-	/**
-	 * @see org.eclipse.emf.ecore.resource.ResourceSet#setResourceFactoryRegistry(Resource.Factory.Registry)
-	 */
-	public void setResourceFactoryRegistry(Resource.Factory.Registry factoryReg) {
-		if (resourceFactoryRegistry != null && factoryReg != null) {
-			preserveEntries(factoryReg.getExtensionToFactoryMap(), resourceFactoryRegistry.getExtensionToFactoryMap());
-			preserveEntries(factoryReg.getProtocolToFactoryMap(), resourceFactoryRegistry.getProtocolToFactoryMap());
-		}
-		super.setResourceFactoryRegistry(factoryReg);
-	}
-	/*
-	 * Preserve the entries from map2 in map1 if no collision.
-	 */
-	protected void preserveEntries(Map map1, Map map2) {
-		if (map2.isEmpty())
-			return;
-		Iterator it = map2.entrySet().iterator();
-		Map.Entry entry;
-		while (it.hasNext()) {
-			entry = (Map.Entry) it.next();
-			if (!map1.containsKey(entry.getKey()))
-				map1.put(entry.getKey(), entry.getValue());
-		}
-	}
-	/*
-	 * Javadoc copied from interface.
-	 */
-	public Resource getResource(URI uri, boolean loadOnDemand) {
-		if (isReleasing) return null;
-		return super.getResource(uri, loadOnDemand);
-	}
-
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jem.util.emf.workbench.ProjectResourceSet#resetNormalizedURICache()
-	 */
-	public void resetNormalizedURICache() {
-		if (getURIResourceMap() != null)
-			getURIResourceMap().clear();
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceHandler.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceHandler.java
deleted file mode 100644
index 9234123..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceHandler.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkspaceResourceHandler.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-
-import org.eclipse.jem.util.emf.workbench.ResourceHandler;
-import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-/**
- * The main purpose of this class is to redirect, if necessary, to another 
- * ResourceSet.  This class should be used in conjunction with the WorkbenchURIConverter
- * so that the URIs passed will use the platform protocol.  Anything else will be considered
- * to be ambiguous and we will not be able to redirect.
- */
-public class WorkspaceResourceHandler implements ResourceHandler {
-	/**
-	 * Constructor for WorkspaceResourceHandler.
-	 */
-	public WorkspaceResourceHandler() {
-		super();
-	}
-	/*
-	* @see IResourceHandler#getResource(ResourceSet, URI)
-	*/
-	public Resource getResource(ResourceSet originatingResourceSet, URI uri) {
-		if (WorkbenchResourceHelperBase.isPlatformResourceURI(uri))
-			return getResourceForPlatformProtocol(originatingResourceSet, uri);
-		URI mappedURI = ((URIConverterImpl.URIMap)originatingResourceSet.getURIConverter().getURIMap()).getURI(uri);
-		if (isGlobalPluginLoad(mappedURI))
-			return getResourceForPlatformPluginProtocol(originatingResourceSet, uri);
-		return null;
-	}
-	/**
-	 * Redirect to the correct project based on the project name in the <code>uri</code>.
-	 * The <code>uri</code> will be in the following format:   platform:/resource/[project name].
-	 */
-	protected Resource createResourceForPlatformProtocol(ResourceSet originatingResourceSet, URI uri) {
-		String projectName = uri.segment(1);
-		IProject project = getProject(projectName);
-		if (project != null && project.isAccessible()) {
-			ResourceSet set = WorkbenchResourceHelperBase.getResourceSet(project);
-			if (originatingResourceSet != set)
-				return createResource(uri, set);
-		}
-		return null;
-	}
-	/**
-		 * Redirect to the correct project based on the project name in the <code>uri</code>.
-		 * The <code>uri</code> will be in the following format:   platform:/resource/[project name].
-		 */
-	protected Resource createResourceForPlatformPluginProtocol(ResourceSet originatingResourceSet, URI uri) {
-			
-		ResourceSet set = JEMUtilPlugin.getPluginResourceSet();
-		return createResource(uri, set);
-		}
-	protected Resource createResource(URI uri, ResourceSet redirectedResourceSet) {
-		return redirectedResourceSet.createResource(uri);
-	}
-	/**
-	 * Redirect to the correct project based on the first segment in the file name.
-	 * This is for compatability purposes for people using the platform:/resource protocol.
-	 */
-	protected Resource getResourceForPlatformProtocol(ResourceSet originatingResourceSet, URI uri) {
-		String projectName = uri.segment(1);
-		IProject project = getProject(projectName);
-		if (project != null && project.isAccessible()) {
-			ResourceSet set = WorkbenchResourceHelperBase.getResourceSet(project);
-			if (originatingResourceSet != set)
-				return getResource(uri, set);
-		}
-		return null;
-	}
-	/**
-		 * Redirect to the correct project based on the first segment in the file name.
-		 * This is for compatability purposes for people using the platform:/resource protocol.
-		 */
-	protected Resource getResourceForPlatformPluginProtocol(ResourceSet originatingResourceSet, URI uri) {
-			
-		ResourceSet set = JEMUtilPlugin.getPluginResourceSet();
-		return getResource(uri, set);
-			
-	}
-	protected Resource getResource(URI uri, ResourceSet redirectedResourceSet) {
-		return redirectedResourceSet.getResource(uri, false);
-	}
-	
-	protected IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	protected IProject getProject(String projectName) {
-		IWorkspace ws = getWorkspace();
-		if (ws == null)
-			return null;
-		return ws.getRoot().getProject(projectName);
-	}
-	protected IProject getProject(ResourceSet resourceSet) {
-		return WorkbenchResourceHelperBase.getProject(resourceSet);
-	}
-	/**
-	 * @see org.eclipse.jem.util.ResourceHandler#createResource(ResourceSet, URI)
-	 */
-	public Resource createResource(ResourceSet originatingResourceSet, URI uri) {
-		if (WorkbenchResourceHelperBase.isPlatformResourceURI(uri))
-			return createResourceForPlatformProtocol(originatingResourceSet, uri);
-		URI mappedURI = ((URIConverterImpl.URIMap)originatingResourceSet.getURIConverter().getURIMap()).getURI(uri);
-		if (isGlobalPluginLoad(mappedURI))
-			return createResourceForPlatformPluginProtocol(originatingResourceSet, uri);
-		return null;
-	}
-	/**
-	 * @see org.eclipse.jem.util.ResourceHandler#getEObjectFailed(ResourceSet, URI, boolean)
-	 * Subclasses may override.
-	 */
-	public EObject getEObjectFailed(ResourceSet originatingResourceSet, URI uri, boolean loadOnDemand) {
-		return null;
-	}
-	
-	protected boolean isGlobalPluginLoad(URI aURI) {
-		if (WorkbenchResourceHelperBase.isPlatformPluginResourceURI(aURI)) {
-			String[] globalPlugins = JEMUtilPlugin.getGlobalLoadingPluginNames();
-			for (int i=0;i<globalPlugins.length;i++) {
-				if (aURI.segment(1).startsWith(globalPlugins[i]))
-					return true;
-			}
-		}
-		return false;
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceNotifier.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceNotifier.java
deleted file mode 100644
index 6c10afe..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/WorkspaceResourceNotifier.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkspaceResourceNotifier.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench;
-
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.notify.impl.NotifierImpl;
-
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-
-/**
- * This class is used to capture all ADD and REMOVE notifications from each ProjectResourceSet
- * and forward it on to any interrested listeners.  This is to allow you to listen to one object
- * to gain all ADD and REMOVE notifications for each ResourceSet within the system.
- */
-public class WorkspaceResourceNotifier extends NotifierImpl {
-	protected Adapter projectAdapter = new WorkspaceResourceCacheAdapter();
-
-	class WorkspaceResourceCacheAdapter extends AdapterImpl {
-		/**
-		 * Forward ADD and REMOVE notification.
-		 */
-		public void notifyChanged(Notification msg) {
-			switch (msg.getEventType()) {
-				case Notification.ADD :
-				case Notification.ADD_MANY :
-				case Notification.REMOVE :
-				case Notification.REMOVE_MANY :
-					eNotify(msg);
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Constructor for WorkspaceResourceCache.
-	 */
-	public WorkspaceResourceNotifier() {
-		super();
-	}
-
-	/**
-	 * Begin listening to a ProjectResourceSet.
-	 */
-	public void beginListening(ProjectResourceSet aResourceSet) {
-		if (aResourceSet != null) { 
-			if (aResourceSet.eAdapters() == null ||  
-			!aResourceSet.eAdapters().contains(projectAdapter))
-			aResourceSet.eAdapters().add(projectAdapter);
-		}
-	}
-	/**
-	 * Stop listening to a ProjectResourceSet.
-	 */
-	public void stopListening(ProjectResourceSet aResourceSet) {
-		if (aResourceSet != null)
-			aResourceSet.eAdapters().remove(projectAdapter);
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nature/EMFNatureRegistry.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nature/EMFNatureRegistry.java
deleted file mode 100644
index f85f7b0..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nature/EMFNatureRegistry.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: EMFNatureRegistry.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench.nature;
-
-import java.util.HashSet;
-import java.util.Set;
-
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.jem.internal.util.emf.workbench.nls.EMFWorkbenchResourceHandler;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-public class EMFNatureRegistry {
-
-	private static final String NATURE_REGISTRATION_POINT = "org.eclipse.jem.util.nature_registration"; //$NON-NLS-1$
-	private static final String NATURE  = "nature"; //$NON-NLS-1$
-	private static final String STATIC_ID = "id"; //$NON-NLS-1$
-
-	/**
-	 * Constructor
-	 */
-	private EMFNatureRegistry() {
-		super();
-		readRegistry();
-	}
-	
-	private static EMFNatureRegistry singleton;
-	
-	public final Set REGISTERED_NATURE_IDS = new HashSet();
-	
-	public static EMFNatureRegistry singleton() {
-		if (singleton == null)
-			singleton = new EMFNatureRegistry();
-		return singleton;
-	}
-	
-	protected void readRegistry() {
-	// register Nature IDs for the J2EENatures
-		IExtensionRegistry r = Platform.getExtensionRegistry();
-		IConfigurationElement[] ce = r.getConfigurationElementsFor(NATURE_REGISTRATION_POINT);
-		String natureId;
-		for (int i=0; i<ce.length; i++) {
-			if (ce[i].getName().equals(NATURE)) {
-				natureId = ce[i].getAttribute(STATIC_ID);
-				if (natureId != null)
-					registerNatureID(natureId);
-			}
-		}
-	}
-
-	/**
-	 * @param natureId
-	 */
-	private void registerNatureID(String natureId) {
-		if (!REGISTERED_NATURE_IDS.contains(natureId))
-			REGISTERED_NATURE_IDS.add(natureId);
-		else
-			Logger.getLogger().logError(EMFWorkbenchResourceHandler.getString("EMFNatureRegistry_ERROR_0", new Object[] {natureId})); //$NON-NLS-1$
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nls/EMFWorkbenchResourceHandler.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nls/EMFWorkbenchResourceHandler.java
deleted file mode 100644
index 31a8e45..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/internal/util/emf/workbench/nls/EMFWorkbenchResourceHandler.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: EMFWorkbenchResourceHandler.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.internal.util.emf.workbench.nls;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-public class EMFWorkbenchResourceHandler {
-
-	private static ResourceBundle fgResourceBundle;
-
-	/**
-	 * Returns the resource bundle used by all classes in this Project
-	 */
-	public static ResourceBundle getResourceBundle() {
-		try {
-			return ResourceBundle.getBundle("emfworkbench");//$NON-NLS-1$
-		} catch (MissingResourceException e) {
-			// does nothing - this method will return null and
-			// getString(String, String) will return the key
-			// it was called with
-		}
-		return null;
-	}
-	public static String getString(String key) {
-		if (fgResourceBundle == null) {
-			fgResourceBundle= getResourceBundle();
-		}
-		
-		if (fgResourceBundle != null) {
-			try {
-				return fgResourceBundle.getString(key);
-			} catch (MissingResourceException e) {
-				return "!" + key + "!";//$NON-NLS-2$//$NON-NLS-1$
-			}
-		} else {
-			return "!" + key + "!";//$NON-NLS-2$//$NON-NLS-1$
-		}
-	}
-public static String getString(String key, Object[] args) {
-
-	try {return MessageFormat.format(getString(key), args);}
-	catch (IllegalArgumentException e) {return getString(key);}
-
-}
-public static String getString(String key, Object[] args, int x) {
-
-		return getString(key);
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/CharacterUtil.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/CharacterUtil.java
deleted file mode 100644
index afe7279..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/CharacterUtil.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: CharacterUtil.java,v $
- *  $Revision: 1.1 $  $Date: 2006/02/24 17:32:14 $ 
- */
-package org.eclipse.jem.util;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import com.ibm.icu.text.UTF16;
- 
-
-/**
- * Static helper to handle characters in the new UTF multi-char format.
- * It is needed because ICU4J currently doesn't handle some correctly yet that we
- * need to have working. As ICU4J gets them working, the methods here will become
- * deprecated.
- * 
- * @since 1.2.0
- */
-public class CharacterUtil {
-
-	private CharacterUtil() {
-		
-	}
-	
-	
-	/**
-	 * TODO So until ICU4J does work correctly this util will be needed. It will
-	 * stay around because it is API, but at that time it will be marked deprecated. It should
-	 * also then reroute to ICU4J instead of doing the method reflections.
-	 */
-	private static Method METHOD_JAVA_IDENTIFIER_START, METHOD_JAVA_IDENTIFIER_PART;
-	
-	static {
-		// Try to get the Character.isJavaIdentifier(int) method. If there, then we are in 1.5 or above. Else use the char form.
-		try {
-			METHOD_JAVA_IDENTIFIER_START = Character.class.getMethod("isJavaIdentifierStart", new Class[] {Integer.TYPE});
-		} catch (SecurityException e) {
-			// Default to use (char) type instead.
-			METHOD_JAVA_IDENTIFIER_START = null;
-		} catch (NoSuchMethodException e) {
-			// Default to use (char) type instead.
-			METHOD_JAVA_IDENTIFIER_START = null;
-		}
-		try {
-			METHOD_JAVA_IDENTIFIER_PART = Character.class.getMethod("isJavaIdentifierPart", new Class[] {Integer.TYPE});
-		} catch (SecurityException e) {
-			// Default to use (char) type instead.
-			METHOD_JAVA_IDENTIFIER_PART = null;
-		} catch (NoSuchMethodException e) {
-			// Default to use (char) type instead.
-			METHOD_JAVA_IDENTIFIER_PART = null;
-		}		
-	}
-
-	/**
-	 * Is start of java identifier
-	 * @param intChar int character (UTF multi-char is valid)
-	 * @return <code>true</code> if start of java identifier.
-	 * 
-	 * @see Character#isJavaIdentifierStart(char)
-	 * @since 1.2.0
-	 */
-	public static boolean isJavaIdentifierStart(int intChar) {
-		if (METHOD_JAVA_IDENTIFIER_START != null) {
-			try {
-				return ((Boolean) METHOD_JAVA_IDENTIFIER_START.invoke(null, new Object[] {new Integer(intChar)})).booleanValue();
-			} catch (IllegalArgumentException e) {
-			} catch (IllegalAccessException e) {
-			} catch (InvocationTargetException e) {
-			}
-		}
-		return Character.isJavaIdentifierStart((char) intChar);
-	}
-	
-	/**
-	 * Is start of java identifier
-	 * @param intChar int character (UTF multi-char is valid)
-	 * @return <code>true</code> if start of java identifier.
-	 * 
-	 * @see Character#isJavaIdentifierStart(char)
-	 * @since 1.2.0
-	 */
-	public static boolean isJavaIdentifierPart(int intChar) {
-		if (METHOD_JAVA_IDENTIFIER_PART != null) {
-			try {
-				return ((Boolean) METHOD_JAVA_IDENTIFIER_PART.invoke(null, new Object[] {new Integer(intChar)})).booleanValue();
-			} catch (IllegalArgumentException e) {
-			} catch (IllegalAccessException e) {
-			} catch (InvocationTargetException e) {
-			}
-		}
-		return Character.isJavaIdentifierPart((char) intChar);
-	}
-	
-	public static abstract class AbstractCharIterator {
-
-		
-		protected final CharSequence charSeq;
-		private int pos = 0;
-		private int lastCharIndex = 0;
-
-		/**
-		 * Create with a string.
-		 * @param charSeq
-		 * 
-		 * @since 1.2.0
-		 */
-		public AbstractCharIterator(CharSequence charSeq) {
-			this.charSeq = charSeq;
-		}
-		
-		/**
-		 * Set the next char index.
-		 * @param index
-		 * 
-		 * @since 1.2.0
-		 */
-		public void setIndex(int index) {
-			pos = index;
-		}
-
-		/**
-		 * Has another char.
-		 * @return <code>true</code> if there is another char to return.
-		 * 
-		 * @since 1.2.0
-		 */
-		public boolean hasNext() {
-			return pos < charSeq.length();
-		}
-		
-		/**
-		 * Has another char before the current position. Doing previous
-		 * will return the char that was just returned.
-		 * @return
-		 * 
-		 * @since 1.2.0
-		 */
-		public boolean hasPrevious() {
-			return pos > 0;
-		}
-		
-		/**
-		 * Return next char from the one that was just returned.
-		 * @return next char.
-		 * 
-		 * @since 1.2.0
-		 */
-		public int next() {
-			if (!hasNext())
-				throw new IllegalStateException();
-			
-			int next = utfCharAt(pos);
-			lastCharIndex = pos;
-			pos += UTF16.getCharCount(next);
-			return next;
-		}
-		
-		/**
-		 * Return the UTF-32 char at the given position.
-		 * @param pos
-		 * @return
-		 * 
-		 * @since 1.2.0
-		 */
-		protected abstract int utfCharAt(int pos);
-		
-		/**
-		 * Return the previous character from the one that was just returned.
-		 * @return
-		 * 
-		 * @since 1.2.0
-		 */
-		public int previous() {
-			if (!hasPrevious())
-				throw new IllegalStateException();
-
-			int next;
-			if (UTF16.isTrailSurrogate(charSeq.charAt(--pos))) {
-				if (pos > 0)
-					next = utfCharAt(--pos);
-				else
-					next = charSeq.charAt(pos);
-			} else {
-				next = charSeq.charAt(pos);
-			}
-			lastCharIndex = pos;
-			return next;
-		}
-		
-		/**
-		 * Return the UTF16 character position of the char that was just returned from either
-		 * previous or next.
-		 * This is the (char) position not the
-		 * position of logical int chars returned. For example a standard string of
-		 * <code>"abc"</code> the position of the char 'b' is 1. But take the string
-		 * <code>"ab1b2c"</code> where "b1b2" is one UTF-32 char, then the position
-		 * of 'c' is 3. It would not be 2, which is what the logical char position
-		 * would be if taking UFT32 into account.
-		 * @return
-		 * 
-		 * @since 1.2.0
-		 */
-		public int getPosition() {
-			return lastCharIndex;
-		}
-	
-	}
-	
-	/**
-	 * Special char iterator that returns ints instead of chars for
-	 * walking strings that can contain UTF multi-chars. This is
-	 * a limited version of {@link java.text.CharacterIterator}.
-	 * 
-	 * @since 1.2.0
-	 */
-	public static class StringIterator extends AbstractCharIterator {
-		
-
-		/**
-		 * Create with a string.
-		 * @param str
-		 * 
-		 * @since 1.2.0
-		 */
-		public StringIterator(String str) {
-			super(str);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jem.util.CharacterUtil.AbstractCharIterator#utfCharAt(int)
-		 */
-		protected int utfCharAt(int pos) {
-			return UTF16.charAt((String) charSeq, pos);
-		}
-		
-	}
-	
-	/**
-	 * Special char iterator that returns ints instead of chars for
-	 * walking strings that can contain UTF multi-chars. This is
-	 * a limited version of {@link java.text.CharacterIterator}.
-	 * 
-	 * @since 1.2.0
-	 */
-	public static class StringBufferIterator extends AbstractCharIterator {
-		
-
-		/**
-		 * Create with a string.
-		 * @param strBuffer
-		 * 
-		 * @since 1.2.0
-		 */
-		public StringBufferIterator(StringBuffer strBuffer) {
-			super(strBuffer);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jem.util.CharacterUtil.AbstractCharIterator#utfCharAt(int)
-		 */
-		protected int utfCharAt(int pos) {
-			return UTF16.charAt((StringBuffer) charSeq, pos);
-		}
-		
-	}	
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/NotPresentPerformanceMonitor.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/NotPresentPerformanceMonitor.java
deleted file mode 100644
index 54af2bd..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/NotPresentPerformanceMonitor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.eclipse.jem.util;
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: NotPresentPerformanceMonitor.java,v $$
- *  $$Revision: 1.3 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-/**
- * This is the instantiation to use if the performance monitor plugin is not installed. It basically does nothing.
- * 
- * <p>
- * This class is not intended to be instantiated by clients.
- * </p>
- * 
- * @since 1.0.0
- */
-public class NotPresentPerformanceMonitor extends PerformanceMonitorUtil {
-
-	/*
-	 * Only instantiated from this package.
-	 */
-	NotPresentPerformanceMonitor() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#setVar(java.lang.String)
-	 */
-	public void setVar(String var) {
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#doSnapshot(int, int)
-	 */
-	protected void doSnapshot(int step, int types) {
-	}
-
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#doSnapshot(int)
-	 */
-	protected void doSnapshot(int step) {
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java
deleted file mode 100644
index a76fdd0..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PerformanceMonitorUtil.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: PerformanceMonitorUtil.java,v $
- *  $Revision: 1.7 $  $Date: 2005/08/24 21:10:34 $ 
- */
-package org.eclipse.jem.util;
-import java.util.EventObject;
-
-import org.eclipse.perfmsr.core.IPerformanceMonitor;
-
-/**
- * This is a simplified wrapper to the IPerformanceMonitor that hides it so that the actual plugin can be optional and not required.
- * 
- * <p>
- * This class is not meant to be subclassed by clients.
- * </p>
- * 
- * @since 1.0.0
- */
-public abstract class PerformanceMonitorUtil {
-	/**
-	 * Event for PerformanceListener notification.
-	 * 
-	 * @since 1.1.0
-	 */
-	public static class PerformanceEvent extends EventObject {
-		
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 * 
-		 * @since 1.1.0
-		 */
-		private static final long serialVersionUID = -4680071462750180339L;
-
-		PerformanceEvent(Object source, int step) {
-			super(source);
-			snapshowWithTypes = false;
-			this.step = step;
-			this.types = 0;	// Not set.
-		}
-		
-		PerformanceEvent(Object source, int step, int types) {
-			super(source);
-			snapshowWithTypes = true;
-			this.step = step;
-			this.types = types;
-		}
-
-		
-		/**
-		 * Snapshot with types if <code>true</code>.
-		 * @since 1.1.0
-		 */
-		public final boolean snapshowWithTypes;
-
-		/**
-		 * Step of snapshot
-		 * @since 1.1.0
-		 */
-		public final int step;
-		
-		/**
-		 * types of snapshot.
-		 * @since 1.1.0
-		 */
-		public final int types;
-	}
-	
-	/**
-	 * Performance Listener interface
-	 * 
-	 * @since 1.1.0
-	 */
-	public interface PerformanceListener {
-		/**
-		 * Snapshot was called.
-		 * @param event
-		 * 
-		 * @since 1.1.0
-		 */
-		public void snapshot(PerformanceEvent event);
-	}
-	
-	private PerformanceListener[] listeners;
-
-	public interface Types {
-
-		/**
-		 * 1 - Write out the performance counters from the operating system. These include working set, peak working set, elapsed time, user time, and
-		 * kernel time.
-		 */
-		int OperatingSystemCounters = IPerformanceMonitor.Types.OperatingSystemCounters;
-
-		/**
-		 * 2 - Write out the global performance info. This includes things like the total committed memory for the entire system.
-		 * 
-		 * This function depends on the GetPerformanceInfo() function being available in the Windows psapi.dll. This is available in XP but is usually
-		 * not available in Win/2000. If it is not available then this function throws an UnsupportedOperationException.
-		 */
-		int GlobalSystemCounters = IPerformanceMonitor.Types.GlobalSystemCounters;
-
-		/**
-		 * 4 - Write out the size of the Java Heap.
-		 */
-		int JavaHeapSize = IPerformanceMonitor.Types.JavaHeapSize;
-
-		/**
-		 * 8 - Write out how much of the Java heap is being used. This calls the garbage collector so it may skew timing results.
-		 */
-		int JavaHeapUsed = IPerformanceMonitor.Types.JavaHeapUsed;
-
-		/**
-		 * 16 - The plugin startup and size information.
-		 */
-		int PluginInfo = IPerformanceMonitor.Types.PluginInfo;
-
-		/** 0xffff - Everything. */
-		int All = IPerformanceMonitor.Types.All;
-	}
-
-	private static PerformanceMonitorUtil sharedMonitor;
-
-	public static PerformanceMonitorUtil getMonitor() {
-		if (sharedMonitor == null) {
-			try {
-				Class.forName("org.eclipse.perfmsr.core.PerfMsrCorePlugin"); // This just tests if the performance plugin is available. Throws //$NON-NLS-1$
-																			 // exception otherwise.
-				Class presentClass = Class.forName("org.eclipse.jem.util.PresentPerformanceMonitor"); // Get the class we use wrapper it. //$NON-NLS-1$
-				sharedMonitor = (PerformanceMonitorUtil) presentClass.newInstance();
-				if (!sharedMonitor.isValid())
-					sharedMonitor = null;
-			} catch (RuntimeException e) {
-				// If any runtime exception, just use the not present one.
-			} catch (ClassNotFoundException e) {
-				// If class not found, then plugin not available, so just use the not present one.
-			} catch (InstantiationException e) {
-				// Problem instantiating, so just use the not present one.
-			} catch (IllegalAccessException e) {
-				// Some illegal access, so just use the not present one.
-			}
-			if (sharedMonitor == null) {
-				// Couldn't get the performance one for some reason. Use not present one instead.
-				sharedMonitor = new NotPresentPerformanceMonitor();
-			}
-		}
-		return sharedMonitor;
-	}
-	
-	protected boolean isValid() {
-		return true;
-	}
-
-	/**
-	 * Set the variations that are in effect.
-	 * 
-	 * @param var
-	 *            a comma delimited string of variation numbers
-	 */
-	public abstract void setVar(String var);
-
-	/**
-	 * Take a snapshot of some default performance measurements.
-	 * 
-	 * @param step
-	 *            this identifies the step that the snapshot is for
-	 */
-	public final void snapshot(int step) {
-		doSnapshot(step);
-		if (listeners != null)
-			notifySnapshot(new PerformanceEvent(this, step));
-	}
-	
-	private void notifySnapshot(PerformanceEvent event) {
-		PerformanceListener[] list = listeners;
-		for (int i = 0; i < list.length; i++) {
-			list[i].snapshot(event);
-		}
-	}
-	
-	/**
-	 * Do the actual snapshot
-	 * @param step
-	 * 
-	 * @see #snapshot(int)
-	 * @since 1.1.0
-	 */
-	protected abstract void doSnapshot(int step);
-
-	/**
-	 * Take a snapshot of the selected performance measurements.
-	 * 
-	 * @param step
-	 *            this identifies the step that the snapshot is for
-	 * 
-	 * @param types
-	 *            This controls which measurements are selected. It is an or'd together list of the IPerformanceMonitor.Types constants.
-	 * 
-	 * @see IPerformanceMonitor.Types
-	 */
-	public void snapshot(int step, int types) {
-		doSnapshot(step, types);
-		if (listeners != null)
-			notifySnapshot(new PerformanceEvent(this, step, types));		
-	}
-	
-	/**
-	 * Do the actual snapshot
-	 * @param step
-	 * 
-	 * @see #snapshot(int, int)
-	 * @since 1.1.0
-	 */
-	protected abstract void doSnapshot(int step, int types);	
-	
-	/**
-	 * Add listener to list.
-	 * @param listener
-	 * 
-	 * @since 1.1.0
-	 */
-	public void addPerformanceListener(PerformanceListener listener) {
-		if (findListener(listener) != -1)
-			return;
-		PerformanceListener[] newList = new PerformanceListener[listeners != null ? listeners.length+1 : 1];
-		if (listeners != null)
-			System.arraycopy(listeners, 0, newList, 0, listeners.length);
-		newList[newList.length-1] = listener;
-		listeners = newList;
-	}
-	
-	private int findListener(PerformanceListener listener) {
-		if (listeners != null) {
-			for (int i = 0; i < listeners.length; i++) {
-				if (listeners[i] == listener)
-					return i;
-			}
-		}
-		return -1;
-	}
-	
-	/**
-	 * Remove the listener from the list.
-	 * @param listener
-	 * 
-	 * @since 1.1.0
-	 */
-	public void removePerformanceListener(PerformanceListener listener) {
-		int index = findListener(listener);
-		if (index != -1) {
-			if (listeners.length == 1) {
-				listeners = null;
-				return;
-			}
-			PerformanceListener[] newList = new PerformanceListener[listeners.length-1];
-			System.arraycopy(listeners, 0, newList, 0, index);
-			System.arraycopy(listeners, index+1, newList, index, newList.length-index);
-			listeners = newList;
-		}
-	}
-	/**
-	 * Upload the results to the server. This causes the file to be
-	 * closed, and the monitor to be placed into the finished state.
-	 * 
-	 * This method can only be called if the uploadhost, uploadport and uploaduserid
-	 * have been configured before hand.
-	 * 
-	 * @param description an optional description (it can be null)
-	 * 
-	 */
-	public boolean upload(String description){return false;}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PresentPerformanceMonitor.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PresentPerformanceMonitor.java
deleted file mode 100644
index 3ee5b05..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/PresentPerformanceMonitor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: PresentPerformanceMonitor.java,v $
- *  $Revision: 1.5 $  $Date: 2005/08/24 21:10:34 $ 
- */
-package org.eclipse.jem.util;
-import org.eclipse.perfmsr.core.IPerformanceMonitor;
-import org.eclipse.perfmsr.core.PerfMsrCorePlugin;
-
-/**
- * This is the version used when the performance plugin is available.
- * 
- * <p>
- * This class is not meant to be instantiated by clients.
- * </p>
- * 
- * @since 1.0.0
- */
-public class PresentPerformanceMonitor extends PerformanceMonitorUtil {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#upload(java.lang.String)
-	 */
-	public boolean upload(String description) {
-		return monitor.upload(description).success;
-	}
-	
-	private IPerformanceMonitor monitor;
-
-	/*
-	 * So that only instantiated by this package.
-	 */
-	PresentPerformanceMonitor() {
-		monitor = PerfMsrCorePlugin.getPerformanceMonitor(true);
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#isValid()
-	 */
-	protected boolean isValid() {
-		return monitor != null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#setVar(java.lang.String)
-	 */
-	public void setVar(String var) {
-		monitor.setVar(var);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#doSnapshot(int)
-	 */
-	protected void doSnapshot(int step) {
-		monitor.snapshot(step);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jem.util.PerformanceMonitorUtil#doSnapshot(int, int)
-	 */
-	protected void doSnapshot(int step, int types) {
-		monitor.snapshot(step, types);
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java
deleted file mode 100644
index 37e8277..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/RegistryReader.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: RegistryReader.java,v $$
- *  $$Revision: 1.5 $$  $$Date: 2006/05/17 20:13:45 $$ 
- */
-package org.eclipse.jem.util;
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * Class to read a registry. It is meant to be subclassed to provide specific function.
- * 
- * @since 1.0.0
- */
-public abstract class RegistryReader {
-
-	String pluginId;
-
-	String extensionPointId;
-
-	private static Bundle systemBundle;
-
-	/**
-	 * Utility method to get the plugin id of a configuation element
-	 * 
-	 * @param configurationElement
-	 * @return plugin id of configuration element
-	 * @since 1.0.0
-	 */
-	public static String getPluginId(IConfigurationElement configurationElement) {
-		String pluginId = null;
-
-		if (configurationElement != null) {
-			IExtension extension = configurationElement.getDeclaringExtension();
-
-			if (extension != null)
-				pluginId = extension.getContributor().getName();
-		}
-
-		return pluginId;
-	}
-
-	/**
-	 * Constructor for RegistryReader taking a registry, plugin id, and extension point id.
-	 * 
-	 * @param registry
-	 * @param pluginID
-	 * @param extensionPoint
-	 * 
-	 * @deprecated Use RegistryReader(plugin, extensionPoint) instead. The registry passed in is ignored.
-	 * @since 1.0.0
-	 */
-	public RegistryReader(IPluginRegistry registry, String pluginID, String extensionPoint) {
-		this(pluginID, extensionPoint);
-	}
-
-	/**
-	 * Constructor for RegistryReader taking the plugin id and extension point id.
-	 * 
-	 * @param pluginID
-	 * @param extensionPoint
-	 * 
-	 * @since 1.0.0
-	 */
-	public RegistryReader(String pluginID, String extensionPoint) {
-		super();
-		this.pluginId = pluginID;
-		extensionPointId = extensionPoint;
-	}
-
-	private void internalReadElement(IConfigurationElement element) {
-		boolean recognized = this.readElement(element);
-		if (!recognized) {
-			logError(element, "Error processing extension: " + element); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * Logs the error in the desktop log using the provided text and the information in the configuration element.
-	 */
-	protected void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getContributor().getName() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-1$ //$NON-NLS-2$
-		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.getLogger().logError(buf.toString());
-	}
-
-	/*
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Implement this method to read element attributes. If this element has subelements, the reader will recursively cycle through them and call this
-	 * method so don't do it here.
-	 */
-	public abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the extension point and parse it.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void readRegistry() {
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(pluginId, extensionPointId);
-		if (point == null)
-			return;
-		IConfigurationElement[] elements = point.getConfigurationElements();
-		for (int i = 0; i < elements.length; i++) {
-			internalReadElement(elements[i]);
-		}
-	}
-
-	/**
-	 * Tests to see if it is valid at this point in time to create an executable extension. A valid reason not to would be that the workspace is
-	 * shutting donw.
-	 * 
-	 * @param element
-	 * @return <code>true</code> if it is valid point to create an executable extension.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean canCreateExecutableExtension(IConfigurationElement element) {
-		if (Platform.isRunning() && getSystemBundle().getState() != Bundle.STOPPING)
-			return true;
-		return false;
-	}
-
-	/**
-	 * Get the system bundle
-	 * 
-	 * @return system bundle.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected static Bundle getSystemBundle() {
-		if (systemBundle == null)
-			systemBundle = Platform.getBundle("org.eclipse.osgi"); //$NON-NLS-1$
-		return systemBundle;
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/TimerTests.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/TimerTests.java
deleted file mode 100644
index 57f5b4e..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/TimerTests.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: TimerTests.java,v $
- *  $Revision: 1.8 $  $Date: 2006/05/17 20:13:45 $ 
- */
-package org.eclipse.jem.util;
-
-import java.text.NumberFormat;
-import java.util.*;
-
-/**
- * 
- * @since 1.0.2
- */
-public class TimerTests {
-
-	/**
-	 * Default TimerTests class to use when not using your own. It's a global.
-	 */
-	public static TimerTests basicTest = new TimerTests();
-
-	public static final String CURRENT_PARENT_ID = "current parent"; //$NON-NLS-1$
-	protected String currentParentId = null;
-
-
-	protected static class TimerStep {
-		static final int START = 0;
-		static final int STOP = 1;
-		static final int START_CUMULATIVE = 2;
-		static final int STOP_CUMULATIVE = 3;
-		static final int START_ACCUMULATING = 4;
-		static final int STOP_ACCUMULATING = 5;
-		protected String id;
-		protected int type;
-		protected long currentTime;
-		protected int threadId;
-}
-
-	protected boolean testOn = false;
-	protected List steps;
-
-	public synchronized boolean startStep(String id) {
-		if (!testOn)
-			return true;
-
-		TimerStep step = createTimerStep(id, TimerStep.START);
-		return step != null;
-	}
-
-	protected TimerStep createTimerStep(String id, int stepType) {
-		TimerStep newStep = new TimerStep();
-		newStep.threadId = Thread.currentThread().hashCode();
-		newStep.id = id;
-		newStep.type = stepType;
-		newStep.currentTime = System.currentTimeMillis();
-		steps.add(newStep);
-
-		return newStep;
-	}
-
-	public synchronized boolean stopStep(String id) {
-		if (!testOn)
-			return true;
-		TimerStep step = createTimerStep(id, TimerStep.STOP);
-		return step != null;
-	}
-
-	public synchronized boolean startAccumulating(String id) {
-		if (!testOn)
-			return true;
-
-		return createTimerStep(id, TimerStep.START_ACCUMULATING) != null;
-	}
-
-	public synchronized boolean stopAccumulating(String id) {
-		if (!testOn)
-			return true;
-
-		return createTimerStep(id, TimerStep.STOP_ACCUMULATING) != null;
-	}
-	public synchronized boolean startCumulativeStep(String id) {
-		if (!testOn)
-			return true;
-
-		return createTimerStep(id, TimerStep.START_CUMULATIVE) != null;
-	}
-
-	public synchronized boolean stopCumulativeStep(String id) {
-		if (!testOn)
-			return true;
-		return createTimerStep(id, TimerStep.STOP_CUMULATIVE) != null;
-	}
-
-	/**
-	 * Clear the tests so that you can restart and do some more tests.
-	 * 
-	 * 
-	 * @since 1.0.2
-	 */
-	public synchronized void clearTests() {
-		if (!testOn)
-			return;
-		steps.clear();
-		currentParentId = null;
-	}
-
-	/**
-	 * Turn this test on. If not turned on then all calls will quickly return with no errors. This allows the code to stay in place even when not
-	 * debugging.
-	 * <p>
-	 * When turned off, it will clear the test.
-	 * 
-	 * @param on
-	 * 
-	 * @since 1.0.2
-	 */
-	public synchronized void testState(boolean on) {
-		if (on == testOn)
-			return;
-		if (on) {
-			testOn = true;
-			if (steps == null)
-				steps = new ArrayList();
-		} else {
-			testOn = false;
-			steps = null;
-		}
-		currentParentId = null;
-	}
-	private static class CumulativeInformation {
-		public TimerStep currentCumulativeStep;
-		public long cumTime;
-		public int cumCount;
-		public int cumCountNonZero;
-		public long maxTime;
-		public long minTime = Integer.MAX_VALUE;
-		public long minTimeNonZero = Integer.MAX_VALUE;
-	}
-	public synchronized void printIt() {
-		if (!testOn)
-			return;
-		if (steps == null)
-			return;
-		Map stepInfoByThreadId = new HashMap();
-		Map indentsByThreadId = new HashMap();
-		Map cumSteps;
-		TimerStep prevStep = null;
-		TimerStep startStep;
-		NumberFormat percentFormatter = NumberFormat.getPercentInstance();
-		double totalTime = 0;
-		StringBuffer strb = new StringBuffer(150);
-		if (steps.size() > 2){
-			totalTime = ((TimerStep)steps.get(steps.size()-1)).currentTime - ((TimerStep)steps.get(0)).currentTime;
-		}
-		for (int i = 0; i < steps.size(); i++) {
-			TimerStep step = (TimerStep) steps.get(i);
-			Integer threadId = new Integer(step.threadId);
-			switch (step.type) {
-				case TimerStep.START:
-				case TimerStep.STOP:
-					Integer threadIndent = (Integer) indentsByThreadId.get(threadId);
-					int indent = 0;
-					if (step.type == TimerStep.START) {
-						if (threadIndent != null)
-							indent = threadIndent.intValue() + 1;
-						indentsByThreadId.put(threadId, new Integer(indent));
-					} else {
-						if (threadIndent != null)
-							indent = threadIndent.intValue();
-						if (indent > 0)
-							indentsByThreadId.put(threadId, new Integer(indent - 1));
-						else {
-							indentsByThreadId.remove(threadId);
-							indent = 0;
-						}
-					}
-					strb.setLength(0);
-					strb.append(step.currentTime);
-					strb.append("\t"); //$NON-NLS-1$
-					for (int j = 0; j < indent; j++) {
-						strb.append("     "); //$NON-NLS-1$
-					}
-					switch (step.type) {
-						case TimerStep.START:
-							strb.append("Start"); //$NON-NLS-1$
-							break;
-
-						case TimerStep.STOP:
-							strb.append("Stop "); //$NON-NLS-1$
-							break;
-						default:
-							break;
-					}
-					;
-					strb.append(" \""); //$NON-NLS-1$
-					strb.append(step.id);
-					strb.append("\"   id("); //$NON-NLS-1$
-					strb.append(step.threadId);
-					strb.append(")"); //$NON-NLS-1$
-					Map startSteps = (Map) stepInfoByThreadId.get(threadId);
-					if (startSteps == null)
-						stepInfoByThreadId.put(threadId, startSteps = new HashMap());
-					if (step.type == TimerStep.START) {
-						// Store the start step for later lookup when calulating the total time
-						startSteps.put(step.id, step);
-					} else {
-						// This is the stop time for a step. We need to find
-						// the corresponding start time and calculate the total time.
-						Object item = startSteps.remove(step.id);
-						if (item instanceof TimerStep) {
-							startStep = (TimerStep) item;
-							if (startStep != null) {
-								int addchars = 100 - strb.length();
-								for (int j = 0; j < addchars; j++) {
-									strb.append(" "); //$NON-NLS-1$
-								}
-								long delta = step.currentTime - startStep.currentTime;
-								strb.append("    Total = " + delta + " ms"); //$NON-NLS-1$ //$NON-NLS-2$
-								if (totalTime > 0)
-									strb.append("   " + percentFormatter.format(delta/totalTime)); //$NON-NLS-1$
-							}
-						} else
-							strb.append("    ---> Couldn't find Starting point for \"" + step.id + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					if (i > 0 && (step.currentTime - prevStep.currentTime) > 0)
-						System.out.println("-- " + (step.currentTime - prevStep.currentTime) + " ms --"); //$NON-NLS-1$ //$NON-NLS-2$
-					prevStep = step;
-					System.out.println(strb);
-					break;
-
-				case TimerStep.START_ACCUMULATING:
-					cumSteps = (Map) stepInfoByThreadId.get(threadId);
-					if (cumSteps == null)
-						stepInfoByThreadId.put(threadId, cumSteps = new HashMap());
-					cumSteps.put(step.id, new CumulativeInformation());
-					threadIndent = (Integer) indentsByThreadId.get(threadId);
-					indent = 0;
-					if (threadIndent != null)
-						indent = threadIndent.intValue();
-					strb.setLength(0);
-					strb.append(step.currentTime);
-					strb.append("\t"); //$NON-NLS-1$
-					for (int j = 0; j < indent; j++) {
-						strb.append("     "); //$NON-NLS-1$
-					}
-					strb.append("Start Accumulating"); //$NON-NLS-1$
-					strb.append(" \""); //$NON-NLS-1$
-					strb.append(step.id);
-					strb.append("\"   id("); //$NON-NLS-1$
-					strb.append(step.threadId);
-					strb.append(")"); //$NON-NLS-1$
-					if (i > 0 && (step.currentTime - prevStep.currentTime) > 0)
-						System.out.println("-- " + (step.currentTime - prevStep.currentTime) + " ms --"); //$NON-NLS-1$ //$NON-NLS-2$
-					prevStep = step;
-					System.out.println(strb);
-					break;
-
-				case TimerStep.START_CUMULATIVE:
-					cumSteps = (Map) stepInfoByThreadId.get(threadId);
-					if (cumSteps != null) {
-						Object info = cumSteps.get(step.id);
-						if (info instanceof CumulativeInformation)
-							((CumulativeInformation) info).currentCumulativeStep = step;
-					}
-					break;
-					
-				case TimerStep.STOP_CUMULATIVE:
-					cumSteps = (Map) stepInfoByThreadId.get(threadId);
-					if (cumSteps != null) {
-						Object info = cumSteps.get(step.id);
-						if (info instanceof CumulativeInformation) {
-							CumulativeInformation cumInfo = (CumulativeInformation) info;
-							if (cumInfo.currentCumulativeStep != null) {
-								cumInfo.cumCount++;
-								long delta = step.currentTime - cumInfo.currentCumulativeStep.currentTime;
-								cumInfo.cumTime += delta;
-								if (cumInfo.maxTime < delta)
-									cumInfo.maxTime = delta;
-								if (delta < cumInfo.minTime)
-									cumInfo.minTime = delta;
-								if (delta != 0) {
-									cumInfo.cumCountNonZero++;
-									if (delta < cumInfo.minTimeNonZero)
-										cumInfo.minTimeNonZero = delta;
-								}
-							}
-						}
-					}
-					break;
-					
-				case TimerStep.STOP_ACCUMULATING:
-					threadIndent = (Integer) indentsByThreadId.get(threadId);
-					indent = 0;
-					if (threadIndent != null)
-						indent = threadIndent.intValue();
-					strb.setLength(0);
-					strb.append(step.currentTime);
-					strb.append("\t"); //$NON-NLS-1$
-					for (int j = 0; j < indent; j++) {
-						strb.append("     "); //$NON-NLS-1$
-					}
-					strb.append("Stop  Accumulating"); //$NON-NLS-1$
-					strb.append(" \""); //$NON-NLS-1$
-					strb.append(step.id);
-					strb.append("\"   id("); //$NON-NLS-1$
-					strb.append(step.threadId);
-					strb.append(")"); //$NON-NLS-1$
-					cumSteps = (Map) stepInfoByThreadId.get(threadId);
-					if (cumSteps != null) {
-						Object info = cumSteps.get(step.id);
-						if (info instanceof CumulativeInformation) {
-							CumulativeInformation cumInfo = (CumulativeInformation) info;
-							if (cumInfo.currentCumulativeStep != null) {
-								strb.append("   cumulative time="); //$NON-NLS-1$
-								strb.append(cumInfo.cumTime);
-								strb.append("   cumulative count="); //$NON-NLS-1$
-								strb.append(cumInfo.cumCount);
-								strb.append("   max time="); //$NON-NLS-1$
-								strb.append(cumInfo.maxTime);
-								strb.append("   min time="); //$NON-NLS-1$
-								strb.append(cumInfo.minTime);
-								strb.append("   avg time="); //$NON-NLS-1$
-								strb.append(((double) cumInfo.cumTime)/cumInfo.cumCount);
-								strb.append("   NonZero times: cumulative ~0 count="); //$NON-NLS-1$
-								strb.append(cumInfo.cumCountNonZero);
-								if (cumInfo.cumCountNonZero != 0) {
-									strb.append("   min ~0 time="); //$NON-NLS-1$
-									strb.append(cumInfo.minTimeNonZero);
-									strb.append("   avg ~0 time="); //$NON-NLS-1$
-									strb.append(((double) cumInfo.cumTime) / cumInfo.cumCountNonZero);
-								}
-							}
-						}
-					}
-					if (i > 0 && (step.currentTime - prevStep.currentTime) > 0)
-						System.out.println("-- " + (step.currentTime - prevStep.currentTime) + " ms --"); //$NON-NLS-1$ //$NON-NLS-2$
-					prevStep = step;
-					System.out.println(strb);
-					break;
-			}
-		}
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java
deleted file mode 100644
index 040d39d..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UIContextDetermination.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: UIContextDetermination.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2006/08/09 15:38:22 $$ 
- */
-package org.eclipse.jem.util;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.*;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * Static utility class for UIContext determination.
- * 
- * @since 1.0.0
- */
-public class UIContextDetermination {
-
-	private static final int UNKNOWN = 100;
-
-	public static final String HEADLESS_CONTEXT_LITERAL = "Headless"; //$NON-NLS-1$
-
-	public static final String UI_CONTEXT_LITERAL = "UI"; //$NON-NLS-1$
-
-	public static final int HEADLESS_CONTEXT = 102;
-
-	public static final int UI_CONTEXT = 101;
-
-	private static Map cachedExtensions = null;
-
-	private static int currentContext = UNKNOWN;
-
-	private UIContextDetermination() {
-	}
-
-	/**
-	 * Returns an instance of a given class based on the UI or Headless context.
-	 * 
-	 * @param key
-	 * @return new class instance for the given key.
-	 * @throws IllegalArgumentException
-	 *             If the key is invalid (e.g. no extension is found for the key)
-	 */
-	public static Object createInstance(String key) {
-		Object result = null;
-		if (cachedExtensions == null)
-			initExtensions();
-		IConfigurationElement contextSensitiveClass = (IConfigurationElement) cachedExtensions.get(key);
-		try {
-			if (contextSensitiveClass != null)
-				result = contextSensitiveClass
-						.createExecutableExtension(UIContextDeterminationRegistryReader.UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR);
-		} catch (CoreException e) {
-			Logger.getLogger().logError("Problem loading extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
-			Logger.getLogger().logError(e);
-		}
-		if (result == null)
-			Logger.getLogger().logError("Extension not found for key \"" + key + "\"."); //$NON-NLS-1$ //$NON-NLS-2$
-		return result;
-	}
-
-	/**
-	 * Returns the current context -- determines the value if necessary.
-	 * 
-	 * @return current context
-	 * @see #HEADLESS_CONTEXT
-	 * @see #UI_CONTEXT
-	 */
-	public static int getCurrentContext() {
-		if (currentContext == UNKNOWN) {
-			currentContext = HEADLESS_CONTEXT;
-			new UITesterRegistryReader().readRegistry();
-		}
-		return currentContext;
-	}
-
-	/*
-	 * Invokes the UIContextDeterminationRegistryReader to cache all of the extensions, if necessary.
-	 *  
-	 */
-	private static void initExtensions() {
-		if (cachedExtensions == null) {
-			cachedExtensions = new HashMap();
-			new UIContextDeterminationRegistryReader().readRegistry();
-		}
-	}
-
-	/*
-	 * Converts the input to one of UI_CONTEXT or HEADLESS_CONTEXT. Defaults to HEADLESS on invalid input
-	 * 
-	 * @param literal @return
-	 */
-	private static int convertLiteral(String literal) {
-		return (UI_CONTEXT_LITERAL.equals(literal)) ? UI_CONTEXT : HEADLESS_CONTEXT;
-	}
-
-	/*
-	 * Reads the registration of UI Context-sensitive class extensions and initializes the cache of the UIContextDetermination object.
-	 * 
-	 * @author mdelder
-	 */
-	private static class UIContextDeterminationRegistryReader extends RegistryReader {
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_ELEMENT = "uiContextSensitiveClass"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR = "key"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
-
-		public static final String UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR = "context"; //$NON-NLS-1$
-
-		public UIContextDeterminationRegistryReader() {
-			super(JEMUtilPlugin.PLUGIN_ID, JEMUtilPlugin.UI_CONTEXT_EXTENSION_POINT);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jem.util.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		public boolean readElement(IConfigurationElement element) {
-			boolean result = false;
-			if (element.getName().equals(UI_CONTEXT_SENSTIVE_CLASS_ELEMENT)) {
-
-				String key = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_KEY_ATTR);
-				String context = element.getAttribute(UI_CONTEXT_SENSTIVE_CLASS_CONTEXT_ATTR);
-
-				if (!cachedExtensions.containsKey(key) || getCurrentContext() == convertLiteral(context))
-					cachedExtensions.put(key, element);
-				result = true;
-			}
-			return result;
-		}
-	}
-
-	/*
-	 * Reads the uiTester extension and instantiate the any of the UITester classes it finds.
-	 * 
-	 * The implementation has the side effect that if multiple UITesters are registered, any of them can trip the currentContext into the UI_CONTEXT
-	 * state.
-	 * 
-	 * @author mdelder
-	 */
-	private static class UITesterRegistryReader extends RegistryReader {
-
-		public static final String UI_TESTER_ELEMENT = "uiTester"; //$NON-NLS-1$
-
-		public static final String UI_TESTER_CLASSNAME_ATTR = "className"; //$NON-NLS-1$
-
-		public UITesterRegistryReader() {
-			super(JEMUtilPlugin.PLUGIN_ID, JEMUtilPlugin.UI_TESTER_EXTENSION_POINT);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see com.ibm.etools.emf.workbench.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-		 */
-		public boolean readElement(IConfigurationElement element) {
-			boolean result = false;
-			if (element.getName().equals(UI_TESTER_ELEMENT)) {
-				result = true;
-				try {
-					// Don't bother running tester it if we already processed one extension that returned true.
-					if (currentContext != UI_CONTEXT && canCreateExecutableExtension(element)) {
-						UITester tester = (UITester) element.createExecutableExtension(UI_TESTER_CLASSNAME_ATTR);
-						if (tester.isCurrentContextUI())
-							currentContext = UI_CONTEXT;
-					}
-				} catch (Throwable t) {
-					Logger.getLogger().log("UIContextDetermination is proceeding in HEADLESS mode"); //$NON-NLS-1$
-				}
-			}
-			return result;
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java
deleted file mode 100644
index 54517e8..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/UITester.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.eclipse.jem.util;
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: UITester.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-/**
- * Interface for a UITester. The "classname" attribute on the "uiTester" extension point should implement this class.
- * 
- * @since 1.0.0
- */
-public interface UITester {
-
-	/**
-	 * Answer if the current context is an UI context.
-	 * 
-	 * @return <code>true</code> if an UI context.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isCurrentContextUI();
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/EMFWorkbenchContextBase.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/EMFWorkbenchContextBase.java
deleted file mode 100644
index bedff60..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/EMFWorkbenchContextBase.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: EMFWorkbenchContextBase.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-
-import org.eclipse.jem.internal.util.emf.workbench.*;
-import org.eclipse.jem.internal.util.emf.workbench.nls.EMFWorkbenchResourceHandler;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * ContextBase for EMFWorkbench.
- * 
- * <p>
- * This is meant to be subclassed as needed for additional or override function. It will be instantiated by default.
- * </p>
- * 
- * @since 1.0.0
- */
-public class EMFWorkbenchContextBase {
-
-	protected IProject project;
-
-	protected ProjectResourceSet resourceSet;
-
-	/**
-	 * Construct with a project.
-	 * 
-	 * @param aProject
-	 * 
-	 * @since 1.0.0
-	 */
-	public EMFWorkbenchContextBase(IProject aProject) {
-		if (aProject == null)
-			throw new IllegalArgumentException(EMFWorkbenchResourceHandler.getString("EMFWorkbenchContextBase_ERROR_1")); //$NON-NLS-1$
-		project = aProject;
-	}
-
-	/**
-	 * Dispose of the context base.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public void dispose() {
-		if (resourceSet != null)
-			resourceSet.release();
-		resourceSet = null;
-		project = null;
-	}
-
-	/**
-	 * Get the project this context is associated with.
-	 * 
-	 * @return project
-	 * 
-	 * @since 1.0.0
-	 */
-	public IProject getProject() {
-		return project;
-	}
-
-	/**
-	 * Return the resource set (creating if needed) for context.
-	 * 
-	 * @return resource set
-	 * 
-	 * @since 1.0.0
-	 */
-	public ProjectResourceSet getResourceSet() {
-		if (resourceSet == null) {
-			resourceSet = createResourceSet();
-			initializeResourceSet(resourceSet);
-		}
-		return resourceSet;
-	}
-
-	/**
-	 * Used for optimization; answer whether a resourceSet has been created
-	 * 
-	 * @return <code>true</code> if a resource set has been created.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean hasResourceSet() {
-		return resourceSet != null;
-	}
-
-	/**
-	 * Initialize the resource set.
-	 * 
-	 * @param aResourceSet
-	 * 
-	 * @since 1.0.0
-	 */
-	protected void initializeResourceSet(ProjectResourceSet aResourceSet) {
-		createResourceSetSynchronizer(aResourceSet);
-		aResourceSet.setURIConverter(createURIConverter(aResourceSet));
-		aResourceSet.add(new WorkspaceResourceHandler());
-		JEMUtilPlugin.getDefault().addExtendedResourceHandlers(aResourceSet);
-
-	}
-
-	/**
-	 * Create the resource set. By default it is a ProjectResourceSetImpl.
-	 * 
-	 * @return project's new resource set.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected ProjectResourceSet createResourceSet() {
-		if (project == null)
-			throw new IllegalStateException(EMFWorkbenchResourceHandler.getString("EMFWorkbenchContextBase_ERROR_2")); //$NON-NLS-1$
-		return new ProjectResourceSetImpl(project);
-	}
-
-	/**
-	 * Create a URIConverter for the resource set.
-	 * 
-	 * @param aResourceSet
-	 * @return a uri converter.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected WorkbenchURIConverter createURIConverter(ProjectResourceSet aResourceSet) {
-		return new WorkbenchURIConverterImpl(getProject(), aResourceSet.getSynchronizer());
-	}
-
-	/**
-	 * Create a resource set workbench synchronizer.
-	 * 
-	 * @param aResourceSet
-	 * @return a resource set workbench synchronizer.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected ResourceSetWorkbenchSynchronizer createResourceSetSynchronizer(ProjectResourceSet aResourceSet) {
-		return EMFWorkbenchContextFactory.INSTANCE.createSynchronizer(aResourceSet, getProject());
-	}
-
-	/**
-	 * Delete the resource from the workspace.
-	 * 
-	 * @param aResource
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public void deleteResource(Resource aResource) throws CoreException {
-		if (aResource != null)
-			deleteFile(aResource);
-	}
-
-	/**
-	 * Delete the file associated with the resource.
-	 * 
-	 * @param resource
-	 * 
-	 * @since 1.0.0
-	 */
-	public void deleteFile(Resource resource) {
-		throw new UnsupportedOperationException(EMFWorkbenchResourceHandler.getString("EMFWorkbenchContextBase_ERROR_0")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Get resource (with the given URI) from the project resource set. Load it if not already loaded.
-	 * 
-	 * @param uri
-	 * @return resource for the uri, or <code>null</code> if not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public Resource getResource(URI uri) {
-		return this.resourceSet.getResource(uri, true);
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/IEMFContextContributor.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/IEMFContextContributor.java
deleted file mode 100644
index 465d7fa..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/IEMFContextContributor.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: IEMFContextContributor.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-
-package org.eclipse.jem.util.emf.workbench;
-
-/**
- * EMF Context Contributor interface. Implimenters are called to contribute to the context.
- * 
- * @see org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase#createEMFContext(IProject, IEMFContextContributor)
- * @since 1.0.0
- */
-public interface IEMFContextContributor {
-
-	/**
-	 * This is your opportunity to add a primary EMFNature. Typically you would add to the WorkbenchContext held by <code>aNature</code> in order to
-	 * change the container for the WorkbenchURIConverter or add adapter factories to the ResourceSet or anything else that is needed.
-	 * 
-	 * @param aNature
-	 * 
-	 * @since 1.0.0
-	 */
-	void primaryContributeToContext(EMFWorkbenchContextBase aNature);
-
-	/**
-	 * This is your opportunity to add a secondary EMFNature. Typically you would add to the WorkbenchContext held by <code>aNature</code> in order
-	 * to change the container for the WorkbenchURIConverter or add adapter factories to the ResourceSet or anything else that is needed.
-	 * 
-	 * @param aNature
-	 * 
-	 * @since 1.0.0
-	 */
-	void secondaryContributeToContext(EMFWorkbenchContextBase aNature);
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ISynchronizerExtender.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ISynchronizerExtender.java
deleted file mode 100644
index f70dd1e..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ISynchronizerExtender.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ISynchronizerExtender.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import org.eclipse.core.resources.IResourceDelta;
-
-/**
- * Implimenters allows clients, eg {@link org.eclipse.jem.util.emf.workbench.EMFNatureContributor}, to extend the behavior of the
- * ResourceSetWorkbenchSynchronizer.
- * 
- * @see org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer#addExtender(ISynchronizerExtender)
- * @since 1.0.0
- */
-public interface ISynchronizerExtender {
-
-	/**
-	 * Notification that project has changed.
-	 * 
-	 * @param delta
-	 * 
-	 * @since 1.0.0
-	 */
-	void projectChanged(IResourceDelta delta);
-
-	/**
-	 * Notification that project has been closed.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	void projectClosed();
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectResourceSet.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectResourceSet.java
deleted file mode 100644
index 68c9735..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectResourceSet.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ProjectResourceSet.java,v $$
- *  $$Revision: 1.3 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-/**
- * A ResourceSet for an entire project. It allows sharing of resources from multiple editors/viewers for a project.
- * <p>
- * An additional Notification type is sent out by ProjectResourceSet's of project resource set about to be released. A release is
- * called when projects are about to be closed. They release all of the resources and unload them. This notification can be used 
- * to know that this is about to happen and to do something before the resources become invalid. It will be sent out just before the
- * resource set will be released. 
- * 
- * @see ProjectResourceSet#SPECIAL_NOTIFICATION_TYPE
- * @see ProjectResourceSet#PROJECTRESOURCESET_ABOUT_TO_RELEASE_ID 
- * @since 1.0.0
- */
-
-public interface ProjectResourceSet extends ResourceSet {
-
-	IProject getProject();
-	
-	/**
-	 * Notification type in notifications from the ProjectResourceSet for
-	 * special notifications, and not the standard ones from ResourceSet.
-	 * 
-	 * @see org.eclipse.emf.common.notify.Notification#getEventType()
-	 * @since 1.1.0
-	 */
-	static int SPECIAL_NOTIFICATION_TYPE = Notification.EVENT_TYPE_COUNT+4;
-	
-	/**
-	 * Notification Feature ID for resource set about to be released.
-	 * Use {@link org.eclipse.emf.common.notify.Notification#getFeatureID(java.lang.Class)} to
-	 * get this id. The getFeature() on notification will return null.
-	 * 
-	 * @since 1.1.0
-	 */
-	static int PROJECTRESOURCESET_ABOUT_TO_RELEASE_ID = 1000;
-
-	/**
-	 * Call when the ResourceSet is no longer to be used.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	void release();
-
-	/**
-	 * Add the <code>resourceHandler</code> to the end of the list of resourceHandlers.
-	 * 
-	 * @param resourceHandler
-	 *            IResourceHandler
-	 * @return boolean Return <code>true</code> if it was added.
-	 * @since 1.0.0
-	 */
-	boolean add(ResourceHandler resourceHandler);
-
-	/**
-	 * Add the <code>resourceHandler</code> to the front of the list of resourceHandlers.
-	 * 
-	 * @param resourceHandler
-	 *            IResourceHandler
-	 * @since 1.0.0
-	 */
-	void addFirst(ResourceHandler resourceHandler);
-
-	/**
-	 * Remove the <code>resourceHandler</code> from the list of resourceHandlers.
-	 * 
-	 * @param resourceHandler
-	 *            IResourceHandler
-	 * @return boolean Return true if it was removed.
-	 * @since 1.0.0
-	 */
-	boolean remove(ResourceHandler resourceHandler);
-
-	/**
-	 * Return the ResourceSet synchronizer that will synchronize the ResourceSet with changes from the Workbench.
-	 * 
-	 * @return ResourceSetWorkbenchSynchronizer
-	 * @since 1.0.0
-	 */
-	ResourceSetWorkbenchSynchronizer getSynchronizer();
-
-	/**
-	 * Set the ResourceSet synchronizer that will synchronize the ResourceSet with changes from the Workbench.
-	 * 
-	 * @param aSynchronizer
-	 * @return ResourceSetWorkbenchSynchronizer
-	 * @since 1.0.0
-	 */
-	void setSynchronizer(ResourceSetWorkbenchSynchronizer aSynchronizer);
-
-	/**
-	 * This should be called by clients whenever the structure of the project changes such that any cached URIs will be invalid. For example, if the
-	 * source folders within the URIConverter change.
-	 * 
-	 * @since 1.0.0
-	 */
-	void resetNormalizedURICache();
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectUtilities.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectUtilities.java
deleted file mode 100644
index b339d88..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ProjectUtilities.java
+++ /dev/null
@@ -1,754 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ProjectUtilities.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2005/05/11 19:01:24 $$ 
- */
-
-package org.eclipse.jem.util.emf.workbench;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.*;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * EMF Workbench Project Utilities.
- * 
- * @since 1.0.0
- */
-
-public class ProjectUtilities {
-
-	/**
-	 * Project control file name in project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public final static String DOT_PROJECT = ".project"; //$NON-NLS-1$
-
-	/**
-	 * Classpath control file name in project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public final static String DOT_CLASSPATH = ".classpath"; //$NON-NLS-1$
-
-	public ProjectUtilities() {
-	}
-
-	/**
-	 * Add the nature id to the project ahead of all other nature ids.
-	 * 
-	 * @param proj
-	 * @param natureId
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void addNatureToProject(IProject proj, String natureId) throws CoreException {
-		IProjectDescription description = proj.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		String[] newNatures = new String[prevNatures.length + 1];
-		System.arraycopy(prevNatures, 0, newNatures, 1, prevNatures.length);
-		newNatures[0] = natureId;
-		description.setNatureIds(newNatures);
-		proj.setDescription(description, null);
-	}
-
-	/**
-	 * Add the nature id after all of the other nature ids for the project.
-	 * 
-	 * @param proj
-	 * @param natureId
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void addNatureToProjectLast(IProject proj, String natureId) throws CoreException {
-		IProjectDescription description = proj.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		String[] newNatures = new String[prevNatures.length + 1];
-		System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
-		newNatures[prevNatures.length] = natureId;
-		description.setNatureIds(newNatures);
-		proj.setDescription(description, null);
-	}
-
-	/**
-	 * Remove the nature id from the project.
-	 * 
-	 * @param project
-	 * @param natureId
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void removeNatureFromProject(IProject project, String natureId) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		String[] prevNatures = description.getNatureIds();
-		int size = prevNatures.length;
-		int newsize = 0;
-		String[] newNatures = new String[size];
-		boolean matchfound = false;
-		for (int i = 0; i < size; i++) {
-			if (prevNatures[i].equals(natureId)) {
-				matchfound = true;
-				continue;
-			} else
-				newNatures[newsize++] = prevNatures[i];
-		}
-		if (!matchfound)
-			throw new CoreException(new Status(IStatus.ERROR, JEMUtilPlugin.ID, 0,
-					"The nature id " + natureId + " does not exist on the project " + project.getName(), null)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		else {
-			String[] temp = newNatures;
-			newNatures = new String[newsize];
-			System.arraycopy(temp, 0, newNatures, 0, newsize);
-			description.setNatureIds(newNatures);
-			project.setDescription(description, null);
-		}
-	}
-
-	/**
-	 * Add the list of projects to end of the "referenced projects" list from the project's description.
-	 * 
-	 * @param project
-	 * @param toBeAddedProjectsList
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void addReferenceProjects(IProject project, List toBeAddedProjectsList) throws CoreException {
-
-		IProjectDescription description = project.getDescription();
-		IProject[] projects = description.getReferencedProjects();
-
-		ArrayList projectsList = new ArrayList();
-
-		for (int i = 0; i < projects.length; i++) {
-			projectsList.add(projects[i]);
-		}
-
-		for (int i = 0; i < toBeAddedProjectsList.size(); i++) {
-			projectsList.add(toBeAddedProjectsList.get(i));
-		}
-
-		IProject[] refProjects = new IProject[projectsList.size()];
-
-		for (int i = 0; i < refProjects.length; i++) {
-			refProjects[i] = (IProject) (projectsList.get(i));
-		}
-
-		description.setReferencedProjects(refProjects);
-		project.setDescription(description, null);
-	}
-
-	/**
-	 * Add the single project to the end of the "referenced projects" list from the project's description.
-	 * 
-	 * @param project
-	 * @param projectToBeAdded
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void addReferenceProjects(IProject project, IProject projectToBeAdded) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		IProject[] projects = description.getReferencedProjects();
-
-		ArrayList projectsList = new ArrayList();
-
-		for (int i = 0; i < projects.length; i++) {
-			projectsList.add(projects[i]);
-		}
-
-		projectsList.add(projectToBeAdded);
-
-		IProject[] refProjects = new IProject[projectsList.size()];
-
-		for (int i = 0; i < refProjects.length; i++) {
-			refProjects[i] = (IProject) (projectsList.get(i));
-		}
-
-		description.setReferencedProjects(refProjects);
-		project.setDescription(description, null);
-	}
-
-	/**
-	 * Force a an immediate build of the project.
-	 * 
-	 * @param project
-	 * @param progressMonitor
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void forceAutoBuild(IProject project, IProgressMonitor progressMonitor) {
-		try {
-			project.build(IncrementalProjectBuilder.FULL_BUILD, progressMonitor);
-		} catch (CoreException ce) {
-			//Revisit: Need to use a Logger
-			//Logger.getLogger().logError(ce);
-		}
-	}
-
-	/**
-	 * Return if auto build is turned on.
-	 * 
-	 * @return <code>true</code> if auto build is turned on.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean getCurrentAutoBuildSetting() {
-
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IWorkspaceDescription wd = workspace.getDescription();
-		return wd.isAutoBuilding();
-	}
-
-	/**
-	 * Get the project associated with the given object.
-	 * 
-	 * @param object
-	 *            may be an <code>IProject, IResource, IAdaptable (to an IProject), EObject (gets IProject if object is in a ProjectResourceSet</code>.
-	 * @param natureId
-	 *            if <code>null</code> then returns project. If not <code>null</code> then returns project only if project has this nature id.
-	 * @return project associated with the object or <code>null</code> if not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(Object object, String natureId) {
-		IProject result = getProject(object);
-		if (natureId == null)
-			return result;
-		if (result != null && result.isAccessible() && natureId != null)
-			try {
-				if (result.hasNature(natureId))
-					return result;
-			} catch (CoreException e) {
-				Logger.getLogger().logError(e);
-			}
-		return null;
-	}
-
-	/**
-	 * Get the project associated with the given object.
-	 * 
-	 * @param object
-	 *            may be an <code>IProject, IResource, IAdaptable (to an IProject), EObject (gets IProject if object is in a ProjectResourceSet</code>.
-	 * @return project associated with the object or <code>null</code> if not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(Object object) {
-		IProject result = null;
-
-		if (object instanceof IProject)
-			result = (IProject) object;
-		else if (object instanceof IResource)
-			result = ((IResource) object).getProject();
-		else if (object instanceof IAdaptable)
-			result = (IProject) ((IAdaptable) object).getAdapter(IProject.class);
-		else if (object instanceof EObject)
-			result = getProject((EObject) object);
-
-		return result;
-	}
-
-	/**
-	 * Get the project associated with the given EObject. (If in a ProjectResourceSet, then the project from that resource set).
-	 * 
-	 * @param aRefObject
-	 * @return project if associated or <code>null</code> if not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(EObject aRefObject) {
-		if (aRefObject != null) {
-			Resource resource = aRefObject.eResource();
-			return getProject(resource);
-		}
-		return null;
-	}
-
-	/**
-	 * Get the project associated with the given Resource. (If in a ProjectResourceSet, then the project from that resource set).
-	 * 
-	 * @param resource
-	 * @return project if associated or <code>null</code> if not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(Resource resource) {
-		ResourceSet set = resource == null ? null : resource.getResourceSet();
-		if (set instanceof ProjectResourceSet)
-			return ((ProjectResourceSet) set).getProject();
-		URIConverter converter = set == null ? null : set.getURIConverter();
-		if (converter != null && converter instanceof WorkbenchURIConverter && ((WorkbenchURIConverter) converter).getOutputContainer() != null)
-			return ((WorkbenchURIConverter) converter).getOutputContainer().getProject();
-		else
-			return null;
-	}
-
-	/**
-	 * Remove the list of projects from the list of "referenced projects" in the project's description.
-	 * 
-	 * @param project
-	 * @param toBeRemovedProjectList
-	 * @throws org.eclipse.core.runtime.CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void removeReferenceProjects(IProject project, List toBeRemovedProjectList) throws org.eclipse.core.runtime.CoreException {
-		IProjectDescription description = project.getDescription();
-		IProject[] projects = description.getReferencedProjects();
-
-		ArrayList projectsList = new ArrayList();
-
-		for (int i = 0; i < projects.length; i++) {
-			projectsList.add(projects[i]);
-		}
-
-		for (int i = 0; i < toBeRemovedProjectList.size(); i++) {
-			projectsList.remove(toBeRemovedProjectList.get(i));
-		}
-
-		IProject[] refProjects = new IProject[projectsList.size()];
-
-		for (int i = 0; i < refProjects.length; i++) {
-			refProjects[i] = (IProject) (projectsList.get(i));
-		}
-
-		description.setReferencedProjects(refProjects);
-		project.setDescription(description, null);
-	}
-
-	/**
-	 * Remove the project from the list of "referenced projects" in the description for the given project.
-	 * 
-	 * @param project
-	 * @param toBeRemovedProject
-	 * @throws org.eclipse.core.runtime.CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void removeReferenceProjects(IProject project, IProject toBeRemovedProject) throws org.eclipse.core.runtime.CoreException {
-		IProjectDescription description = project.getDescription();
-		IProject[] projects = description.getReferencedProjects();
-
-		ArrayList projectsList = new ArrayList();
-
-		for (int i = 0; i < projects.length; i++) {
-			projectsList.add((projects[i]));
-		}
-
-		projectsList.remove(toBeRemovedProject);
-
-		IProject[] refProjects = new IProject[projectsList.size()];
-
-		for (int i = 0; i < refProjects.length; i++) {
-			refProjects[i] = (IProject) (projectsList.get(i));
-		}
-
-		description.setReferencedProjects(refProjects);
-		project.setDescription(description, null);
-	}
-
-	/**
-	 * Turn auto-building off.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void turnAutoBuildOff() {
-		try {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription wd = workspace.getDescription();
-			wd.setAutoBuilding(false);
-			workspace.setDescription(wd);
-		} catch (CoreException ce) {
-			//Logger.getLogger().logError(ce);
-		}
-	}
-
-	/**
-	 * Turn auto-building on.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void turnAutoBuildOn() {
-		try {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription wd = workspace.getDescription();
-			wd.setAutoBuilding(true);
-			workspace.setDescription(wd);
-		} catch (CoreException ce) {
-			//Logger.getLogger().logError(ce);
-		}
-	}
-
-	/**
-	 * Set the auto-building state.
-	 * 
-	 * @param aBoolean
-	 *            <code>true</code> to turn auto-building on.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void turnAutoBuildOn(boolean aBoolean) {
-		try {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription wd = workspace.getDescription();
-			wd.setAutoBuilding(aBoolean);
-			workspace.setDescription(wd);
-		} catch (CoreException ce) {
-			//Logger.getLogger().logError(ce);
-
-		}
-	}
-
-	/**
-	 * Adds a builder to the build spec for the given project.
-	 * 
-	 * @param builderID
-	 *            The id of the builder.
-	 * @param project
-	 *            Project to add to.
-	 * @return whether the builder id was actually added (it may have already existed)
-	 * @throws CoreException
-	 * @since 1.0.0
-	 */
-	public static boolean addToBuildSpec(String builderID, IProject project) throws CoreException {
-		return addToBuildSpecBefore(builderID, null, project);
-	}
-
-	/**
-	 * Adds a builder to the build spec for the given project, immediately before the specified successor builder.
-	 * 
-	 * @param builderID
-	 *            The id of the builder.
-	 * @param successorID
-	 *            The id to put the builder before.
-	 * @return whether the builder id was actually added (it may have already existed)
-	 * @throws CoreException
-	 * @since 1.0.0
-	 */
-	public static boolean addToBuildSpecBefore(String builderID, String successorID, IProject project) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		ICommand[] commands = description.getBuildSpec();
-		boolean found = false;
-		for (int i = 0; i < commands.length; ++i) {
-			if (commands[i].getBuilderName().equals(builderID)) {
-				found = true;
-				break;
-			}
-		}
-		if (!found) {
-			boolean successorFound = false;
-			ICommand command = description.newCommand();
-			command.setBuilderName(builderID);
-			ICommand[] newCommands = new ICommand[commands.length + 1];
-			for (int j = 0, index = 0; j < commands.length; j++, index++) {
-				if (successorID != null && commands[j].getBuilderName().equals(successorID)) {
-					successorFound = true;
-					newCommands[index++] = command;
-				}
-				newCommands[index] = commands[j];
-			}
-			if (!successorFound)
-				newCommands[newCommands.length - 1] = command;
-			description.setBuildSpec(newCommands);
-			project.setDescription(description, null);
-		}
-		return !found;
-	}
-
-	/**
-	 * Remove the builder from the build spec.
-	 * 
-	 * @param builderID
-	 *            The id of the builder.
-	 * @param project
-	 *            Project to remove from.
-	 * @return boolean if the builder id was found and removed
-	 * @throws CoreException
-	 * @since 1.0.0
-	 */
-	public static boolean removeFromBuildSpec(String builderID, IProject project) throws CoreException {
-		IProjectDescription description = project.getDescription();
-		ICommand[] commands = description.getBuildSpec();
-		boolean found = false;
-		for (int i = 0; i < commands.length; ++i) {
-			if (commands[i].getBuilderName().equals(builderID)) {
-				found = true;
-				break;
-			}
-		}
-		if (found) {
-			ICommand[] newCommands = new ICommand[commands.length - 1];
-			int newCount = 0;
-			for (int i = 0; i < commands.length; ++i) {
-				if (!(commands[i].getBuilderName().equals(builderID))) {
-					//Add the existng to the new array
-					newCommands[newCount] = commands[i];
-					newCount++;
-				}
-			}
-
-			description.setBuildSpec(newCommands);
-			project.setDescription(description, null);
-
-		}
-		return found;
-
-	}
-
-	/**
-	 * Ensure the container is not read-only.
-	 * <p>
-	 * For Linux, a Resource cannot be created in a ReadOnly folder. This is only necessary for new files.
-	 * 
-	 * @param resource
-	 *            workspace resource to make read/write
-	 * @since 1.0.0
-	 */
-	public static void ensureContainerNotReadOnly(IResource resource) {
-		if (resource != null && !resource.exists()) { //it must be new
-			IContainer container = resource.getParent();
-			ResourceAttributes attr = container.getResourceAttributes();
-			while (attr != null && !attr.isReadOnly()) {
-				container = container.getParent();
-				if (container == null)
-					break;
-				attr = container.getResourceAttributes();
-			}
-			if (container != null && attr != null)
-				attr.setReadOnly(false);
-		}
-	}
-
-	/**
-	 * Get projects from primary nature.
-	 * 
-	 * @param natureID
-	 * @return All projects that have the given nature id as the first nature id.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject[] getProjectsForPrimaryNature(String natureID) {
-		IProject[] projectsWithNature = new IProject[] {};
-		List result = new ArrayList();
-		IProject[] projects = getAllProjects();
-		for (int i = 0; i < projects.length; i++) {
-			if (isProjectPrimaryNature(projects[i], natureID))
-				result.add(projects[i]);
-		}
-		return (IProject[]) result.toArray(projectsWithNature);
-	}
-
-	/**
-	 * Get all projects in the workspace
-	 * 
-	 * @return all workspace projects
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject[] getAllProjects() {
-		return ResourcesPlugin.getWorkspace().getRoot().getProjects();
-	}
-
-	/**
-	 * Is this nature id the primary nature id for the project
-	 * 
-	 * @param project
-	 * @param natureID
-	 * @return <code>true</code> if first nature id for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean isProjectPrimaryNature(IProject project, String natureID) {
-		String[] natures = null;
-		try {
-			natures = project.getDescription().getNatureIds();
-		} catch (Exception e1) {
-		}
-		return (natures != null && natures.length > 0 && natures[0].equals(natureID));
-	}
-
-	protected static IPath createPath(IProject p, String defaultSourceName) {
-		IPath path = new Path(p.getName());
-		path = path.append(defaultSourceName);
-		path = path.makeAbsolute();
-		return path;
-	}
-
-	/**
-	 * Returns a list of existing files which will be modified if the classpath changes for the given proeject.
-	 * 
-	 * @param p
-	 *            project
-	 * @return list of affected files.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static List getFilesAffectedByClasspathChange(IProject p) {
-		List result = new ArrayList(2);
-		addFileIfExists(p, result, DOT_CLASSPATH);
-		addFileIfExists(p, result, DOT_PROJECT);
-		return result;
-	}
-
-	protected static void addFileIfExists(IProject p, List aList, String filename) {
-		IFile aFile = p.getFile(filename);
-		if (aFile != null && aFile.exists())
-			aList.add(aFile);
-	}
-
-	/**
-	 * Strip off a leading "/" from each project name in the array, if it has one.
-	 * 
-	 * @param projecNames
-	 * @return array of project names with all leading '/' removed.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static String[] getProjectNamesWithoutForwardSlash(String[] projecNames) {
-		String[] projNames = new String[projecNames.length];
-		List temp = java.util.Arrays.asList(projecNames);
-		for (int i = 0; i < temp.size(); i++) {
-			String name = (String) (temp.get(i));
-			if (name.startsWith("/")) { //$NON-NLS-1$
-				projNames[i] = name.substring(1, name.length());
-			} else {
-				projNames[i] = name;
-			}
-		}
-		return projNames;
-	}
-
-	protected static URL createFileURL(IPath path) {
-		try {
-			return path.toFile().toURL();
-		} catch (MalformedURLException e) {
-			Logger.getLogger().log(e, Level.WARNING);
-			return null;
-		}
-	}
-
-	/**
-	 * Find first newObject that is not in the oldObjects array (using "==").
-	 * 
-	 * @param oldObjects
-	 * @param newObjects
-	 * @return first newObject not found in oldObjects, or <code>null</code> if all found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Object getNewObject(Object[] oldObjects, Object[] newObjects) {
-		if (oldObjects != null && newObjects != null && oldObjects.length < newObjects.length) {
-			for (int i = 0; i < newObjects.length; i++) {
-				boolean found = false;
-				Object object = newObjects[i];
-				for (int j = 0; j < oldObjects.length; j++) {
-					if (oldObjects[j] == object) {
-						found = true;
-						break;
-					}
-				}
-				if (!found)
-					return object;
-			}
-		}
-		if (oldObjects == null && newObjects != null && newObjects.length == 1)
-			return newObjects[0];
-		return null;
-	}
-
-	/**
-	 * List of all files in the project.
-	 * <p>
-	 * Note: A more efficient way to do this is to use {@link IResource#accept(org.eclipse.core.resources.IResourceProxyVisitor, int)}
-	 * 
-	 * @param 1.0.0
-	 * @return list of files in the project
-	 * 
-	 * @see IResource#accept(org.eclipse.core.resources.IResourceProxyVisitor, int)
-	 * @since 1.0.0
-	 */
-	public static List getAllProjectFiles(IProject project) {
-		List result = new ArrayList();
-		if (project == null)
-			return result;
-		try {
-			result = collectFiles(project.members(), result);
-		} catch (CoreException e) {
-		}
-		return result;
-	}
-
-	private static List collectFiles(IResource[] members, List result) throws CoreException {
-		// recursively collect files for the given members
-		for (int i = 0; i < members.length; i++) {
-			IResource res = members[i];
-			if (res instanceof IFolder) {
-				collectFiles(((IFolder) res).members(), result);
-			} else if (res instanceof IFile) {
-				result.add(res);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Get the project.
-	 * 
-	 * @param projectName
-	 * @return a IProject given the projectName
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(String projectName) {
-		return ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-	}
-
-	/**
-	 * Return whether the given builder name is attached to the project.
-	 * 
-	 * @param project
-	 * @param builderName
-	 * @return <code>true</code> if builder name is attached to the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean hasBuilder(IProject project, String builderName) {
-		try {
-			ICommand[] builders = project.getDescription().getBuildSpec();
-			for (int i = 0; i < builders.length; i++) {
-				ICommand builder = builders[i];
-				if (builder != null) {
-					if (builder.getBuilderName().equals(builderName))
-						return true;
-				}
-			}
-		} catch (Exception e) {
-		}
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceHandler.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceHandler.java
deleted file mode 100644
index 0170780..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ResourceHandler.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-/**
- * Implementers of this interface are provide extension capabilities on resource set. Such as looking or creating in other resource sets for a
- * resource or an EObject.
- * 
- * @see org.eclipse.jem.util.emf.workbench.ProjectResourceSet#add(ResourceHandler)
- * @since 1.0.0
- */
-public interface ResourceHandler {
-
-	/**
-	 * Each ResourceHandler for a WorkbenchContext (which holds a ProjectResourceSet) will get an oportunity to get the Resource given the uriString
-	 * prior to the originatingResourceSet getting it in the normal manner.
-	 * 
-	 * If this handler loaded a Resource in its create(ResourceSet, uriString) then this method should be able to return it as well.
-	 * 
-	 * @param originatingResourceSet
-	 * @param uri
-	 * @return resource if found or <code>nulll/code> if this handler didn't find it.
-	 * 
-	 * @since 1.0.0
-	 */
-	Resource getResource(ResourceSet originatingResourceSet, URI uri);
-
-	/**
-	 * Get the EObject for the given URI, if it can. Load the resource if loadOnDemand is <code>true</code>.
-	 * 
-	 * @param originatingResourceSet
-	 * @param uri
-	 *            uri of EObject being requested
-	 * @param loadOnDemand
-	 *            <code>true</code> if resource should be loaded
-	 * @return eobject if found or <code>null</code> if not.
-	 */
-	EObject getEObjectFailed(ResourceSet originatingResourceSet, URI uri, boolean loadOnDemand);
-
-	/**
-	 * Create the resource pointed to be the URI if this handler will handle it.
-	 * 
-	 * @param originatingResourceSet
-	 * @param uri
-	 * @return resource if created, or <code>null</code> if handler doesn't handle this type.
-	 */
-	Resource createResource(ResourceSet originatingResourceSet, URI uri);
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java
deleted file mode 100644
index 1cec597..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/ResourceSetWorkbenchSynchronizer.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: ResourceSetWorkbenchSynchronizer.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2006/05/17 20:13:45 $$ 
- */
-
-package org.eclipse.jem.util.emf.workbench;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-import org.eclipse.jem.internal.util.emf.workbench.EMFWorkbenchContextFactory;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * Synchronizer on the workbench. It listens for the project to see if it is closed or deleted. If it does it notifies this out.
- * 
- * @since 1.0.0
- */
-public class ResourceSetWorkbenchSynchronizer implements IResourceChangeListener {
-
-	protected IProject project;
-
-	protected ResourceSet resourceSet;
-
-	/** Extenders that will be notified after a pre build resource change */
-	protected List extenders;
-
-	/** The delta for this project that will be broadcast to the extenders */
-	protected IResourceDelta currentProjectDelta;
-
-	private int currentEventType = -1;
-
-	/**
-	 * Constructor taking a resource set and project.
-	 * 
-	 * @param aResourceSet
-	 * @param aProject
-	 * 
-	 * @since 1.0.0
-	 */
-	public ResourceSetWorkbenchSynchronizer(ResourceSet aResourceSet, IProject aProject) {
-		resourceSet = aResourceSet;
-		project = aProject;
-		if (aResourceSet != null && aResourceSet instanceof ProjectResourceSet)
-			((ProjectResourceSet) aResourceSet).setSynchronizer(this);
-		initialize();
-	}
-
-	/**
-	 * Get the project for this synchronizer
-	 * 
-	 * @return project
-	 * 
-	 * @since 1.0.0
-	 */
-	public IProject getProject() {
-		return project;
-	}
-
-	/*
-	 * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-		currentEventType = event.getType();
-		currentProjectDelta = null;
-		if ((currentEventType == IResourceChangeEvent.PRE_CLOSE || currentEventType == IResourceChangeEvent.PRE_DELETE)
-				&& event.getResource().equals(getProject())) {
-			notifyExtendersOfClose();
-			release();
-		}
-	}
-
-
-	protected void notifyExtendersIfNecessary() {
-		if (currentEventType != IResourceChangeEvent.POST_CHANGE || extenders == null || currentProjectDelta == null)
-			return;
-		for (int i = 0; i < extenders.size(); i++) {
-			ISynchronizerExtender extender = (ISynchronizerExtender) extenders.get(i);
-			extender.projectChanged(currentProjectDelta);
-		}
-	}
-
-	protected void notifyExtendersOfClose() {
-		if (extenders != null && !extenders.isEmpty()) {
-			for (int i = 0; i < extenders.size(); i++) {
-				ISynchronizerExtender extender = (ISynchronizerExtender) extenders.get(i);
-				extender.projectClosed();
-			}
-		}
-	}
-
-	protected IWorkspace getWorkspace() {
-		if (getProject() == null)
-			return ResourcesPlugin.getWorkspace();
-		return getProject().getWorkspace();
-	}
-
-	protected void initialize() {
-		getWorkspace().addResourceChangeListener(this,
-				IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_BUILD);
-	}
-
-	/**
-	 * Dispose of the synchronizer. Called when no longer needed.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public void dispose() {
-		getWorkspace().removeResourceChangeListener(this);
-	}
-
-	/**
-	 * The project is going away so we need to cleanup ourself and the ResourceSet.
-	 */
-	protected void release() {
-		if (JEMUtilPlugin.isActivated()) {
-			try {
-				if (resourceSet instanceof ProjectResourceSet)
-					((ProjectResourceSet) resourceSet).release();
-			} finally {
-				EMFWorkbenchContextFactory.INSTANCE.removeCachedProject(getProject());
-				dispose();
-			}
-		}
-	}
-
-	/**
-	 * Add an extender to be notified of events.
-	 * 
-	 * @param extender
-	 * 
-	 * @since 1.0.0
-	 */
-	public void addExtender(ISynchronizerExtender extender) {
-		if (extenders == null)
-			extenders = new ArrayList(3);
-		extenders.add(extender);
-	}
-
-	/**
-	 * Remove extender from notification of events.
-	 * 
-	 * @param extender
-	 * 
-	 * @since 1.0.0
-	 */
-	public void removeExtender(ISynchronizerExtender extender) {
-		if (extenders == null)
-			return;
-		extenders.remove(extender);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getClass().getName() + '(' + ((getProject() != null) ? getProject().getName() : "null") + ')'; //$NON-NLS-1$
-	}
-
-	/**
-	 * Tell Synchronizer that a file is about to be saved. This method should be called prior to writing to an IFile from an EMF resource.
-	 * <p>
-	 * Default does nothing, but subclasses can do something.
-	 * </p>
-	 * 
-	 * @param aFile
-	 *            file about to be saved.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void preSave(IFile aFile) {
-		//Default is do nothing
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchByteArrayOutputStream.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchByteArrayOutputStream.java
deleted file mode 100644
index 9d72f51..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchByteArrayOutputStream.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkbenchByteArrayOutputStream.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-
-/**
- * ByteArray OutputStream for the Workbench. It works with the synchronizer {@link org.eclipse.jem.util.emf.workbench.ResourceSetWorkbenchSynchronizer}to
- * notify of a save. It also changes all of the line separators to the current system line separator, i.e. if there are some '\r' and we are on
- * Windows(R) then they will be converted to '\n\r'), if the setting for the stream is to do eol conversion.
- * 
- * @since 1.0.0
- */
-public class WorkbenchByteArrayOutputStream extends URIConverterImpl.PlatformResourceOutputStream {
-
-	private boolean fConvertEOL = false;
-
-	protected ResourceSetWorkbenchSynchronizer synchronizer;
-
-	/**
-	 * Construct with an IFile
-	 * 
-	 * @param aFile
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchByteArrayOutputStream(IFile aFile) {
-		this(aFile, null);
-	}
-
-	/**
-	 * Construct with a IFile and a synchronizer. This way synchronizer will know when file is about to be saved.
-	 * 
-	 * @param aFile
-	 * @param aSynchronizer
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchByteArrayOutputStream(IFile aFile, ResourceSetWorkbenchSynchronizer aSynchronizer) {
-		super(aFile, false, true, null);
-		synchronizer = aSynchronizer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.OutputStream#close()
-	 */
-	public void close() throws IOException {
-		if (synchronizer != null)
-			synchronizer.preSave(file);
-		super.close();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.ecore.resource.impl.URIConverterImpl.PlatformResourceOutputStream#flush()
-	 */
-	public void flush() throws IOException {
-		if (synchronizer != null)
-			synchronizer.preSave(file);
-		super.flush();
-	}
-
-	/*
-	 * Convert the end of line characters.
-	 */
-	private int convertEOL(byte[] data) {
-		// Algorithm:
-		// Remove all '\r' chars
-		// Replace all '\n' chars with line seperator chars
-
-		String EOL = System.getProperties().getProperty("line.separator"); //$NON-NLS-1$
-		byte[] EOLBytes = EOL.getBytes();
-
-		int out = 0;
-
-		for (int in = 0; in < data.length; in++) {
-			if (data[in] == '\r') {
-				// don't output (ie, throw the char away)
-			} else if (data[in] == '\n') {
-				// The code does not currently handle expanding the array
-				if ((in - out + 1) < EOLBytes.length)
-					throw new UnsupportedOperationException("WorkbenchByteArrayOutputStream: Expanding EOL chars not implemented"); //$NON-NLS-1$
-
-				for (int i = 0; i < EOLBytes.length; i++) {
-					data[out++] = EOLBytes[i];
-				}
-			} else {
-				// Just copy the data
-				data[out++] = data[in];
-			}
-		}
-
-		return out;
-	}
-
-	/**
-	 * Is EOL conversion turned on.
-	 * 
-	 * @return <code>true</code> if EOL conversion is turned on.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean isConvertEOLChars() {
-		return fConvertEOL;
-	}
-
-	/**
-	 * Set the EOL conversion flag.
-	 * 
-	 * @param set
-	 *            <code>true</code> if EOL should be converted to current line separator.
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setConvertEOLChars(boolean set) {
-		fConvertEOL = set;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.io.ByteArrayOutputStream#toByteArray()
-	 */
-	public synchronized byte[] toByteArray() {
-		byte[] contents = super.toByteArray();
-		if (isConvertEOLChars())
-			convertEOL(contents);
-		return contents;
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchResourceHelperBase.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchResourceHelperBase.java
deleted file mode 100644
index 27bb8f1..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchResourceHelperBase.java
+++ /dev/null
@@ -1,694 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkbenchResourceHelperBase.java,v $$
- *  $$Revision: 1.5 $$  $$Date: 2006/08/09 15:40:22 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.common.util.WrappedException;
-import org.eclipse.emf.ecore.*;
-import org.eclipse.emf.ecore.resource.*;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.eclipse.jem.internal.util.emf.workbench.EMFWorkbenchContextFactory;
-import org.eclipse.jem.internal.util.emf.workbench.WorkspaceResourceHandler;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * Workbench resource helper
- * 
- * @since 1.0.0
- */
-public class WorkbenchResourceHelperBase {
-
-	/**
-	 * Everything is static, don't know why there is an instance here.
-	 */
-	public static final WorkbenchResourceHelperBase INSTANCE = new WorkbenchResourceHelperBase();
-
-	protected static WorkspaceResourceHandler workspaceURILoader = new WorkspaceResourceHandler();
-
-	protected static void resolveContainedProxies(EObject refObject) {
-		List contained = refObject.eContents();
-		EObject mofObject;
-		for (int i = 0; i < contained.size(); i++) {
-			mofObject = (EObject) contained.get(i);
-			resolveProxies(mofObject);
-		}
-	}
-
-	protected static void resolveNonContainedProxies(EObject refObject) {
-		List references = refObject.eClass().getEAllReferences();
-		EReference reference;
-		for (int i = 0; i < references.size(); i++) {
-			reference = (EReference) references.get(i);
-			if (!reference.isContainment()) {
-				if (reference.isMany()) {
-					List value = (List) refObject.eGet(reference);
-					for (int j = 0; j < value.size(); j++)
-						value.get(j);
-				} else {
-					refObject.eGet(reference);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Force all of the proxies with <code>resource</code> to be resolved.
-	 * 
-	 * @param resource
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void resolveProxies(Resource resource) {
-		if (resource != null) {
-			List topLevels = resource.getContents();
-			EObject mofObject;
-			for (int i = 0; i < topLevels.size(); i++) {
-				mofObject = (EObject) topLevels.get(i);
-				resolveProxies(mofObject);
-			}
-		}
-	}
-
-	/**
-	 * Return a List of proxies that are contained by the <code>resource</code>.
-	 * 
-	 * @param resource
-	 * @return list of proxies.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static List gatherProxies(Resource resource) {
-		if (resource == null)
-			return Collections.EMPTY_LIST;
-		List list = new ArrayList();
-		List topLevels = resource.getContents();
-		int size = topLevels.size();
-		EObject mofObject;
-		for (int i = 0; i < size; i++) {
-			mofObject = (EObject) topLevels.get(i);
-			gatherProxies((InternalEObject) mofObject, list);
-		}
-		return list;
-	}
-
-	protected static void gatherProxies(InternalEObject refObject, List proxies) {
-		if (refObject == null)
-			return;
-		List contains = refObject.eClass().getEAllContainments();
-		if (contains != null) {
-			int size = contains.size();
-			EStructuralFeature sf = null;
-			for (int i = 0; i < size; i++) {
-				sf = (EStructuralFeature) contains.get(i);
-				gatherProxies(refObject, sf, proxies);
-			}
-		}
-	}
-
-	protected static void gatherProxies(InternalEObject refObject, EStructuralFeature sf, List proxies) {
-		Object value = null;
-		InternalEObject proxy = null;
-		if (sf.isMany() || refObject.eIsSet(sf)) {
-			value = refObject.eGet(sf, false);
-			if (value != null) {
-				if (sf.isMany()) {
-					Iterator j = ((InternalEList) value).basicIterator();
-					while (j.hasNext()) {
-						proxy = (InternalEObject) j.next();
-						if (proxy.eIsProxy())
-							proxies.add(proxy);
-					}
-				} else if (((InternalEObject) value).eIsProxy())
-					proxies.add(value);
-			}
-		}
-	}
-
-	protected static void resolveProxies(EObject refObject) {
-		if (refObject != null) {
-			resolveNonContainedProxies(refObject);
-			resolveContainedProxies(refObject);
-		}
-	}
-
-	/**
-	 * Return an existing context base on <code>aProject</code>.
-	 * 
-	 * @param aProject
-	 * @return the context base for the project or <code>null</code> if none.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static EMFWorkbenchContextBase getEMFContext(IProject aProject) {
-		return EMFWorkbenchContextFactory.INSTANCE.getEMFContext(aProject);
-	}
-
-	/**
-	 * Create a resource from the URI. The URI must contain the project name, either as the first segment, or if in platform resource url protocol.
-	 * {@link #getResourceSet(URI)}
-	 * 
-	 * @param uri
-	 * @return a new resource for the uri or <code>null</code> if not a project uri
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource createResource(URI uri) {
-		ResourceSet set = getResourceSet(uri);
-		if (set != null)
-			return set.createResource(uri);
-		return null;
-	}
-
-	/**
-	 * Check for a cached Resource for the given URI, if none is found, create a new Resource for with the URI against the proper ResourceSet.
-	 * 
-	 * @param uri The URI MUST be either a "<b>platform:/resource/</b>project-name/...." type URI or it
-	 * must be of type "project-name/...". This method will only return resources that are workbench project resources.
-	 * Any other type of URI will cause <code>null</code> to be returned.
-	 * @return resource or <code>null</code> if not a project uri.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource getExistingOrCreateResource(URI uri) {
-		return getExistingOrCreateResource(uri, getResourceSet(uri));
-	}
-	
-	/**
-	 * Get the IFile for the URI. The URI must be a workbench project style URI. 
-	 * @param uri The URI MUST be either a "<b>platform:/resource/</b>project-name/...." type URI or it
-	 * must be of type "project-name/...". This method will only return resources that are workbench project resources.
-	 * Any other type of URI will cause <code>null</code> to be returned.
-	 * @return the IFile if the URI is a project form, <code>null</code> if not a project form, OR the project doesn't exist. The IFile returned doesn't necessarily exist. Use {@link IFile#exists()} to test that.
-	 * 
-	 * @since 1.2.0
-	 */
-	public static IFile getIFile(URI uri) {
-		IProject project = getProject(uri);
-		if (project != null) {
-			IPath path;
-			if (isPlatformResourceURI(uri)) {
-				// Need to get the path and remove the first two segments (/resource/project name/).
-				path = new Path(URI.decode(uri.path())).removeFirstSegments(2);
-			} else {
-				// Need to get the path and remove the first segment (/project name/).
-				path = new Path(URI.decode(uri.path())).removeFirstSegments(1);
-			}
-			return project.getFile(path);
-		} else
-			return null;
-	}
-
-	/**
-	 * Check for a cached Resource for the given URI, if none is found, create a new Resource for with the URI against the given ResourceSet.
-	 * 
-	 * @param uri 
-	 * @param set
-	 * @return resource or <code>null</code> if set was <code>null</code>.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource getExistingOrCreateResource(URI uri, ResourceSet set) {
-		if (set != null) {
-			Resource res = set.getResource(uri, false);
-			if (res == null)
-				res = set.createResource(uri);
-			return res;
-		} else
-			return null;
-	}
-
-	/**
-	 * Return a new or existing context base on <code>aProject</code>. Allow the <code>contributor</code> to contribute to the new or existing
-	 * nature prior to returning.
-	 * 
-	 * @param aProject
-	 * @param contributor
-	 * @return the context base for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static EMFWorkbenchContextBase createEMFContext(IProject aProject, IEMFContextContributor contributor) {
-		return EMFWorkbenchContextFactory.INSTANCE.createEMFContext(aProject, contributor);
-	}
-
-	/**
-	 * Does the passed URI have the form platform:/resource/... ?
-	 * 
-	 * @param uri
-	 * @return <code>true</code> if it is a platform resource protocol.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean isPlatformResourceURI(URI uri) {
-		return JEMUtilPlugin.PLATFORM_PROTOCOL.equals(uri.scheme()) && JEMUtilPlugin.PLATFORM_RESOURCE.equals(uri.segment(0));
-	}
-
-	/**
-	 * This api may be used to cache a Resource if it has a URI that is Workspace relative. Return true if it is cached.
-	 * 
-	 * @param aResource
-	 * @return <code>true</code> if it was successful to cache.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean cacheResource(Resource aResource) {
-		if (aResource != null) {
-			ResourceSet set = getResourceSet(aResource.getURI());
-			if (set != null)
-				return set.getResources().add(aResource);
-		}
-		return false;
-	}
-
-	/**
-	 * This api is used if you create a new MOF resource and you want to add it to the correct ResourceSet. In order to do that, we need the IProject
-	 * that you want aResource to be cached within as well as the IPath which is the full path of the location of the new Resource.
-	 * 
-	 * @param aProject
-	 * @param aResource
-	 * @param fullPath
-	 * @return <code>true</code> if resource was cached.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean cacheResource(IProject aProject, Resource aResource, IPath fullPath) {
-		if (aProject == null || aResource == null || !aProject.isAccessible())
-			return false;
-		ResourceSet set = getResourceSet(aProject);
-		if (set != null) {
-			URI converted = set.getURIConverter().normalize(aResource.getURI());
-			if (converted != aResource.getURI())
-				aResource.setURI(converted);
-			return set.getResources().add(aResource);
-		}
-		return false;
-	}
-
-	/**
-	 * Get the path of the project resource relative to the workspace or relative to the list of containers in this project.
-	 * 
-	 * @param aResource
-	 * @return path
-	 * 
-	 * @since 1.0.0
-	 */
-	public static String getActualProjectRelativeURI(IResource aResource) {
-		if (aResource == null || !aResource.isAccessible())
-			return null;
-		IProject project = aResource.getProject();
-		IPath path = getPathInProject(project, aResource.getFullPath());
-		return path.makeRelative().toString();
-	}
-
-	/**
-	 * Return an IPath that can be used to load a Resource using the <code>fullPath</code>. This will be a project relative path.
-	 * 
-	 * @param project
-	 * @param fullPath
-	 * @return path
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IPath getPathInProject(IProject project, IPath fullPath) {
-		List containers = getProjectURIConverterContainers(project);
-		if (!containers.isEmpty())
-			return getPathFromContainers(containers, fullPath);
-		return fullPath;
-	}
-
-	protected static List getProjectURIConverterContainers(IProject project) {
-		EMFWorkbenchContextBase nature = createEMFContext(project, null);
-		if (nature != null) {
-			WorkbenchURIConverter conv = (WorkbenchURIConverter) nature.getResourceSet().getURIConverter();
-			if (conv != null)
-				return conv.getInputContainers();
-		}
-		return Collections.EMPTY_LIST;
-	}
-
-	/**
-	 * If this path is contained within one of the listed containers, then return the path relative to the container.
-	 * 
-	 * @param containers
-	 * @param fullPath
-	 * @return path relative to a container, or unchanged path if not in a container.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IPath getPathFromContainers(List containers, IPath fullPath) {
-		IContainer container = null;
-		IPath result;
-		int size = containers.size();
-		int matching = -1;
-		IPath containerPath;
-		for (int i = 0; i < size; i++) {
-			container = (IContainer) containers.get(i);
-			containerPath = container.getFullPath();
-			matching = fullPath.matchingFirstSegments(containerPath);
-			if (matching > 0 && matching == containerPath.segmentCount()) {
-				result = fullPath.removeFirstSegments(matching);
-				result = result.makeRelative();
-				return result;
-			}
-		}
-		return fullPath;
-	}
-
-	/**
-	 * Return true if the <code>uri</code> has its container segments visible from the input containers for the <code>project</code>.
-	 * 
-	 * @param project
-	 * @param uri
-	 * @return <code>true</code> if the uri is visible from the input containers.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean hasContainerStructure(IProject project, URI uri) {
-		if (project != null && uri != null) {
-			IPath path = new Path(uri.toString());
-			List containers = getProjectURIConverterContainers(project);
-			int segmentCount = path.segmentCount();
-			IPath containerPath = segmentCount > 1 ? path.removeLastSegments(1) : null;
-			IContainer container = null;
-			for (int i = 0; i < containers.size(); i++) {
-				container = (IContainer) containers.get(i);
-				if (!container.isAccessible())
-					continue;
-				if (segmentCount == 1) {
-					if (container == project)
-						return true;
-				} else if (containerPath != null) {
-					IFolder folder = container.getFolder(containerPath);
-					if (folder != null && folder.isAccessible())
-						return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Get the resource for the uri. The URI MUST be either a "<b>platform:/resource/</b>project-name/...." type URI or it
-	 * must be of type "project-name/...". This method will only return resources that are workbench project resources.
-	 * Any other type of URI will cause <code>null</code> to be returned. It will be loaded if not already loaded. If it is not to
-	 * be loaded if not loaded use {@link #getResource(URI, boolean)} instead.
-	 * 
-	 * @param uri must be either a "<b>platform:/resource/</b>project-name/..." form or it must be "project-name/...". Any other form will be invalid.
-	 * @return resource if uri is for a valid workbench project resource or <code>null</code> if project not found or not a valid project resource.
-	 * 
-	 * @throws WrappedException if valid project format URI but file not found or some other error on load.
-	 * @since 1.0.0
-	 */
-	public static Resource getResource(URI uri) {
-		return getResource(uri, true);
-	}
-
-	/**
-	 * Return the Resource for the passed IFile without forcing a load.
-	 * 
-	 * @param aFile
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource getResource(IFile aFile) {
-		return getResource(aFile, false);
-	}
-
-	/**
-	 * Return the Resource for the passed IFile, forcing a load if <code>loadOnDemand</code> says so.
-	 * 
-	 * @param aFile
-	 * @param loadOnDemand
-	 *            <code>true</code> will force a load of resource if not loaded.
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource getResource(IFile aFile, boolean loadOnDemand) {
-		if (aFile != null)
-			return getResource(URI.createPlatformResourceURI(aFile.getFullPath().toString()), loadOnDemand);
-		return null;
-	}
-
-	/**
-	 * Return the Resource for the passed IFile without a load if not loaded.
-	 * 
-	 * @param aFile
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Resource load(IFile aFile) {
-		return getResource(aFile, true);
-	}
-
-	/**
-	 * Get the resource for the uri. The URI MUST be either a "<b>platform:/resource/</b>project-name/...." type URI or it
-	 * must be of type "project-name/...". This method will only return resources that are workbench project resources.
-	 * Any other type of URI will cause <code>null</code> to be returned.
-	 * 
-	 * @param uri must be either a "<b>platform:/resource/</b>project-name/..." form or it must be "project-name/...". Any other form will be invalid.
-	 * @param loadOnDemand <code>true</code> will cause resource to be loaded if not already loaded.
-	 * @return resource if uri is for a valid workbench project resource, or <code>null</code> if project not found, or not a valid project resource uri.
-	 * 
-	 * @throws WrappedException if valid project format URI but file not found or some other error on load if loadOnDemand is true.
-	 * @since 1.0.0
-	 */
-	public static Resource getResource(URI uri, boolean loadOnDemand) {
-		ResourceSet set = getResourceSet(uri);
-		if (set != null)
-			return set.getResource(uri, loadOnDemand);
-		return null;
-	}
-
-	/**
-	 * Return a ResourceSet for the passed URI. The URI should be in the format platform:/resource/{project name}/... or {project name}/... for this
-	 * api to work.
-	 * 
-	 * @param uri
-	 * @return the resource set or <code>null</code> if not of correct form or project doesn't have a resource set.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static ResourceSet getResourceSet(URI uri) {
-		IProject project = getProject(uri);
-		if (project != null && project.isAccessible())
-			return getResourceSet(project);
-		else
-			return null;
-	}
-	
-	/*
-	 * Get the project for the uri if the uri is a valid workbench project format uri. null otherwise.
-	 */
-	private static IProject getProject(URI uri) {
-		String projectName;
-		if (isPlatformResourceURI(uri))
-			projectName = uri.segment(1);
-		else if (uri.scheme() == null) {
-			projectName = new Path(uri.path()).segment(0); //assume project name is first in the URI
-		} else
-			return null;
-		IProject project = getWorkspace().getRoot().getProject(URI.decode(projectName));
-		if (project != null && project.isAccessible())
-			return project;
-		else
-			return null;
-	}
-
-	/**
-	 * Return the ResourceSet for the passed IProject.
-	 * 
-	 * @param project
-	 * @return resource set
-	 */
-	public static ResourceSet getResourceSet(IProject project) {
-		EMFWorkbenchContextBase nat = createEMFContext(project, null);
-		if (nat != null)
-			return nat.getResourceSet();
-		return null;
-	}
-
-	/**
-	 * Get the workspace. (just use {@link ResourcesPlugin#getWorkspace()}).
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * Get the project associated with the resource set.
-	 * 
-	 * @param set
-	 * @return project or <code>null</code> if resource set not associated with a project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IProject getProject(ResourceSet set) {
-		if (set != null) {
-			if (set instanceof ProjectResourceSet) {
-				ProjectResourceSet pset = (ProjectResourceSet) set;
-				return pset.getProject();
-			}
-		}
-		return null;
-	}
-
-	protected static boolean isRegisteredURIMapping(String href) {
-		if (href != null) {
-			String file = href;
-			int index = href.indexOf('#');
-			if (index > -1)
-				file = href.substring(0, index);
-			return URIConverter.URI_MAP.get(file) != null;
-		}
-		return false;
-	}
-
-	/**
-	 * Remove all of the resources from the resource set and then unload them. Unload forces all of the objects to become proxies so next resolve will
-	 * reload the resource.
-	 * 
-	 * @param resources
-	 * @param aSet
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void removeAndUnloadAll(List resources, ResourceSet aSet) {
-		if (aSet == null || resources == null || resources.isEmpty())
-			return;
-		aSet.getResources().removeAll(resources);
-		Resource res;
-		for (int i = 0; i < resources.size(); i++) {
-			res = (Resource) resources.get(i);
-			res.unload();
-		}
-	}
-
-	/**
-	 * Turn object into a proxy.
-	 * 
-	 * @param anObject
-	 * @return <code>true</code> if object was able to become a proxy.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean becomeProxy(EObject anObject) {
-		if (anObject != null) {
-			Resource res = anObject.eResource();
-			if (res != null) {
-				URI uri = res.getURI();
-				((InternalEObject) anObject).eSetProxyURI(uri.appendFragment(res.getURIFragment(anObject)));
-				//anObject.eAdapters().clear();
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Return true if the WrappedException is actually a Resource Not Found.
-	 * 
-	 * @param wrappedEx
-	 * @return <code>true</code> is exception wrappers a resource not found.
-	 * @since 1.0.0
-	 */
-	public static boolean isResourceNotFound(WrappedException wrappedEx) {
-		Exception excep = wrappedEx.exception();
-		while (excep instanceof WrappedException) {
-			excep = ((WrappedException) excep).exception();
-		}
-		return primIsResourceNotFound(excep);
-	}
-
-	private static boolean primIsResourceNotFound(Throwable excep) {
-		if (excep instanceof CoreException) {
-			IStatus status = ((CoreException) excep).getStatus();
-			return status.getCode() == IResourceStatus.RESOURCE_NOT_FOUND && ResourcesPlugin.PI_RESOURCES.equals(status.getPlugin());
-		}
-		return false;
-	}
-
-	/**
-	 * Return true if the WrappedException is actually a Resource Not Found.
-	 * 
-	 * @param wrappedEx
-	 * @return <code>true</code> is exception wrappers a resource not found.
-	 * @since 1.0.0
-	 */
-	public static boolean isResourceNotFound(Resource.IOWrappedException wrappedEx) {
-		return primIsResourceNotFound(wrappedEx.getCause());
-	}
-
-	/**
-	 * Return a URI represenation of the platformURI without the leading "platform:/resource/" if present.
-	 * 
-	 * @param platformURI
-	 * @return uri
-	 * @since 1.0.0
-	 */
-	public static URI getNonPlatformURI(URI platformURI) {
-		if (isPlatformResourceURI(platformURI)) {
-			String uriString = primGetNonPlatformURIString(platformURI);
-			return URI.createURI(uriString);
-		}
-		return platformURI;
-	}
-
-	/**
-	 * Return a String represenation of the platformURI without the leading "platform:/resource/" if present.
-	 * 
-	 * @param platformURI
-	 * @return
-	 * @since 1.0.0
-	 */
-	public static String getNonPlatformURIString(URI platformURI) {
-		if (isPlatformResourceURI(platformURI)) { return primGetNonPlatformURIString(platformURI); }
-		return platformURI.toString();
-	}
-
-	/*
-	 * Remove "platform:/resource/" from the front of the platformURI and return the remaining String.
-	 */
-	private static String primGetNonPlatformURIString(URI platformURI) {
-		String uriString = platformURI.toString();
-		//"platform:/resource/" is 19 characters.
-		return uriString.substring(19, uriString.length());
-	}
-
-	/**
-	 * Does the passed URI have the form platform:/plugin/... ?
-	 * 
-	 * @param uri
-	 * @return <code>true</code> if uri is platform plugin protocol.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean isPlatformPluginResourceURI(URI uri) {
-		return JEMUtilPlugin.PLATFORM_PROTOCOL.equals(uri.scheme()) && JEMUtilPlugin.PLATFORM_PLUGIN.equals(uri.segment(0));
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverter.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverter.java
deleted file mode 100644
index e556851..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverter.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkbenchURIConverter.java,v $$
- *  $$Revision: 1.2 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.emf.ecore.resource.URIConverter;
-
-/**
- * Implementers of this interface are WorkbenchURI converters. Workbench URI converters handle references to files in the project's containers.
- * This converter is only necessary to resolve old ambiguous workbench URIs.
- * @since 1.0.0
- */
-public interface WorkbenchURIConverter extends URIConverter {
-
-	/**
-	 * Add input container to to the converter.
-	 * 
-	 * @param aContainer
-	 * 
-	 * @since 1.0.0
-	 */
-	void addInputContainer(IContainer aContainer);
-
-	/**
-	 * Add list of containers to the converter.
-	 * 
-	 * @param containers
-	 *            list of <code>IContainer</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	void addInputContainers(List containers);
-
-	/**
-	 * Get the file relative to a container.
-	 * 
-	 * @param uri
-	 * @return file relative to a container or <code>null</code> if not.
-	 * 
-	 * @since 1.0.0
-	 */
-	IFile getFile(String uri);
-
-	/**
-	 * Get first input container
-	 * 
-	 * @return first input container or <code>null</code> if none set.
-	 * 
-	 * @since 1.0.0
-	 */
-	IContainer getInputContainer();
-
-	/**
-	 * Get all input containers.
-	 * 
-	 * @return all input containers.
-	 * 
-	 * @since 1.0.0
-	 */
-	List getInputContainers();
-
-	/**
-	 * Get the output container if set.
-	 * 
-	 * @return output container or <code>null</code> if not set.
-	 * 
-	 * @since 1.0.0
-	 */
-	IContainer getOutputContainer();
-
-	/**
-	 * Set the output container.
-	 * 
-	 * @param container
-	 * 
-	 * @since 1.0.0
-	 */
-	void setOutputContainer(IContainer container);
-
-	/**
-	 * Return an IFile for
-	 * 
-	 * @aPath. If we have a parent and we do not contain the first segment of the aPath, forward to the parent to retrieve the file.
-	 * @param aPath
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	IFile getOutputFile(IPath aPath);
-
-	/**
-	 * Get output file with mapping applied.
-	 * 
-	 * @param uri
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	IFile getOutputFileWithMappingApplied(String uri);
-
-	/**
-	 * Remove input container from list.
-	 * 
-	 * @param aContainer
-	 * @return <code>true</code> if removed.
-	 * 
-	 * @since 1.0.0
-	 */
-	boolean removeInputContainer(IContainer aContainer);
-
-	/**
-	 * Return true if we can retrieve the resource used to open an input stream on.
-	 * 
-	 * @param aFileName
-	 * @return <code>true</code> if filename is valid for file stream access.
-	 * @since 1.0.0
-	 *  
-	 */
-	boolean canGetUnderlyingResource(String aFileName);
-
-	/**
-	 * Is force save relative flag turned on.
-	 * 
-	 * @return <code>true</code> if force save relative is turned on.
-	 * 
-	 * @since 1.0.0
-	 */
-	boolean isForceSaveRelative();
-
-	/**
-	 * Set to true if you do not want any path manipulation when creating the output stream..
-	 * 
-	 * @param forceSaveRelative
-	 *            <code>true</code> to force saves as relative.
-	 */
-	void setForceSaveRelative(boolean forceSaveRelative);
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverterImpl.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverterImpl.java
deleted file mode 100644
index 6365551..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/WorkbenchURIConverterImpl.java
+++ /dev/null
@@ -1,514 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: WorkbenchURIConverterImpl.java,v $$
- *  $$Revision: 1.6 $$  $$Date: 2006/05/17 20:13:45 $$ 
- */
-package org.eclipse.jem.util.emf.workbench;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
-
-/**
- * A default implementation of the WorkbenchURIConverter interface.
- * 
- * @since 1.0.0
- */
-public class WorkbenchURIConverterImpl extends URIConverterImpl implements WorkbenchURIConverter {
-
-	private final static IWorkspaceRoot WORKSPACE_ROOT = URIConverterImpl.workspaceRoot;
-	private final static String WORKSPACE_ROOT_LOCATION = WORKSPACE_ROOT.getLocation().toString();
-
-	private static final String FILE_PROTOCOL = "file"; //$NON-NLS-1$
-
-	private static final IPath INVALID_PATH = new Path("!!!!~!!!!"); //$NON-NLS-1$
-
-	private static final IFile INVALID_FILE = WORKSPACE_ROOT.getFile(INVALID_PATH.append(INVALID_PATH));
-
-	//Used to avoid trying to fixup the URI when getting the
-	//OutputStream
-	protected boolean forceSaveRelative = false;
-
-	protected List inputContainers;
-
-	protected IContainer outputContainer;
-
-	protected ResourceSetWorkbenchSynchronizer resourceSetSynchronizer;
-	
-	/*
-	 * KLUDGE: We need to know the meta data area. This is so that any uri that starts with the metadata directory
-	 * is considered a file uri and NOT a workspace uri. The metadata is where plugin's store their working data.
-	 * It is not part of the workspace root.
-	 *  
-	 * There is no request for simply the metadata area. The log file is in the metadata directory. So we will
-	 * get the log file location and just remove the log file name. That should leave us with the metadata directory
-	 * only. If Eclipse ever decides to move it from here, this will no longer work. But it hasn't moved in three 
-	 * versions.
-	 * 
-	 * @since 1.1.0
-	 */
-	static protected final String METADATA_LOCATION = Platform.getLogFileLocation().removeLastSegments(1).toString();
-
-	/**
-	 * Default converter constructor, no containers.
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchURIConverterImpl() {
-		super();
-	}
-
-	/**
-	 * Construct with an input container.
-	 * 
-	 * @param anInputContainer
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchURIConverterImpl(IContainer anInputContainer) {
-		this(anInputContainer, (ResourceSetWorkbenchSynchronizer) null);
-	}
-
-	/**
-	 * Construct with an input container and a synchronzier.
-	 * 
-	 * @param aContainer
-	 * @param aSynchronizer
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchURIConverterImpl(IContainer aContainer, ResourceSetWorkbenchSynchronizer aSynchronizer) {
-		this(aContainer, null, aSynchronizer);
-	}
-
-	/**
-	 * Construct with an input container and an output container.
-	 * 
-	 * @param anInputContainer
-	 * @param anOutputContainer
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchURIConverterImpl(IContainer anInputContainer, IContainer anOutputContainer) {
-		this(anInputContainer, anOutputContainer, null);
-	}
-
-	/**
-	 * Construct with an input container, output container, and a synchronizer.
-	 * 
-	 * @param anInputContainer
-	 * @param anOutputContainer
-	 * @param aSynchronizer
-	 * 
-	 * @since 1.0.0
-	 */
-	public WorkbenchURIConverterImpl(IContainer anInputContainer, IContainer anOutputContainer, ResourceSetWorkbenchSynchronizer aSynchronizer) {
-		addInputContainer(anInputContainer);
-		setOutputContainer(anOutputContainer);
-		resourceSetSynchronizer = aSynchronizer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#addInputContainer(org.eclipse.core.resources.IContainer)
-	 */
-	public void addInputContainer(IContainer aContainer) {
-		if (aContainer != null && !getInputContainers().contains(aContainer))
-			getInputContainers().add(aContainer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#addInputContainers(java.util.List)
-	 */
-	public void addInputContainers(List containers) {
-		for (int i = 0; i < containers.size(); i++) {
-			addInputContainer((IContainer) containers.get(i));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#removeInputContainer(org.eclipse.core.resources.IContainer)
-	 */
-	public boolean removeInputContainer(IContainer aContainer) {
-		return getInputContainers().remove(aContainer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getInputContainers()
-	 */
-	public List getInputContainers() {
-		if (inputContainers == null)
-			inputContainers = new ArrayList();
-		return inputContainers;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getInputContainer()
-	 */
-	public IContainer getInputContainer() {
-		if (!getInputContainers().isEmpty())
-			return (IContainer) getInputContainers().get(0);
-		else
-			return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getOutputContainer()
-	 */
-	public IContainer getOutputContainer() {
-		if (outputContainer == null)
-			outputContainer = getInputContainer();
-		return outputContainer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#setOutputContainer(org.eclipse.core.resources.IContainer)
-	 */
-	public void setOutputContainer(IContainer newOutputContainer) {
-		outputContainer = newOutputContainer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getOutputFile(org.eclipse.core.runtime.IPath)
-	 */
-	public IFile getOutputFile(IPath aPath) {
-		IFile file = null;
-		if (getOutputContainer() != null) {
-			if (forceSaveRelative)
-				return primGetOutputFile(aPath);
-			file = getOutputFileForPathWithContainerSegments(aPath);
-			if (file != null)
-				return file;
-			else
-				return primGetOutputFile(aPath);
-		}
-		return file;
-	}
-
-	protected IFile primGetOutputFile(IPath aPath) {
-		return primGetFile(getOutputContainer(), aPath);
-	}
-
-	protected IFile getOutputFileForPathWithContainerSegments(IPath aPath) {
-		IContainer out = getOutputContainer();
-		return getFileForPathWithContainerSegments(aPath, out, false);
-	}
-
-	protected IFile getFileForPathWithContainerSegments(IPath aPath, IContainer container, boolean testExists) {
-		IPath containerPath = null;
-		IFile file = null;
-		if (testExists) {
-			containerPath = container.getProjectRelativePath();
-			if (!containerPath.isEmpty()) {
-				file = getFileForMatchingPath(aPath, containerPath, container);
-				if (file != null && file.exists())
-					return file;
-			}
-		}
-		containerPath = container.getFullPath();
-		file = getFileForMatchingPath(aPath, containerPath, container);
-		return file;
-	}
-
-	protected IFile getFileForMatchingPath(IPath containerPath, IPath sourcePath, IContainer container) {
-		int matches = 0;
-		matches = containerPath.matchingFirstSegments(sourcePath);
-		if (matches > 0 && matches == sourcePath.segmentCount()) {
-			IPath loadPath = containerPath.removeFirstSegments(matches);
-			return primGetFile(container, loadPath);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getFile(java.lang.String)
-	 */
-	public IFile getFile(String uri) {
-		return getFile(new Path(uri));
-	}
-
-	/**
-	 * Get the file from the path.
-	 * 
-	 * @param path
-	 * @return
-	 * @see WorkbenchURIConverter#getFile(String)
-	 * @since 1.0.0
-	 */
-	public IFile getFile(IPath path) {
-		IFile file = null;
-		if (getInputContainer() != null) {
-			path = path.makeRelative();
-			java.util.Iterator it = getInputContainers().iterator();
-			while (it.hasNext()) {
-				IContainer con = (IContainer) it.next();
-				file = getInputFile(con, path);
-				if (file != null && file.exists())
-					return file;
-			}
-		}
-		if (file == null)
-			return INVALID_FILE;
-		return file;
-	}
-
-	/**
-	 * Get output file from string path.
-	 * 
-	 * @param uri
-	 * @return
-	 * 
-	 * @see WorkbenchURIConverter#getOutputFile(IPath)
-	 * @since 1.0.0
-	 */
-	public IFile getOutputFile(String uri) {
-		return getOutputFile(new Path(uri));
-	}
-
-	/**
-	 * Get the input file from the container and path.
-	 * 
-	 * @param con
-	 * @param path
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public IFile getInputFile(IContainer con, IPath path) {
-		IFile file = null;
-		if (WORKSPACE_ROOT.equals(con) && path.segmentCount() < 2)
-			path = INVALID_PATH.append(path);
-		file = primGetFile(con, path);
-		if (file == null || !file.exists())
-			file = getFileForPathWithContainerSegments(path, con, true);
-		return file;
-	}
-
-	protected IFile primGetFile(IContainer container, IPath path) {
-		try {
-			return container.getFile(path);
-		} catch (IllegalArgumentException ex) {
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#canGetUnderlyingResource(java.lang.String)
-	 */
-	public boolean canGetUnderlyingResource(String aFileName) {
-		IFile file = getFile(aFileName);
-		return file != null && file.exists();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#isForceSaveRelative()
-	 */
-	public boolean isForceSaveRelative() {
-		return forceSaveRelative;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#setForceSaveRelative(boolean)
-	 */
-	public void setForceSaveRelative(boolean forceSaveRelative) {
-		this.forceSaveRelative = forceSaveRelative;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.ecore.resource.URIConverter#normalize(org.eclipse.emf.common.util.URI)
-	 */public URI normalize(URI uri) {
-		URI result = uri;
-		String fragment = null;
-		if (uri.hasFragment()) {
-			fragment = uri.fragment();
-			result = uri.trimFragment();
-		}
-		result = getInternalURIMap().getURI(result);
-		if (WorkbenchResourceHelperBase.isPlatformResourceURI(result))
-			return appendFragment(result, fragment);
-		if (WorkbenchResourceHelperBase.isPlatformPluginResourceURI(result)) {
-			URI normalized = normalizePluginURI(result, fragment);
-			return (normalized != null) ? normalized : uri;
-		}
-		String protocol = result.scheme();
-		URI fileSearchURI = null;
-		if (protocol == null) {
-			fileSearchURI = normalizeEmptyProtocol(result, fragment);
-			if (fileSearchURI != null)
-				return fileSearchURI;
-		} else if (FILE_PROTOCOL.equals(protocol)) {
-			fileSearchURI = normalizeFileProtocol(result, fragment);
-			if (fileSearchURI != null)
-				return fileSearchURI;
-		} else if (JEMUtilPlugin.WORKSPACE_PROTOCOL.equals(protocol))
-			return normalizeWorkspaceProtocol(result, fragment);
-		return super.normalize(uri);
-	}
-
-	/*
-	 * Resolves a plugin format into the actual.
-	 */
-	protected URI normalizePluginURI(URI uri, String fragment) {
-		if (uri.segmentCount() < 2)
-			return uri; // Invalid, just let it go on.
-		// See if already normalized.
-		int u_scoreNdx = uri.segment(1).lastIndexOf('_');
-		if (u_scoreNdx != -1) {
-			// Not normalized. Remove the version to make it normalized.
-			String[] segments = uri.segments();
-			segments[1] = segments[1].substring(0, u_scoreNdx);
-			return URI.createHierarchicalURI(uri.scheme(), uri.authority(), uri.device(), segments, uri.query(), fragment);
-		} else
-			return uri;
-	}
-
-	protected URI normalizeWorkspaceProtocol(URI aWorkspaceURI, String fragment) {
-		URI result;
-		String uriString = aWorkspaceURI.toString();
-		uriString = uriString.substring(JEMUtilPlugin.WORKSPACE_PROTOCOL.length() + 1);
-		result = URI.createPlatformResourceURI(uriString);
-		if (fragment != null)
-			result = appendFragment(aWorkspaceURI, fragment);
-		return result;
-	}
-	
-	protected URI normalizeEmptyProtocol(URI aFileUri, String fragment) {
-		//Make the relative path absolute and return a platform URI.
-		IPath path = new Path(aFileUri.toString());
-		return normalizeToWorkspaceURI(path, fragment);
-	}
-	
-	private URI normalizeToWorkspaceURI(IPath path, String fragment) {
-		URI result = null;
-		IFile file = getFile(path);
-		if (file == null || !file.exists())
-			file = getOutputFile(path);
-		if (file != null) {
-			result = URI.createPlatformResourceURI(file.getFullPath().toString());
-			result = appendFragment(result, fragment);
-		}
-		return result;
-	}
-	
-	protected URI normalizeFileProtocol(URI aFileUri, String fragment) {
-		URI result = null;
-		//Make the relative path absolute and return a platform URI.
-		String devicePath = aFileUri.devicePath();
-		//Test for workspace location.
-		if (!devicePath.startsWith(METADATA_LOCATION) &&
-			devicePath.startsWith(WORKSPACE_ROOT_LOCATION) && devicePath.length() > WORKSPACE_ROOT_LOCATION.length()) {
-			//test for workspace location
-			result = normalizeToWorkspaceURI(new Path(devicePath.substring(WORKSPACE_ROOT_LOCATION.length())), fragment);
-		} else if (aFileUri.isRelative()) {
-			result = normalizeToWorkspaceURI(new Path(aFileUri.toString()), fragment);
-		} else {
-			result = aFileUri;
-		}
-		return result;
-	}
-	
-	protected URI appendFragment(URI result, String fragment) {
-		if (fragment != null)
-			return result.appendFragment(fragment);
-		else
-			return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.emf.workbench.WorkbenchURIConverter#getOutputFileWithMappingApplied(java.lang.String)
-	 */
-	public IFile getOutputFileWithMappingApplied(String uri) {
-		URI converted = getInternalURIMap().getURI(URI.createURI(uri));
-		return getOutputFile(new Path(converted.toString()));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.ecore.resource.impl.URIConverterImpl#createPlatformResourceOutputStream(java.lang.String)
-	 */
-	public OutputStream createPlatformResourceOutputStream(String platformResourcePath) throws IOException {
-		IFile file = WORKSPACE_ROOT.getFile(new Path(platformResourcePath));
-		ProjectUtilities.ensureContainerNotReadOnly(file);
-		return new WorkbenchByteArrayOutputStream(file, resourceSetSynchronizer);
-	}
-
-	protected URI getContainerRelativeURI(IFile aFile) {
-		IPath path = WorkbenchResourceHelperBase.getPathFromContainers(inputContainers, aFile.getFullPath());
-		if (path != null)
-			return URI.createURI(path.toString());
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.emf.ecore.resource.impl.URIConverterImpl#createPlatformResourceInputStream(java.lang.String)
-	 */
-	public InputStream createPlatformResourceInputStream(String platformResourcePath) throws IOException {
-		IFile file = WORKSPACE_ROOT.getFile(new Path(platformResourcePath));
-		try {
-			if (!file.isSynchronized(IResource.DEPTH_ONE)) {
-				try {
-					File iofile = file.getFullPath().toFile();
-					if (iofile.exists() || file.exists())
-						file.refreshLocal(IResource.DEPTH_ONE, null);
-				} catch (CoreException ce) {
-					if (ce.getStatus().getCode() != IResourceStatus.WORKSPACE_LOCKED)
-						throw ce;
-				}
-			}
-			// CHANGED from <no-args> to <true> [94015]
-			return file.getContents(true);
-		} catch (CoreException exception) {
-			throw new Resource.IOWrappedException(exception);
-		}		
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/nature/EMFNature.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/nature/EMFNature.java
deleted file mode 100644
index f7f288a..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/emf/workbench/nature/EMFNature.java
+++ /dev/null
@@ -1,554 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: EMFNature.java,v $$
- *  $$Revision: 1.4 $$  $$Date: 2005/02/15 23:04:14 $$ 
- */
-package org.eclipse.jem.util.emf.workbench.nature;
-
-import java.util.*;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.util.*;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.xmi.XMLParserPool;
-import org.eclipse.emf.ecore.xmi.impl.XMLParserPoolImpl;
-
-import org.eclipse.jem.internal.util.emf.workbench.nature.EMFNatureRegistry;
-import org.eclipse.jem.util.emf.workbench.*;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * The base EMFNature.
- * <p>
- * This is expected to be subclassed by clients, but there are default subclasses available.
- * </p>
- * 
- * @since 1.0.0
- */
-public abstract class EMFNature implements IProjectNature, IEMFContextContributor {
-
-	protected IProject project;
-
-	protected EMFWorkbenchContextBase emfContext;
-
-	protected boolean hasConfigured = false;
-	
-	public static XMLParserPool SHARED_PARSER_POOL = new XMLParserPoolImpl();	
-
-	public EMFNature() {
-		super();
-	}
-
-	/**
-	 * Add the nature id to the project.
-	 * 
-	 * @param proj
-	 * @param natureId
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	protected static void addNatureToProject(IProject proj, String natureId) throws CoreException {
-		ProjectUtilities.addNatureToProject(proj, natureId);
-	}
-
-	/**
-	 * Configures the project with this nature. This is called by <code>IProject.addNature</code> and should not be called directly by clients. The
-	 * nature extension id is added to the list of natures on the project by <code>IProject.addNature</code>, and need not be added here.
-	 * 
-	 * <p>
-	 * All subtypes must call super. The better way for subtypes is to override primConfigure instead.
-	 * </p>
-	 * 
-	 * @throws CoreException
-	 * @since 1.0.0
-	 */
-	public void configure() throws org.eclipse.core.runtime.CoreException {
-		if (!hasConfigured) {
-			hasConfigured = true;
-			primConfigure();
-		}
-	}
-
-	/**
-	 * Called from configure the first time configure is called on the nature. Default is do nothing. Subclasses should override and add in their own
-	 * configuration.
-	 * 
-	 * @throws org.eclipse.core.runtime.CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	protected void primConfigure() throws org.eclipse.core.runtime.CoreException {
-
-	}
-
-	/**
-	 * Create an EMF context for the project.
-	 * 
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	protected void createEmfContext() throws CoreException {
-		WorkbenchResourceHelperBase.createEMFContext(getProject(), this);
-	}
-
-	/**
-	 * Create a folder relative to the project based on aProjectRelativePathString.
-	 * 
-	 * @param aProjectRelativePathString
-	 * @return
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public IFolder createFolder(String aProjectRelativePathString) throws CoreException {
-		if (aProjectRelativePathString != null && aProjectRelativePathString.length() > 0)
-			return createFolder(new Path(aProjectRelativePathString));
-		return null;
-	}
-
-	/**
-	 * Create a folder relative to the project based on aProjectRelativePathString.
-	 * 
-	 * @param aProjectRelativePath
-	 * @return
-	 * @throws CoreException
-	 * 
-	 * @since 1.0.0
-	 */
-	public IFolder createFolder(IPath aProjectRelativePath) throws CoreException {
-		if (aProjectRelativePath != null && !aProjectRelativePath.isEmpty()) {
-			IFolder folder = getWorkspace().getRoot().getFolder(getProjectPath().append(aProjectRelativePath));
-			if (!folder.exists()) {
-				ProjectUtilities.ensureContainerNotReadOnly(folder);
-				folder.create(true, true, null);
-			}
-			return folder;
-		}
-		return null;
-	}
-
-	/**
-	 * Removes this nature from the project, performing any required deconfiguration. This is called by <code>IProject.removeNature</code> and
-	 * should not be called directly by clients. The nature id is removed from the list of natures on the project by
-	 * <code>IProject.removeNature</code>, and need not be removed here.
-	 * 
-	 * @throws CoreException
-	 * @since 1.0.0
-	 */
-	public void deconfigure() throws org.eclipse.core.runtime.CoreException {
-		emfContext = null;
-	}
-
-	/**
-	 * Return true if the IFile with the given name exists in this project.
-	 * 
-	 * @param aFileName
-	 *            filename can be relative to one of the input file paths for the WorkbenchURIConverter.
-	 * @return <code>true</code> if filename exists in this project
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean fileExists(String aFileName) {
-		if (aFileName == null)
-			return false;
-
-		IPath path = new Path(aFileName);
-		if (path.isAbsolute())
-			return ResourcesPlugin.getWorkspace().getRoot().getFile(path).exists();
-		else
-			return getWorkbenchURIConverter().canGetUnderlyingResource(aFileName);
-	}
-
-	/**
-	 * Get the resource set for the project
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public ResourceSet getResourceSet() {
-		return getEmfContextBase().getResourceSet();
-	}
-
-	/**
-	 * Returns the EMF root folder for the project. Defaults to the project. Subclasses can override.
-	 * 
-	 * @return EMF root folder for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public IContainer getEMFRoot() {
-		return getProject();
-	}
-
-	/**
-	 * Used for optimizations; answers whether a mof context for this nature has exists yet
-	 * 
-	 * @deprecated use hasResourceSet();
-	 * @since 1.0.0
-	 */
-	public boolean hasContext() {
-		return hasResourceSet();
-	}
-
-	/**
-	 * Is there a resource set yet for the project.
-	 * 
-	 * @return <code>true</code> if there is a resource set for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public boolean hasResourceSet() {
-		return emfContext != null && emfContext.hasResourceSet();
-	}
-
-	/**
-	 * Lazy initializer; for migration of existing workspaces where configure will never get called.
-	 * 
-	 * @return context base for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected EMFWorkbenchContextBase getEmfContextBase() {
-		if (emfContext == null) {
-			try {
-				createEmfContext();
-			} catch (CoreException ex) {
-				Logger.getLogger().logError(ex);
-			}
-		}
-		return emfContext;
-	}
-
-	/**
-	 * Get the IFile with the given name if it is in this project.
-	 * 
-	 * @param aFileName
-	 *            filename can be relative to one of the input file paths for the WorkbenchURIConverter.
-	 * @return file it it is in this project, or <code>null</code> if it doesn't.
-	 * 
-	 * @since 1.0.0
-	 */
-	public IFile getFile(String aFileName) {
-		return getWorkbenchURIConverter().getFile(aFileName);
-	}
-
-	/**
-	 * Return the nature's ID.
-	 * 
-	 * @return nature id
-	 * 
-	 * @since 1.0.0
-	 */
-	public abstract String getNatureID();
-
-	/**
-	 * Return the ID of the plugin that this nature is contained within.
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	protected abstract String getPluginID();
-
-	/**
-	 * Returns the project to which this project nature applies.
-	 * 
-	 * @return the project handle
-	 * @since 1.0.0
-	 */
-	public org.eclipse.core.resources.IProject getProject() {
-		return project;
-	}
-
-	/**
-	 * Return the full path of the project.
-	 * 
-	 * @return full project path (relative to workspace)
-	 * @since 1.0.0
-	 */
-	public IPath getProjectPath() {
-		return getProject().getFullPath();
-	}
-
-	/**
-	 * Get the server property of the project from the supplied key
-	 * 
-	 * @param key
-	 *            java.lang.String
-	 * @deprecated we cannont use persistent properties because they are not stored in the repository
-	 * @since 1.0.0
-	 */
-	protected String getProjectServerValue(String key) {
-		if (key == null)
-			return null;
-		try {
-			QualifiedName wholeName = qualifiedKey(key);
-			return getProject().getPersistentProperty(wholeName);
-		} catch (CoreException exception) {
-			//If we can't find it assume it is null
-			exception.printStackTrace();
-			return null;
-		}
-	}
-
-	/**
-	 * Get WorkbenchURIConverter for this project.
-	 * <p>
-	 * This method assumes the URIConverter on the ResourceSet is the one that was created for the ResourceSet on behalf of this nature runtime.
-	 * </p>
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	protected WorkbenchURIConverter getWorkbenchURIConverter() {
-		return (WorkbenchURIConverter) getResourceSet().getURIConverter();
-	}
-
-	public IWorkspace getWorkspace() {
-		return getProject().getWorkspace();
-	}
-
-	/**
-	 * @deprecated use getResource(URI)
-	 */
-	public Resource getXmiResource(String uri) {
-		return getResource(URI.createURI(uri));
-	}
-
-	/**
-	 * Get the resource for this uri. It will use the resource set of the project to find it. It will load if not already loaded.
-	 * 
-	 * @param uri
-	 * @return resource or <code>null</code> if resource is not found.
-	 * 
-	 * @since 1.0.0
-	 */
-	public Resource getResource(URI uri) {
-		try {
-			return getResourceSet().getResource(uri, true);
-		} catch (WrappedException ex) {
-			if (!WorkbenchResourceHelperBase.isResourceNotFound(ex))
-				throw ex;
-		}
-		return null;
-	}
-
-	/**
-	 * @deprecated use getResourceSet()
-	 */
-	public ResourceSet getXmiResourceSet() {
-		return getResourceSet();
-	}
-
-	/**
-	 * Make sure that all dependent components are initialized before creating the ResourceSet.
-	 */
-	protected void initializeDependentComponents() {
-		//com.ibm.etools.java.init.JavaInit.init();
-	}
-
-	/**
-	 * @deprecated use createResource(URI)
-	 */
-	public Resource makeXmiResource(String uri) {
-		return createResource(URI.createURI(uri));
-	}
-
-	/**
-	 * @deprecated use createResource(URI)
-	 */
-	public Resource makeXmiResource(String uri, EList anExtent) {
-		Resource res = makeXmiResource(uri);
-		if (res != null)
-			res.getContents().addAll(anExtent);
-		return res;
-	}
-
-	/**
-	 * Create the resource for this uri. It will use the resource set of the project to create it.
-	 * 
-	 * @param uri
-	 * @return resource
-	 * 
-	 * @since 1.0.0
-	 */
-	public Resource createResource(URI uri) {
-		return getResourceSet().createResource(uri);
-	}
-
-	/*
-	 * Return the QualifedValue for key for storage in the repository. The key is qualifed with the package name to avoid collision. @return
-	 * QualifedName @param key java.lang.String
-	 */
-	private QualifiedName qualifiedKey(String key) {
-		return new QualifiedName(getPluginID(), key);
-	}
-
-	/**
-	 * Register the given nature id as an EMFNature.
-	 * 
-	 * @param natureID
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void registerNatureID(String natureID) {
-		EMFNatureRegistry.singleton().REGISTERED_NATURE_IDS.add(natureID);
-	}
-
-	/**
-	 * Sets the project to which this nature applies. Used when instantiating this project nature runtime. This is called by
-	 * <code>IProject.addNature</code> and should not be called directly by clients.
-	 * 
-	 * @param project
-	 *            the project to which this nature applies
-	 * 
-	 * @since 1.0.0
-	 */
-	public void setProject(org.eclipse.core.resources.IProject newProject) {
-		project = newProject;
-	}
-
-	/**
-	 * Set the server property of the project from the supplied value
-	 * 
-	 * @param key
-	 *            java.lang.String
-	 * @param value
-	 *            String
-	 * @deprecated we cannont use persistent properties because they are not stored in the repository
-	 */
-	protected void setProjectServerValue(String key, String value) {
-		if (key != null) {
-			try {
-				QualifiedName wholeName = qualifiedKey(key);
-				getProject().setPersistentProperty(wholeName, value);
-			} catch (CoreException exception) {
-				//If we can't find it assume it is null
-				exception.printStackTrace();
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Shutdown the EMF nature
-	 * 
-	 * 
-	 * @since 1.0.0
-	 */
-	public void shutdown() {
-		if (getResourceSet() != null)
-			((ProjectResourceSet) getResourceSet()).release();
-	}
-
-	/**
-	 * Return a list of EMFNatures based on the natures that have been configured for this project.
-	 * 
-	 * @return List of EMFNatures
-	 * @param project
-	 * @return list of natures configured for the project.
-	 * @since 1.0.0
-	 */
-	public static List getRegisteredRuntimes(IProject project) {
-		List result = null;
-		EMFNature nature = null;
-		if (project != null && project.isAccessible()) {
-			String natureID;
-			Iterator it = EMFNatureRegistry.singleton().REGISTERED_NATURE_IDS.iterator();
-			while (it.hasNext()) {
-				natureID = (String) it.next();
-				try {
-					nature = (EMFNature) project.getNature(natureID);
-				} catch (CoreException e) {
-				}
-				if (nature != null) {
-					if (result == null)
-						result = new ArrayList(2);
-					result.add(nature);
-				}
-			}
-		}
-		return result == null ? Collections.EMPTY_LIST : result;
-	}
-
-	/**
-	 * Return a list of nature ids based on the natures that have been configured for this project.
-	 * 
-	 * @return list of configured nature ids.
-	 * @param project
-	 */
-	public static List getRegisteredRuntimeIDs(IProject project) {
-		List result = null;
-		String natureID = null;
-		if (project != null && project.isAccessible()) {
-			Iterator it = EMFNatureRegistry.singleton().REGISTERED_NATURE_IDS.iterator();
-			while (it.hasNext()) {
-				natureID = (String) it.next();
-				try {
-					if (project.hasNature(natureID)) {
-						if (result == null)
-							result = new ArrayList(2);
-						result.add(natureID);
-					}
-				} catch (CoreException e) {
-				}
-			}
-		}
-		return result == null ? Collections.EMPTY_LIST : result;
-	}
-
-	/**
-	 * Return if the project has the given nature.
-	 * 
-	 * @param project
-	 * @param natureId
-	 * @return <code>true</code> if project has given nature
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean hasRuntime(IProject project, String natureId) {
-		if (project == null || !project.isAccessible())
-			return false;
-		try {
-			return project.hasNature(natureId);
-		} catch (CoreException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Return if the project has any one of the possible given nature ids.
-	 * 
-	 * @param project
-	 * @param possibleNatureIds
-	 * @return <code>true</code> if at least one of the possible natures id is configured for the project.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean hasRuntime(IProject project, String[] possibleNatureIds) {
-		if (project != null) {
-			for (int i = 0; i < possibleNatureIds.length; i++) {
-				if (hasRuntime(project, possibleNatureIds[i]))
-					return true;
-			}
-		}
-		return false;
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java
deleted file mode 100644
index 4285566..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/AbstractWorkBenchRenderer.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: AbstractWorkBenchRenderer.java,v $
- *  $Revision: 1.5 $  $Date: 2005/12/14 21:24:26 $ 
- */
-package org.eclipse.jem.util.logger.proxyrender;
-
-import java.lang.reflect.Field;
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.*;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.util.logger.proxy.*;
-
-
-/**
- * Base log renderer that logs to the workbench.
- * 
- * @since 1.1.0
- */
-public abstract class AbstractWorkBenchRenderer implements ILogRenderer2 {
-
-	private boolean fTraceMode = false; // will we actually punch trace messaged or not
-
-	private boolean fSettingTrace = false;
-
-	protected Bundle fMyBundle = null;
-
-	protected Logger fMyLogger = null;
-
-	protected ILog fWorkBenchLogger = null;
-
-	/**
-	 * Constructer taking a logger.
-	 * 
-	 * @param logger
-	 * 
-	 * @since 1.1.0
-	 */
-	public AbstractWorkBenchRenderer(Logger logger) {
-		super();
-		fMyLogger = logger;
-		fTraceMode = fMyLogger.getTraceMode();
-
-		String pluginID = fMyLogger.getPluginID();
-		fMyBundle = Platform.getBundle(pluginID);
-		if (fMyBundle == null)
-			throw new RuntimeException("Invalid Plugin ID"); //$NON-NLS-1$
-
-		fWorkBenchLogger = Platform.getLog(fMyBundle);
-		setTraceMode(fMyLogger.getTraceMode() || isDebugging(fMyBundle));
-		fMyLogger.setRenderer(this);
-	}
-
-	/*
-	 * This used to come from the Plugin instance. But in new OSGi, there is not necessarily a Plugin instance. So use the same logic they use.
-	 */
-	private boolean isDebugging(Bundle bundle) {
-		String symbolicName = bundle.getSymbolicName();
-		if (symbolicName != null) {
-			String key = symbolicName + "/debug"; //$NON-NLS-1$
-			String value = Platform.getDebugOption(key);
-			return value == null ? false : value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		return false;
-	}
-
-	/**
-	 * Is the console log for eclipse turned on to sysout. If true, then we shouldn't log to console anything already logged because Eclipse would of
-	 * logged it for us. This comes from the -Declipse.consoleLog="true" which is the default when starting eclipse from PDE.
-	 */
-	protected static final boolean consoleLogOn;
-	static {
-		String consologPropertyName = null;
-		try {
-			// Accessing an internal field, so using reflection. This way if changes in future we won't crash.
-			Class eclipseStarter = Class.forName("org.eclipse.core.runtime.adaptor.EclipseStarter");	//$NON-NLS-1$
-			Field consolelog = eclipseStarter.getDeclaredField("PROP_CONSOLE_LOG");	//$NON-NLS-1$
-			consologPropertyName = (String) consolelog.get(null);
-		} catch (SecurityException e) {
-		} catch (IllegalArgumentException e) {
-		} catch (ClassNotFoundException e) {
-		} catch (NoSuchFieldException e) {
-		} catch (IllegalAccessException e) {
-		}
-		consoleLogOn = consologPropertyName != null && "true".equals(System.getProperty(consologPropertyName)) ;  //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer#setTraceMode(boolean)
-	 */
-	public void setTraceMode(boolean flag) {
-		if (fSettingTrace)
-			return; // Do not allow cycles
-
-		fSettingTrace = true;
-		fTraceMode = flag;
-		fMyLogger.setTraceMode(flag);
-		fSettingTrace = false;
-	}
-
-	// The following methods are for historical renderers in case this has been subclassed outside
-	// of util.
-
-	/**
-	 * Log a string to the trace.
-	 * 
-	 * @param param
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public abstract String log(String param);
-
-	/**
-	 * Default one that log a string to the trace given a level. Default simply passes it to log(String) so that we don't break old subclasses.
-	 * <p>
-	 * If loggedToWorkbench is true, then it shouldn't be logged to console if consoleLogOn is true because workbench already logged to console.
-	 * 
-	 * @param msg
-	 * @param l
-	 * 
-	 * @since 1.0.0
-	 */
-	protected void log(String msg, Level l, boolean loggedToWorkbench) {
-		log(msg);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer#log(java.lang.String, int)
-	 */
-	public String log(String msg, int type) {
-
-		String target = logWorkBench(msg, type);
-		if (fTraceMode || target.equals(NOLOG_DESCRIPTION))
-			return log(msg);
-		else
-			return target;
-	}
-
-	/**
-	 * Log to workbench, a string of the given level <code>ILogRenderer.LOG_</code>. levels.
-	 * 
-	 * @param msg
-	 * @param type
-	 * @return description of the log's destination e.g., <code>CONSOLE_DESCRIPTION</code>
-	 * 
-	 * @see ILogRenderer#LOG_ERROR and all of the other log types.
-	 * @see ILogRenderer#CONSOLE_DESCRIPTION
-	 * @since 1.0.0
-	 */
-	public String logWorkBench(String msg, int type) {
-
-		try {
-			int ErrCode;
-			if (fWorkBenchLogger != null) {
-				switch (type) {
-					case (ILogRenderer.LOG_ERROR):
-						ErrCode = IStatus.ERROR;
-						break;
-					case (ILogRenderer.LOG_WARNING):
-						ErrCode = IStatus.WARNING;
-						break;
-					case (ILogRenderer.LOG_INFO):
-						ErrCode = IStatus.INFO;
-						break;
-					case (ILogRenderer.LOG_TRACE):
-						ErrCode = IStatus.OK;
-						break;
-					default:
-						throw new RuntimeException("Invalid Log Type"); //$NON-NLS-1$
-				}
-				Status status = new Status(ErrCode, fMyBundle.getSymbolicName(), IStatus.OK, msg, null);
-				fWorkBenchLogger.log(status);
-				return WORKBENCH_DESCRIPTION;
-			} else
-				return NOLOG_DESCRIPTION;
-		} catch (Throwable t) {
-			return NOLOG_DESCRIPTION;
-		}
-	}
-
-	// Default implentation of the ILogRenderer2 interface.
-	protected boolean isLogging(Level level) {
-		return fTraceMode || fMyLogger.isLoggingLevel(level);
-	}
-
-	private static final int[] STATUS_LEVEL;
-
-	private static final Level[] STATUS_LEVEL_LOOKUP;
-
-	private static final Level[] LEVEL_STATUS;
-
-	static {
-		// Status levels that correspond to the log levels, from finest to none, same indexes as from STATUS_LEVEL_LOOKUP.
-		STATUS_LEVEL_LOOKUP = new Level[] { Level.INFO, Level.WARNING, Level.SEVERE};
-		STATUS_LEVEL = new int[] { IStatus.INFO, IStatus.WARNING, IStatus.ERROR};
-
-		// Levels that correspond to the IStatus levels.
-		int maxID = Math.max(IStatus.OK, Math.max(IStatus.INFO, Math.max(IStatus.WARNING, IStatus.ERROR)));
-		LEVEL_STATUS = new Level[maxID + 1];
-		LEVEL_STATUS[IStatus.OK] = Level.FINE;
-		LEVEL_STATUS[IStatus.INFO] = Level.INFO;
-		LEVEL_STATUS[IStatus.WARNING] = Level.WARNING;
-		LEVEL_STATUS[IStatus.ERROR] = Level.SEVERE;
-	}
-
-	/**
-	 * Return the Java Level for the status code from the given IStatus.
-	 * 
-	 * @param status
-	 * @return the Java Level
-	 * 
-	 * @since 1.0.0
-	 */
-	protected Level getLogLevel(IStatus status) {
-		return LEVEL_STATUS[status.getSeverity()];
-	}
-
-	/**
-	 * Return the IStatus status code for the given Java Level.
-	 * 
-	 * @param logLevel
-	 * @return the IStatus status code.
-	 * 
-	 * @since 1.0.0
-	 */
-	protected int getStatusSeverity(Level logLevel) {
-		for (int i = 0; i < STATUS_LEVEL_LOOKUP.length; i++) {
-			if (STATUS_LEVEL_LOOKUP[i] == logLevel)
-				return STATUS_LEVEL[i];
-		}
-		return IStatus.OK; // Default to ok.
-	}
-
-	/**
-	 * Log the string to the workbench for the given level
-	 * 
-	 * @param msg
-	 * @param level
-	 * @return description of the log's destination e.g., <code>CONSOLE_DESCRIPTION</code>
-	 * 
-	 * @since 1.1.0
-	 */
-	protected String logWorkbench(String msg, Level level) {
-		String result = NOLOG_DESCRIPTION;
-		// Test again because we could be here simply due to trace mode, in which case we
-		// don't want to workbench log it.
-		if (fMyLogger.isLoggingLevel(level)) {
-			Platform.getLog(fMyBundle).log(new Status(getStatusSeverity(level), fMyBundle.getSymbolicName(), 0, msg, null));
-			result = WORKBENCH_DESCRIPTION;
-			if (fTraceMode)
-				log(msg, level, true);
-		} else if (fTraceMode)
-			log(msg, level, false);
-		return result;
-	}
-
-	private String getStatusMsg(IStatus s, Level l) {
-		if (s.getException() != null)
-			return fMyLogger.getGenericMsg(s.toString() + fMyLogger.fLineSeperator + fMyLogger.exceptionToString(s.getException()), l);
-		else
-			return fMyLogger.getGenericMsg(s.toString(), l);
-	}
-
-	/**
-	 * Log the IStatus to the workbench at the given level.
-	 * 
-	 * @param s
-	 * @param level
-	 * @return description of the log's destination e.g., <code>CONSOLE_DESCRIPTION</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	protected String logWorkbench(IStatus s, Level level) {
-		if (level == DEFAULT)
-			level = getLogLevel(s);
-		String result = NOLOG_DESCRIPTION;
-		// Test again because we could be here simply due to trace mode, in which case we
-		// don't want to workbench log it.
-		if (fMyLogger.isLoggingLevel(level)) {
-			Platform.getLog(fMyBundle).log(s);
-			result = WORKBENCH_DESCRIPTION;
-			if (fTraceMode)
-				log(getStatusMsg(s, level), level, true);
-		} else if (fTraceMode)
-			log(getStatusMsg(s, level), level, false);
-		return result;
-	}
-
-	/**
-	 * Log to the workbench the Throwable at the given level.
-	 * 
-	 * @param t
-	 * @param level
-	 * @return description of the log's destination e.g., <code>CONSOLE_DESCRIPTION</code>
-	 * 
-	 * @since 1.0.0
-	 */
-	protected String logWorkbench(Throwable t, Level level) {
-		String result = NOLOG_DESCRIPTION;
-		// Test again because we could be here simply due to trace mode, in which case we
-		// don't want to workbench log it.
-		if (fMyLogger.isLoggingLevel(level)) {
-			Platform.getLog(fMyBundle).log(new Status(getStatusSeverity(level), fMyBundle.getSymbolicName(), 0, "Exception thrown.", t)); //$NON-NLS-1$
-			result = WORKBENCH_DESCRIPTION;
-			if (fTraceMode)
-				log(fMyLogger.getGenericMsg(fMyLogger.exceptionToString(t), level), level, true);
-		} else if (fTraceMode)
-			log(fMyLogger.getGenericMsg(fMyLogger.exceptionToString(t), level), level, false);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(byte, java.util.logging.Level)
-	 */
-	public String log(boolean b, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(b), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(byte, java.util.logging.Level)
-	 */
-	public String log(byte b, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(b), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(char, java.util.logging.Level)
-	 */
-	public String log(char c, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(c), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(double, java.util.logging.Level)
-	 */
-	public String log(double d, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(d), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(float, java.util.logging.Level)
-	 */
-	public String log(float f, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(f), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(int, java.util.logging.Level)
-	 */
-	public String log(int i, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(i), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(long, java.util.logging.Level)
-	 */
-	public String log(long l, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(l), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(java.lang.Object, java.util.logging.Level)
-	 */
-	public String log(Object o, Level level) {
-		if (o instanceof IStatus)
-			return logWorkbench((IStatus) o, level);
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(o), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(short, java.util.logging.Level)
-	 */
-	public String log(short s, Level level) {
-		if (level == DEFAULT)
-			level = Level.FINEST;
-		if (isLogging(level))
-			return logWorkbench(fMyLogger.getGenericMsg(String.valueOf(s), level), level);
-		else
-			return NOLOG_DESCRIPTION;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxy.ILogRenderer2#log(java.lang.Throwable, java.util.logging.Level)
-	 */
-	public String log(Throwable t, Level level) {
-		if (t instanceof CoreException)
-			return logWorkbench(((CoreException) t).getStatus(), level);
-		if (level == DEFAULT)
-			level = Level.SEVERE;
-		if (isLogging(level)) {
-			return logWorkbench(t, level);
-		} else
-			return NOLOG_DESCRIPTION;
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java
deleted file mode 100644
index 90b2963..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/ConsoleLogRenderer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: ConsoleLogRenderer.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:04:14 $ 
- */
-package org.eclipse.jem.util.logger.proxyrender;
-
-import java.util.logging.Level;
-
-import org.eclipse.jem.util.logger.proxy.ILogRenderer;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * Log renderer to the console.
- * 
- * @since 1.0.0
- */
-public class ConsoleLogRenderer extends AbstractWorkBenchRenderer {
-
-	/**
-	 * Constructor taking a logger.
-	 * 
-	 * @param logger
-	 * 
-	 * @since 1.0.0
-	 */
-	public ConsoleLogRenderer(Logger logger) {
-		super(logger);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxyrender.AbstractWorkBenchRenderer#log(java.lang.String)
-	 */
-	public String log(String msg) {
-
-		System.out.println(msg);
-		return ILogRenderer.CONSOLE_DESCRIPTION;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxyrender.AbstractWorkBenchRenderer#log(java.lang.String, java.util.logging.Level, boolean)
-	 */
-	protected void log(String msg, Level l, boolean loggedToWorkbench) {
-		if (!loggedToWorkbench || !consoleLogOn) {
-			if (l == Level.SEVERE)
-				System.err.println(msg);
-			else
-				System.out.println(msg);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java
deleted file mode 100644
index bedf203..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/DefaultPluginTraceRenderer.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: DefaultPluginTraceRenderer.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:04:14 $ 
- */
-package org.eclipse.jem.util.logger.proxyrender;
-
-import java.io.*;
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.Platform;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * Logger that also logs to a trace file in the plugin's metadata area.
- * 
- * @since 1.0.0
- */
-public class DefaultPluginTraceRenderer extends AbstractWorkBenchRenderer {
-
-	/**
-	 * Name of the trace file in the metadata area.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String PluginTraceFileName = "/.log"; //$NON-NLS-1$
-
-	private String fTraceFile = null;
-
-	private PrintWriter traceFile = null;
-
-	/**
-	 * DefaultUILogRenderer constructor.
-	 * 
-	 * @param logger
-	 */
-	public DefaultPluginTraceRenderer(Logger logger) {
-		super(logger);
-
-		fTraceFile = Platform.getStateLocation(fMyBundle).toString() + PluginTraceFileName;
-		(new File(fTraceFile)).delete(); // Start from fresh ... do not want to leak on disk space
-
-	}
-
-	private void closeTraceFile() {
-		if (traceFile == null)
-			return;
-		try {
-			traceFile.flush();
-			traceFile.close();
-		} finally {
-			traceFile = null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxyrender.AbstractWorkBenchRenderer#log(java.lang.String)
-	 */
-	public String log(String msg) {
-
-		System.out.println(msg);
-
-		openTraceFile();
-		if (traceFile != null) {
-			traceFile.println(msg);
-			closeTraceFile();
-		}
-		return fTraceFile;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jem.util.logger.proxyrender.AbstractWorkBenchRenderer#log(java.lang.String, java.util.logging.Level, boolean)
-	 */
-	protected void log(String msg, Level l, boolean loggedToWorkbench) {
-		if (!loggedToWorkbench || !consoleLogOn) {
-			if (l == Level.SEVERE)
-				System.err.println(msg);
-			else
-				System.out.println(msg);
-		}
-
-		openTraceFile();
-		if (traceFile != null) {
-			traceFile.println(msg);
-			closeTraceFile();
-		}
-	}
-
-	private void openTraceFile() {
-		try {
-			traceFile = new PrintWriter(new FileOutputStream(fTraceFile, true));
-		} catch (IOException e) {
-			// there was a problem opening the log file so log to the console
-			traceFile = null;
-		}
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java
deleted file mode 100644
index 9e40f90..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/EclipseLogger.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: EclipseLogger.java,v $
- *  $Revision: 1.4 $  $Date: 2005/08/24 21:10:34 $ 
- */
-package org.eclipse.jem.util.logger.proxyrender;
-
-import java.util.logging.Level;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-import org.eclipse.jem.util.plugin.JEMUtilPlugin;
-
- 
-/**
- * Get an Eclipse logger. This gets a logger that knows it is for a plugin. 
- * 
- * For each plugin, the following can be specified in the .option file:
- * 		{plugin-id}/debug/logTrace
- * 			The values valid for this are "true", "false", or "default". If true then loggers will be set into
- * 			trace mode. This means everything logged (even those that are filtered out due to not meeting log level)
- * 			will be traced out. If the value is "true" they will be traced to the system console.  
- * 			If it is "default" or not set at all, then it will be the value in the "org.eclipse.jem.util/debug/logTrace" .options setting.
- * 			If not set there, then default value will be false.
- * 
- * 		{plugin-id}/debug/logTraceFile
- * 			The values valid for this are "true", "false", or "default". If true then loggers will trace to 
- * 			the system console AND to the ".log" file in the plugins work area in the metadata section of the workspace.
- * 			If "false" then not traced to a trace file. 
- * 			If it is "default" or not set at all, then it will be the value in the "org.eclipse.jem.util/debug/logTraceFile" .options setting.
- * 			If not set there, then default value will be false.
- * 
- * 		{plugin-id}.debug/logLevel
- * 			The values valid for this are the names from <code>java.util.logging.Level</code>, and "default". These
- * 			are the trace cutoff levels to use. For instance, if the level was SEVERE, then only level SEVERE msgs
- * 			are logged. The rest are skipped. Or if the level was WARNING, then only level SEVERE and WARNING are
- * 			logged.
- * 			If it is "default" or not set at all, then it will be the value in the "org.eclipse.jem.util/debug/logLevel" .options setting.
- * 			If not set there, then default value will be WARNING.
- * 
- * 
- * @since 1.0.0
- */
-public class EclipseLogger extends Logger {
-
-	public static final String DEBUG_TRACE_OPTION = "/debug/logtrace"; //$NON-NLS-1$
-	public static final String DEBUG_TRACE_FILE_OPTION = "/debug/logtracefile"; //$NON-NLS-1$
-	public static final String DEBUG_LOG_LEVEL_OPTION = "/debug/loglevel"; // The logging level to use when no Hyaedes. (which we don't support at this time). //$NON-NLS-1$
-	public static final String DEFAULT_OPTION = "default";	// If option value is this, then the value from WTP Common plugin options will be used for both logTrace and logLevel.	 //$NON-NLS-1$
-	
-	/**
-	 * Return a logger based upon the Plugin. 
-	 * @param plugin
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Logger getEclipseLogger(Plugin plugin) {
-		return getEclipseLogger(plugin.getBundle());
-	}
-	
-	/**
-	 * Return a logger based upon the bundle.
-	 * 
-	 * @param bundle
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Logger getEclipseLogger(Bundle bundle) {
-		String id = bundle.getSymbolicName();
-		Logger logger = getLoggerIfExists(id);
-		if (logger != null)
-			return logger;
-		
-		logger = getLogger(id);	// Create one, we will now customize it.
-		
-		String pluginOption = Platform.getDebugOption(id + DEBUG_TRACE_OPTION);
-		if (pluginOption == null || "default".equalsIgnoreCase(pluginOption)) //$NON-NLS-1$
-			pluginOption = Platform.getDebugOption(JEMUtilPlugin.getDefault().getBundle().getSymbolicName() + DEBUG_TRACE_OPTION);
-		boolean logTrace = "true".equalsIgnoreCase(pluginOption); //$NON-NLS-1$
-
-		pluginOption = Platform.getDebugOption(id + DEBUG_TRACE_FILE_OPTION);
-		if (pluginOption == null || "default".equalsIgnoreCase(pluginOption)) //$NON-NLS-1$
-			pluginOption = Platform.getDebugOption(JEMUtilPlugin.getDefault().getBundle().getSymbolicName() + DEBUG_TRACE_FILE_OPTION);
-		boolean logTraceFile = "true".equalsIgnoreCase(pluginOption); //$NON-NLS-1$
-		
-		pluginOption = Platform.getDebugOption(id + DEBUG_LOG_LEVEL_OPTION);
-		if (pluginOption == null || "default".equalsIgnoreCase(pluginOption)) //$NON-NLS-1$
-			pluginOption = Platform.getDebugOption(JEMUtilPlugin.getDefault().getBundle().getSymbolicName() + DEBUG_LOG_LEVEL_OPTION);
-		
-		Level logLevel = Level.WARNING;
-		if (pluginOption != null) {
-			try {
-				logLevel = Level.parse(pluginOption);
-			} catch (IllegalArgumentException e) {
-			}
-		}
-		
-		if (logTrace)
-			logger.setTraceMode(true);
-		logger.setLevel(logLevel);
-		if (!logTraceFile)
-			logger.setRenderer(new ConsoleLogRenderer(logger));
-		else
-			logger.setRenderer(new DefaultPluginTraceRenderer(logger));
-		
-		return logger;
-	}
-	
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java
deleted file mode 100644
index 972ecdd..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/logger/proxyrender/IMsgLogger.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: IMsgLogger.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:04:14 $ 
- */
-package org.eclipse.jem.util.logger.proxyrender;
-
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-/**
- * Interface for a message logger.
- * 
- * @since 1.0.0
- */
-public interface IMsgLogger {
-	public Logger getMsgLogger();
-}
diff --git a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/plugin/JEMUtilPlugin.java b/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/plugin/JEMUtilPlugin.java
deleted file mode 100644
index a7b9b8f..0000000
--- a/plugins/org.eclipse.jem.util/jemutil/org/eclipse/jem/util/plugin/JEMUtilPlugin.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $$RCSfile: JEMUtilPlugin.java,v $$
- *  $$Revision: 1.5 $$  $$Date: 2006/05/17 20:13:45 $$ 
- */
-package org.eclipse.jem.util.plugin;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.osgi.framework.Bundle;
-
-import org.eclipse.jem.internal.util.emf.workbench.ProjectResourceSetImpl;
-import org.eclipse.jem.internal.util.emf.workbench.WorkspaceResourceNotifier;
-import org.eclipse.jem.internal.util.emf.workbench.nls.EMFWorkbenchResourceHandler;
-import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
-import org.eclipse.jem.util.emf.workbench.ResourceHandler;
-import org.eclipse.jem.util.logger.proxy.Logger;
-
-
-/**
- * Plugin for EMFWorkbench utils.
- * 
- * @since 1.0.0
- */
-public class JEMUtilPlugin extends Plugin {
-
-	public static final String ID = "org.eclipse.jem.util"; //$NON-NLS-1$
-	
-	/**
-	 * Plugin id of this plugin.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String PLUGIN_ID = ID;	
-
-	/**
-	 * UI Context extension point.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String UI_CONTEXT_EXTENSION_POINT = "uiContextSensitiveClass"; //$NON-NLS-1$
-
-	/**
-	 * UITester element name.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String UI_TESTER_EXTENSION_POINT = "uiTester"; //$NON-NLS-1$
-	
-	/**
-	 * Protocol for workspace
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String WORKSPACE_PROTOCOL = "workspace"; //$NON-NLS-1$
-
-	/**
-	 * Protocol for platform uri's. i.e. "platform:/..."
-	 * 
-	 * @since 1.0.0
-	 *  
-	 */
-	public static final String PLATFORM_PROTOCOL = "platform"; //$NON-NLS-1$
-
-	/**
-	 * Resource indication in platform protocol. Indicates url is for a resource in the workspace. i.e. "platform:/resource/projectname/..."
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String PLATFORM_RESOURCE = "resource"; //$NON-NLS-1$
-
-	/**
-	 * Plugin indication in platform protocol. Indicates url is for a file/directory in the plugins area. i.e. "platform:/plugin/pluginid/..."
-	 * 
-	 * @since 1.0.0
-	 */
-	public static final String PLATFORM_PLUGIN = "plugin"; //$NON-NLS-1$
-
-	private static WorkspaceResourceNotifier sharedCache;
-
-	private static ResourceSet pluginResourceSet;
-
-	private static String[] GLOBAL_LOADING_PLUGIN_NAMES;
-
-	private static JEMUtilPlugin DEFAULT;
-
-	public JEMUtilPlugin() {
-		super();
-		DEFAULT = this;
-	}
-
-	/**
-	 * Get the workspace. Just use ResourcePlugin.getWorkspace() instead.
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * Get the plugin instance.
-	 * 
-	 * @return plugin instance.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static JEMUtilPlugin getDefault() {
-		return DEFAULT;
-	}
-
-	/**
-	 * Gets the sharedCache.
-	 * <p>
-	 * This is not meant to be called by clients.
-	 * </p>
-	 * 
-	 * @return a WorkspaceResourceNotifier
-	 * @since 1.0.0
-	 */
-	public static WorkspaceResourceNotifier getSharedCache() {
-		if (sharedCache == null)
-			sharedCache = new WorkspaceResourceNotifier();
-		return sharedCache;
-	}
-
-	/**
-	 * Sets the sharedCache.
-	 * <p>
-	 * This is not meant to be called by clients.
-	 * </p>
-	 * 
-	 * @param sharedCache
-	 *            The sharedCache to set
-	 * @since 1.0.0
-	 */
-	public static void setSharedCache(WorkspaceResourceNotifier aSharedCache) {
-		sharedCache = aSharedCache;
-	}
-
-	/**
-	 * @deprecated use createIsolatedResourceSet(IProject)
-	 */
-	public static ResourceSet createIsolatedResourceSet() {
-		return null;
-	}
-
-	/**
-	 * Add an Adapter. You can use this api to listen for any shared resource being loaded or removed from any ProjectResourceSet in the Workbench
-	 * instead of trying to listen to each individual ProjectResourceSet.
-	 * 
-	 * @param adapter
-	 * 
-	 * @since 1.0.0
-	 */
-	public static void addWorkspaceEMFResourceListener(Adapter adapter) {
-		if (adapter != null && !getSharedCache().eAdapters().contains(adapter))
-			getSharedCache().eAdapters().add(adapter);
-	}
-
-	/**
-	 * Removes the adapter.
-	 * 
-	 * @param adapter
-	 * 
-	 * @see #addWorkspaceEMFResourceListener(Adapter)
-	 * @since 1.0.0
-	 */
-	public static void removeWorkspaceEMFResourceListener(Adapter adapter) {
-		if (adapter != null)
-			getSharedCache().eAdapters().remove(adapter);
-	}
-
-	/**
-	 * Is this plugin active.
-	 * 
-	 * @return <code>true</code> if active
-	 * 
-	 * @since 1.0.0
-	 */
-	public static boolean isActivated() {
-		Bundle bundle = Platform.getBundle(ID);
-		if (bundle != null)
-			return bundle.getState() == Bundle.ACTIVE;
-		return false;
-	}
-
-	/**
-	 * This method will be called when a WorkbenchContext is instantiated on an EMFNature.
-	 * <p>
-	 * This not meant to be called by clients.
-	 * </p>
-	 * 
-	 * @param aResourceSet
-	 * 
-	 * @see plugin.xml#ResourceHandlerExtension extension point.
-	 * @since 1.0.0
-	 */
-	public void addExtendedResourceHandlers(ProjectResourceSet aResourceSet) {
-		if (aResourceSet == null)
-			return;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint pct = registry.getExtensionPoint(getBundle().getSymbolicName(), "ResourceHandlerExtension"); //$NON-NLS-1$
-		IExtension[] extension = pct.getExtensions();
-		IExtension config;
-		for (int l = 0; l < extension.length; ++l) {
-			config = extension[l];
-			IConfigurationElement[] cElems = config.getConfigurationElements();
-			ResourceHandler handler = null;
-			for (int i = 0; i < cElems.length; i++) {
-				try {
-					handler = (ResourceHandler) cElems[i].createExecutableExtension("run"); //$NON-NLS-1$
-
-				} catch (Exception ex) {
-					handler = null;
-				}
-				if (handler != null)
-					aResourceSet.add(handler);
-			}
-		}
-	}
-
-	/**
-	 * Delete the contents of the directory (and the directory if deleteRoot is true).
-	 * @param root
-	 * @param deleteRoot <code>true</code> to delete the root directory too.
-	 * @param monitor 
-	 * @return <code>true</code> if there was an error deleting anything.
-	 * 
-	 * @since 1.1.0
-	 */
-	public static boolean deleteDirectoryContent(File root, boolean deleteRoot, IProgressMonitor monitor) {
-		boolean error = false;
-		if (root.canRead()) {
-			if (root.isDirectory()) {
-				File[] files = root.listFiles();
-				monitor.beginTask(MessageFormat.format(EMFWorkbenchResourceHandler.getString("ProjectUtil_Delete_1"), new Object[] {root.getName()}), files.length+(deleteRoot ? 1 : 0)); //$NON-NLS-1$
-				for (int i = 0; i < files.length; i++) {
-					if (files[i].isDirectory())
-						error |= deleteDirectoryContent(files[i], true, new SubProgressMonitor(monitor, 1));
-					else {
-						error |= !files[i].delete();
-					}
-					monitor.worked(1);
-				}
-			} else {
-				monitor.beginTask(MessageFormat.format(EMFWorkbenchResourceHandler.getString("ProjectUtil_Delete_1"), new Object[] {root.getName()}), 1);				 //$NON-NLS-1$
-			}
-			if (deleteRoot) {
-				error |= !root.delete();
-				monitor.worked(1);
-			}
-			monitor.done();
-		} else {
-			error = true;
-		}
-		return error;
-	}
-	
-	/**
-	 * Add a clean resource changelistener.
-	 * @param listener
-	 * @param eventMask mask of event types to listen for in addition to ones that are necessary for clean. Use 0 if no additional ones.
-	 * 
-	 * @since 1.1.0
-	 */
-	public static void addCleanResourceChangeListener(CleanResourceChangeListener listener, int eventMask) {
-		// PRE_BUILD: Handle Clean.
-		// TODO Until https://bugs.eclipse.org/bugs/show_bug.cgi?id=101942 is fixed, we must do POST_BUILD, that will probably be sent because a clean will cause a build to occur which should cause a delta.
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(listener, eventMask | IResourceChangeEvent.POST_BUILD);		
-	}
-	
-	/**
-	 * A resource listener that can be used in addition to listen for Clean requests and process them.
-	 * <p>
-	 * Use <code>{@link IResourceChangeEvent#PRE_BUILD}</code> when adding as listener to get the
-	 * clean events.
-	 * <p>
-	 * <b>Note</b> : TODO Until https://bugs.eclipse.org/bugs/show_bug.cgi?id=101942 is fixed, you must do POST_BUILD, that will probably be sent because a clean will cause a build to occur which should cause a delta.
-	 * @since 1.1.0
-	 */
-	public abstract static class CleanResourceChangeListener implements IResourceChangeListener {
-		
-		public void resourceChanged(IResourceChangeEvent event) {
-			// Subclasses can override this to handle more events than just clean.
-			if (event.getBuildKind() == IncrementalProjectBuilder.CLEAN_BUILD) {
-				if (event.getSource() instanceof IProject)
-					cleanProject((IProject) event.getSource());
-				else if (event.getSource() instanceof IWorkspace)
-					cleanAll();				
-			}
-		}
-
-		/**
-		 * Clear out the project.
-		 * @param project
-		 * 
-		 * @since 1.1.0
-		 */
-		protected abstract void cleanProject(IProject project);
-
-		/**
-		 * Clean all.
-		 * <p>
-		 * By default this will simply call a clean project on each open project. Subclasses should override and either
-		 * add more function to clear out non-project data and then call super. Or if they can handle all of the projects
-		 * in a faster way, then can completely handle this.
-		 * 
-		 * @since 1.1.0
-		 */
-		protected void cleanAll() {
-			IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-			for (int i = 0; i < projects.length; i++) {
-				IProject project = projects[i];
-				if (project.isOpen()) {
-					cleanProject(project);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Get the project resource set for the plugin (there is one for the whole system).
-	 * 
-	 * @return system-wide resource set.
-	 * @since 1.0.0
-	 */
-	public static ResourceSet getPluginResourceSet() {
-		if (pluginResourceSet == null)
-			pluginResourceSet = new ProjectResourceSetImpl(null);
-		return pluginResourceSet;
-	}
-
-	/**
-	 * Set the system-wide resource set.
-	 * 
-	 * @param set
-	 * @since 1.0.0
-	 */
-	public static void setPluginResourceSet(ResourceSet set) {
-		pluginResourceSet = set;
-	}
-
-	/**
-	 * Get the global loading plugin names.
-	 * <p>
-	 * This is not meant to be called by clients.
-	 * </p>
-	 * 
-	 * @return
-	 * 
-	 * @since 1.0.0
-	 */
-	public static String[] getGlobalLoadingPluginNames() {
-		if (GLOBAL_LOADING_PLUGIN_NAMES == null)
-			GLOBAL_LOADING_PLUGIN_NAMES = readGlobalLoadingPluginNames();
-		return GLOBAL_LOADING_PLUGIN_NAMES;
-	}
-
-	/**
-	 * Get the Logger for this plugin.
-	 * 
-	 * @return logger for this plugin.
-	 * 
-	 * @since 1.0.0
-	 */
-	public static Logger getLogger() {
-		return Logger.getLogger(ID);
-	}
-
-	private static String[] readGlobalLoadingPluginNames() {
-		IExtensionRegistry reg = Platform.getExtensionRegistry();
-		IExtensionPoint exPoint = reg.getExtensionPoint(ID, "globalPluginResourceLoad"); //$NON-NLS-1$
-		IExtension[] extensions = exPoint.getExtensions();
-		String[] names = new String[extensions.length];
-		if (extensions.length > 0) {
-			for (int i = 0; i < extensions.length; i++)
-				names[i] = extensions[i].getContributor().getName();
-		}
-		return names;
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.classpath b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.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/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.cvsignore b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.project b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.project
deleted file mode 100644
index 5e29c82..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.perfmsr.core</name>
-	<comment></comment>
-	<projects>
-	</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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/PERFMSR.README.txt b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/PERFMSR.README.txt
deleted file mode 100644
index 3186a36..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/PERFMSR.README.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-This is a stub plugin for perfmsr. It is here just so that org.eclipse.jem.util can compile.
-
-It should not be an open project during normal usage. Whenever any of the files in this project
-are changed, "perfmsr.jardesc" should be used to create the new changed appropriate jar. Do this by:
-
-1) Select perfmsr.jardesc
-2) On popup menu select "Create JAR"
-3) Hit "Finish"
-4) Commit all changes to CVS.
-5) Go to org.eclipse.jem.util project, select the org.eclipse.perfmsr.core.stub folder
-   and select Replace->Latest from HEAD. This will cause your just committed changes
-   from step 4 to be put into org.eclipse.jem.util and will be picked up for that
-   plugin to compile against.
-6) Either close or delete the org.eclipse.perfmsr.core.stuf project from the workspace.
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/about.html b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/about.html
deleted file mode 100644
index f9f238e..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/about.html
+++ /dev/null
@@ -1,32 +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>30th March, 2004</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
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the EPL, any Contributions, as defined in the EPL, 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 EPL and can be made available to others under the terms of the EPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the EPL (&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 EPL and such Modifications can be made available to others under the terms of
-the EPL.</p>
-
-<p><b>Version:</b> v20040624a
-
-</body>
-</html>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/build.properties b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/build.properties
deleted file mode 100644
index 3a4db57..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               *.jar
-source.perfmsr.jar = src/
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jar b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jar
deleted file mode 100644
index 1ebba8f..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jardesc b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jardesc
deleted file mode 100644
index d48e223..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/perfmsr.jardesc
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<jardesc>
-    <jar path="org.eclipse.perfmsr.core.stub/perfmsr.jar"/>
-    <options buildIfNeeded="true" compress="true" descriptionLocation="/org.eclipse.perfmsr.core.stub/perfmsr.jardesc" exportErrors="true" exportWarnings="true" overwrite="false" saveDescription="true" useSourceFolders="false"/>
-    <manifest generateManifest="true" manifestLocation="/VEScrapProject/MANIFEST.mf" manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="true">
-        <sealing sealJar="false">
-            <packagesToSeal/>
-            <packagesToUnSeal/>
-        </sealing>
-    </manifest>
-    <selectedElements exportClassFiles="true" exportJavaFiles="true" exportOutputFolder="false">
-        <javaElement handleIdentifier="=org.eclipse.perfmsr.core.stub/src"/>
-    </selectedElements>
-</jardesc>
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.properties b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.properties
deleted file mode 100644
index 5720eeb..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name=Performance Monitor
-
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.xml b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.xml
deleted file mode 100644
index 596926d..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.perfmsr.core"
-   name="%Plugin.name"
-   version="3.0.0"
-   provider-name="Eclipse.org"
-   class="org.eclipse.perfmsr.core.PerfMsrCorePlugin">
-
-   <runtime>
-      <library name="perfmsr.jar"><export name="*"/></library>
-   </runtime>
-   
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-</plugin>
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/IPerformanceMonitor.java b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/IPerformanceMonitor.java
deleted file mode 100644
index bd992c7..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/IPerformanceMonitor.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.perfmsr.core;
-
-/**
- * Take snapshots of the various performance counters.
- * ************* This is just a stub of the real interface to get org.eclipse.jem.util 
- *               to compile. It is not usable by itself. ****************************
- */
-public interface IPerformanceMonitor
-{
-	/**
-	 * These constants control how much information is gathered for a particular snapshot.
-	 * They are or'ed together and passed into the snapshot method.  
-	 */
-	interface Types
-	{
-		/** 
-		 * 1 - Write out the performance counters from the operating system. These
-		 * include working set, peak working set, elapsed time, user time, and 
-		 * kernel time.
-		 */
-		int OperatingSystemCounters		= 1;
-		
-		/**
-		 * 2 - Write out the global performance info. This includes things like the total
-		 * committed memory for the entire system.
-		 * 
-		 * This function depends on the GetPerformanceInfo() function being available in
-		 * the Windows psapi.dll. This is available in XP but is usually not available
-		 * in Win/2000. If it is not available then this function throws an UnsupportedOperationException.
-		 */
-		int GlobalSystemCounters		= 2;
-		
-		/**
-		 * 4 - Write out the size of the Java Heap.
-		 */
-		int JavaHeapSize				= 4;
-
-		/**
-		 * 8 - Write out how much of the Java heap is being used. This calls the 
-		 * garbage collector so it may skew timing results.
-		 */
-		int JavaHeapUsed				= 8;
-		
-		/**
-		 * 16 - The plugin startup and size information.
-		 */
-		int PluginInfo					= 16;
-		
-		/** 0xffff - Everything. */
-		int All							= 0xffff;	
-	}
-	
-	/**
-	 * Add some more "extra" variations. 
-	 * 
-	 * The variations that are in effect are made up of these extra variations plus any variations
-	 * that may have been set with the setVar() method.
-	 * 
-	 * @param varList a comma separated list of variations
-	 */
-	public void addVarAppend(String varList);
-	
-	/**
-	 * Set the driver name. 
-	 * 
-	 * @param driver a label that identifies the driver that is being tested. If it is a WSAD
-	 * driver, this will usually be set by the extension.
-	 */
-	public void setDriver(String driver);
-	
-	/**
-	 * Set the location of the performance measurement file, that is the place where
-	 * the measurements are stored.
-	 * 
-	 * @param logFile the file name of where the log should be written. Usually this is fully qualified
-	 * path name. For example "x:\logs\timer.xml".
-	 */
-	public void setLogFile(String logFile);
-	
-	/**
-	 * Set the performance monitor to be on or off. If it is off then most of the other 
-	 * operations will no-op.
-	 * 
-	 * The default is for the performance monitor to be off unless it's special environment variable is set. 
-	 * When called from the UI, the UI should call this to make sure that it is on.
-	 */
-	public void setIsOn(boolean isOn);
-	
-	/**
-	 * Sets the test case number for this measurement run.
-	 *  
-	 * @param testd test case identifier
-	 */
-	public void setTestd(int testd);
-	
-	/**
-	 * Sets the test case name. If will cause a new test case to be created if it does not already exist.
-	 * 
-	 * @param testName a simple (short) test case name. In the case of JUnit test cases, it would usually 
-	 * be the JUnit name.
-	 */
-	public void setTestName(String testName);
-	
-	/**
-	 * Set the variations that are in effect.
-	 * 
-	 * @param var a comma delimited string of variation numbers
-	 */
-	public void setVar(String var);
-	
-	/**
-	 * Set the upload host
-	 * 
-	 * @param host DNS name of the upload host
-	 */
-	public void setUploadHost(String host);
-	
-	/**
-	 * Set the upload port
-	 * 
-	 * @param port upload port
-	 */
-	public void setUploadPort(int port);
-	
-	/**
-	 * Set the upload userid
-	 * 
-	 * @param userid
-	 */
-	public void setUploadUserid(String userid);
-	
-	/**
-	 * Take a snapshot of some default performance measurements.
-	 * 
-	 * @param step this identifies the step that the snapshot is for
-	 */
-	void snapshot(int step);
-	
-	/**
-	 * Take a snapshot of the selected performance measurements.
-	 * 
-	 * @param step this identifies the step that the snapshot is for
-	 * 
-	 * @param types This controls which measurements are selected. It is an or'd together
-	 * list of the IPerformanceMonitor.Types constants.
-	 * 
-	 * @see IPerformanceMonitor.Types 
-	 */
-	void snapshot(int step, int types);
-	
-	/**
-	 * Write the comment to the performance measurement file.
-	 * 
-	 * @param comment
-	 */
-	void writeComment(String comment);
-	
-	/**
-	 * Upload the results to the server. This causes the file to be
-	 * closed, and the monitor to be placed into the finished state.
-	 * 
-	 * This method can only be called if the uploadhost, uploadport and uploaduserid
-	 * have been configured before hand.
-	 * 
-	 * @param description an optional description (it can be null)
-	 * 
-	 * @return some status information
-	 */
-	public Upload.Status upload(String description);
-//	
-//	/**
-//	 * Upload the results to the server. This causes the file to be
-//	 * closed, and the monitor to be placed into the finished state.
-//	 * 
-//	 * @param host the host name that the file is being sent to
-//	 * @param port the port on the host
-//	 * @param userid the userid that is doing the upload
-//	 * @param description an optional description (it can be null)
-//	 * 
-//	 * @return some status information
-//	 */
-//	Upload.Status upload(String host, int port, String userid, String description);
-
-
-}
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/PerfMsrCorePlugin.java b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/PerfMsrCorePlugin.java
deleted file mode 100644
index 2b86e9e..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/PerfMsrCorePlugin.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: PerfMsrCorePlugin.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:06:47 $ 
- */
-package org.eclipse.perfmsr.core;
-
-import org.eclipse.core.runtime.Plugin;
- 
-
-/**
- * ************* This is just a stub of the real class to get org.eclipse.jem.util 
- *               to compile. It is not usable by itself. ****************************
- * @since 1.0.0
- */
-public class PerfMsrCorePlugin extends Plugin {
-	
-	public static IPerformanceMonitor getPerformanceMonitor(boolean bool) {
-		return null;
-	}
-
-}
diff --git a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/Upload.java b/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/Upload.java
deleted file mode 100644
index c412f52..0000000
--- a/plugins/org.eclipse.jem.util/org.eclipse.perfmsr.core.stub/src/org/eclipse/perfmsr/core/Upload.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials 
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*
- *  $RCSfile: Upload.java,v $
- *  $Revision: 1.2 $  $Date: 2005/02/15 23:06:47 $ 
- */
-package org.eclipse.perfmsr.core;
- 
-
-/**
- * Upload.
- * ************* This is just a stub of the real interface to get org.eclipse.jem.util 
- *               to compile. It is not usable by itself. ****************************
- */
-public interface Upload {
-	public static class Status {
-		public boolean success;
-	}
-}
diff --git a/plugins/org.eclipse.jem.util/plugin.properties b/plugins/org.eclipse.jem.util/plugin.properties
deleted file mode 100644
index a53db6a..0000000
--- a/plugins/org.eclipse.jem.util/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#
-# $Source: /cvsroot/webtools/common.move/webtools.common.git/plugins/org.eclipse.jem.util/plugin.properties,v $
-# $Revision: 1.2 $  $Date: 2005/02/15 23:07:45 $
-#
-
-
-pluginName=Java EMF Model Utilities
-providerName = Eclipse.org
diff --git a/plugins/org.eclipse.jem.util/plugin.xml b/plugins/org.eclipse.jem.util/plugin.xml
deleted file mode 100644
index 591be42..0000000
--- a/plugins/org.eclipse.jem.util/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- Extension point to register ResourceHandlers that will always be added to 
-	new WorkbenchContexts -->
-   <extension-point id="ResourceHandlerExtension" name="ResourceHandlerExtension"/>
-   <extension-point id="globalPluginResourceLoad" name="Global Plugin Resource Load"/>
-   <extension-point id="nature_registration" name="EMF Nature registration"/>
-   <extension-point id="internalWorkbenchContextFactory" name="Internal Workbench Context Factory"/>
-   <extension-point id="uiContextSensitiveClass" name="UI Context Sensitive Class" schema="schema/uiContextSensitiveClass.exsd"/>
-   <extension-point id="uiTester" name="UI Tester" schema="schema/uiTester.exsd"/>   
-   
-</plugin>
diff --git a/plugins/org.eclipse.jem.util/property_files/emfworkbench.properties b/plugins/org.eclipse.jem.util/property_files/emfworkbench.properties
deleted file mode 100644
index cad9483..0000000
--- a/plugins/org.eclipse.jem.util/property_files/emfworkbench.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-EMFWorkbenchContextBase_ERROR_0=IWAE0003E Method not yet implemented.
-EMFWorkbenchContextBase_ERROR_1=IWAE0005E Project can not be null.
-EMFWorkbenchContextBase_ERROR_2=IWAE0006E Attempt to create resource set with null project
-EMFNatureRegistry_ERROR_0=IWAE0007E Duplicate EMF nature registration for id: {0}
-EMFWorkbenchContextFactory_UI_0=The project should not be null.
-EMFWorkbenchContextFactory_UI_1=The project \"{0}\" is not accessible.
-
-ProjectUtil_Delete_1=Deleting \"{0}\".
\ No newline at end of file
diff --git a/plugins/org.eclipse.jem.util/schema/uiContextSensitiveClass.exsd b/plugins/org.eclipse.jem.util/schema/uiContextSensitiveClass.exsd
deleted file mode 100644
index df70e98..0000000
--- a/plugins/org.eclipse.jem.util/schema/uiContextSensitiveClass.exsd
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jem.util">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jem.util" id="uiContextSensitiveClass" name="UI Context Sensitive Class"/>
-      </appInfo>
-      <documentation>
-         Components are often designed in such a way that the &quot;Headless&quot; or non-graphical portions are separate from the Graphical User Interface (GUI) portions. Sometimes this is done to follow good design principles, other times there is a specific use case for doing so. When plugins follow this practice because they must vary their behavior based on whether they are running in a headless environment or a graphical environment, they often need to choose the correct implementation of a particular type. The org.eclipse.jem.util.uiContextSensitiveClass extension point provided by the JEM component solves exactly this problem.
-&lt;p&gt;    
-To use the extension point, you must provide two extensions that are linked by a key. The key is a unique String-based value that you will later use to instanitate your class.
-&lt;p&gt;
-The first usage of the extension specifies your key, and the Headless context, and the class that should be instantiated for this (key, context) pair. This means in the headless environment this class will be instantiated when requested.
-&lt;p&gt;
-The second extension specifies the UI context and the same key, but a different implementation designed for graphical environments. This means in the UI environment this other class will be instantiated when requested.
-&lt;p&gt;
-The actual request is done in your code via:
-&lt;pre&gt;
-IMyInterface instance = (IMyInterface) UIContextDetermination.createInstance(&quot;myKey&quot;);
-&lt;/pre&gt;
-where &lt;code&gt;&quot;myKey&quot;&lt;/code&gt; is the key used on both extensions. It will then choose either the UI or the Headless extension depending upon the context.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="uiContextSensitiveClass" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="uiContextSensitiveClass">
-      <annotation>
-         <documentation>
-            An extension point that defines an instance of a class and its appropriate context (UI or Headless)
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="key" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The key that should be used to create an instance of the Context Sensitive super class/interface.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="className" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A concrete implementation for either a UI or Headless context.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="context" use="required">
-            <annotation>
-               <documentation>
-                  One of &quot;UI&quot; or &quot;Headless&quot; This is case-sensitive. It must match exactly as shown here.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="UI">
-                  </enumeration>
-                  <enumeration value="Headless">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         6.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Usage for the UI context:
-&lt;pre&gt;
-   &lt;extension
-       id=&quot;context.Sensitive.Class.workingCopyManager&quot;
-       name=&quot;Working Copy Manager - UI Context Class&quot;
-       point=&quot;org.eclipse.jem.util.ContextSensitiveClass&quot;&gt;
-     &lt;uiContextSensitiveClass
-       context=&quot;UI&quot;
-       key=&quot;workingCopyManager&quot;
-       className=&quot;com.ibm.wtp.common.ui.WTPUIWorkingCopyManager&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;br&gt;
-Usage for the Headless context:
-&lt;pre&gt;
-   &lt;extension
-       id=&quot;context.Sensitive.Class.workingCopyManager&quot;
-       name=&quot;Working Copy Manager - Headless Context Class&quot;
-       point=&quot;org.eclipse.jem.util.ContextSensitiveClass&quot;&gt;
-     &lt;uiContextSensitiveClass
-         context=&quot;Headless&quot;
-         key=&quot;workingCopyManager&quot;
-         className=&quot;com.ibm.wtp.common.ui.WTPHeadlessWorkingCopyManager&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;br&gt;
-And finally the retrieval of the class for the current context:
-
-&lt;pre&gt;
-IWorkingCopyManager manager = (IWorkingCopyManager) UIContextDetermination.createInstance(&quot;workingCopyManager&quot;);
-&lt;/pre&gt;
-
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         See &lt;code&gt;org.eclipse.jem.util.UIContextDetermination&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) IBM 2003.
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.jem.util/schema/uiTester.exsd b/plugins/org.eclipse.jem.util/schema/uiTester.exsd
deleted file mode 100644
index 729ab32..0000000
--- a/plugins/org.eclipse.jem.util/schema/uiTester.exsd
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jem.util">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jem.util" id="uiTester" name="UI Tester"/>
-      </appInfo>
-      <documentation>
-         This is used to tell JEM that it is running in a non-HEADLESS environment. Typically UI environment is non-HEADLESS. The default if there are no implementers of this extension point that return true is HEADLESS.
-&lt;p&gt;
-A HEADLESS environment is typically a batch situation where there is no UI and the workspace is used for one operation and then terminated. Most headless tasks are done under one operation and the JavaReflectionSynchronizer may not have a chance to flush a bad reflection before the real type needs to be found and can be found. So what would happen is if a class was created during this one operation it would not be found because the notifications had not yet gone out. 
-&lt;p&gt;
-In a UI environment the operations are typically short and do only a few things and the results aren&apos;t needed until after the operation has completed. In that case it is more efficient to not keep checking if a class has appeared everytime a request is made, instead it will wait for the notification of the added class to appear before resetting the definition to allow checking again later.
-&lt;p&gt;
-If there is more than one implementer of this interface in the application, then it will go through each of them once until one returns true. As soon as one returns true it will stop and mark the application as being non-HEADLESS. This will be done only once for the application. It will not be again until the next session of the application.
-&lt;p&gt;
-This is typically an internal extension point only. The JEM UI plugin will provide an implementation that will return true if the Platform UI is active. So this will normally not be needed to be implemented by most customers.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="uiTester"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="uiTester">
-      <annotation>
-         <documentation>
-            The uiTester definition element.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="className" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name of the UITester for this extension. It must implement &lt;samp&gt;org.eclipse.jem.util.UITester&lt;/samp&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jem.util.UITester"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.0.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of an implementer: 
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.jem.util.uiTester&quot;&gt;
-  &lt;uiTester
-   className=&quot;com.example.UITesterImplementation&quot;/&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The &lt;samp&gt;className&lt;/samp&gt; attribute must be a fully-qualified class that implements the &lt;samp&gt;org.eclipse.jem.util.UITester&lt;/samp&gt; interface for the tester.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         There is no default implementation for this class.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2004, 2006 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at 
-&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.core/.classpath b/plugins/org.eclipse.wst.common.core/.classpath
deleted file mode 100644
index 202d634..0000000
--- a/plugins/org.eclipse.wst.common.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src-search"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.common.core/.cvsignore b/plugins/org.eclipse.wst.common.core/.cvsignore
deleted file mode 100644
index 0f861fd..0000000
--- a/plugins/org.eclipse.wst.common.core/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-build.xml
-javaCompiler...args
-src.zip
-@dot
-temp.folder
diff --git a/plugins/org.eclipse.wst.common.core/.options b/plugins/org.eclipse.wst.common.core/.options
deleted file mode 100644
index 2e5ed2a..0000000
--- a/plugins/org.eclipse.wst.common.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.common.search/perf=false
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.core/.project b/plugins/org.eclipse.wst.common.core/.project
deleted file mode 100644
index 6bb12ef..0000000
--- a/plugins/org.eclipse.wst.common.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.core</name>
-	<comment></comment>
-	<projects>
-	</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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7406de6..0000000
--- a/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,59 +0,0 @@
-#Mon Jan 30 23:40:52 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c68ceb4..0000000
--- a/plugins/org.eclipse.wst.common.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 30 19:45:41 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF
deleted file mode 100644
index ca5beff..0000000
--- a/plugins/org.eclipse.wst.common.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.core; singleton:=true
-Bundle-Version: 1.1.100.qualifier
-Bundle-Activator: org.eclipse.wst.common.core.search.SearchPlugin
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.core.search,
- org.eclipse.wst.common.core.search.document,
- org.eclipse.wst.common.core.search.internal;x-internal:=true,
- org.eclipse.wst.common.core.search.pattern,
- org.eclipse.wst.common.core.search.scope,
- org.eclipse.wst.common.core.search.util
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.core.expressions;bundle-version="[3.2.0,3.4.0)"
-Eclipse-LazyStart: true
-Bundle-Vendor: %pluginProvider
diff --git a/plugins/org.eclipse.wst.common.core/about.html b/plugins/org.eclipse.wst.common.core/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.core/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.common.core/build.properties b/plugins/org.eclipse.wst.common.core/build.properties
deleted file mode 100644
index cd3e92f..0000000
--- a/plugins/org.eclipse.wst.common.core/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src-search/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               schema/,\
-               plugin.properties,\
-               about.html
diff --git a/plugins/org.eclipse.wst.common.core/component.xml b/plugins/org.eclipse.wst.common.core/component.xml
deleted file mode 100644
index 3e9239c..0000000
--- a/plugins/org.eclipse.wst.common.core/component.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" 
-  name="org.eclipse.wst.common.core">
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.wst.common.core" fragment="false" />
-</component>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.core/plugin.properties b/plugins/org.eclipse.wst.common.core/plugin.properties
deleted file mode 100644
index ff6cdef..0000000
--- a/plugins/org.eclipse.wst.common.core/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-! Plug-in properties
-pluginName     = WST Common Core Plug-in
-pluginProvider = Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.core/plugin.xml b/plugins/org.eclipse.wst.common.core/plugin.xml
deleted file mode 100644
index c82f6a0..0000000
--- a/plugins/org.eclipse.wst.common.core/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="searchParticipants" name="%searchParticipants" />      
-</plugin>
-
-
diff --git a/plugins/org.eclipse.wst.common.core/schema/searchParticipants.exsd b/plugins/org.eclipse.wst.common.core/schema/searchParticipants.exsd
deleted file mode 100644
index 367c943..0000000
--- a/plugins/org.eclipse.wst.common.core/schema/searchParticipants.exsd
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.search" id="searchParticipants" name="%searchPArticipants"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/ISearchOptions.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/ISearchOptions.java
deleted file mode 100644
index 33305e5..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/ISearchOptions.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search;
-
-/**
- * This interface provides values that can be used in the map of search options passed
- * to
- * {@link SearchEngine#search(org.eclipse.wst.common.core.search.pattern.SearchPattern, SearchRequestor, org.eclipse.wst.common.core.search.scope.SearchScope, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
- * SearchEngine.search()}.
- * <p>
- * Note that not all search participants will provide specialized behavior based on
- * use of these search options.
- * <p>
- * Also note that individual search participants may support additional options not
- * listed here. These search options should be formed so that a search participant can
- * safely ignore any that it does not understand.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public interface ISearchOptions {
-
-	/**
-	 * Search option specifying a trade-off choice between search performance and
-	 * completeness.
-	 */
-	public static final String PRIORITY_OPTION = "org.eclipse.wst.common.core.search.PRIORITY"; //$NON_NLS_1$
-	/**
-	 * Choice for the {@link #PRIORITY_OPTION} search option that emphasizes
-	 * performance at the possible expense of accuracy. This value should be used for
-	 * all search calls made on the user interface thread. In some cases, search
-	 * results may not be complete because of inaccuracies caused by timing windows.
-	 */
-	public static final String PRIORITY_VALUE_TIMELINESS = "FAST_SEARCH"; //$NON_NLS_1$
-	/**
-	 * Choice for the {@link #PRIORITY_OPTION} search option that emphasizes
-	 * accuracy at the possible expense of timeliness. This value should never be used
-	 * for search calls made on the user interface thread, because some search
-	 * participants may choose to use time-consuming background processing to return a
-	 * complete set of matches.
-	 */
-	public static final String PRIORITY_VALUE_COMPLETENESS = "COMPLETE_SEARCH"; //$NON_NLS_1$
-	/**
-	 * Default choice for the {@link #PRIORITY_OPTION} search option.
-	 */
-	public static final String PRIORITY_VALUE_DEFAULT = PRIORITY_VALUE_TIMELINESS;
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchEngine.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchEngine.java
deleted file mode 100644
index 3fed117..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchEngine.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.wst.common.core.search.document.SearchDocumentSet;
-import org.eclipse.wst.common.core.search.internal.Messages;
-import org.eclipse.wst.common.core.search.internal.SearchDocumentSetImpl;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-
-/**
- * The {@link SearchEngine} class provides a generic way of searching for information
- * without the need of knowing how or where that information is stored. The results
- * returned by a search could be scattered in a number of files or stored in an index.
- * Examples of the information you can search for include element declarations and
- * references, references between files, and use of qualifiers.
- * <p>
- * The search can be limited to a specified search scope, or the entire workspace can
- * be searched. Search matches are returned to the specified {@link SearchRequestor}.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class SearchEngine implements ISearchOptions
-{
-
-	/**
-	 * Searches for matches of a given search pattern using a specified set of search
-	 * participants and search scope. Search patterns can be created using factory
-	 * methods and encapsulate the description of the information to be searched for
-	 * (for example, element declarations of a specified type, in a case sensitive
-	 * manner).
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param requestor
-	 *            Callback object to notify with the results of the search (each match
-	 *            is reported to {@link SearchRequestor#acceptSearchMatch(SearchMatch)})
-	 * @param participants
-	 *            The search participants that will conduct the search
-	 * @param scope
-	 *            Optional search scope to limit the source of search candidates;
-	 *            specify <code>null</code> to search the entire workspace
-	 * @param searchOptions
-	 *            Optional map of options and values defining behavior of the search;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @param monitor
-	 *            Optional progress monitor used to report work completed
-	 * @exception CoreException
-	 *            if the search fails
-	 */
-	public void search(SearchPattern pattern, SearchRequestor requestor,
-			SearchParticipant[] participants, SearchScope scope, Map searchOptions,
-			IProgressMonitor monitor) throws CoreException
-	{
-
-		if (monitor != null && monitor.isCanceled())
-			throw new OperationCanceledException();
-
-		/* initialize progress monitor */
-		if (monitor != null)
-			monitor.beginTask(Messages.engine_searching, 100);
-
-        SearchDocumentSet set = new SearchDocumentSetImpl();
-		try
-		{
-			// requestor.beginReporting();
-            SearchScope[] scopeArray = new SearchScope[participants.length];
-			for (int i = 0, l = participants == null ? 0 : participants.length; i < l; i++)
-			{
-				if (monitor != null && monitor.isCanceled())
-					throw new OperationCanceledException();
-
-				SearchParticipant participant = participants[i];
-				SubProgressMonitor subMonitor = monitor == null ? null
-						: new SubProgressMonitor(monitor, 1000);
-				if (subMonitor != null)
-					subMonitor.beginTask("", 1000); //$NON-NLS-1$
-				try
-				{
-					if (subMonitor != null)
-						subMonitor.subTask(Messages.bind(
-								Messages.engine_searching_locatingDocuments,
-								new String[]
-								{ participant.getDescription() }));
-					participant.beginSearching(pattern, searchOptions);
-					// requestor.enterParticipant(participant);
-					// participant creates it's own search scope 
-					SearchScope newScope =
-						participant.selectDocumentLocations(pattern, scope, searchOptions, monitor);
-                    scopeArray[i] = newScope;
-					// participant creates search documents based on it's search scope
-					participant.createSearchDocuments(set, pattern, newScope, searchOptions, subMonitor);
-                }
-                catch(Exception e)
-                {                  
-                }
-			}
-            for (int i = 0, l = participants == null ? 0 : participants.length; i < l; i++)
-            {        
-                if (monitor != null && monitor.isCanceled())                                  
-                    throw new OperationCanceledException();
-                
-                SearchParticipant participant = participants[i];
-                SubProgressMonitor subMonitor = monitor == null ? null
-                    : new SubProgressMonitor(monitor, 1000);                     
-                if (subMonitor != null && subMonitor.isCanceled())
-                    throw new OperationCanceledException();
-                try
-                {
-                // locate index matches if any (note that all search matches
-                // could have been issued during index querying)
-                if (subMonitor != null)
-                    subMonitor.subTask(Messages.bind(
-                            Messages.engine_searching_matching,
-                            new String[]
-                            { participant.getDescription() }));
-                // a search document set should contain enough info to reduce the search scope even further 
-                // before finding precize locations
-                
-                // the scope could be null if the partcipant barfed and exeption in the first loop 
-                if (scopeArray[i] != null)
-                {  
-                  participant.locateMatches(set, pattern, scopeArray[i], requestor, searchOptions, subMonitor);
-                }  
-                }
-                catch (Exception e)
-                {
-                  
-                }
-                finally
-                {
-                  // requestor.exitParticipant(participant);
-                  participant.doneSearching(pattern, searchOptions);
-                }         
-            }    
-		} finally
-		{
-            set.dispose();
-			// requestor.endReporting();
-			if (monitor != null)
-				monitor.done();
-		}
-	}
-
-	/**
-	 * Searches for matches of a given search pattern. Search patterns can be created
-	 * using factory methods and encapsulate the description of the information to be
-	 * searched for (for example, element declarations of a specified type, in a case
-	 * sensitive manner).
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param requestor
-	 *            Callback object to notify with the results of the search (each match
-	 *            is reported to {@link SearchRequestor#acceptSearchMatch(SearchMatch)})
-	 * @param scope
-	 *            Optional search scope to limit the source of search candidates;
-	 *            specify <code>null</code> to search the entire workspace
-	 * @param searchOptions
-	 *            Optional map of options and values defining behavior of the search;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @param monitor
-	 *            Optional progress monitor used to report work completed
-	 * @exception CoreException
-	 *            if the search fails
-	 */
-	public void search(SearchPattern pattern, SearchRequestor requestor,
-			SearchScope scope, Map searchOptions, IProgressMonitor monitor)
-			throws CoreException
-	{
-		SearchParticipant[] participants =
-			getApplicableParticipants(pattern, searchOptions);
-        //System.out.println("participants = " + participants.length);
-		search(pattern, requestor, participants, scope, searchOptions, monitor);
-	}
-
-	/**
-	 * Queries the set of participants that support searches described by the
-	 * specified search pattern and options.
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param searchOptions
-	 *            Optional map of options and values defining behavior of the search;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @return Array of applicable search participants
-	 */
-	public SearchParticipant[] getApplicableParticipants(SearchPattern pattern,
-			Map searchOptions)
-	{
-		return SearchPlugin.getDefault().loadSearchParticipants(pattern, searchOptions);
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchMatch.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchMatch.java
deleted file mode 100644
index 4890fc5..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchMatch.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search;
-
-import java.util.HashMap;
-import java.util.Map;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-/**
- * A search match represents the result of a search query.
- * <p>
- * This class is intended to be instantiated and subclassed by clients.
- * </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- * 
- * @see SearchEngine#search(SearchPattern, SearchParticipant[], ISearchScope,
- *      SearchRequestor, org.eclipse.core.runtime.IProgressMonitor)
- */
-public class SearchMatch implements IAdaptable
-{
-
-	/**
-	 * Optional resource of the element
-	 */
-	IFile file; // resource where match is found
-
-	/**
-	 * The offset the match starts at, or -1 if unknown
-	 */
-	int offset;
-
-	/**
-	 * The length the length of the match, or -1 if unknown
-	 */
-	int length;
-
-	/**
-	 * Optional element that encloses or corresponds to the match
-	 */
-	Object object;
-
-	/**
-	 * Creates a new search match.
-	 * 
-	 * @param element
-	 *            the element that encloses or corresponds to the match, or
-	 *            <code>null</code> if none
-	 * @param offset
-	 *            the offset the match starts at, or -1 if unknown
-	 * @param length
-	 *            the length of the match, or -1 if unknown
-	 * @param participant
-	 *            the search participant that created the match
-	 * @param resource
-	 *            the resource of the element, or <code>null</code> if none
-	 */
-	public SearchMatch(Object element, int offset, int length, IFile resource)
-	{
-		this.object = element;
-		this.offset = offset;
-		this.length = length;
-		this.file = resource;
-	}
-
-	public IFile getFile()
-	{
-		return file;
-	}
-
-	public void setFile(IFile file)
-	{
-		this.file = file;
-	}
-
-	public int getLength()
-	{
-		return length;
-	}
-
-	public void setLength(int length)
-	{
-		this.length = length;
-	}
-
-	// issue (cs/eb) holding objects is a bit odd, since it implies the object's
-	// life span
-	// is the same as the SearchMatch. What happens when an object is deleted?
-	// does the SearchMatch get deleted? Aren't coordinates good enough?
-	// at the very least we should document that using this field has some
-	// consequences
-	/**
-	 * (eb) see comments for {@link #setObject(Object)}
-	 */
-	public Object getObject()
-	{
-		return object;
-	}
-
-	/**
-	 * @param object
-	 *            Object is an instance of some part of the model that represent
-	 *            the content that was searched. It may require to calculate
-	 *            some additional information that may be required by the tools
-	 *            through {@link #getObject()) (e.g. XML node namespace,
-	 *            nessesary to obtain the prefix for the refactoring tool).
-	 *            <p>
-	 *            There should be no danger here of preventing the object from
-	 *            garbage collection because instances of the search matches
-	 *            supposed to be short lived. {@link SearchMatch} is usually
-	 *            collected by {@link SearchRequestor} which itself is lived for
-	 *            the time of the search and then discarded or re-initialized.
-	 *            Usually the tool that requested a search extracts the
-	 *            information from the collected {@link SearchMatch} and after
-	 *            that {@link SearchMatch} could be garbage collected, releasing
-	 *            object that they hold to.
-	 *            </p>
-	 */
-	public void setObject(Object object)
-	{
-		this.object = object;
-	}
-
-	public int getOffset()
-	{
-		return offset;
-	}
-
-	public void setOffset(int offset)
-	{
-		this.offset = offset;
-	}
-
-	public Object getAdapter(Class adapter)
-	{
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-    
-    public Map map = new HashMap(); 
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchParticipant.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchParticipant.java
deleted file mode 100644
index 95a0446..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchParticipant.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.document.SearchDocumentSet;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-
-/**
- * <p>
- * A search participant describes a particular extension to a generic search
- * mechanism, permitting combined search actions which will involve all required
- * participants.
- * </p>
- * <p>
- * When there is a need to search a document that has some mixed content, then
- * using a one participant will not be enough. E.g. for the searching of the JSP
- * content, a JSP participant needs to create {@link SearchDocument} that
- * contain Java compilation unit and then pass it to the default Java search
- * participant of the Java Search Engine. The same with XML: when there is an
- * XML content that default search participant could not process, but it is
- * required to be search on, a new search participant needs to be defined. That
- * search participant would know how create search document from the content and
- * then it can call default XML search participant.
- * </p>
- * <p>
- * Passing its own {@link SearchRequestor} this participant can then map the
- * match positions back to the original contents, create its own matches and
- * report them to the original requestor.
- * </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- * 
- */
-public abstract class SearchParticipant implements ISearchOptions 
-{
-
-	protected static final boolean debugPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.common.core/perf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	protected String id;
-	/**
-	 * Creates a new search participant.
-	 */
-	protected SearchParticipant()
-	{
-		// do nothing
-	}
-
-	/**
-	 * Callback method allowing a search participant to indicate whether it supports
-	 * the specified search pattern and options.
-	 * <p>
-	 * If this method returns <code>true</code>, the participant will participate in
-	 * finding matches for the search defined by the search pattern. In this case, the
-	 * search pattern and options will be passed to the following methods of the
-	 * search participant:
-	 * <ol>
-	 * <li>{@link #beginSearching(SearchPattern, Map)}
-	 * <li>{@link #selectDocumentLocations(SearchPattern, SearchScope, Map, IProgressMonitor)}
-	 * <li>{@link #createSearchDocuments(SearchDocumentSet, SearchPattern, SearchScope, Map, IProgressMonitor)}
-	 * <li>{@link #locateMatches(SearchDocumentSet, SearchPattern, SearchScope, SearchRequestor, Map, IProgressMonitor)}
-	 * <li>{@link #doneSearching(SearchPattern, Map)}
-	 * </ol>
-	 * <p>
-	 * If this method returns <code>false</code>, none of the above methods will be
-	 * called, and the search participant contributes no matches for the search
-	 * requrest.
-	 * <p>
-	 * A search participant should only participate in a search when in understands
-	 * the search pattern. Unrecognized search options, however, can be ignored.
-	 * <p>
-	 * This method returns <code>false</code> by default. As a result, subclasses must
-	 * override this method to participate in any searches.
-	 * @param pattern The pattern describing the information to search for
-	 * @param searchOptions Map of options and values defining behavior of the search;
-	 *         <code>null</code> if no options are specified;
-	 *         some options and values are provided by {@link ISearchOptions}
-	 * @return <code>true</code> if the search participant will participate in the
-	 *         search request; <code>false</code> otherwise
-	 */
-	 public abstract boolean isApplicable(SearchPattern pattern, Map searchOptions);
-
-	/**
-	 * Notification that this participant's help is needed in a search.
-	 * <p>
-	 * This method should be re-implemented in subclasses that need to do
-	 * something when the participant is needed in a search.
-	 * </p>
-	 * @param pattern The pattern describing the information to search for
-	 * @param searchOptions Map of options and values defining behavior of the search;
-	 *         <code>null</code> if no options are specified;
-	 *         some options and values are provided by {@link ISearchOptions}
-	 */
-	public void beginSearching(SearchPattern pattern, Map searchOptions)
-	{
-		// do nothing
-	}
-
-	/**
-	 * Notification that this participant's help is no longer needed.
-	 * <p>
-	 * This method should be re-implemented in subclasses that need to do
-	 * something when the participant is no longer needed in a search.
-	 * </p>
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param searchOptions
-	 *            Map of options and values defining behavior of the search;
-	 *            <code>null</code> if no options are specified;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 */
-	public void doneSearching(SearchPattern pattern, Map searchOptions)
-	{
-		// do nothing
-	}
-	
-	/**
-	 * Returns a displayable name of this search participant.
-	 * <p>
-	 * This method should be re-implemented in subclasses that need to display a
-	 * meaningfull name.
-	 * </p>
-	 * 
-	 * @return the displayable name of this search participant
-	 */
-	public String getDescription()
-	{
-		return "Search participant"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns a search document for the given path. The given document path is
-	 * a string that uniquely identifies the document. Most of the time it is a
-	 * workspace-relative path, but it can also be a file system path, or a path
-	 * inside a zip file.
-	 * <p>
-	 * Implementors of this method can either create an instance of their own
-	 * subclass of {@link SearchDocument} or return an existing instance of such
-	 * a subclass.
-	 * </p>
-	 * 
-	 * @param documentPath
-	 *            the path of the document.
-	 * @return a search document
-	 */
-	public abstract SearchDocument createSearchDocument(String documentPath);
-
-	/**
-	 * Locates the matches in the given documents. This method should be called
-	 * by the other search participant or search client once it has
-	 * pre-processed documents and delegating search to this search participant.
-	 * @param documentSet
-	 *            The documents to locate matches in
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param scope
-	 *            Search scope to limit the source of search candidates;
-	 *            <code>null</code> indicates that the entire workspace is to be
-	 *            searched
-	 * @param requestor
-	 *            Callback object to notify with the results of the search (each match
-	 *            is reported to {@link SearchRequestor#acceptSearchMatch(SearchMatch)})
-	 * @param searchOptions
-	 *            Map of options and values defining behavior of the search;
-	 *            <code>null</code> if no options are specified;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @param monitor
-	 *            Progress monitor used to report work completed; <code>null</code>
-	 *            if no progress needs to be reported
-	 * @throws CoreException
-	 *            If the requestor had problem accepting one of the matches
-	 */
-	public abstract void locateMatches(SearchDocumentSet documentSet,
-			SearchPattern pattern, SearchScope scope,
-			SearchRequestor requestor, Map searchOptions, IProgressMonitor monitor)
-			throws CoreException;
-
-	/**
-	 * 
-	 * @param document
-	 * @param pattern
-	 */
-	public abstract void populateSearchDocument(SearchDocument document,
-			SearchPattern pattern);
-
-	/**
-	 * Returns the collection of document locations to consider when performing
-	 * the given search query in the given scope. The search engine calls this
-	 * method before locating matches.
-	 * <p>
-	 * An document location represents a path workspace to the file with the
-	 * content that has potential matches
-	 * </p>
-	 * <p>
-	 * Clients are not expected to call this method.
-	 * </p>
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param scope
-	 *            Search scope to limit the source of search candidates;
-	 *            <code>null</code> indicates that the entire workspace is to be
-	 *            searched
-	 * @param searchOptions
-	 *            Map of options and values defining behavior of the search;
-	 *            <code>null</code> if no options are specified;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @param monitor
-	 *            Progress monitor used to report work completed; <code>null</code>
-	 *            if no progress needs to be reported
-	 * @return the collection of document paths to consider
-	 */
-	public SearchScope selectDocumentLocations(SearchPattern pattern,
-			SearchScope scope, Map searchOptions, IProgressMonitor monitor)
-	{	
-		return scope;
-	}
-
-	/**
-	 * <p>
-	 * This method calls the following methods for each file in the search scope:
-	 * <ol>
-	 * <li>{@link #createSearchDocument(String)}
-	 * <li>{@link #populateSearchDocument(SearchDocument, SearchPattern)}
-	 * </ol>
-	 * @param documentSet
-	 *            The documents to locate matches in
-	 * @param pattern
-	 *            The pattern describing the information to search for
-	 * @param scope
-	 *            Search scope to limit the source of search candidates;
-	 *            <code>null</code> indicates that the entire workspace is to be
-	 *            searched
-	 * @param searchOptions
-	 *            Map of options and values defining behavior of the search;
-	 *            <code>null</code> if no options are specified;
-	 *            some options and values are provided by {@link ISearchOptions}
-	 * @param monitor
-	 *            Progress monitor used to report work completed; <code>null</code>
-	 *            if no progress needs to be reported
-	 */
-	public void createSearchDocuments(SearchDocumentSet documentSet,
-			SearchPattern pattern, SearchScope scope, Map searchOptions,
-			IProgressMonitor monitor)
-	{
-		Assert.isNotNull(id, "The SearchPartipants id has not been initalized");
-		IFile[] files = scope.enclosingFiles();
-		
-		for (int i = 0; i < files.length; i++)
-		{
-			String location = files[i].getLocation().toString();
-			SearchDocument document = documentSet.getSearchDocument(location, id);
-			if(document == null && id != null){
-				documentSet.putSearchDocument(id, document = createSearchDocument(location));
-			}
-			populateSearchDocument(document, pattern); 
-			
-		}
-
-	}	
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java
deleted file mode 100644
index cf7a9fc..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchPlugin.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.common.core.search.internal.SearchParticipantRegistry;
-import org.eclipse.wst.common.core.search.internal.SearchParticipantRegistryReader;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class SearchPlugin extends Plugin implements ISearchOptions
-{
-
-	private SearchParticipantRegistry searchParticipantRegistry;
-
-	// The shared instance.
-	private static SearchPlugin plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public SearchPlugin()
-	{
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception
-	{
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception
-	{
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static SearchPlugin getDefault()
-	{
-		return plugin;
-	}
-
-	private SearchParticipantRegistry getSearchParticipantRegistry()
-	{
-		if (searchParticipantRegistry == null)
-		{
-			searchParticipantRegistry = new SearchParticipantRegistry();
-			new SearchParticipantRegistryReader(searchParticipantRegistry)
-					.readRegistry();
-		}
-		return searchParticipantRegistry;
-	}
-
-
-	public SearchParticipant getSearchParticipant(String id)
-	{
-		return getSearchParticipantRegistry().getSearchParticipant(id);
-	}
-
-	/**
-	 * Returns the registered search participants that support the specified search
-	 * pattern and options, loading and creating the search participants if necessary.
-	 * @param pattern The pattern representing a search request
-	 * @param searchOptions Map of options and values defining behavior of the search;
-	 *         <code>null</code> if no options are specified;
-	 *         some options and values are provided by {@link ISearchOptions}
-	 * @return Array of search participants that support the specified search request 
-	 */
-	SearchParticipant[] loadSearchParticipants(SearchPattern pattern, Map searchOptions)
-	{
-		return getSearchParticipantRegistry().getParticipants(pattern, searchOptions);
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchRequestor.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchRequestor.java
deleted file mode 100644
index 460b589..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/SearchRequestor.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * Collects the results from a search engine query. Clients implement a subclass
- * to pass to <code>SearchEngine.search</code> and implement the
- * {@link #acceptSearchMatch(SearchMatch)} method.
- * <p>
- * The subclasses of the SearchRequestor could collected search matches, filter,
- * sort and group them. It's up to the client to pass the required extension of
- * the SearchRequestor to the search engine.
- * </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- * 
- * @see SearchEngine
- */
-public abstract class SearchRequestor
-{
-
-	/**
-	 * Accepts the given search match.
-	 * 
-	 * @param match
-	 *            the found match
-	 * @throws CoreException
-	 */
-	public abstract void acceptSearchMatch(SearchMatch match)
-			throws CoreException;
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentDeclarationEntry.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentDeclarationEntry.java
deleted file mode 100644
index f193937..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentDeclarationEntry.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-/**
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class ComponentDeclarationEntry extends Entry
-{
-	QualifiedName metaName;
-    QualifiedName name;
-
-	public QualifiedName getName()
-	{
-		return name;
-	}
-
-	public void setName(QualifiedName name)
-	{
-		this.name = name;
-	}
-
-  public QualifiedName getMetaName()
-  {
-    return metaName;
-  }
-
-  public void setMetaName(QualifiedName metaName)
-  {
-    this.metaName = metaName;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentReferenceEntry.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentReferenceEntry.java
deleted file mode 100644
index d532f26..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/ComponentReferenceEntry.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-/**
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class ComponentReferenceEntry extends Entry
-{
-	QualifiedName name;
-
-	public QualifiedName getName()
-	{
-		return name;
-	}
-
-	public void setName(QualifiedName name)
-	{
-		this.name = name;
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/Entry.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/Entry.java
deleted file mode 100644
index acd10a6..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/Entry.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-/**
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class Entry
-{
-  String key;
-  String category;
-
-	public Entry()
-{
-	super();
-	
-}
-
-	public String getCategory()
-	{
-		return category;
-	}
-
-	
-
-	public String getKey()
-	{
-		return key;
-	}
-
-	public void setCategory(String category)
-	{
-		this.category = category;
-	}
-
-	public void setKey(String key)
-	{
-		this.key = key;
-	}
-
-	
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/FileReferenceEntry.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/FileReferenceEntry.java
deleted file mode 100644
index 2789503..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/FileReferenceEntry.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-/**
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class FileReferenceEntry extends Entry
-{
-	String relativeFilePath;
-    String resolvedURI;
-	String publicIdentifier;
-
-	public String getPublicIdentifier()
-	{
-		return publicIdentifier;
-	}
-
-	public void setPublicIdentifier(String publicIdentifier)
-	{
-		this.publicIdentifier = publicIdentifier;
-	}
-
-	public String getRelativeFilePath()
-	{
-		return relativeFilePath;
-	}
-
-	public void setRelativeFilePath(String relativeFilePath)
-	{
-		this.relativeFilePath = relativeFilePath;
-	}
-
-  public String getResolvedURI()
-  {
-    return resolvedURI;
-  }
-
-  public void setResolvedURI(String resolvedURI)
-  {
-    this.resolvedURI = resolvedURI;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocument.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocument.java
deleted file mode 100644
index d808f19..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocument.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-
-/**
- * A search document encapsulates a content to be searched in. A search
- * participant creates a search document based on the file locations to locate
- * matches.
- * <p>
- * This class is intended to be subclassed by clients.
- * </p>
- * issue (cs/eb) does a search participant always create a SearchDocument?
- * 
- * <p>
- * SearchParticipant or search client create search documents for the search
- * pass where precise locations of the matches will be determined by calling
- * {@link SearchParticipan#locateMatches}
- * </p>
- * <p>
- * SearchParticipant knows how to create search document that it can process.
- * </p>
- * <p>
- * The intent of the separation of the {@link SearchDocument} from the
- * {@link SearchParticipant} is to enable the other search participants to
- * process parts of the document. For example, if XML document has a fragment
- * that it can not process, e.g. Java, then XML participant would create
- * SearchDocument for that fragment which contains Java compilation unit, and
- * pass it to the Java search participant. Passing its own
- * {@link SearchRequestor} this participant can then map the match positions
- * back to the original contents, create its own matches and report them to the
- * original requestor.
- * </p>
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- * 
- * @see SearchParticipant
- */
-public abstract class SearchDocument
-{
-
-	private String documentPath;
-	private SearchParticipant participant; 
-
-	/**
-	 * Creates a new search document. The given document path is a string that
-	 * uniquely identifies the document. Most of the time it is a
-	 * workspace-relative path, but it can also be a file system path, or a path
-	 * inside a zip file.
-	 * 
-	 * @param documentPath
-	 *            the path to the document, or <code>null</code> if none
-	 */
-	protected SearchDocument(String documentPath, SearchParticipant participant)
-	{
-		this.documentPath = documentPath;
-		this.participant = participant;
-	}
-
-	public abstract Entry[] getEntries(String category, String key, int matchRule);
-
-	/**
-	 * Returns the model of this document. Model may be different from actual
-	 * resource at corresponding document path due to preprocessing.
-	 * <p>
-	 * This method must be implemented in subclasses.
-	 * </p>
-	 * 
-	 * @return the model of this document, or <code>null</code> if none
-	 */
-	public abstract Object getModel();
-	
-	
-	/**
-	 * Returns the participant that created this document.
-	 * 
-	 * @return the participant that created this document
-	 */
-	public final SearchParticipant getParticipant() {
-		return this.participant;
-	}
-	
-	
-//	 this class represents a collection of information
-//	 that has been produced by a search participant
-//	 typically after a file has been processed
-//	 an Entry is typically course grained info that results from the SearchParticipants
-//	 first step ... and is used to compute more accurate SearchMatches during a SearchParticipants 2nd step
-
-	/**
-	 * Returns the path to the original document.
-	 * 
-	 * @return the path to the document
-	 */
-	public final String getPath()
-	{
-		return this.documentPath;
-	} 
-	
-	public abstract void putEntry(Entry entry);
-    
-    public void dispose()
-    {      
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocumentSet.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocumentSet.java
deleted file mode 100644
index 42fb34c..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/document/SearchDocumentSet.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.document;
-
-/**
- * The class is used to manage a set of search documents
- * that have been constructed by various participants
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public abstract class SearchDocumentSet
-{
-  public abstract SearchDocument getSearchDocument(String resourcePath, String participantId);
-  public abstract SearchDocument[] getSearchDocuments(String participantId);
-  public abstract void putSearchDocument(String participantId, SearchDocument document);
-  public abstract SearchDocument _tempGetSearchDocumetn(String resourcePath);
-  public abstract void dispose();
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/Messages.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/Messages.java
deleted file mode 100644
index cc3522b..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/Messages.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-// issue (cs) is this a UI issue?  where does the framework need to expose stings?
-public class Messages extends NLS
-{
-
-	private static final String BUNDLE_NAME = "org.eclipse.wst.common.core.internal.messages";//$NON-NLS-1$
-
-	public static String engine_searching;
-
-	public static String engine_searching_locatingDocuments;
-
-	public static String engine_searching_matching;
-
-	private Messages()
-	{
-		// Do not instantiate
-	}
-
-	static
-	{
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchDocumentSetImpl.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchDocumentSetImpl.java
deleted file mode 100644
index e3f6c33..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchDocumentSetImpl.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.wst.common.core.search.document.SearchDocument;
-import org.eclipse.wst.common.core.search.document.SearchDocumentSet;
-
-public class SearchDocumentSetImpl extends SearchDocumentSet
-{
-    public Map documentPathMap = new HashMap(); //path --> documetn
-	Map documentMap = new HashMap();  // participantId - > list (document)
-	
-	public SearchDocumentSetImpl()
-	{
-		super();
-	}
-    
-    public SearchDocument _tempGetSearchDocumetn(String resourcePath)
-    {      
-       return (SearchDocument)documentPathMap.get(resourcePath);      
-    }
-    
-    public SearchDocument getSearchDocument(String resourcePath, String participantId)
-	{
-		if(resourcePath == null){
-			return null;
-		}
-		SearchDocument[] documents = getSearchDocuments(participantId);
-		for (int i = 0; i < documents.length; i++)
-		{
-			SearchDocument document = documents[i];
-			if(resourcePath.equals(document.getPath())){
-				return document;
-			}
-		}
-		return null;
-	}
-
-	public SearchDocument[] getSearchDocuments(String participantId)
-	{
-		
-		Object object = documentMap.get(participantId);
-		List documentList = null;
-		if(object instanceof List){
-			documentList = (List)object;
-		}
-		else{
-			documentMap.put(participantId, documentList = new ArrayList());
-		}
-		return (SearchDocument[]) documentList.toArray(new SearchDocument[documentList.size()]);
-		
-	}
-
-	public void putSearchDocument(String participantId, SearchDocument document)
-	{
-		Object object = documentMap.get(participantId);
-		List documentList = null;
-		if(object instanceof List){
-			documentList = (List)object;
-		}
-		else{
-			documentMap.put(participantId, documentList = new ArrayList());
-		}
-		documentList.add(document);
-        documentPathMap.put(document.getPath(), document);
-	}
-
-    
-    public void dispose()
-    {
-      try
-      {
-      for (Iterator i = documentMap.values().iterator(); i.hasNext(); )
-      {
-        Object o = i.next();
-        if (o instanceof List)
-        {  
-          for (Iterator j = ((List)o).iterator(); j.hasNext(); )
-          {
-            Object o2 = j.next();
-            if (o2 instanceof SearchDocument)
-            {  
-               SearchDocument searchDocument = (SearchDocument)o2;
-               searchDocument.dispose();
-            }   
-          }          
-        }       
-      }
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantDescriptor.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantDescriptor.java
deleted file mode 100644
index 8e39e12..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantDescriptor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.internal;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionTagNames;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.Assert; 
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-
-public class SearchParticipantDescriptor
-{
-
-	private IConfigurationElement fElement;
-
-	private SearchParticipant participant;
-
-	public SearchParticipantDescriptor(IConfigurationElement element)
-	{
-		this.fElement = element;
-	}
-
-	public SearchParticipant getSearchParticipant()
-	{
-		if (participant == null)
-		{
-			try
-			{
-				participant = (SearchParticipant) fElement
-						.createExecutableExtension("class"); //$NON-NLS-1$
-			} catch (Exception e)
-			{
-				// e.printStackTrace();
-			}
-		}
-		return participant;
-	}
-
-	public boolean matches(IEvaluationContext context) throws CoreException
-	{
-		IConfigurationElement[] elements = fElement
-				.getChildren(ExpressionTagNames.ENABLEMENT);
-		if (elements.length == 0)
-			return false;
-		Assert.isTrue(elements.length == 1);
-		Expression exp = ExpressionConverter.getDefault().perform(elements[0]);
-		return convert(exp.evaluate(context));
-	}
-
-	private boolean convert(EvaluationResult eval)
-	{
-		if (eval == EvaluationResult.FALSE)
-			return false;
-		return true;
-	}
-
-	/**
-	 * @deprecated No replacement
-	 */
-	public String[] getSupportedContentTypes()
-	{
-		return new String[0];
-	}
-
-	/**
-	 * @deprecated No replacement
-	 */
-	public void addSupportedContentTypeId(String contentTypeId)
-	{
-	}
-	
-	public String getElementId(){
-		return fElement.getAttribute("id");
-		
-	}
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistry.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistry.java
deleted file mode 100644
index a169e91..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistry.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-
-public class SearchParticipantRegistry
-{
-
-	protected Map idMap = new HashMap(); // maps searchParticipant id to a
-											// searchParticipant descriptor
-
-	public SearchParticipantRegistry()
-	{
-	}
-
-	public void putSearchParticipant(String id,
-			SearchParticipantDescriptor searchParticipantDescriptor)
-	{
-		idMap.put(id, searchParticipantDescriptor);
-	}
-
-	public String[] getSearchParticipantIds()
-	{
-		Set ids = idMap.keySet();
-		return (String[]) ids.toArray(new String[ids.size()]);
-	}
-
-	public Collection getSearchParticipants()
-	{
-		return idMap.values();
-	}
-
-
-	public SearchParticipant getSearchParticipant(String id)
-	{
-		SearchParticipantDescriptor searchParticipantDescriptor = null;
-		if (id != null)
-		{
-			searchParticipantDescriptor = (SearchParticipantDescriptor) idMap
-					.get(id);
-		}
-		return searchParticipantDescriptor != null ? searchParticipantDescriptor
-				.getSearchParticipant()
-				: null;
-
-	}
-
-	public SearchParticipant[] getParticipants(SearchPattern pattern, Map searchOptions)
-	{
-
-		EvaluationContext evalContext = createEvaluationContext(pattern);
-		List result = new ArrayList();
-		for (Iterator iter = getSearchParticipants().iterator(); iter.hasNext();)
-		{
-			SearchParticipantDescriptor descriptor = (SearchParticipantDescriptor) iter
-					.next();
-			try
-			{
-				if (descriptor.matches(evalContext))
-				{
-					try
-					{
-						SearchParticipant participant = descriptor
-								.getSearchParticipant();
-						if (!SearchParticipant.class.isInstance(participant))
-							throw new ClassCastException();
-						if (participant.isApplicable(pattern, searchOptions))
-						{
-							result.add(participant);
-						}
-					} catch (ClassCastException e)
-					{
-						iter.remove();
-					}
-				}
-
-			} catch (CoreException e)
-			{
-				iter.remove();
-			}
-
-		}
-
-		return (SearchParticipant[]) result
-				.toArray(new SearchParticipant[result.size()]);
-	}
-
-	private static EvaluationContext createEvaluationContext(
-			SearchPattern pattern)
-	{
-		EvaluationContext result = new EvaluationContext(null, pattern);
-		result.addVariable("pattern", pattern); //$NON-NLS-1$
-		return result;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistryReader.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistryReader.java
deleted file mode 100644
index 7757ce3..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/SearchParticipantRegistryReader.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.internal;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-public class SearchParticipantRegistryReader
-{
-	protected static final String EXTENSION_POINT_ID = "searchParticipants"; //$NON-NLS-1$
-
-	protected static final String TAG_NAME = "searchParticipant"; //$NON-NLS-1$
-
-	protected static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	protected static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	protected String pluginId, extensionPointId;
-
-	protected SearchParticipantRegistry registry;
-
-	public SearchParticipantRegistryReader(SearchParticipantRegistry registry)
-	{
-		this.registry = registry;
-	}
-
-	public void readRegistry()
-	{
-		String bundleid = "org.eclipse.wst.common.core"; //$NON-NLS-1$
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(bundleid, EXTENSION_POINT_ID);
-		if (point != null)
-		{
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++)
-			{
-				readElement(elements[i]);
-			}
-		}
-	}
-
-	protected void readElement(IConfigurationElement element)
-	{
-		if (element.getName().equals(TAG_NAME))
-		{
-			String contributorClass = element.getAttribute(ATT_CLASS);
-			String id = element.getAttribute(ATT_ID);
-			if (id != null)
-			{
-				if (contributorClass != null)
-				{
-					SearchParticipantDescriptor descriptor = new SearchParticipantDescriptor(
-							element);
-					registry.putSearchParticipant(id, descriptor);
-				}
-			}
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/messages.properties b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/messages.properties
deleted file mode 100644
index e3a01a8..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/internal/messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-### Search messages.
-
-engine_searching = Searching...
-engine_searching_locatingDocuments = {0}: locate search documents...
-engine_searching_matching = {0}: locate matches...
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentDeclarationPattern.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentDeclarationPattern.java
deleted file mode 100644
index 16f3ffe..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentDeclarationPattern.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-/**
- *
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class ComponentDeclarationPattern extends ComponentSearchPattern
-{
-
-	public ComponentDeclarationPattern(QualifiedName name,
-			QualifiedName metaName, int matchRule)
-	{
-		super(null, name, metaName, matchRule);
-
-	}
-
-	public ComponentDeclarationPattern(QualifiedName name,
-			QualifiedName metaName)
-	{
-		super(null, name, metaName);
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentReferencePattern.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentReferencePattern.java
deleted file mode 100644
index 2f1e101..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentReferencePattern.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class ComponentReferencePattern extends ComponentSearchPattern
-{
-
-	public ComponentReferencePattern(IFile file, QualifiedName elementQName,
-			QualifiedName typeQName, int matchRule)
-	{
-		super(file, elementQName, typeQName, matchRule);
-
-	}
-
-	public ComponentReferencePattern(IFile file, QualifiedName elementQName,
-			QualifiedName typeQName)
-	{
-		super(file, elementQName, typeQName);
-
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentSearchPattern.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentSearchPattern.java
deleted file mode 100644
index 4741a10..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/ComponentSearchPattern.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * This class defines generic component pattern. Usually there are two types of
- * component search patterns: pattern for component declaration and for
- * component definition.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public abstract class ComponentSearchPattern extends SearchPattern
-{
-
-	QualifiedName name;
-
-	QualifiedName metaName;
-
-	IFile file; // (optional) location where component is defined
-
-	public ComponentSearchPattern(IFile file, QualifiedName elementQName,
-			QualifiedName typeQName, int matchRule)
-	{
-		super(matchRule);
-		this.file = file;
-		name = elementQName;
-		metaName = typeQName;
-
-	}
-
-	public ComponentSearchPattern(IFile file, QualifiedName elementQName,
-			QualifiedName typeQName)
-	{
-
-		this.file = file;
-		name = elementQName;
-		metaName = typeQName;
-
-	}
-
-	public IFile getFile()
-	{
-		return file;
-	}
-
-	public QualifiedName getMetaName()
-	{
-		return metaName;
-	}
-
-	public QualifiedName getName()
-	{
-		return name;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/FileReferencePattern.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/FileReferencePattern.java
deleted file mode 100644
index 27c1165..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/FileReferencePattern.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- *
- */
-public class FileReferencePattern extends SearchPattern
-{
-
-	IFile file;
-
-	public FileReferencePattern(IFile file)
-	{
-		this.file = file;
-	}
-
-	public FileReferencePattern(IFile file, int matchRule)
-	{
-		super(matchRule);
-		this.file = file;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/QualifiedName.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/QualifiedName.java
deleted file mode 100644
index 0f7ab17..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/QualifiedName.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-/**
- * This data class represents a qualified name, consisting of a local name and a
- * qualifier
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-// issue (cs) should this go in the 'matching' package (BTW... rename
-// matching->pattern)
-public class QualifiedName
-{
-
-	private String qualifier;
-
-	private String name;
-
-	private static final String NS_DELIM_1 = "{"; //$NON-NLS-1$
-
-	private static final String NS_DELIM_2 = "}"; //$NON-NLS-1$
-
-	/**
-	 * Constructor Creates a qualified name from a namespace and local name.
-	 * 
-	 * @param namespace
-	 * @param localName
-	 */
-	public QualifiedName(String namespace, String localName)
-	{
-
-		super();
-
-		this.qualifier = namespace;
-		if (namespace != null && namespace.length() == 0)
-		{
-			this.qualifier = null;
-		}
-		if (this.qualifier != null && this.qualifier.length() == 0)
-		{
-			this.qualifier = null;
-		}
-
-		this.name = localName;
-		if (localName != null && localName.length() == 0)
-		{
-			this.name = null;
-		}
-
-	}
-
-	/**
-	 * Returns the namespace component of the qualified name.
-	 * 
-	 * @return The namespace; <code>null</code> if none is specified
-	 */
-	public String getNamespace()
-	{
-		return this.qualifier;
-	}
-
-	/**
-	 * Returns the local name component of the qualified name.
-	 * 
-	 * @return The local name; <code>null</code> if none is specified
-	 */
-	public String getLocalName()
-	{
-		return this.name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj)
-	{
-		boolean isEqual = false;
-		if (this == obj)
-		{
-		  isEqual = true;
-		}
-		else
-		{	
-		  if (obj instanceof QualifiedName)
-		  {
-			QualifiedName that = (QualifiedName) obj;
-		    isEqual = isMatch(this.getNamespace(), that.getNamespace()) &&
-		              isMatch(this.getLocalName(), that.getLocalName());	
-		  }  
-		}
-		return isEqual;
-	}
-	
-	protected boolean isMatch(String a, String b)
-	{
-	  return a != null ? a.equals(b) : a == b;
-	}	
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode()
-	{
-		int hash = 0;
-		if (this.qualifier != null)
-		{
-			hash += this.qualifier.hashCode();
-		}
-		if (this.name != null)
-		{
-			hash += this.name.hashCode();
-		}
-		return hash;
-	}
-
-	/**
-	 * Returns a string representation of the qualified name, of the form:
-	 * {namespace}localname. If no namespace is specified, the string has the
-	 * form: {}localname. Note that the string format may change in the future.
-	 * 
-	 * @return The string value
-	 */
-	public String toString()
-	{
-
-		return appendStrings(new String[]
-		{ NS_DELIM_1, // {
-				this.qualifier, NS_DELIM_2, // }
-				this.name });
-
-	}
-
-	/**
-	 * Factory-like method to create a QName object from the string form of a
-	 * QName. The string must have the same format as returned by
-	 * QName.toString().
-	 * 
-	 * @param qnameString -
-	 *            String form of a QName
-	 * @return The created QName object created from the specified string
-	 * @throws IllegalArgumentException -
-	 *             Missing namespace delimiters
-	 */
-	public static QualifiedName valueOf(String qnameString)
-			throws IllegalArgumentException
-	{
-
-		String namespace = null;
-		String localName = null;
-		if (qnameString == null || qnameString.length() == 0)
-		{
-			// Both namespace and local name are null.
-		} else if (qnameString.startsWith(NS_DELIM_1))
-		{
-			// The QName has the notation specifying a namespace.
-			int index = qnameString.indexOf(NS_DELIM_2);
-			if (index == -1)
-			{
-				// The end delimiter for the namespace was not found. The QName
-				// string
-				// is malformed.
-				throw new IllegalArgumentException(
-						"qnameString = " + qnameString); //$NON-NLS-1$
-			}
-			namespace = qnameString.substring(1, index);
-			localName = qnameString.substring(index + 1);
-		} else
-		{
-			// Assume no namespace is specified and the string is a local name.
-			localName = qnameString;
-		}
-		return new QualifiedName(namespace, localName);
-
-	}
-
-	/**
-	 * Creates a single string by appending together an array of strings,
-	 * skipping null strings.
-	 * 
-	 * @param strings -
-	 *            Strings to be appended together
-	 * @return Resulting string
-	 */
-	public static String appendStrings(String[] strings)
-	{
-
-		String result = null;
-		if (strings != null)
-		{
-			StringBuffer tokenBuffer = new StringBuffer();
-			int maxCount = strings.length;
-			String string;
-			for (int i = 0; i < maxCount; i++)
-			{
-				string = strings[i];
-				if (string != null && string.length() > 0)
-				{
-					tokenBuffer.append(string);
-				}// if
-			}// for
-			result = tokenBuffer.toString();
-		}// if
-		return result;
-
-	}// appendStrings()
-
-}// class QName
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/SearchPattern.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/SearchPattern.java
deleted file mode 100644
index df0aaf6..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/pattern/SearchPattern.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.common.core.search.pattern;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * A search defines how search results are found.
- * 
- * This class is intended to be subclassed by clients.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public abstract class SearchPattern implements IAdaptable
-{
-
-	/**
-	 * Match rule: The search pattern matches the search result only if cases
-	 * are the same. Can be combined to previous rules, e.g.
-	 * {@link #R_EXACT_MATCH} | {@link #R_CASE_SENSITIVE}
-	 */
-	public static final int R_CASE_SENSITIVE = 8;
-
-	// Rules for pattern matching: (exact, prefix, pattern) [ | case sensitive]
-	/**
-	 * Match rule: The search pattern matches exactly the search result, that
-	 * is, the source of the search result equals the search pattern.
-	 */
-	public static final int R_EXACT_MATCH = 0;
-
-	/**
-	 * Match rule: The search pattern contains one or more wild cards ('*')
-	 * where a wild-card can replace 0 or more characters in the search result.
-	 */
-	public static final int R_PATTERN_MATCH = 2;
-
-	/**
-	 * Match rule: The search pattern is a prefix of the search result.
-	 */
-	public static final int R_PREFIX_MATCH = 1;
-
-	/**
-	 * Match rule: The search pattern contains a regular expression.
-	 */
-	public static final int R_REGEXP_MATCH = 4;
-
-	private int matchRule;
-
-	public SearchPattern()
-	{
-		this.matchRule = R_EXACT_MATCH | R_CASE_SENSITIVE;
-	}
-
-	public SearchPattern(int matchRule)
-	{
-		this.matchRule = matchRule;
-
-	}
-
-	public final int getMatchRule()
-	{
-		return this.matchRule;
-	}
-
-	public Object getAdapter(Class adapter)
-	{
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ContentTypeSearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ContentTypeSearchScope.java
deleted file mode 100644
index c67af17..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ContentTypeSearchScope.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-
-/**
- * Scope that has filterers files based on content types. It can limit other
- * scopes with the given file content types.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class ContentTypeSearchScope extends SearchScopeImpl
-{
-
-	private List validContentIds = new ArrayList();
-
-	public ContentTypeSearchScope(SearchScope scope, String[] validContentTypes)
-	{
-		if (validContentTypes != null)
-		{
-			for (int i = 0; i < validContentTypes.length; i++)
-			{
-				this.validContentIds.add(validContentTypes[i]);
-			}
-		}
-		if (scope.enclosingFiles() != null)
-		{
-			for (int i = 0; i < scope.enclosingFiles().length; i++)
-			{
-				IFile file = (IFile) scope.enclosingFiles()[i];
-				acceptFile(file);
-			}
-		}
-
-	}
-
-	protected boolean acceptFile(IFile file)
-	{
-
-		if (file == null)
-		{
-			return false;
-		} else
-		{
-			try
-			{
-				IContentDescription description = file.getContentDescription();
-				if (description != null)
-				{
-					IContentType contentType = description.getContentType();
-					if (contentType != null)
-					{
-						// TODO use IContentType.isKindOf
-						for (Iterator iter = validContentIds.iterator(); iter
-								.hasNext();)
-						{
-							String contentId = (String) iter.next();
-							IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
-							IContentType supportedContentType = contentTypeManager.getContentType(contentId);
-							if (supportedContentType != null)
-							{
-								if (contentType.isKindOf(supportedContentType))
-								{
-									files.add(file);
-									projects.add(file.getProject());
-									return true;
-								}
-							}
-
-						}
-
-					}
-				}
-			} catch (CoreException e)
-			{
-				// ignore the file
-			}
-		}
-		return false;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ProjectSearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ProjectSearchScope.java
deleted file mode 100644
index 12ace71..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/ProjectSearchScope.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-
-/**
- *
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class ProjectSearchScope extends SearchScopeImpl
-{
-
-	/**
-	 * Creates a scope that ecloses workspace path and eclosing project
-	 * 
-	 * @param workspacePath -
-	 *            path to the resource in the workspace, e.g.
-	 *            /MyProject/MyFile.xml
-	 */
-	public ProjectSearchScope(IPath workspacePath)
-	{
-		super();
-		initialize(workspacePath);
-
-	}
-
-	protected void initialize(IPath workspacePath)
-	{
-		IResource resource = ResourcesPlugin.getWorkspace().getRoot()
-				.findMember(workspacePath);
-		if (resource != null)
-		{
-			IProject project = resource.getProject();
-			traverseContainer(project);
-		}
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScope.java
deleted file mode 100644
index 1dd3efd..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScope.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * A <code>SearchScope</code> defines where search result should be found by a
- * <code>SearchEngine</code> (e.g. project, workspace).
- * 
- * Clients must pass an instance of this class to the <code>search(...)</code>
- * methods. Such an instance can be created using the following factory methods
- * on <code>SearchScope</code>: <code>newSearchScope(IResource[])</code>,
- * <code>newWorkspaceScope()</code>
- * 
- * The default implementaion of the search scope has no filter, and at creation
- * does not contain any files, It could accept any workspace file.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public abstract class SearchScope
-{
-	/**
-	 * Returns the path to the workspace files that belong in this search scope.
-	 * (see <code>IResource.getFullPath()</code>). For example,
-	 * /MyProject/MyFile.txt
-	 * 
-	 * @return an array of files in the workspace that belong to this scope.
-	 */
-	public abstract IFile[] enclosingFiles();
-
-
-
-	
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScopeImpl.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScopeImpl.java
deleted file mode 100644
index 33c4c69..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SearchScopeImpl.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- *
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class SearchScopeImpl extends SearchScope
-{
-
-	protected List files = new ArrayList();
-
-	protected HashSet projects = new HashSet();
-
-	public SearchScopeImpl()
-	{
-		super();
-	}
-
-	/**
-	 * Checks whether the resource at the given path is belongs to this scope.
-	 * Resource path could be added to the scope, if scope conditions are met.
-	 * if {@link ISearchScope.encloses(String resourcePath)} returns false and
-	 * then this method is called and returns true, next call to
-	 * {@link ISearchScope.eclipses(String resourcePath)} should return true.
-	 * 
-	 * @param file -
-	 *            workspace file
-	 * @return whether the resource is enclosed by this scope
-	 */
-	protected boolean acceptFile(IFile file)
-	{
-		if (file == null)
-		{
-			return false;
-		}
-		files.add(file);
-		projects.add(file.getProject());
-		return true;
-
-	}
-
-	/**
-	 * Checks whether the resource at the given path is enclosed by this scope.
-	 * 
-	 * @param resourcePath -
-	 *            workspace relative resource path
-	 * @return whether the resource is enclosed by this scope
-	 */
-	protected boolean encloses(String resourcePath)
-	{
-		IResource resource = ResourcesPlugin.getWorkspace().getRoot()
-				.findMember(resourcePath);
-		if (resource == null)
-			return false;
-		return (files.contains(resource));
-	}
-
-	/**
-	 * Returns the path to the workspace files that belong in this search scope.
-	 * (see <code>IResource.getFullPath()</code>). For example,
-	 * /MyProject/MyFile.txt
-	 * 
-	 * @return an array of files in the workspace that belong to this scope.
-	 */
-	public IFile[] enclosingFiles()
-	{
-		if (files == null)
-			return new IFile[0];
-		return (IFile[]) files.toArray(new IFile[files.size()]);
-	}
-
-	/**
-	 * Returns the paths to the enclosing projects for this search scope. (see
-	 * <code>IResource.getFullPath()</code>). For example, /MyProject
-	 * 
-	 * @return an array of paths to the enclosing projects.
-	 */
-	protected IProject[] enclosingProjects()
-	{
-
-		return (IProject[]) projects.toArray(new IProject[projects.size()]);
-
-	}
-	
-	protected void traverseContainer(IContainer container)
-	{
-
-		IResourceVisitor visitor = new IResourceVisitor()
-		{
-			public boolean visit(IResource resource)
-			{
-				if (resource.getType() == IResource.FILE)
-					acceptFile((IFile) resource);
-				return true;
-			}
-		};
-		try
-		{
-			container.accept(visitor);
-		} catch (CoreException e)
-		{
-			// ignore resource
-		}
-
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SelectionSearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SelectionSearchScope.java
deleted file mode 100644
index 4ffcd3e..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/SelectionSearchScope.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-
-/**
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class SelectionSearchScope extends SearchScopeImpl
-{
-
-	protected IResource[] resources;
-
-	/**
-	 * Creates a scope that ecloses workspace path and eclosing project
-	 * 
-	 * @param workspacePath -
-	 *            path to the resource in the workspace, e.g.
-	 *            /MyProject/MyFile.xml
-	 */
-	public SelectionSearchScope(IResource[] resources)
-	{
-		super();
-		this.resources = resources;
-		initialize();
-
-	}
-
-	protected void initialize()
-	{
-		if (resources == null)
-			return;
-		for (int index = 0; index < resources.length; index++)
-		{
-			IResource resource = resources[index];
-			if (resource != null)
-			{
-				if (resource.getType() == IResource.FOLDER)
-				{
-					traverseContainer((IFolder) resource);
-				} else if (resource.getType() == IResource.FILE)
-				{
-					acceptFile((IFile) resource);
-				}
-			}
-
-		}
-
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkingSetSearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkingSetSearchScope.java
deleted file mode 100644
index cab1a19..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkingSetSearchScope.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * This class is required to wrap the content of an IWorkingSet.
- * We can't use IWorkingSet directly because it's part of an eclipse.ui
- * component. Therefore, we need to create this object as a surrogate.
- * <br>
- * Usage: We get the array IAdaptable[] of the IWorkingSet object and use this
- * array as argument for all methods of this class including the constructor.
- */
-public class WorkingSetSearchScope extends SearchScopeImpl{
-	
-	/**
-	 * Creates an empty scope when no resources is given.
-	 */
-	public WorkingSetSearchScope(){
-		super();
-	}
-  
-	/**
-	 * Intended to be used with an IWorkingSet
-	 * <br>
-	 * For example:
-	 * <pre>
-	 * IWorkingSet oneWorkingSet;
-	 * ...
-	 * IAdaptable[] elements = oneWorkingSet.getElements();
-	 * WorkingSetSearchScope scope = new WorkingSetSearchScope(elements);
-	 * </pre>
-	 */
-	public WorkingSetSearchScope(IAdaptable[] elements)
-	{
-		super();
-		addElementsOfWorkingSet(elements);
-	}
-	
-	/**
-	 * Intended to be used with an IWorkingSet
-	 * <br>
-	 * For example:
-	 * <pre>
-	 * WorkingSetSearchScope scope = ..; 
-	 * ...
-	 * IWorkingSet anotherWorkingSet; 
-	 * IAdaptable[] elements = anotherWorkingSet.getElements();
-	 * scope.addAWorkingSetToScope(elements);
-	 * </pre>
-	 */
-	public void addAWorkingSetToScope(IAdaptable[] elements){
-		addElementsOfWorkingSet(elements);
-	}
-	
-	private void addElementsOfWorkingSet(IAdaptable[] elements){
-		for (int j = 0; j < elements.length; j++){
-			IContainer container = (IContainer) elements[j].getAdapter(IContainer.class);
-			if ( container != null ){
-				traverseContainer(container);
-			}
-			else{
-				IFile aFile = (IFile) elements[j].getAdapter(IFile.class);
-				if ( aFile != null)
-					acceptFile(aFile);
-			}
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkspaceSearchScope.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkspaceSearchScope.java
deleted file mode 100644
index e01c201..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/scope/WorkspaceSearchScope.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.scope;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-/**
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-public class WorkspaceSearchScope extends SearchScopeImpl
-{
-
-	protected IResource currentResource;
-
-	/**
-	 * Creates a scope that ecloses workspace path and eclosing project
-	 * 
-	 * @param workspacePath -
-	 *            path to the resource in the workspace, e.g.
-	 *            /MyProject/MyFile.xml
-	 */
-	public WorkspaceSearchScope()
-	{
-		super();
-		initialize();
-
-	}
-
-	protected void initialize()
-	{
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		traverseContainer(root);
-
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/util/CollectingSearchRequestor.java b/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/util/CollectingSearchRequestor.java
deleted file mode 100644
index d227f93..0000000
--- a/plugins/org.eclipse.wst.common.core/src-search/org/eclipse/wst/common/core/search/util/CollectingSearchRequestor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.core.search.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-
-/**
- * Collects the results returned by a <code>ISearchEngine</code>.
- * 
- * <p>
- * <b>Note:</b> This class/interface is part of an interim API that is still under development and expected to
- * change significantly before reaching stability. It is being made available at this early stage to solicit feedback
- * from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
- * (repeatedly) as the API evolves.
- * </p>
- */
-// issue should you move this to a util package? what does jdt do?
-public class CollectingSearchRequestor extends SearchRequestor
-{
-	private ArrayList fFound;
-
-	public CollectingSearchRequestor()
-	{
-		fFound = new ArrayList();
-	}
-
-	/**
-	 * @return a List of {@link SearchMatch}es (not sorted)
-	 */
-	public List/* <SearchMatch> */getResults()
-	{
-		return fFound;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.common.core.search.internal.provisional.SearchRequestor#acceptSearchMatch(org.eclipse.wst.common.search.internal.provisional.SearchMatch)
-	 */
-	public void acceptSearchMatch(SearchMatch match) throws CoreException
-	{
-		fFound.add(match);
-
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.environment/.classpath b/plugins/org.eclipse.wst.common.environment/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.wst.common.environment/.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.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.common.environment/.cvsignore b/plugins/org.eclipse.wst.common.environment/.cvsignore
deleted file mode 100644
index 3609926..0000000
--- a/plugins/org.eclipse.wst.common.environment/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-build.xml
-temp.folder
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.common.environment/.options b/plugins/org.eclipse.wst.common.environment/.options
deleted file mode 100644
index 07f6325..0000000
--- a/plugins/org.eclipse.wst.common.environment/.options
+++ /dev/null
@@ -1,25 +0,0 @@
-# Debugging options for the org.eclipse.wst.env plugin.
-
-# Turn on debugging master switch for the org.eclipse.wst.common.environment plugin.
-org.eclipse.wst.common.environment/debug=true
-
-# Turn on different tracing level
-org.eclipse.wst.common.environment/trace/info=true
-org.eclipse.wst.common.environment/trace/warning=true
-org.eclipse.wst.common.environment/trace/error=true
-
-# Turn on data flow tracing
-org.eclipse.wst.common.environment/trace/data=true
-
-# Turn on command tracing
-org.eclipse.wst.common.environment/trace/command=true
-
-# Turn on emitter tracing
-org.eclipse.wst.common.environment/trace/emitter=true
-
-# Turn on web service ant tracing
-org.eclipse.wst.common.environment/trace/ws_ant=true
-
-# Turn on web service detailed command engine tracing
-org.eclipse.wst.common.environment/trace/ws_dt_cmd_engine=true
-
diff --git a/plugins/org.eclipse.wst.common.environment/.project b/plugins/org.eclipse.wst.common.environment/.project
deleted file mode 100644
index aa72ec5..0000000
--- a/plugins/org.eclipse.wst.common.environment/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.environment</name>
-	<comment></comment>
-	<projects>
-	</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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bd896db..0000000
--- a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Jan 30 10:37:36 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 6e43cd0..0000000
--- a/plugins/org.eclipse.wst.common.environment/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Mon Jan 30 10:40:26 EST 2006
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF
deleted file mode 100644
index d2aba54..0000000
--- a/plugins/org.eclipse.wst.common.environment/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.environment
-Bundle-Version: 1.0.100.qualifier
-Bundle-Activator: org.eclipse.wst.common.internal.environment.plugin.EnvironmentPlugin
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.environment,
- org.eclipse.wst.common.environment.uri,
- org.eclipse.wst.common.internal.environment.eclipse;x-internal:=true,
- org.eclipse.wst.common.internal.environment.plugin;x-internal:=true,
- org.eclipse.wst.common.internal.environment.relative;x-internal:=true,
- org.eclipse.wst.common.internal.environment.uri.file;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.osgi.util;bundle-version="[3.1.100,3.2.0)"
-Bundle-Vendor: %providerName
-Eclipse-LazyStart: true 
diff --git a/plugins/org.eclipse.wst.common.environment/about.html b/plugins/org.eclipse.wst.common.environment/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.environment/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.common.environment/build.properties b/plugins/org.eclipse.wst.common.environment/build.properties
deleted file mode 100644
index d3ee390..0000000
--- a/plugins/org.eclipse.wst.common.environment/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               about.html,\
-               plugin.properties,\
-               .options
diff --git a/plugins/org.eclipse.wst.common.environment/plugin.properties b/plugins/org.eclipse.wst.common.environment/plugin.properties
deleted file mode 100644
index c41575f..0000000
--- a/plugins/org.eclipse.wst.common.environment/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName=Enviornment Plug-in
-providerName=Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/Choice.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/Choice.java
deleted file mode 100644
index 7ec982c..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/Choice.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-/**
- * 
- * This class is used by the IStatusHandler interface.
- * It allows code that is reporting status to specify choices to the user
- * which this reporting code can react to. 
- *
- * @since 1.0
- */
-public class Choice {
-
-  private char   shortcut = ' '; 
-  private String label = null;
-  private String description = null;
-  	
-	/**
-	 * Constructor for Choice.
-	 */
-	public Choice() {
-	}
-
-	/**
-	 * Constructor for Choice.
-	 * @param shortcut the single letter shortcut for this choice.
-	 * @param label the label to be displayed to the user for this choice.
-	 */
-	public Choice(char shortcut, String label) {
-		this.shortcut = shortcut;
-		this.label = label;
-	}
-	
-	/**
-	 * Constructor for Choice.
-   * @param shortcut the single letter shortcut for this choice.
-   * @param label the label to be displayed to the user for this choice.
-	 * @param description the description for this choice.
-	 */
-	public Choice(char shortcut, String label, String description) {
-		this.shortcut = shortcut;
-		this.label = label;
-		this.description = description;
-	}
-
-	/**
-	 * Gets the label.
-	 * @return Returns a String
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Sets the label.
-	 * @param label The label to set
-	 */
-	public void setLabel(String label) {
-		this.label = label;
-	}
-
-	/**
-	 * Gets the description.
-	 * @return Returns a String
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Sets the description.
-	 * @param description The description to set
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * Gets the shortcut.
-	 * @return Returns a char
-	 */
-	public char getShortcut() {
-		return shortcut;
-	}
-
-	/**
-	 * Sets the shortcut.
-	 * @param shortcut The shortcut to set
-	 */
-	public void setShortcut(char shortcut) {
-		this.shortcut = shortcut;
-	}
-
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentException.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentException.java
deleted file mode 100644
index 6e3f70b..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentException.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * This is the exception class for conditions raised by the IEnvironment.
- * 
- * @since 1.0
- */
-public class EnvironmentException extends Exception
-{
-  /**
-   * Comment for <code>serialVersionUID</code>
-   */
-  private static final long serialVersionUID = 3978983275899402036L;
-  
-  /**
-   * The status for this exception.
-   */
-  protected IStatus status = null;
-  
-  /**
-   * Creates a new EnvironmentException.
-   */
-  public EnvironmentException ()
-  {
-    super();
-  }
-
-  /**
-   * Creates a new EnvironmentException.
-   * 
-   * @param status the status for this exception.
-   */
-  public EnvironmentException ( IStatus status )
-  {
-    super(status == null ? null : status.getMessage());
-    this.status = status;
-  }
-
-  /**
-   * Returns the Status object.
-   * 
-   * @return the status for this exception.
-   */
-  public IStatus getStatus()
-  {
-    return status;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java
deleted file mode 100644
index 5663fec..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/EnvironmentService.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.internal.environment.eclipse.ConsoleEclipseEnvironment;
-
-/**
- * 
- * This class creates a console environment.  It also contains static
- * conviences methods for creating an ILog object as well as an Eclipse and
- * File Scheme.
- * 
- * @since 1.0
- *
- */
-public class EnvironmentService
-{
-  static private IEnvironment environment;
-  
-  /**
-   * 
-   * @return returns an Eclipse console environment.
-   */
-  public static IEnvironment getEclipseConsoleEnvironment()
-  {
-    if( environment == null ) environment = new ConsoleEclipseEnvironment();
-    
-    return environment; 
-  }  
-  
-  /**
-   * 
-   * @return returns an Eclipse logger.
-   */
-  public static ILog getEclipseLog()
-  {
-    IEnvironment environment = getEclipseConsoleEnvironment();
-    
-    return environment.getLog();
-  }
-  
-  /**
-   * 
-   * @return returns an Eclipse scheme.
-   */
-  public static IURIScheme getEclipseScheme()
-  {
-    IEnvironment environment = getEclipseConsoleEnvironment();
-    IURIScheme   scheme      = null;
-    
-    try
-    {
-      scheme = environment.getURIFactory().newURIScheme( "platform" );
-    }
-    catch( URIException exc )
-    {    
-    }
-    
-    return scheme;
-  }  
-  
-  /**
-   * 
-   * @return returns a File scheme.
-   */
-  public static IURIScheme getFileScheme()
-  {
-    IEnvironment environment = getEclipseConsoleEnvironment();
-    IURIScheme   scheme      = null;
-    
-    try
-    {
-      scheme = environment.getURIFactory().newURIScheme( "file" );
-    }
-    catch( URIException exc )
-    {    
-    }
-    
-    return scheme;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IEnvironment.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IEnvironment.java
deleted file mode 100644
index 568a4f4..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IEnvironment.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.wst.common.environment.uri.IURIFactory;
-
-
-/**
- * An IEnvironment provides the means for getting a 
- * <ol>
- * <li>A log for writing messages to a logging facility,</li>
- * <li>A progress monitor for receiving progress information,</li>
- * <li>A status handler for receiving and processing status reports,</li>
- * <li>A factory for the handling of URIs (resources).</li>
- * </ol>
- * 
- * @since 1.0
- */
-public interface IEnvironment
-{
-  /**
-   * Returns a logging facility.
-   * 
-   * @return returns a logging facility.
-   */
-  public ILog getLog ();
-
-  /**
-   * Returns a status handler.
-   * 
-   * @return returns a status handler.
-   */
-  public IStatusHandler getStatusHandler ();
-
-  /**
-   * Returns a IURI factory.
-   * Hint: Implementers should insure that the Factory they return
-   * has a reference to this IEnvironment so that IURI objects can
-   * report progress and announce status.
-   * 
-   * @return returns a URI factory.
-   */
-  public IURIFactory getURIFactory ();
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/ILog.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/ILog.java
deleted file mode 100644
index 925ed24..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/ILog.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * ILog objects provide a means for logging information for FFDC etc.
- * 
- * @since 1.0
- */
-public interface ILog
-{
-  /**
-   * This constant indicates that a logging message is Ok.
-   */
-  public static final int OK = 0;
-  
-  /**
-   * This constant indicates that a logging message is informational.
-   */
-  public static final int INFO = 1;
-  
-  /**
-   * This constant indicates that a logging message is warning.
-   */
-  public static final int WARNING = 2;
-  
-  /**
-   * This constant indicates that a logging message is an error.
-   */
-  public static final int ERROR = 4;
-
-  /**
-   * Returns true if logging is enabled.
-   * There is no requirement to call this method before attempting
-   * a call to one of the <code>log</code> methods, as they will
-   * quietly do nothing if logging is disabled. This method can be
-   * useful, however, anywhere the cost of building up the parameters
-   * to a log method might be high and best avoided except when logging
-   * is enabled.
-   * @return True if logging is enabled, and false otherwise.
-   */
-  public boolean isEnabled ();
-  
-  /**
-   * Returns true if this debug option is set to true.
-   * 
-   * @param option this debug option string.
-   * @return returns true if this debug option is set to true.
-   */
-  public boolean isEnabled (String option);
-
-  /**
-   * Logs a <code>Throwable</code>.
-   * @param severity The severity of the logging entry.
-   * @param messageNum  The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param throwable The Throwable to log.
-   */
-  public void log ( int severity, int messageNum, Object caller, String method, Throwable throwable );
-  
-  /**
-   * Logs a <code>Throwable</code>.
-   * @param severity The severity of the logging entry.
-   * @param option this debug option string.
-   * @param messageNum The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param throwable The Throwable to log.
-   */
-  public void log ( int severity, String option, int messageNum, Object caller, String method, Throwable throwable );
-
-  /**
-   * Logs a <code>Status</code>.
-   * @param severity The severity of the logging entry.
-   * @param messageNum  The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param status The Status to log.
-   */
-  public void log ( int severity, int messageNum, Object caller, String method, IStatus status );
-  
-  /**
-   * Logs a <code>Status</code>.
-   * @param severity The severity of the logging entry.
-   * @param option this debug option string.
-   * @param messageNum  The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param status The Status to log.
-   */
-  public void log ( int severity, String option, int messageNum, Object caller, String method, IStatus status );
-
-  /**
-   * Logs an <code>Object</code>.
-   * @param severity The severity of the logging entry.
-   * @param messageNum  The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param object The Object to log.
-   */
-  public void log ( int severity, int messageNum, Object caller, String method, Object object );
-  
-  /**
-   * Logs an <code>Object</code>.
-   * @param severity The severity of the logging entry.
-   * @param option this debug option string.
-   * @param messageNum  The message number.
-   * @param caller The object (for non-static methods) or class (for
-   * static methods) doing the logging.
-   * @param method The simple name of the method doing the loging.
-   * @param object The Object to log.
-   */
-  public void log ( int severity, String option, int messageNum, Object caller, String method, Object object );
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IStatusHandler.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IStatusHandler.java
deleted file mode 100644
index 9c3aee6..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/IStatusHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Processes status events raised by the caller and returns an
- * indication of choices made by the recipient of the status and
- * may raise an exception against the caller to have them abort
- * procesing.
- * 
- * @since 1.0
- */
-public interface IStatusHandler
-{
-  /**
-   * Reports the given Status and set of possible responses.
-   * 
-   * @param status the status to report.
-   * @param choices the choices that will be displayed to the user.
-   * @return returns the choice made by the user/handler.
-   */
-  public Choice report ( IStatus status, Choice[] choices );
-  
-  /**
-   * Reports the given Status with implied options to either
-   * continue or abort.
-   * @param status the status to report.
-   * @throws StatusException Throws an exception if the handler decides the caller
-   * should stop processing.
-   */
-  public void report ( IStatus status ) throws StatusException;
-  
-  /**
-   * Report the given Error Status.  No user feedback is provided.
-   * @param status the error status to report.
-   */
-  public void reportError( IStatus status );
-  
-  /**
-   * Report the given Info Status.  No user feedback is provided.
-   * @param status the info status to report.
-   */
-  public void reportInfo( IStatus status );
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/NullStatusHandler.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/NullStatusHandler.java
deleted file mode 100644
index 3e22891..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/NullStatusHandler.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * 
- * This class provides a default implementation of the IStatusHandler interface.
- * 
- * @since 1.0
- *
- */
-public class NullStatusHandler implements IStatusHandler
-{
-  
-  /**
-   * @see org.eclipse.env.common.IStatusHandler#report(org.eclipse.core.runtime.IStatus, org.eclipse.env.common.Choice[])
-   */
-  public Choice report(IStatus status, Choice[] choices) 
-  {
-  	Choice result = null;
-  	
-  	// Always take the first choice if available.
-    if( choices != null && choices.length > 0 )
-    {
-    	result = choices[0];
-    }
-    
-    return result;
-  }
-
-  /**
-   * @see org.eclipse.env.common.IStatusHandler#report(org.eclipse.core.runtime.IStatus)
-   */
-  public void report(IStatus status) throws StatusException
-  {
-  }
-  
-  /*
-   * Report and error.
-   */
-  private boolean reportErrorStatus(IStatus status)
-  {
-    return false;
-  }
-  
-  /**
-   * @see org.eclipse.wst.common.environment.IStatusHandler#reportError(org.eclipse.core.runtime.IStatus)
-   */
-  public void reportError(IStatus status)
-  {
-    reportErrorStatus( status );
-  }
-  
-  /**
-   * @see org.eclipse.wst.common.environment.IStatusHandler#reportInfo(org.eclipse.core.runtime.IStatus)
-   */
-  public void reportInfo(IStatus status)
-  {
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/StatusException.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/StatusException.java
deleted file mode 100644
index e747ed0..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/StatusException.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * This is the exception class used by StatusHandlers to tell their
- * callers that processing should stop.
- * 
- * @since 1.0
- */
-public class StatusException extends EnvironmentException
-{
-  /**
-   * Comment for <code>serialVersionUID</code>
-   * */
-  private static final long serialVersionUID = 3618141160322119992L;
-
-  /**
-   * The Choice that lead to the exception being thrown,
-   * if any (ie. may be null).
-   */
-  protected Choice choice;
-
-  /**
-   * Creates a new StatusException with the given Status.
-   * @param status the status for this exception.
-   */
-  public StatusException( IStatus status )
-  {
-    super( status );  
-  }
-  
-  /**
-   * Creates a new StatusException with the given Choice.
-   * The Choice may be null.
-   * @param choice the choice for this exception.
-   */
-  public StatusException ( Choice choice )
-  {
-    super();
-    this.choice = choice;
-  }
-
-  /**
-   * Creates a new StatusException with the given Choice
-   * and status object. The Choice may be null.
-   * 
-   * @param status the status for this exception.
-   * @param choice the choice for this exception.
-   */
-  public StatusException ( IStatus status, Choice choice )
-  {
-    super(status);
-    this.choice = choice;
-  }
-
-  /**
-   * @return Returns the Choice object inside this exception.
-   */
-  public Choice getChoice ()
-  {
-    return choice;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURI.java
deleted file mode 100644
index 9352326..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURI.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-
-/**
- * A IURI represents a Univeral Resource Identifer.
- * 
- * @since 1.0
- */
-public interface IURI
-{
-  /**
-   * @return Returns the string form of the IURI.
-   * The resource need not exist.
-   */
-  public String toString ();
-
-  /**
-   * @return Returns the IURIScheme for the scheme of this IURI.
-   * The resource need not exist.
-   */
-  public IURIScheme getURIScheme ();
-
-  /**
-   * @return Returns true iff the resource identified by this IURI exists.
-   */
-  public boolean isPresent ();
-
-  /**
-   * @return Returns true iff the resource identified by this IURI exists
-   * and is a leaf. Returns true always for non-hierarchical schemes.
-   */
-  public boolean isLeaf ();
-
-  /**
-   * @return Returns true iff the resource identified by this IURI exists
-   * and is readable. A readable leaf resource indicates that an
-   * input stream can be opened on the resource. A readable folder
-   * resource indicates that the children of the folder, if any,
-   * can be determined via the list() or visit() methods.
-   */
-  public boolean isReadable ();
-
-  /**
-   * @return Returns true iff the resource identified by this IURI exists
-   * and is writable. A writable leaf resource indicates that an
-   * output stream can be opened on the resource. A writable folder
-   * resource indicates that new resources can be created in the folder.
-   */
-  public boolean isWritable ();
-
-  /**
-   * @return Returns true iff this IURI belongs to a hierarchical scheme.
-   * The resource need not exist.
-   * this.isHierarchical() == this.getURIScheme().isHierarchical().
-   */
-  public boolean isHierarchical ();
-
-  /**
-   * @return Returns true iff this IURI is a relative IURI.
-   * The resource need not exist.
-   */
-  public boolean isRelative ();
-
-  /**
-   * @return Returns the IURI of the folder containing this IURI.
-   * The resource need not exist.
-   * @throws URIException if there is no parent URI.
-   */
-  public IURI parent () throws URIException;
-
-  /**
-   * @param relativeURI a relative URI.
-   * @return Returns a new, normalized IURI formed by appending the given
-   * relative IURI to this IURI. Both URIs must be hierarchical.
-   * The resulting IURI will always be hierarchical. The given
-   * IURI must be relative. This IURI can be relative or absolute.
-   * the resulting IURI will be equivalently relative or absolute.
-   * @throws URIException if relativeURI is not relative.
-   */
-  public IURI append ( IURI relativeURI ) throws URIException;
-
-  /**
-   * @return Gets an InputStream for reading from the resource
-   * identified by this leaf or non-hierarchical IURI.
-   * 
-   * @throws URIException if a stream for this URI can not be created.
-   */
-  public InputStream getInputStream () throws URIException;
-
-  /**
-   * @return Gets an OutputStream for writing to the resource
-   * identified by this leaf or non-hierarchical IURI.
-   * @throws URIException if a stream for this URI can not be created.
-   */
-  public OutputStream getOutputStream () throws URIException;
-
-  /**
-   * Creates a new, empty resource at the location identified by
-   * the IURI. On completion, this.isLeaf() == true. If a leaf
-   * resource already exists, this method does nothing. If a
-   * non-leaf resource already exists under this IURI, creation
-   * will fail and an exception will be thrown.
-   * @throws URIException if an error occurs touching this leaf resource.
-   */
-  public void touchLeaf () throws URIException;
-
-  /**
-   * Creates a new folder resource at the location identified by
-   * the IURI. The scheme of the IURI must be hierarchical.
-   * On completion, this.isLeaf() == false. If a folder resource
-   * already exists, this method does nothing. If a leaf resource
-   * already exists under this IURI, creation will fail and an
-   * exception will be thrown.
-   * @throws URIException if an error occurs touching this folder resource.
-   */
-  public void touchFolder () throws URIException;
-
-  /**
-   * Erases the resource identified by this IURI.
-   * @throws URIException if an error occurs erasing this resource.
-   */
-  public void erase () throws URIException;
-
-  /**
-   * Renames or moves the resource identified by this IURI
-   * to the new IURI.
-   * @param newURI the new URI name for this URI.
-   * @throws URIException if an error occurs renaming this resource.
-   */
-  public void rename ( IURI newURI ) throws URIException;
-
-  /**
-   * Visits this resource and its decendants in pre-order fashion.
-   * For each resource, whether a folder or a leaf, the given
-   * IURIVisitor's visit() method is called with the IURI of the
-   * resource. If IURIVisitor.visit() returns false, the visiting
-   * algorithm will "prune" the decendants of the resource and
-   * carry on visiting the rest of the tree. If IURIVisitor.visit()
-   * returns true, the visiting algorithm will continue its walk
-   * down the resource's descendants.
-   * @param uriVisitor the visitor that will be called for each resource visited.
-   * @throws URIException if an error occurs visiting this resource and its children.
-   */
-  public void visit ( IURIVisitor uriVisitor ) throws URIException;
-
-  /**
-   * As for visit(IURIVisitor), except only resource URIs that are
-   * accepted by the given filter are visited. If a folder resource
-   * fails to be accepted by the filter, this will not prevent the
-   * visiting algorithm from walking the resource's descendants.
-   * It remains the job of the visitor to choose whether or not to
-   * prune a branch by returning false or true.
-   * @param uriVisitor the visitor that will be called for each resource visited.
-   * @param uriFilter the resource filter.
-   * @throws URIException if an error occurs visiting this resource and its children.
-   */
-  public void visit ( IURIVisitor uriVisitor, IURIFilter uriFilter ) throws URIException;
-
-  /**
-   * Returns a list of URIs for the immediate children of the given
-   * hierarchical, non-leaf IURI. This method never returns null,
-   * though it may return a zero length array.
-   * @return returns the children for this URI.
-   * @throws URIException if an error occurs locating the children for this URI.
-   */
-  public IURI[] list () throws URIException;
-
-  /**
-   * As for list(), except only URIs that are accepted by the given
-   * filter are returned in the array. This method never returns null,
-   * though it may return a zero length array.
-   * @param uriFilter the child filter.
-   * @return returns the filtered children for this URI.
-   * @throws URIException if an error occurs locating the children for this URI.
-   */
-  public IURI[] list ( IURIFilter uriFilter ) throws URIException;
-
-  /**
-   * @return Returns true if the asURL() method is fair game,
-   * in other words, if this IURI can be converted into a URL.
-   */
-  public boolean isAvailableAsURL ();
-
-  /**
-   * @return Returns a URL object for the resource under this IURI.
-   * There are many URIs and URISchemes for which this method
-   * will fail and throw an exception. It should be used only
-   * in cases where URIs are known to be representable as URLs.
-   * @throws URIException if an error occurs returning this URL.
-   */
-  public URL asURL () throws URIException;
-
-  /**
-   * @return Returns true if the asFile() method is fair game,
-   * in other words, if this IURI can be converted into a File.
-   */
-  public boolean isAvailableAsFile ();
-
-  /**
-   * @return Returns a File object for the resource under this IURI.
-   * There are many URIs and URISchemes for which this method
-   * will fail and throw an exception. It should be used only
-   * in cases where URIs are known to be backed by physical files.
-   * @throws URIException if an error occurs returning this File.
-   */
-  public File asFile () throws URIException;
-
-  /**
-   * @return Returns the IURI as a string.
-   * Equivalent to toString().
-   */
-  public String asString ();
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFactory.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFactory.java
deleted file mode 100644
index f8a3123..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-import java.net.URL;
-
-/**
- * This is a factory for creating new IURI and IURIScheme objects.
- * 
- * @since 1.0
- */
-public interface IURIFactory
-{
-  /**
-   * Creates and returns a new IURI for the given string.
-   * @param uri the uri to be created.
-   * @return the new URI.
-   * @throws URIException if the uri parameter is not a valid URI.
-   */
-  public IURI newURI ( String uri ) throws URIException;
-
-  /**
-   * Creates and returns a new IURI for the given URL.
-   * @param url the url to use to create this URI
-   * @return the new URI.
-   * @throws URIException if the url parameter is not a valid url.
-   */
-  public IURI newURI ( URL url ) throws URIException;
-
-  /**
-   * Creates and returns a new IURIScheme for the given scheme string.
-   * If the string contains no colons, the entire string is interpretted
-   * as the name of the scheme. If the string contains a colon, then the
-   * substring up to but excluding the first colon is interpretted as the
-   * name of the scheme, meaning the caller can pass in any IURI string in
-   * order to get a IURIScheme object.
-   * 
-   * @param schemeOrURI the scheme or URI from which to create the scheme.
-   * @return the new Scheme.
-   * @throws URIException if schemeOrUri parameter does not contain
-   * a valid scheme or URI name.
-   */
-  public IURIScheme newURIScheme ( String schemeOrURI ) throws URIException;
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFilter.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFilter.java
deleted file mode 100644
index 3e41c8e..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIFilter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-/**
- * This interface is implemented by classes that visit or list URIs.
- * Refer to {@link IURI#getChildren}.
- * 
- * @since 1.0
- */
-public interface IURIFilter
-{
-  /**
-   * Filters the given IURI.
-   * @param uri The resource to filter.
-   * @return True if the resource matches the filter,
-   * false if it does not.
-   * @param uri the uri that will be accepted or rejected.
-   * @return returns true if this uri is accepted.
-   * @throws URIException If the filter fails to analyze the resource.
-   */
-  public boolean accepts ( IURI uri ) throws URIException;
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIScheme.java
deleted file mode 100644
index 61177ce..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIScheme.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A IURIScheme represents a single scheme for some a family of
- * Univeral Resource Identifiers. Examples include "file", "http"
- * and "platform" (Eclipse).
- * 
- * @since 1.0
- */
-public interface IURIScheme
-{
-  /**
-   * @param uri the URI to be created.
-   * @return Returns a new IURI.
-   * @throws URIException if the uri specified is not valid or
-   * can not be created.
-   */
-  public IURI newURI ( String uri ) throws URIException;
-
-  /**
-   * @param url the url used to create the URI.
-   * @return Returns a new IURI.
-   * @throws URIException if the url specified is not valid or
-   * can not be created.
-   */
-  public IURI newURI ( URL url ) throws URIException;
-
-  /**
-   * @param uri the URI to be created.
-   * @return Returns a new IURI.
-   * @throws URIException if the uri specified is not valid or
-   * can not be created.
-   */
-  public IURI newURI ( IURI uri ) throws URIException;
-
-  /**
-   * @return Returns the proper name of the scheme.
-   */
-  public String toString ();
-
-  /**
-   * @return Returns true if and only if this is a hierarchical scheme.
-   */
-  public boolean isHierarchical ();
-
-  /**
-   * @param uri the uri to check for validity.
-   * @return Returns true if and only if the given IURI satisfies the
-   * grammatical requirements of the scheme. Absolute URIs must
-   * begin with "<scheme>:". Relative URIs must either not contain
-   * a colon, ":", or it must begin with "./".
-   */
-  public boolean isValid ( IURI uri );
-
-  /**
-   * @param uri the uri to check for validity.
-   * @return Returns a Status object indicating whether or not the given
-   * IURI is valid. The severity and message of the Status object
-   * will describe this.
-   */
-  public IStatus validate ( IURI uri );
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIVisitor.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIVisitor.java
deleted file mode 100644
index aa752eb..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/IURIVisitor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-/**
- * This interface is implemented by classes that visit URIs.
- * Refer to {@link IURI#visit}.
- * 
- * @since 1.0
- */
-public interface IURIVisitor
-{
-  /**
-   * Visits the given IURI.
-   * @param uri The resource to visit.
-   * @return True if the resource's descendants should be visited,
-   * or false if they should not be visited.
-   * @throws URIException If the visit method fails.
-   */
-  public boolean visit ( IURI uri ) throws URIException;
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java
deleted file mode 100644
index 90945ac..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/SimpleURIFactory.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-import java.net.URL;
-import java.util.Hashtable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.internal.environment.eclipse.Messages;
-import org.eclipse.wst.common.internal.environment.relative.RelativeScheme;
-
-/**
- * 
- * This class provides a default implementation of the IURIFactory interface.
- * 
- * @since 1.0
- */
-public class SimpleURIFactory implements IURIFactory
-{
-  private Hashtable    schemes_ = new Hashtable();  
-  
-  /**
-   * @param uri the uri to be created.
-   * @return Creates and returns a new IURI for the given string.
-   * @throws URIException if an error occurs creating this URI.
-   */
-  public IURI newURI(String uri) throws URIException
-  {
-    IURIScheme scheme = newURIScheme( uri, false );
-    
-    return scheme.newURI( uri );
-  }
-
-  /**
-   * @param url the url to use to create this uri.
-   * @return Creates and returns a new IURI for the given URL.
-   * @throws URIException if an error occurs creating this URI.
-   */
-  public IURI newURI(URL url) throws URIException
-  {
-    IURIScheme scheme = newURIScheme( url.toString(), false );
-    
-    return scheme.newURI( url );
-  }
-
-  /**
-   * @param schemeOrURI the scheme name or URI from which this scheme is 
-   * to be created.
-   * @return Creates and returns a new IURIScheme for the given scheme string.
-   * If the string contains no colons, the entire string is interpretted
-   * as the name of the scheme. If the string contains a colon, then the
-   * substring up to but excluding the first colon is interpretted as the
-   * name of the scheme, meaning the caller can pass in any IURI string in
-   * order to get a IURIScheme object.
-   * @throws URIException if an error occurs creating this URI scheme.
-   */
-  public IURIScheme newURIScheme(String schemeOrURI) throws URIException
-  {
-    return newURIScheme( schemeOrURI, true );
-  }
-  
-  /**
-   * This method registers a scheme for a particular protocol.
-   * 
-   * @param protocol the protocol.
-   * @param scheme the scheme.
-   */
-  public void registerScheme( String protocol, IURIScheme scheme )
-  {
-    schemes_.put( protocol, scheme );
-  }
-  
-  private IURIScheme newURIScheme(String schemeOrURI, boolean checkForScheme ) throws URIException
-  {
-    IURIScheme newScheme = null;
-    
-    if( schemeOrURI == null )
-    {
-      throw new URIException( 
-              new Status( IStatus.ERROR, "id", 0, 
-                 NLS.bind( Messages.MSG_NULL_ARG_SPECIFIED, "newURIScheme"), null ) );
-    }
-    
-    int colon    = schemeOrURI.indexOf(':');
-    int slash    = schemeOrURI.indexOf('/');
-    
-    // A protocol was specified.  Note: a colon appearing after a path is not
-    // considered part of the protocol for this IURI.
-    if( ( checkForScheme && colon == -1 ) ||
-        ( colon != -1 && slash == -1) || 
-        ( colon != -1 && colon < slash ) )
-    {
-      // If colon is -1 then we will treat the entire input parameter as the protocol.
-      if( colon == -1 ) colon = schemeOrURI.length();
-      
-      String protocol = schemeOrURI.substring(0, colon );
-      newScheme       = (IURIScheme)schemes_.get( protocol );
-      
-      if( newScheme == null )
-      {
-        throw new URIException( 
-            new Status( IStatus.ERROR, "id", 0, 
-                NLS.bind( Messages.MSG_SCHEME_NOT_FOUND, schemeOrURI ), null ) );
-                
-      }
-    }
-    else if( schemeOrURI.startsWith( "/") )
-    {
-      throw new URIException( 
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_ABSOLUTE_PATH_WITHOUT_SCHEME, schemeOrURI ), null ) );
-      
-    }
-    else
-    {
-      newScheme = new RelativeScheme();
-    }
-    
-    return newScheme;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/URIException.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/URIException.java
deleted file mode 100644
index e1aee84..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/environment/uri/URIException.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.environment.uri;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * This is the base class for most exceptions thrown by IURI classes.
- * Every URIException carries a IURI and a Status, each of which may
- * be null. The getMessage() method as inherited from Exception will
- * return the message from the URIExceptin's Status object, if any.
- * 
- * @since 1.0
- */
-public class URIException extends Exception
-{
-  /**
-   * Comment for <code>serialVersionUID</code>
-   */
-  private static final long serialVersionUID = 3258130271424756018L;
-
-  /**
-   * A Status object containing details about the exception,
-   * if applicable.
-   */
-  protected IStatus status;
-
-  /**
-   * The IURI for which the exception occured,
-   * if applicable.
-   */
-  protected IURI uri;
-
-  /**
-   * Creates a new URIException with the given Status.
-   * The status may be null.
-   * 
-   * @param status the staus for this exception.
-   */
-  public URIException ( IStatus status )
-  {
-    super();
-    this.status = status;
-  }
-
-  /**
-   * Creates a new URIException for the given Status and IURI,
-   * each of which may be null.
-   * 
-   * @param status the status for this exception.
-   * @param uri the uri that caused this exception.
-   */
-  public URIException ( IStatus status, IURI uri )
-  {
-    super(status != null ? status.getMessage() : null);
-    this.status = status;
-    this.uri = uri;
-  }
-
-  /**
-   * @return returns the Status object inside this exception.
-   */
-  public IStatus getStatus ()
-  {
-    return status;
-  }
-
-  /**
-   * @return returns the IURI inside this exception.
-   */
-  public IURI getURI ()
-  {
-    return uri;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java
deleted file mode 100644
index 8e1c1e1..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/ConsoleEclipseEnvironment.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import org.eclipse.wst.common.environment.IEnvironment;
-import org.eclipse.wst.common.environment.ILog;
-import org.eclipse.wst.common.environment.NullStatusHandler;
-import org.eclipse.wst.common.environment.IStatusHandler;
-import org.eclipse.wst.common.environment.uri.SimpleURIFactory;
-import org.eclipse.wst.common.environment.uri.IURIFactory;
-import org.eclipse.wst.common.internal.environment.uri.file.FileScheme;
-
-
-/**
- *  This class is intended for use in a headless Eclipse environment.  
- */
-public class ConsoleEclipseEnvironment implements IEnvironment
-{
-	private SimpleURIFactory  uriFactory_      = null;
-	private IStatusHandler     statusHandler_   = null;
-	  
-	public ConsoleEclipseEnvironment()
-	{
-	  this( new NullStatusHandler() );	
-	}
-	
-	public ConsoleEclipseEnvironment( IStatusHandler  statusHandler )
-	{
-	  uriFactory_      = new SimpleURIFactory();
-	  statusHandler_   = statusHandler;
-	    
-	  uriFactory_.registerScheme( "platform", new EclipseScheme( this ) );
-	  uriFactory_.registerScheme( "file", new FileScheme() );
-	}
-			
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.environment.IEnvironment#getLog()
-	 */
-	public ILog getLog() 
-	{
-		return new EclipseLog();
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.environment.IEnvironment#getStatusHandler()
-	 */
-	public IStatusHandler getStatusHandler() 
-	{
-		return statusHandler_;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.common.environment.IEnvironment#getURIFactory()
-	 */
-	public IURIFactory getURIFactory() 
-	{
-		return uriFactory_;
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java
deleted file mode 100644
index e1d75e6..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseLog.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   100364 pmoogk@ca.ibm.com - Peter Moogk
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.environment.ILog;
-import org.eclipse.wst.common.internal.environment.plugin.EnvironmentPlugin;
-
-public class EclipseLog implements org.eclipse.wst.common.environment.ILog 
-{
-	private org.eclipse.core.runtime.ILog logger;
-	
-	public EclipseLog() 
-	{
-		Plugin plugin = EnvironmentPlugin.getInstance();
-		
-    logger = plugin.getLog();
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#isEnabled()
-	 */
-	public boolean isEnabled() 
-  {
-		return Platform.inDebugMode();
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.Environment.ILog#isEnabled(java.lang.String)
-	 */
-	public boolean isEnabled(String option) {
-		return "true".equals(Platform.getDebugOption("org.eclipse.wst.common.environment/trace/"
-				+ option));
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, int, java.lang.Object, java.lang.String, java.lang.Object)
-	 */
-	public void log(int severity, int messageNum, Object caller,
-			String method, Object object) 
-	{
-		
-		if (isEnabled()) {
-			switch (severity) {
-				case ILog.ERROR :
-				{
-					if (isEnabled("error"))
-					{
-						String message = getMessageNumString(messageNum) + "E "
-							+ caller + "::" + method + ": object="
-							+ object;
-						log( severity, message, null );
-					}
-					break;
-				}
-				
-				case ILog.WARNING :
-				{
-					if (isEnabled("warning"))
-					{
-						String message = getMessageNumString(messageNum)
-								+ "W " + caller + "::" + method
-								+ ": object=" + object;
-						log( severity, message, null );
-					}
-					break;
-				}
-				
-				case ILog.INFO :
-				{
-					if (isEnabled("info"))
-					{
-						String message = getMessageNumString(messageNum) + "I "
-								+ caller + "::" + method + ": object="
-								+ object;
-						log( severity, message, null );
-					}
-					break;
-				}
-			}
-		}
-		
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)
-	 */
-	public void log(int severity, int messageNum, Object caller,
-			String method, IStatus status) {
-		log(severity, messageNum, caller, method, (Object)status);
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, int, java.lang.Object, java.lang.String, java.lang.Throwable)
-	 */
-	public void log(int severity, int messageNum, Object caller,
-			String method, Throwable throwable) {
-		log( severity, messageNum, caller, method, (Object)null );
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Object)
-	 */
-	public void log(int severity, String option, int messageNum,
-			Object caller, String method, Object object) 
-	{
-		if (isEnabled(option))
-		{
-			String message = getMessageNumString(messageNum) + "I " + caller
-					+ "::" + method + ": object=" + object;
-			log(severity, message, null );
-		}	
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, java.lang.String, int, java.lang.Object, java.lang.String, java.lang.Throwable)
-	 */
-	public void log(int severity, String option, int messageNum,
-			Object caller, String method, Throwable throwable) 
-	{
-		if (isEnabled(option)) 
-		{
-			String message = getMessageNumString(messageNum) + "I " + caller
-					+ "::" + method;
-			log( severity, message, throwable );
-		}
-	}
-	
-	/**
-	 * @see org.eclipse.wst.common.environment.ILog#log(int, java.lang.String, int, java.lang.Object, java.lang.String, org.eclipse.core.runtime.IStatus)
-	 */
-	public void log(int severity, String option, int messageNum,
-			Object caller, String method, IStatus status) 
-	{
-		logger.log( status );
-	}
-	
-	private String getMessageNumString(int messageNum) {
-		String messageNumString = "IWAB";
-		if (messageNum > 9999 || messageNum < 0)
-			messageNum = 9999; //default message number
-		messageNumString += (new Integer(messageNum)).toString();
-		return messageNumString;
-	}
-	
-	private void log( int severity, String message, Throwable exc )
-	{
-		Status status = new Status( severity, "id", 0, message, exc );
-		logger.log( status );
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java
deleted file mode 100644
index 46a30c6..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseScheme.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.environment.IEnvironment;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.internal.environment.relative.RelativeURI;
-
-
-public class EclipseScheme implements IURIScheme
-{
-  private IEnvironment      environment_;
-  
-  public EclipseScheme( IEnvironment environment )
-  {
-    environment_ = environment;
-  }
-  
-  public String toString()
-  {
-    return "platform";  
-  }
-  
-  /**
-   */
-  public boolean isHierarchical()
-  {
-    return true;
-  }
-
-  /**
-   */
-  public boolean isValid(IURI uri)
-  {
-    boolean result = true;
-    
-    if( uri == null ) return false;
-    
-    try
-    {
-      IURIScheme scheme = uri.getURIScheme();
-      
-      if( scheme.toString().equals( "relative") ) return scheme.isValid( uri );
-        
-      getPathFromPlatformURI( uri.toString() );
-    }
-    catch( URIException exc )
-    {
-      result = false;
-    }
-    
-    return result;
-  }
-
-  /**
-   */
-  public IURI newURI(String uri) throws URIException
-  {
-    String newURI = null;
-    
-    if( uri != null && uri.startsWith( "platform:") )
-    {
-      // The platform has been specified so keep it as is.
-      newURI = uri;
-    }
-    else if( uri == null || uri.indexOf( ":") != -1 )
-    {
-      // The platform uri is not allowed to contain some other protocol. 
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_INVALID_PLATFORM_URL,uri), null ) );
-              
-    }
-    else if( uri.startsWith( "/") )
-    {
-      // The platform scheme has not been specified so we will add it.
-      newURI = "platform:/resource" + uri;
-    }
-    
-    if( newURI == null )
-    {
-      return new RelativeURI( uri );
-    }
-    else
-    {
-      return new EclipseURI( newURI, environment_ );
-    }
-  }
-
-  /**
-   */
-  public IURI newURI(IURI uri) throws URIException
-  {
-    return newURI( uri == null ? null : uri.toString() );
-  }
-
-  /**
-   */
-  public IURI newURI(URL url) throws URIException
-  {
-    return newURI( url == null ? null : url.toString() );
-  }
-
-  /**
-   */
-  public IStatus validate(IURI uri)
-  {
-    IStatus status = null;
-    
-    try
-    {
-      IURIScheme scheme = uri.getURIScheme();
-      
-      if( scheme.toString().equals( "relative") ) return scheme.validate( uri );
-      
-      getPathFromPlatformURI( uri.toString() );
-      status = Status.OK_STATUS;
-    }
-    catch( URIException exc )
-    {
-      status = exc.getStatus(); 
-    }
-    
-    return status;
-  }
-  
-  /**
-   * Gets the "platform:/resource" IPath given a url
-   * 
-   */
-  public String getPathFromPlatformURI(String uri) throws URIException 
-  {
-    String resourceFile = null;
-    URL    url          = null;
-    
-    try
-    {
-      url = new URL( uri ); 
-    }
-    catch( MalformedURLException exc )
-    { 
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_INVALID_PLATFORM_URL, uri ), exc ) );
-    }
-    
-    if( url == null )
-    {
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_INVALID_PLATFORM_URL, uri ), null ) );
-    }
-    if( url.getProtocol().equals("platform") ) 
-    {
-      String resourceURL = url.getFile();
-      
-      if (resourceURL.startsWith("/resource")) 
-      {
-        resourceFile = resourceURL.substring(10);   // omit the "/resource" portion
-      }
-    }
-    else 
-    {
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-                      NLS.bind( Messages.MSG_INVALID_PLATFORM_URL,url.getFile() ), null ) );
-    }
-    
-    return resourceFile;
-  }
-  
-  /**
-   * 
-   * @param absolutePath an absolute IPath
-   * @return returns the platform IURI for this path.
-   */
-  public String getURLFromPath( IPath absolutePath )
-  {
-    return "platform:/resource" + absolutePath;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java
deleted file mode 100644
index feb22d4..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/EclipseURI.java
+++ /dev/null
@@ -1,518 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Vector;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.environment.IEnvironment;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.IURIFilter;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.internal.environment.relative.RelativeURI;
-
-
-public class EclipseURI extends RelativeURI
-{
-  private IEnvironment   environment_;
-  private EclipseScheme  scheme_;
-  private File           file_;
-  
-  public EclipseURI( String uri, IEnvironment environment )
-  {
-    super( uri );
-    
-    environment_  = environment;
-    scheme_       = new EclipseScheme( environment );
-    file_         = getFile();
-  }
-  
-  public String toString()
-  {
-    return uri_;
-  }
-  
-  /**
-   * @see org.eclipse.env.uri.IURI#erase()
-   */
-  public void erase() throws URIException
-  {
-    try 
-    {
-      IResource file = getResource();
-      
-      if( file != null && file.exists() ) 
-      {
-        if( file instanceof IFile )
-        {
-          FileResourceUtils.deleteFile( (IFile)file,
-                                        environment_.getStatusHandler() );
-        }
-        else if( file instanceof IFolder )
-        {
-          FileResourceUtils.deleteFolder( (IFolder)file,
-                                          environment_.getStatusHandler() );          
-        }
-      }
-      
-    }
-    catch( Exception exc ) 
-    {      
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-    }
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#getInputStream()
-   */
-  public InputStream getInputStream() throws URIException
-  {
-    try 
-    {
-      // If a class cast exception is throw it will be propogated as
-      // a URIException.
-      IFile file = (IFile)getResource();
-
-      //call getContents on the eclipse File object
-      if( file != null ) 
-      {
-        return file.getContents();
-      }
-    }
-    catch( Throwable exc ) 
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-    }
-    
-    return null;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#getOutputStream()
-   */
-  public OutputStream getOutputStream() throws URIException
-  {
-    // Ensure that the parent folder exists.
-    IURI parent = parent();
-    
-    if( !parent.isPresent() )
-    {
-      parent().touchFolder();
-    }
-    
-    return getOutStream();
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#getURIScheme()
-   */
-  public IURIScheme getURIScheme()
-  {
-    return scheme_;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#isLeaf()
-   */
-  public boolean isLeaf()
-  {
-    boolean result = false;
-  
-    try
-    {
-      IResource resource = getResource();
-      
-      if( resource != null && 
-          resource.exists() && 
-          resource.getType() == IResource.FILE )
-      {  
-        result = true;
-      }
-    }
-    catch( URIException exc )
-    {
-      // This IURI does not exist.
-      result = false;
-    }
-   
-    return result;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#isPresent()
-   */
-  public boolean isPresent()
-  {
-    boolean result = false;
-    
-    try
-    {
-      IResource resource = getResource();
-      
-      if( resource != null && resource.exists() )
-       {  
-        result = true;
-      }
-    }
-    catch( URIException exc )
-    {
-      // This IURI does not exist.
-      result = false;
-    }
-    
-    return result;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#isReadable()
-   */
-  public boolean isReadable()
-  {
-    boolean result = false;
-    
-    try
-    {
-      IResource resource = getResource();
-      
-      if( resource != null && resource.isAccessible() )
-       {  
-        result = true;
-      }
-    }
-    catch( URIException exc )
-    {
-      // This IURI does not exist.
-      result = false;
-    }
-    
-    return result;
-   }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#isRelative()
-   */
-  public boolean isRelative()
-  { 
-    return false;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#isWritable()
-   */
-  public boolean isWritable()
-  {
-    boolean result = false;
-    
-    try
-    {
-      IResource resource = getResource();
-      
-      if( resource != null && 
-          resource.isAccessible() && 
-          !resource.getResourceAttributes().isReadOnly() )
-       {  
-        result = true;
-      }
-    }
-    catch( URIException exc )
-    {
-      // This IURI does not exist.
-      result = false;
-    }
-    
-    return result;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#list()
-   */
-  public IURI[] list() throws URIException
-  {
-    IResource resource    = getResource();
-    IURI[]     uriChildren = new IURI[0];
-    
-    if( resource.getType() == IResource.FOLDER )
-    {
-      IFolder     folder   = (IFolder)resource;
-      
-      try
-      {
-        IResource[] children    = folder.members();  
-  
-        uriChildren = new IURI[children.length];
-        
-        for( int index = 0; index < children.length; index++ )
-        {
-          IPath path = children[index].getFullPath();
-          uriChildren[index] = new EclipseURI( scheme_.getURLFromPath(path), environment_  );
-        }
-      }
-      catch( CoreException exc )
-      {
-      }
-    }
-    
-    return uriChildren;
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#list(org.eclipse.env.uri.IURIFilter)
-   */
-  public IURI[] list(IURIFilter uriFilter) throws URIException
-  {
-    IResource resource = getResource();
-    IURI[]     result   = new IURI[0];
-    
-    if( resource.getType() == IResource.FOLDER )
-     {
-      IFolder     folder   = (IFolder)resource;
-      
-      try
-      {
-        IResource[] children    = folder.members();       
-        Vector      uriChildren = new Vector();
-        
-        for( int index = 0; index < children.length; index++ )
-         {
-          IPath path = children[index].getFullPath();
-          IURI   uri  = new EclipseURI( scheme_.getURLFromPath(path), environment_ );
-          
-          if( uriFilter.accepts( uri ) )
-          {
-            uriChildren.add( uri );
-          }
-        }
-        
-        result = (IURI[])uriChildren.toArray( new IURI[0] );
-      }
-      catch( CoreException exc )
-      {
-      }
-    }
-    
-    return result;
-  }
-   
-  /**
-   * @see org.eclipse.env.uri.IURI#rename(org.eclipse.env.uri.IURI)
-   */
-  public void rename(IURI newURI ) throws URIException
-  {
-    if( newURI == null || !(newURI instanceof EclipseURI) ) return;
-    
-    try
-    {
-      EclipseURI newEclipseURI = (EclipseURI)newURI;
-      IPath      newPath       = new Path( scheme_.getPathFromPlatformURI( newEclipseURI.uri_ ) ).makeAbsolute();
-      IResource  resource      = getResource();
-      
-      if( resource != null )
-      {
-        resource.move( newPath, true, null );
-      }
-    }
-    catch( CoreException exc )
-    {
-      exc.printStackTrace();
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ) );
-    }
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#touchFolder()
-   */
-  public void touchFolder() throws URIException
-  {
-    IResource resource = getResource();
-    
-    if( resource != null )
-    { 
-      if( resource.getType() == IResource.FOLDER )
-      {
-        IFolder folder = (IFolder)resource;
-        
-        try
-        {
-          if( folder.members().length > 0 )
-          {
-            throw new URIException( 
-                new Status( IStatus.ERROR, "id", 0, 
-                    NLS.bind( Messages.MSG_ERROR_FOLDER_HAS_CHILDREN, folder.toString() ), null ),
-                this );
-								
-          }
-        }
-        catch( CoreException exc )
-        {        
-          throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-        }
-      }
-      else
-      {
-         //??? Not sure what to do if touching a folder and the IURI exists and it is not a folder.
-      }
-    }
-    else
-    {
-      IPath newPath = new Path( scheme_.getPathFromPlatformURI( uri_ ) ).makeAbsolute();
-      
-      try
-      {
-        FileResourceUtils.makeFolderPath( newPath,
-			  	                                environment_.getStatusHandler() );
-      }
-      catch( CoreException exc )
-      {
-        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-      }
-    }
-  }
-
-  /**
-   * @see org.eclipse.env.uri.IURI#touchLeaf()
-   */
-  public void touchLeaf() throws URIException
-  {
-    IResource resource = getResource();
-    
-    if( resource != null )
-    {
-      // The resource already exists so do nothing.
-    }    
-    else
-    {
-      // Get the parent for this leaf and create it if required.
-      IURI parent = parent();
-      
-      if( !parent.isPresent() )
-      {  
-        parent().touchFolder();
-      }
-      
-      try
-      {
-        // Get an output stream to the specified file and immediately close it.
-        // This should create a 0 byte file.
-        getOutStream().close();
-      }
-      catch( IOException exc )
-      {
-        throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-      }
-    }
-
-  }
-
-  private IResource getResource() throws URIException
-  {    
-    IPath  path             = new Path( scheme_.getPathFromPlatformURI(uri_) );
-    String absolutePathname = path.makeAbsolute().toString();
-   
-    return FileResourceUtils.findResource(absolutePathname);
-  }
-  
-  /**
-   * @see org.eclipse.env.uri.IURI#getOutputStream()
-   */
-  private OutputStream getOutStream() throws URIException
-  {
-    IPath        file   = new Path( scheme_.getPathFromPlatformURI( uri_ ) ).makeAbsolute();
-    OutputStream stream = null;
-    
-    stream = FileResourceUtils.newFileOutputStream ( file,
- 			                                               environment_.getStatusHandler() );    
-    return stream;
-  }
-  
-  /**
-   * Returns a File object for the resource under this IURI.
-   * There are many URIs and URISchemes for which this method
-   * will fail and throw an exception. It should be used only
-   * in cases where URIs are known to be backed by physical files.
-   */
-  public File asFile ()
-  {
-  	return file_;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.environment.uri.IURI#isAvailableAsFile()
-   */
-  public boolean isAvailableAsFile() 
-  {
-  	return file_ != null;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asURL()
-   */
-  public URL asURL() throws URIException
-  {
-    URL url = null;
-    
-    try
-    {
-      url = new URL( uri_ );
-    }
-    catch( MalformedURLException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this ); 
-    }
-    
-    return url;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isAvailableAsURL()
-   */
-  public boolean isAvailableAsURL()
-  {
-    URL theURL = null;
-    
-    try
-    {
-      theURL = asURL();  
-    }
-    catch( URIException exc )
-    {  
-    }
-    
-    return theURL != null ;
-  }
-
-  private File getFile()
-  {
-    String platformRes = "platform:/resource";
-    File   result      = null;
-    
-    if (uri_.startsWith(platformRes))
-    {
-      result = new File(ResourcesPlugin.getWorkspace().getRoot().getLocation().removeTrailingSeparator().append(uri_.substring(platformRes.length(), uri_.length())).toString());
-    }
-    
-    return result;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java
deleted file mode 100644
index d1a21f1..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceOutputStream.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.common.environment.IStatusHandler;
-
-
-
-/**
-* This class defines an output stream that writes to an
-* {@link org.eclipse.core.resources.IFile IFile}.
-*/
-public class FileResourceOutputStream extends OutputStream
-{
-
-  IPath                 fFilePath;
-  IStatusHandler         fStatusHandler;
-  ByteArrayOutputStream fByteArrayOutputStream;
-  boolean               fOpen;
-
-  /**
-  * Constructs an output stream that can be used to write to the
-  * given <code>file</code>. The workspace is neither examined nor
-  * altered during construction. All resource creation is deferred
-  * until later in the stream's lifecycle, such as during writing
-  * or closure.
-  * <b>Note:</b> The preferred mechanism for creating a stream that
-  * writes to an IFile is to call the static factory method
-  * {@link FileResourceUtils#newFileOutputStream FileResourceUtils.newFileOutputStream()}
-  * and work with the resulting <code>OutputStream</code>.
-  * Direct construction of a FileResourceOutputStream is not recommended.
-  * @param file The {@link org.eclipse.core.resources.IFile IFile}
-  * handle of the file resource to create. The project implied by the
-  * pathname of the file must already exist,
-  * that is, this method cannot be used to create projects.
-  * @param progressMonitor The progress monitor for the operation, or null.
-  */
-  public FileResourceOutputStream ( 
-  			IPath           filePath, 
-  			IStatusHandler   statusHandler
-  			)
-  {
-    fFilePath = filePath;
-    fStatusHandler = statusHandler;
-    fByteArrayOutputStream = new ByteArrayOutputStream();
-    fOpen = true;
-  }
-
-  /**
-  * Closes the stream.
-  * @throws IOException If an error occurs while closing the stream.
-  * For example, if this stream was constructed with overwriteFile = false
-  * and a file of the same name already exists, then an IOException will
-  * be thrown either now or during an earlier {@link #write write}.
-  */
-  public void close ()
-  throws IOException
-  {
-    if (!fOpen) return;
-    fOpen = false;
-    fByteArrayOutputStream.close();
-    byte[] buffer = fByteArrayOutputStream.toByteArray();
-    ByteArrayInputStream tempInputStream = new ByteArrayInputStream(buffer);
-    try
-    {
-      FileResourceUtils.createFile(fFilePath, tempInputStream, fStatusHandler);
-    }
-    catch (CoreException e)
-    {
-      throw new IOException(e.getMessage());
-    }
-  }
-
-  /**
-  * Flushes the stream. This does not imply the File resource
-  * will be created or become visible within the workbench.
-  * @throws IOException If an error occurs. For example, if this
-  * stream was constructed with overwriteFile = false and a file of the
-  * same name already exists, then an IOException may be thrown at
-  * this point.
-  */
-  public void flush ()
-  throws IOException
-  {
-    fByteArrayOutputStream.flush();
-  }
-
-  /**
-  * Writes all bytes from the given array to the stream.
-  * @param b The array of bytes to write.
-  * @throws IOException If an error occurs. For example, if this
-  * stream was constructed with overwriteFile = false and a file of the
-  * same name already exists, then an IOException may be thrown at
-  * this point.
-  */
-  public void write ( byte[] b )
-  throws IOException
-  {
-    fByteArrayOutputStream.write(b);
-  }
-
-  /**
-  * Writes bytes from the given array beginning at some offset
-  * and continuing for some number of bytes (len) to the stream.
-  * @param b The array of bytes to write.
-  * @param off The offset into the array to begin writing.
-  * @param len The number of bytes to write.
-  * @throws IOException If an error occurs. For example, if this
-  * stream was constructed with overwriteFile = false and a file of the
-  * same name already exists, then an IOException may be thrown at
-  * this point.
-  */
-  public void write ( byte[] b, int off, int len )
-  {
-    fByteArrayOutputStream.write(b,off,len);
-  }
-
-  /**
-  * Writes a single byte to the stream.
-  * @param b The byte to write.
-  * @throws IOException If an error occurs. For example, if this
-  * stream was constructed with overwriteFile = false and a file of the
-  * same name already exists, then an IOException may be thrown at
-  * this point.
-  */
-  public void write ( int b )
-  {
-    fByteArrayOutputStream.write(b);
-  }
-}
-
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java
deleted file mode 100644
index cde954f..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/FileResourceUtils.java
+++ /dev/null
@@ -1,550 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Vector;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.environment.Choice;
-import org.eclipse.wst.common.environment.StatusException;
-import org.eclipse.wst.common.environment.IStatusHandler;
-
-
-
-/**
-* This class contains useful methods for working with Eclipse resources.
-*/
-public final class FileResourceUtils
-{
-  //
-  // Keeps the IWorkspace hanging around. See getWorkspace().
-  //
-  private static IWorkspace workspace_ = null;
-  //
-  // Keeps the IWorkspaceRoot hanging around. See getWorkspaceRoot().
-  //
-  private static IWorkspaceRoot root_ = null;
-
- /**
-  * Returns the IWorkspaceRoot object.
-  * @return The IWorkspaceRoot object.
-  */
-  public static IWorkspaceRoot getWorkspaceRoot ()
-  {
-    if (root_ == null)
-    {
-      root_ = ResourcesPlugin.getWorkspace().getRoot();
-    }
-    return root_;
-  }
-
- /**
-  * Returns the IWorkspace object.
-  * @return The IWorkspace object.
-  */
-  public static IWorkspace getWorkspace ()
-  {
-    if (workspace_ == null)
-    {
-      if (root_ == null)
-      {
-        root_ = ResourcesPlugin.getWorkspace().getRoot();
-      }
-      
-      workspace_ = root_.getWorkspace();
-    }
-    
-    return workspace_;
-  }
-  
-  /**
-   * 
-   * @return returns an array of three common choices. (ie. Yes, yes all, and cancel )
-   */
-  public static Choice[] getThreeStateFileOptions() 
-  {
-    Vector choices = new Vector();
-    
-    choices.add(new Choice( 'Y', Messages.LABEL_YES ));
-    choices.add(new Choice( 'A', Messages.LABEL_YES_TO_ALL ));
-    choices.add(new Choice( 'C', Messages.LABEL_CANCEL ));
-    
-    return (Choice[])choices.toArray(new Choice[choices.size()]);
-  }
-  
-  /**
-  * Returns an
-  * {@link org.eclipse.core.resources.IResource IResource}
-  * of the given absolute pathname or null if no such resource exists.
-  * @param absolutePathname The absolute path of the resource.
-  * @return The <code>IResource</code>.
-  */
-  public static IResource findResource ( String absolutePathname )
-  {
-    if (absolutePathname == null)
-    {
-      return null;
-    }
-    
-    return findResource(new Path(absolutePathname));
-  }
-
-  /**
-  * Returns an
-  * {@link org.eclipse.core.resources.IResource IResource}
-  * of the given absolute path or null if no such resource exists.
-  * @param absolutePath The absolute <code>IPath</code> of the resource.
-  * @return The <code>IResource</code>.
-  */
-  public static IResource findResource ( IPath absolutePath )
-  {
-    if (absolutePath == null)
-    {
-      return null;
-    }
-    
-    return FileResourceUtils.getWorkspaceRoot().findMember(absolutePath);
-  }
-  
-  /**
-   * Copies a file from a plugin's installation location
-   * to an Eclipse folder.
-   * @param plugin The plugin containing the files to copy.
-   * Must not be null.
-   * @param sourcePath The path, relative to the <code>plugin</code>
-   * install location, containing the files to copy.
-   * If null, then the plugin install location is the source path
-   * (ie. null is equivalent to ".").
-   * @param pathname The pathname of the file to copy.
-   * The pathname is relative to the <code>plugin sourcePath</code>.
-   * Must not be null.
-   * @param targetPath The absolute Eclipse path of the folder to
-   * which the file will be copied. The relative pathname of the
-   * file is preserved.
-   * Must not be null.
-   * @param createFolders The intermediate folder creation policy, one of
-   * {@link #CREATE CREATE} or {@link #DONT_CREATE DONT_CREATE}.
-   * <ul>
-   * <li><code>CREATE</code> -
-   * If any intermediate folders in the given <code>absolutePath</code>
-   * do not exist, they will be created.
-   * <li><code>DONT_CREATE</code> -
-   * If any intermediate folders in the given <code>absolutePath</code>
-   * do not exist, the method will throw a <code>CoreException</code>.
-   * </ul>
-   * @param overwriteFile The policy for existing files, one of
-   * {@link #OVERWRITE OVERWRITE} or {@link #DONT_OVERWRITE DONT_OVERWRITE}.
-   * <ul>
-   * <li><code>OVERWRITE</code> -
-   * If a resource of the same name as the given
-   * <code>absolutePath</code> already exists and is a file,
-   * it will be replaced.
-   * If the resource already exists and it is not a file,
-   * then no file will be created and
-   * a <code>CoreException</code> will be thrown.
-   * <li><code>DONT_OVERWRITE</code> -
-   * If any resource of the same name as the given
-   * <code>absolutePath</code> already exists,
-   * then no file will be created and
-   * a <code>CoreException</code> will be thrown.
-   * </ul>
-   * @param progressMonitor The progress monitor for the operation, or null.
-   * @throws CoreException An exception containing an
-   * {@link org.eclipse.core.runtime.IStatus IStatus}
-   * with a severity of <code>IStatus.ERROR</code> and a
-   * locale-specific description of the cause.
-   */
-   static public void copyFile( Plugin plugin,
-                                IPath sourcePath,
-                                IPath pathname,
-                                IPath targetPath,
-                                IStatusHandler statusMonitor )
-     throws CoreException
-   {
-     try
-     {
-       IPath target = targetPath.append(pathname);
-       IPath source = sourcePath == null ? pathname : sourcePath.append(pathname);
-       InputStream input = plugin.openStream(source);
-       createFile(target, input, statusMonitor);
-     }
-     catch (IOException e)
-     {
-       throw new CoreException(new Status(IStatus.ERROR,
-                               plugin.getBundle().getSymbolicName(),
-                               0,
-                               Messages.MSG_ERROR_IO,e));
-     }
-   }
-   
-  /**
-   * Deletes a file under a container.
-   * The container must already exist.
-   * @param file - the IFile to be deleted
-   * @param progressMonitor
-   * @param statusMonitor
-   * @return True if the file does not exist or if it exists and is successfully deleted. False otherwise.
-   */
-  public static boolean deleteFile( IFile file,
-                                    IStatusHandler statusMonitor)
-    throws CoreException
-  {
-    if (file.exists())
-    {      
-      //We have permission to overwrite so check if file is read-only
-      if (file.isReadOnly())
-      {        
-        IFile[] files = new IFile[1];
-        files[0] = file;
-        IStatus status = getWorkspace().validateEdit(files, null);
-        
-        if( status.getSeverity() == IStatus.ERROR )
-        {
-          statusMonitor.reportError( status );
-          return false;
-        }
-      }
-      
-      file.delete(true, null);
-    }
-    //At this point, either the file did not exist or we successfully deleted
-    // it. Return success.
-    return true;
-  }
-
-  /**
-   * Deletes a folder under a container.
-   * @param folder - the IFolder to be deleted
-   * @param progressMonitor
-   * @param statusMonitor
-   * @return True if the folder does not exist or if it exists and is successfully deleted along with its members. False otherwise.
-   */
-   public static boolean deleteFolder( IFolder folder,
-                                       IStatusHandler statusMonitor )
-     throws CoreException
-   {
-     if (!folder.exists()) return true;
-
-     boolean     deleted   = true;
-     IResource[] resources = folder.members();
-     
-     for (int i=0; i<resources.length; i++)
-     {
-       IResource resource = resources[i];
-       if (resource instanceof IFile)
-       {
-         deleted = deleteFile((IFile)resource, statusMonitor);
-       }
-       if (resource instanceof IFolder)
-       {
-         deleted = deleteFolder( (IFolder)resource, statusMonitor);
-       }
-
-       if( !deleted ) break;
-     }
-     
-     if( deleted )
-     {
-       folder.delete(true, true, null);
-       return true;
-     }
-     else
-       return false;
-   }
-
-  /**
-  * Creates a file of the given <code>absolutePath</code>
-  * and returns its handle as an <code>IFile</code>.
-  * If the file cannot be created, a
-  * <code>CoreException</code> containing an
-  * <code>IStatus</code> object is thrown.
-  * @param absolutePath The absolute path of the file to create.
-  * The project at the beginning of the path must already exist,
-  * that is, this method cannot be used to create projects.
-  * @param progressMonitor The progress monitor for the operation, or null.
-  * @return The {@link org.eclipse.core.resources.IFile IFile}
-  * handle of the file.
-  * @throws CoreException An exception containing an
-  * {@link org.eclipse.core.runtime.IStatus IStatus}
-  * with a severity of <code>IStatus.ERROR</code> and a
-  * locale-specific description of the cause.
-  */
-  public static IFile createFile (
-    IPath           absolutePath,
-    InputStream     inputStream,
-    IStatusHandler   statusHandler )
-
-    throws CoreException 
-  {    
-    if (!absolutePath.isAbsolute())
-    {
-      throw new CoreException(new Status(IStatus.ERROR, "ResourceUtils",0, NLS.bind( Messages.MSG_ERROR_PATH_NOT_ABSOLUTE, absolutePath.toString() ),null));
-    }
-    if (absolutePath.segmentCount() < 1)
-    {
-      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_EMPTY, absolutePath.toString() ),null));
-    }
-    if (absolutePath.segmentCount() < 2)
-    {
-      throw new CoreException(new Status(IStatus.ERROR,"ResourceUtils",0,NLS.bind( Messages.MSG_ERROR_PATH_NOT_FOLDER, absolutePath.toString() ),null));
-    }
-    IContainer parent   = makeFolderPath(absolutePath.removeLastSegments(1), statusHandler);
-    String     fileName = absolutePath.lastSegment();
-    
-    return makeFile(parent, fileName, inputStream, statusHandler);
-  }
-
-  /**
-  * Creates under the given <code>project</code>
-  * a file of the given <code>relativePath</code>
-  * and returns its handle as an <code>IFile</code>.
-  * If the file cannot be created, a
-  * <code>CoreException</code> containing an
-  * <code>IStatus</code> object is thrown.
-  * @param absolutePath The absolute path of the file to create.
-  * The project at the beginning of the path must already exist,
-  * that is, this method cannot be used to create projects.
-  * @param createFolders The intermediate folder creation policy, one of
-  * {@link #CREATE CREATE} or {@link #DONT_CREATE DONT_CREATE}.
-  * <ul>
-  * <li><code>CREATE</code> -
-  * If any intermediate folders in the given <code>absolutePath</code>
-  * do not exist, they will be created.
-  * <li><code>DONT_CREATE</code> -
-  * If any intermediate folders in the given <code>absolutePath</code>
-  * do not exist, the method will throw a <code>CoreException</code>.
-  * </ul>
-  * @param overwriteFile The policy for existing files, one of
-  * {@link #OVERWRITE OVERWRITE} or {@link #DONT_OVERWRITE DONT_OVERWRITE}.
-  * <ul>
-  * <li><code>OVERWRITE</code> -
-  * If a resource of the same name as the given
-  * <code>absolutePath</code> already exists and is a file,
-  * it will be replaced.
-  * If the resource already exists and it is not a file,
-  * then no file will be created and
-  * a <code>CoreException</code> will be thrown.
-  * <li><code>DONT_OVERWRITE</code> -
-  * If any resource of the same name as the given
-  * <code>absolutePath</code> already exists,
-  * then no file will be created and
-  * a <code>CoreException</code> will be thrown.
-  * </ul>
-  * @param progressMonitor The progress monitor for the operation, or null.
-  * @return The {@link org.eclipse.core.resources.IFile IFile}
-  * handle of the file.
-  * @throws CoreException An exception containing an
-  * {@link org.eclipse.core.runtime.IStatus IStatus}
-  * with a severity of <code>IStatus.ERROR</code> and a
-  * locale-specific description of the cause.
-  */
-  public static IFile createFile (
-    IProject        project,
-    IPath           relativePath,
-    InputStream     inputStream,
-    IStatusHandler   statusMonitor )
- 
-    throws CoreException 
-  {
-    IPath absolutePath = project.getFullPath().append(relativePath);
-    return createFile(absolutePath, inputStream, statusMonitor);
-  }
-
-  /**
-  * Creates an output stream that can be used to write to the
-  * given <code>file</code>. Actual changes to the workspace
-  * may occur during creation of the stream, while writing to
-  * the stream, or when the stream is closed.
-  * A <code>CoreException</code> containing
-  * an <code>IStatus</code> will be thrown
-  * at some point in the lifecycle of the stream
-  * if the file resource cannot be created.
-  * @param file The {@link org.eclipse.core.resources.IFile IFile}
-  * handle of the file resource to create. The project implied by the
-  * pathname of the file must already exist,
-  * that is, this method cannot be used to create projects.
-  * @param progressMonitor The progress monitor for the operation, or null.
-  * @return An <code>OutputStream</code> tied to the file resource.
-  * Actual checks of or changes to the workspace may occur as early during
-  * stream creation, closure, or any time in between.
-  * @throws CoreException An exception containing an
-  * {@link org.eclipse.core.runtime.IStatus IStatus}
-  * with a severity of <code>IStatus.ERROR</code> and a
-  * locale-specific description of the cause.
-  * Reasons include:
-  * <ol>
-  * <li>The project of the given file's path does not exist.
-  * <li>A non-file resource of the same name of the given file
-  * already exists.
-  * <li>A file resource of the same name of the given file
-  * already exists, and <code>overwriteFile</code> is false.
-  * <li>One or more intermediate folders to the given file
-  * do not exist, and <code>createFolders</code> is false.
-  * </ol>
-  */
-
-  public static OutputStream newFileOutputStream (
-       IPath            file,
-       IStatusHandler    statusHandler )
- 
-  {
-    return new FileResourceOutputStream(file, statusHandler);
-  }
-
-  //----------------------------------------------------------------------
-  // Naughty bits...
-  //----------------------------------------------------------------------
-
-  //
-  // Creates a path of folders.
-  // Do not call with an absolutePath of less than one segment.
-  //
-  /**
-   * Creates a path of folders.
-   * Do not call with an absolutePath of less than one segment.
-   * @param resourceContext the resource context for making folders.
-   * @param absolutePath the path of folders that will be created.
-   * @param progressMonitor the progress monitor to be used.
-   * @param statusHandler the status handler.
-   * @return returns the IContainer of the created folder.
-   */
-  public static IContainer makeFolderPath (
-    IPath            absolutePath,
-    IStatusHandler    statusHandler )
-  
-    throws CoreException
-  {
-    if (absolutePath.segmentCount() <= 1)
-    {
-      return getWorkspaceRoot().getProject(absolutePath.segment(0));
-    }
-    else
-    {
-      IContainer parent = makeFolderPath(absolutePath.removeLastSegments(1), statusHandler );
-      String folderName = absolutePath.lastSegment();
-      
-      return makeFolder(parent,folderName, statusHandler );
-    }
-  }
-  //
-  // Creates a folder under a container.
-  // The container must already exist.
-  //
- private static IFolder makeFolder (
-    IContainer       parent,
-    String           folderName,
-    IStatusHandler    statusHandler )
-  
-  throws CoreException
-  {
-    IResource child  = parent.findMember(folderName);
-    
-    if( child == null )
-    {      
-      IFolder folder = parent.getFolder(new Path(folderName));
-      folder.create(true,true,null);
-      return folder;
-    }
-    else if( child.getType() == IResource.FOLDER )
-    {
-      return (IFolder)child;
-    }
-    else
-    {
-      throw new CoreException(
-        new Status( IStatus.ERROR, 
-                    "ResourceUtils",
-                    0, 
-					NLS.bind( Messages.MSG_ERROR_RESOURCE_NOT_FOLDER, parent.getFullPath().append(folderName).toString()),
-			null ) );
-    }
-  }
-
-  //
-  // Creates a file under a container.
-  // The container must already exist.
-  //
- private static IFile makeFile (
-    IContainer       parent,
-    String           fileName,
-    InputStream      inputStream,
-    IStatusHandler    statusHandler )
- 
-    throws CoreException
-  {
-    IResource child  = parent.findMember(fileName);
-    
-    if( child != null )
-    {
-      if( child.getType() == IResource.FILE )
-      {        
-        //We have permission to overwrite so check if file is read-only
-        if( child.getResourceAttributes().isReadOnly() )
-        {
-          IFile[] files = new IFile[1];
-          files[0] = (IFile)child;
-          
-          IStatus status = getWorkspace().validateEdit(files,null);
-          
-          try
-          {
-            statusHandler.report( status );
-          }
-          catch( StatusException exc )
-          {
-            return null;
-          }
-        }
-
-        //Change the contents of the existing file.
-        IFile file = parent.getFile( new Path(fileName) );
-        file.setContents( inputStream, true, true, null );
-        
-        return file;
-      
-      }
-      else
-      {
-        throw new CoreException( 
-          new Status( IStatus.ERROR,
-                      "ResourceUtils",
-                      0, 
-				      NLS.bind( Messages.MSG_ERROR_RESOURCE_NOT_FILE, parent.getFullPath().append(fileName)),
-					  null ) );
-      }
-    }
-    else
-    {
-      //Create a new file.
-      IFile file = parent.getFile( new Path(fileName) );
-      file.create( inputStream, true, null);
-      
-      return file;
-    }
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java
deleted file mode 100644
index 4c08ea1..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/Messages.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others. All rights reserved. This program and the
- * accompanying materials are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- **************************************************************************************************/
-package org.eclipse.wst.common.internal.environment.eclipse;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS
-{
-  private static final String BUNDLE_NAME = "org.eclipse.wst.common.internal.environment.eclipse.environment";
-  
-  public static String MSG_NULL_ARG_SPECIFIED;
-  public static String MSG_SCHEME_NOT_FOUND;
-  public static String MSG_ABSOLUTE_PATH_WITHOUT_SCHEME;
-  public static String MSG_URI_NOT_RELATIVE; 
-  public static String MSG_ERROR_UNEXPECTED_ERROR; 
-  public static String MSG_INVALID_PLATFORM_URL; 
-  public static String MSG_INVALID_FILE_URL;
-  public static String MSG_ERROR_PATH_NOT_ABSOLUTE; 
-  public static String MSG_ERROR_PATH_EMPTY; 
-  public static String MSG_ERROR_PATH_NOT_FOLDER; 
-  public static String MSG_ERROR_RESOURCE_NOT_FOLDER; 
-  public static String MSG_ERROR_RESOURCE_NOT_FILE; 
-  public static String MSG_ERROR_FOLDER_HAS_CHILDREN; 
-  public static String MSG_ERROR_IO; 
-  public static String LABEL_YES; 
-  public static String LABEL_YES_TO_ALL; 
-  public static String LABEL_CANCEL; 
-  
-  static
-  {
-    NLS.initializeMessages( BUNDLE_NAME, Messages.class );
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/environment.properties b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/environment.properties
deleted file mode 100644
index 6fb49d6..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/eclipse/environment.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-#
-# Messages for SimpleURIFactory
-#
-MSG_NULL_ARG_SPECIFIED=Null specified as argument to {0}.
-MSG_SCHEME_NOT_FOUND=Scheme not found for URI {0}.
-MSG_ABSOLUTE_PATH_WITHOUT_SCHEME=Absolute path specified without a scheme for URI {0}.
-
-#
-# Common Messages
-#
-MSG_URI_NOT_RELATIVE=URL: {0} is not relative.
-MSG_ERROR_UNEXPECTED_ERROR=Unexpected exception occured.
-MSG_INVALID_PLATFORM_URL=Invalid URL: {0} for an Eclipse platform.
-MSG_INVALID_FILE_URL=Invalid URL: {0} for the file protocol
-
-#
-# Messages for ResouceUtils
-#
-MSG_ERROR_PATH_NOT_ABSOLUTE=Path {0} is not absolute for creating a file.
-MSG_ERROR_PATH_EMPTY=Path {0} is empty while creating a file.
-MSG_ERROR_PATH_NOT_FOLDER=Path {0} is not a folder for creating a file.
-MSG_ERROR_RESOURCE_NOT_FOLDER=Resource {0} is not a folder.
-MSG_ERROR_RESOURCE_NOT_FILE=The following path is not a resource: {0}.
-MSG_ERROR_FOLDER_HAS_CHILDREN=Can not create folder: {0} that already has children.
-MSG_ERROR_IO=An input/output error occurred while processing the resource "{0}".
-
-LABEL_YES=Yes
-LABEL_YES_TO_ALL=Yes All
-LABEL_CANCEL=Cancel
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/plugin/EnvironmentPlugin.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/plugin/EnvironmentPlugin.java
deleted file mode 100644
index 4330459..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/plugin/EnvironmentPlugin.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * yyyymmdd bug      Email and other contact information
- * -------- -------- -----------------------------------------------------------
- * 20060221   100364 pmoogk@ca.ibm.com - Peter Moogk
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.plugin;
-
-
-import org.eclipse.core.runtime.Plugin;
-
-/**
-* This is the plugin class for the org.eclipse.wst.common.internal.environment.plugin.EnvironmentPlugin.
-*/
-public class EnvironmentPlugin extends Plugin
-{	
-	/**
-	 * The instance of this plugin.
-	 */
-	private static EnvironmentPlugin instance;
-
-	/**
-	 * Constructor for use by the Eclipse platform only.
-	 */
-	public EnvironmentPlugin()
-	{
-		super();
-		instance = this;
-	}
-	
-	/**
-	 * Returns the instance of this plugin.
-	 */
-	static public EnvironmentPlugin getInstance ()
-	{
-		return instance;
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java
deleted file mode 100644
index b993a11..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeScheme.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.relative;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.URIException;
-
-
-public class RelativeScheme implements IURIScheme
-{
-
-  public String toString()
-  {
-    return "relative";  
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#isHierarchical()
-   */
-  public boolean isHierarchical()
-  {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#isValid(org.eclipse.env.uri.URI)
-   */
-  public boolean isValid(IURI uri)
-  {
-    return !uri.toString().startsWith( "/" );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(java.lang.String)
-   */
-  public IURI newURI(String uri) throws URIException
-  {
-    return new RelativeURI( uri );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(org.eclipse.env.uri.URI)
-   */
-  public IURI newURI(IURI uri) throws URIException
-  {
-    return new RelativeURI( uri.toString() );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(java.net.URL)
-   */
-  public IURI newURI(URL url) throws URIException
-  {
-    return new RelativeURI( url.toString() );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#validate(org.eclipse.env.uri.URI)
-   */
-  public IStatus validate(IURI uri)
-  {
-    IStatus result = null;
-    
-    if( isValid( uri ) )
-    {
-      result = Status.OK_STATUS;
-    }
-    else
-    {
-      result = new Status( IStatus.ERROR, "id", 0, "",null );      
-    }
-    
-    return result;
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java
deleted file mode 100644
index 1196111..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/relative/RelativeURI.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.relative;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.IURIFilter;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.IURIVisitor;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.internal.environment.eclipse.Messages;
-
-
-public class RelativeURI implements IURI
-{
-  protected String uri_;
-  
-  public RelativeURI( String uri )
-  {
-    uri_ = uri;   
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#append(org.eclipse.env.uri.URI)
-   */
-  public IURI append(IURI relativeURI) throws URIException
-  {
-    if( !relativeURI.isRelative()) 
-     {      
-      throw new URIException( 
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_URI_NOT_RELATIVE, relativeURI.toString() ), null ) );
-      
-    }
-    
-    String newURI = uri_ + "/" + relativeURI.toString();
-    
-    return getURIScheme().newURI( newURI );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asFile()
-   */
-  public File asFile() 
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asString()
-   */
-  public String asString()
-  {
-    return uri_;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#toString()
-   */
-  public String toString()
-  {
-    return uri_;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asURL()
-   */
-  public URL asURL() throws URIException
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#erase()
-   */
-  public void erase() throws URIException
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getInputStream()
-   */
-  public InputStream getInputStream() throws URIException
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getOutputStream()
-   */
-  public OutputStream getOutputStream() throws URIException
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getURIScheme()
-   */
-  public IURIScheme getURIScheme()
-  {
-    return new RelativeScheme();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isAvailableAsFile()
-   */
-  public boolean isAvailableAsFile()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isAvailableAsURL()
-   */
-  public boolean isAvailableAsURL()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isHierarchical()
-   */
-  public boolean isHierarchical()
-  {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isLeaf()
-   */
-  public boolean isLeaf()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isPresent()
-   */
-  public boolean isPresent()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isReadable()
-   */
-  public boolean isReadable()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isRelative()
-   */
-  public boolean isRelative()
-  {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isWritable()
-   */
-  public boolean isWritable()
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#list()
-   */
-  public IURI[] list() throws URIException
-  {
-    return new IURI[0];
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#list(org.eclipse.env.uri.URIFilter)
-   */
-  public IURI[] list(IURIFilter uriFilter) throws URIException
-  {
-    return new IURI[0];
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#parent()
-   */
-  public IURI parent() throws URIException
-  {
-    int lastSlash  = uri_.lastIndexOf( '/' );
-    int firstSlash = uri_.indexOf( '/' );
-    
-    // If there is a parent, then it must start with a slash
-    // and end with a slash.
-    if( lastSlash == -1 || firstSlash == -1 ) return null;
-        
-    return getURIScheme().newURI( uri_.substring(0, lastSlash ) );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#rename(org.eclipse.env.uri.URI)
-   */
-  public void rename(IURI newURI) throws URIException
-  {
-    uri_ = newURI.toString();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#touchFolder()
-   */
-  public void touchFolder() throws URIException
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#touchLeaf()
-   */
-  public void touchLeaf() throws URIException
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#visit(org.eclipse.env.uri.URIVisitor, org.eclipse.env.uri.URIFilter)
-   */
-  public void visit(IURIVisitor uriVisitor, IURIFilter uriFilter)
-    throws URIException
-  {
-    boolean continueVisit = true;
-    
-    // If the filter accepts this we will visit it.
-    if( uriFilter.accepts( this ) )
-    {
-      continueVisit = uriVisitor.visit( this );  
-    }
-       
-    IURI[] children  = list();
-    
-    for( int index = 0; index < children.length && continueVisit; index++ )
-    {
-      children[index].visit( uriVisitor, uriFilter );
-    }  
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#visit(org.eclipse.env.uri.URIVisitor)
-   */
-  public void visit(IURIVisitor uriVisitor) throws URIException
-  {
-    boolean continueVisit = uriVisitor.visit( this );  
-    
-    IURI[] children  = list();
-    
-    for( int index = 0; index < children.length && continueVisit; index++ )
-     {
-      children[index].visit( uriVisitor );
-    }  
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java
deleted file mode 100644
index 7655f52..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileScheme.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.uri.file;
-
-import java.net.URL;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.internal.environment.eclipse.Messages;
-import org.eclipse.wst.common.internal.environment.relative.RelativeScheme;
-import org.eclipse.wst.common.internal.environment.relative.RelativeURI;
-
-
-public class FileScheme extends RelativeScheme
-{
-  public String toString()
-  {
-    return "file";  
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#isValid(org.eclipse.env.uri.URI)
-   */
-  public boolean isValid(IURI uri)
-  { 
-    boolean result = false;
-    
-    if( uri == null ) return false;
-    
-    IURIScheme scheme = uri.getURIScheme();
-      
-    if( scheme.toString().equals( "relative") ) return scheme.isValid( uri );
-        
-    String uriString = uri.toString();
-      
-    if( uriString != null && uriString.startsWith( "file:" ) )
-    {
-      result = true;
-    }  
-    
-    return result;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(java.lang.String)
-   */
-  public IURI newURI(String uri) throws URIException
-  {
-    String newURI = null;
-    
-    if( uri != null && uri.startsWith( "file:") )
-    {
-      // The file protocol has been specified so keep it as is.
-      newURI = uri;
-    }
-    else if( uri == null || uri.indexOf( ":") != -1 )
-    {
-      // The file uri is not allowed to contain some other protocol. 
-      throw new URIException(
-          new Status( IStatus.ERROR, "id", 0,
-              NLS.bind( Messages.MSG_INVALID_FILE_URL,uri), null ) );
-              
-    }
-    else if( uri.startsWith( "/") )
-    {
-      // The file scheme has not been specified so we will add it.
-      newURI = "file:" + uri;
-    }
-    
-    if( newURI == null )
-    {
-      return new RelativeURI( uri );
-    }
-    else
-    {
-      return new FileURI( newURI );
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(org.eclipse.env.uri.URI)
-   */
-  public IURI newURI(IURI uri) throws URIException
-  {
-    return newURI( uri == null ? null : uri.toString() );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URIScheme#newURI(java.net.URL)
-   */
-  public IURI newURI(URL url) throws URIException
-  {
-    return newURI( url == null ? null : url.toString() );
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java b/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java
deleted file mode 100644
index 5d95b0b..0000000
--- a/plugins/org.eclipse.wst.common.environment/src/org/eclipse/wst/common/internal/environment/uri/file/FileURI.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.common.internal.environment.uri.file;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Vector;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.environment.uri.IURI;
-import org.eclipse.wst.common.environment.uri.URIException;
-import org.eclipse.wst.common.environment.uri.IURIFilter;
-import org.eclipse.wst.common.environment.uri.IURIScheme;
-import org.eclipse.wst.common.internal.environment.relative.RelativeURI;
-
-
-public class FileURI extends RelativeURI 
-{
-  private File file_ = null;
-  
-  public FileURI( String uri )
-  {
-    super( uri );
-    
-    if( getURIScheme().isValid( this ) )
-    {
-      file_ = new File( uri.substring( 5, uri.length() ) );
-    }
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asFile()
-   */
-  public File asFile() 
-  {
-    return file_;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#erase()
-   */
-  public void erase() throws URIException
-  {
-    deleteFile( file_ );
-  }
-
-  private void deleteFile( File file )
-  {
-    if( file.isDirectory() )
-    {
-      File[] children = file.listFiles();
-      
-      for( int index = 0; index < children.length; index++ )
-      {
-        File child = children[index];
-        
-        if( child.isDirectory() )
-        {
-          deleteFile( child );
-        }
-        else
-        {
-          child.delete();
-        }
-      }
-    }
-    
-    file.delete();
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getInputStream()
-   */
-  public InputStream getInputStream() throws URIException
-  {
-    FileInputStream stream = null;
-    
-    try
-    {
-      File parent = file_.getParentFile();
-      parent.mkdirs();
-      
-      stream = new FileInputStream( file_ );  
-    }
-    catch( IOException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-    }
-    
-    return stream;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getOutputStream()
-   */
-  public OutputStream getOutputStream() throws URIException
-  {
-    FileOutputStream stream = null;
-    
-    try
-    {
-      File parent = file_.getParentFile();
-      parent.mkdirs();
-      
-      stream = new FileOutputStream( file_ );  
-    }
-    catch( IOException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );
-    }
-    
-    return stream;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#getURIScheme()
-   */
-  public IURIScheme getURIScheme()
-  {
-    return new FileScheme();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isAvailableAsFile()
-   */
-  public boolean isAvailableAsFile()
-  {
-    return file_ != null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isAvailableAsURL()
-   */
-  public boolean isAvailableAsURL()
-  {
-    return file_ != null;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#asURL()
-   */
-  public URL asURL() throws URIException
-  {
-    URL url = null;
-    
-    try
-    {
-      url = file_ == null ? null : file_.toURL();
-    }
-    catch( MalformedURLException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
-    }
-    
-    return url;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isLeaf()
-   */
-  public boolean isLeaf()
-  {
-    return file_.isFile();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isPresent()
-   */
-  public boolean isPresent()
-  {
-    return file_.exists();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isReadable()
-   */
-  public boolean isReadable()
-  {
-    return file_.canRead();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#isWritable()
-   */
-  public boolean isWritable()
-  {
-    return file_.canWrite();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#list()
-   */
-  public IURI[] list() throws URIException
-  {
-    File[] children = file_.listFiles();
-    IURI[]  URIs     = new IURI[0];
-    
-    if( children != null )
-    {
-      int   length   = children.length;
-      
-      URIs = new IURI[length];
-    
-      for( int index = 0; index < length; index++ )
-      {
-        URIs[index] = new FileURI( "file:" + children[index].getAbsolutePath() );
-      }
-    }
-    
-    return URIs;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#list(org.eclipse.env.uri.URIFilter)
-   */
-  public IURI[] list(IURIFilter uriFilter) throws URIException
-  {
-    File[]   children = file_.listFiles();
-    int      length   = children == null ? 0 : children.length;
-    Vector   URIs     = new Vector();
-    
-    for( int index = 0; index < length; index++ )
-    {
-      IURI newURI = new FileURI( "file:" + children[index].getAbsolutePath() );
-      
-      if( uriFilter.accepts( newURI) )
-      {
-        URIs.add( newURI );
-      } 
-    }
-    
-    return (IURI[])URIs.toArray( new IURI[0] );
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#rename(org.eclipse.env.uri.URI)
-   */
-  public void rename(IURI newURI) throws URIException
-  {
-    try
-    {
-      uri_ = newURI.toString();
-      URL newURL = new URL( uri_ );
-      file_.renameTo( new File( newURL.getPath() ) );
-    }
-    catch( MalformedURLException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#touchFolder()
-   */
-  public void touchFolder() throws URIException
-  {
-    file_.mkdirs();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.env.uri.URI#touchLeaf()
-   */
-  public void touchLeaf() throws URIException
-  {
-    try
-    {
-      // Ensure that the parent folders are created.
-      File parent = file_.getParentFile();
-      parent.mkdirs();
-      
-      file_.createNewFile();
-    }
-    catch( IOException exc )
-    {
-      throw new URIException( new Status( IStatus.ERROR, "id", 0, exc.getMessage(), exc ), this );      
-    }
-  }
-
-  public boolean isRelative()
-  {
-    return false;
-  }    
-}
diff --git a/plugins/org.eclipse.wst.common.infopop/.cvsignore b/plugins/org.eclipse.wst.common.infopop/.cvsignore
deleted file mode 100644
index c14487c..0000000
--- a/plugins/org.eclipse.wst.common.infopop/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-build.xml
diff --git a/plugins/org.eclipse.wst.common.infopop/.project b/plugins/org.eclipse.wst.common.infopop/.project
deleted file mode 100644
index d8e0250..0000000
--- a/plugins/org.eclipse.wst.common.infopop/.project
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.infopop</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<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.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 76d68cc..0000000
--- a/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Apr 17 03:12:42 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f774e3c..0000000
--- a/plugins/org.eclipse.wst.common.infopop/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Mon Apr 17 03:12:36 EDT 2006
-compilers.incompatible-environment=0
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF
deleted file mode 100644
index 5ab4ff2..0000000
--- a/plugins/org.eclipse.wst.common.infopop/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,8 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name.0
-Bundle-SymbolicName: org.eclipse.wst.common.infopop; singleton:=true
-Bundle-Version: 1.0.001.qualifier
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.wst.common.infopop/SnippetsContexts.xml b/plugins/org.eclipse.wst.common.infopop/SnippetsContexts.xml
deleted file mode 100644
index b3b0c43..0000000
--- a/plugins/org.eclipse.wst.common.infopop/SnippetsContexts.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS type="org.eclipse.help.contexts"?>
-<!-- /*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/ -->
-
-<contexts>
-<context id="libv1000">
-<description>Use this view to catalog and organize reusable programming objects, such as HTML tagging, JavaScript, and JSP markup, along with custom tags, that can be embedded in existing files.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-</context>
-
-<context id="libv1100">
-<description>Supply values in this dialog to define the Snippets view object to be inserted in the current file at the cursor position. Assign a value to the variables being inserted.
-</description>
-<topic label="Inserting and editing items in the active editor" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-</context>
-
-<context id="libv1200">
-<description>In the <b>Name</b> field, type the name of the object as you want it be displayed in the Snippets view.  Optionally, add a description of the object in the <b>Description</b> field.
-
-Select the <b>Hide</b> check box to make this snippet object not visible in the view.
-
-To add a new variable, click the <b>New</b> push button, and type values in the cells of the <b>Variables</b> table. The <b>Name</b> field represents name of the variable that will be inserted when you add it to a document. <b>Default value</b> is the initial value of the named variable. Optionally, add a description of the variable.
-
-Insert the variables that you define into the <b>Template Pattern</b> field using the <b>Insert Variable Placeholder</b> push button.
-</description>
-<topic label="Deleting or hiding snippet items or drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt016.html"/>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-</context>
-
-<context id="libv1300">
-<description>Type the name of the new category in the <b>Name</b> field and optionally add a description of the category in the <b>Description</b> field.
-
-Select <b>Open drawer at start-up</b> to have the category drawer opened in the Snippets view when the workbench starts up.
-
-You can specify how you want the category drawer displayed in the Snippets view by selecting a radio button for the <b>Show/Hide Drawer</b> field.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Deleting or hiding snippet items or drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt016.html"/>
-</context>
-
-<context id="snip0010">
-<description>Select this option to open the <b>Import</b> dialog, which lets you import snippet categories from the file system.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Adding items to snippets drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-</context>
-
-<context id="snip0020">
-<description>Select this option to open the <b>Export</b> dialog, which lets you export snippet categories to the file system.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Adding items to snippets drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-</context>
-
-<context id="snip0030">
-<description>Select the content types that should be visible in this drawer for in the Snippets view.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Deleting or hiding snippet items or drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt016.html"/>
-</context>
-
-<context id="snip0040">
-<description>This menu item adds the selected text to the Snippets view as a new item.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Adding items to snippets drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-</context>
-
-<context id="snip0050">
-<description>This menu item cuts the selected Snippet item to the clipboard.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Editing snippet items" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt022.html"/>
-</context>
-
-<context id="snip0060">
-<description>This menu item copies the selected Snippet item to the clipboard.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Editing snippet items" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt022.html"/>
-</context>
-
-<context id="snip0070">
-<description>This menu item creates a new Snippets view item containing the current contents of the clipboard.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Adding items to snippets drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-</context>
-<context id="snip0080">
-<description>Type a name for the category. The category appears in the Customize Palette dialog box. Once you have created a category, you can add items to the category.
-</description>
-<topic label="Snippets view" href="../org.eclipse.wst.sse.doc.user/topics/csrcedt001.html"/>
-<topic label="Adding items to snippets drawers" href="../org.eclipse.wst.sse.doc.user/topics/tsrcedt015.html"/>
-</context>
-
-</contexts>
diff --git a/plugins/org.eclipse.wst.common.infopop/about.html b/plugins/org.eclipse.wst.common.infopop/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.infopop/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.common.infopop/build.properties b/plugins/org.eclipse.wst.common.infopop/build.properties
deleted file mode 100644
index c1d3dbf..0000000
--- a/plugins/org.eclipse.wst.common.infopop/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = plugin.xml,\
-               about.html,\
-               SnippetsContexts.xml,\
-               META-INF/,\
-               plugin.properties
diff --git a/plugins/org.eclipse.wst.common.infopop/plugin.properties b/plugins/org.eclipse.wst.common.infopop/plugin.properties
deleted file mode 100644
index 74f0260..0000000
--- a/plugins/org.eclipse.wst.common.infopop/plugin.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-# properties file for org.eclipse.wst.common.infopop
-Bundle-Name.0 = Common WST infopops
-Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.infopop/plugin.xml b/plugins/org.eclipse.wst.common.infopop/plugin.xml
deleted file mode 100644
index f1e178c..0000000
--- a/plugins/org.eclipse.wst.common.infopop/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<!-- ================================================= -->
-<!-- This is the plugin for declaring the help         -->
-<!-- contributions for using the tool.                 -->
-<!-- ================================================= -->
-
-<plugin>
-
-<extension point="org.eclipse.help.contexts">
-       <contexts file="SnippetsContexts.xml" plugin ="org.eclipse.wst.common.snippets"/>
-</extension>
-
-
-</plugin>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.uriresolver/.classpath b/plugins/org.eclipse.wst.common.uriresolver/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/.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.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.common.uriresolver/.cvsignore b/plugins/org.eclipse.wst.common.uriresolver/.cvsignore
deleted file mode 100644
index 30d3363..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-uriresolver.jar
-build.xml
-temp.folder
-org.eclipse.wst.common.uriresolver_1.0.0.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.common.uriresolver/.project b/plugins/org.eclipse.wst.common.uriresolver/.project
deleted file mode 100644
index e19b693..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.uriresolver</name>
-	<comment></comment>
-	<projects>
-	</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/plugins/org.eclipse.wst.common.uriresolver/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.uriresolver/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b8a0d61..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Jan 30 19:48:07 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
deleted file mode 100644
index e0bba88..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.uriresolver; singleton:=true
-Bundle-Version: 1.1.100.qualifier
-Bundle-Activator: org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.uriresolver.internal,
- org.eclipse.wst.common.uriresolver.internal.provisional,
- org.eclipse.wst.common.uriresolver.internal.util
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Bundle-ClassPath: .
diff --git a/plugins/org.eclipse.wst.common.uriresolver/README.txt b/plugins/org.eclipse.wst.common.uriresolver/README.txt
deleted file mode 100644
index acaf514..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-API for an URI resolver.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.uriresolver/about.html b/plugins/org.eclipse.wst.common.uriresolver/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.common.uriresolver/build.properties b/plugins/org.eclipse.wst.common.uriresolver/build.properties
deleted file mode 100644
index afe5fa3..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               about.html,\
-               .,\
-               plugin.properties
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-               
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.uriresolver/plugin.properties b/plugins/org.eclipse.wst.common.uriresolver/plugin.properties
deleted file mode 100644
index 307664b..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/plugin.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName=Eclipse.org
-pluginName=Common URI Resolver Framework
-###############################################################################
-
-resolverExtensions=URI Resolver Extensions Point
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.uriresolver/plugin.xml b/plugins/org.eclipse.wst.common.uriresolver/plugin.xml
deleted file mode 100644
index 9aa99c4..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/plugin.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="resolverExtensions" name="%resolverExtensions" schema="schema/resolverExtensions.exsd"/>
-
-
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd b/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd
deleted file mode 100644
index 702bb0c..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/schema/resolverExtensions.exsd
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.uriresolver">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.uriresolver" id="resolverExtensions" name="URI Resolver Extensions Point"/>
-      </appInfo>
-      <documentation>
-         The URI Resolver Extensions point allows clients to register custom URI resolvers that will be used in the resolution of resources by tools such as editors, generators, validators, and wizards.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="resolverExtension" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="resolverExtension">
-      <complexType>
-         <sequence>
-            <element ref="projectNature" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="stage" type="string">
-            <annotation>
-               <documentation>
-                  The stage in which to run this extension resolver: prenormalization, postnormalization, or physical. Defaults to postnormalization.&lt;br&gt;
-prenormalization:  run before normalization of the input&lt;br&gt;
-postnormalization: run after normalization of the input&lt;br&gt;
-physical:          run after all pre and postnormalization resolvers
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class that implements &lt;code&gt;org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver&lt;/code&gt;.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="priority" type="string">
-            <annotation>
-               <documentation>
-                  The priority of this resolver: high, medium, or low. Defaults to medium. The priority allows you to specify when this resolver should run with respect to other resolvers defined for the same stage.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="projectNature">
-      <annotation>
-         <documentation>
-            If a project nature is specified the URI resolver will only be used for projects that contain one of the specified project natures. If no project natures are specified the URI resolver will be used for all projects.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A project nature ID for which the URI resolver should be used.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of an URI resolver contribution:
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.wst.common.uriresolver.resolverExtensions&quot;&gt;
-      &lt;resolverExtension
-            stage=&quot;physical&quot;
-            priority=&quot;low&quot;
-            class=&quot;org.eclipse.wst.common.uriresolver.SampleResolver&quot;&gt;
-      &lt;/resolverExtension&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         The supplied class must implement &lt;code&gt;org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         &lt;code&gt;
-org.eclipse.wst.common.componentcore.internal.util.ComponentResolver
-&lt;/code&gt;
-provides an URI resolver that resolves references in a project with multiple components
-&lt;code&gt;
-org.eclipse.wst.internet.cache.internal.CacheURIResolverExtension
-&lt;/code&gt;
-provides an URI resolver that resolves references in a cache
-&lt;code&gt;
-org.eclipse.wst.xml.core.internal.catalog.XMLCatalogURIResolverExtension
-&lt;/code&gt;
-provides an URI resolver that resolves references from an XML catalog
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/ExtensibleURIResolver.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/ExtensibleURIResolver.java
deleted file mode 100644
index e9b2c17..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/ExtensibleURIResolver.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.osgi.framework.Bundle;
-
-
-/**
- * @author csalter
- * 
- */
-public class ExtensibleURIResolver implements URIResolver
-{
-	private static final boolean logExceptions = false;
-
-	//protected IProject project;
-
-	//TODO... consider ctor that takes a project arg
-	//public ExtensibleURIResolver(IProject project)
-	//{
-	//	this.project = project;
-	//}
-
-	public ExtensibleURIResolver()
-	{
-	}
-
-	public String resolve(String baseLocation, String publicId, String systemId)
-	{
-		String result = systemId;
-
-		// compute the project that holds the resource
-		//
-    IFile file = computeFile(baseLocation);
-		IProject project =  file != null ? file.getProject() : null;
-
-		URIResolverExtensionRegistry resolverRegistry = URIResolverExtensionRegistry.getIntance();
-		List list = resolverRegistry.getExtensionDescriptors(project);
-
-		// get the list of applicable pre-normalized resolvers from the
-		// extension registry
-		//
-		for (Iterator i = resolverRegistry.getMatchingURIResolvers(list, URIResolverExtensionRegistry.STAGE_PRENORMALIZATION).iterator(); i.hasNext();)
-		{
-			URIResolverExtension resolver = (URIResolverExtension) i.next();
-			String tempresult = resolver.resolve(file, baseLocation, publicId, result);
-			if(tempresult != null)
-			{
-			  result = tempresult;
-			}
-		}
-
-		// normalize the uri
-		//
-		result = normalize(baseLocation, result);
-
-		// get the list of applicable post-normalized resolvers from the
-		// extension registry
-		//		
-		for (Iterator i = resolverRegistry.getMatchingURIResolvers(list, URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION).iterator(); i.hasNext();)
-		{ 
-			URIResolverExtension resolver = (URIResolverExtension) i.next();
-			String tempresult = resolver.resolve(file, baseLocation, publicId, result);
-			if(tempresult != null)
-			{
-			  result = tempresult;
-			}
-		}
-
-		return result;
-	}
-    
-    public String resolvePhysicalLocation(String baseLocation, String publicId, String logicalLocation)
-    {
-      String result = logicalLocation;
-      URIResolverExtensionRegistry resolverRegistry = URIResolverExtensionRegistry.getIntance();
-      IFile file = computeFile(baseLocation);
-      
-      // compute the project that holds the resource
-      //      
-      IProject project =  file != null ? file.getProject() : null;            
-      List list = resolverRegistry.getExtensionDescriptors(project);      
-      for (Iterator i = resolverRegistry.getMatchingURIResolvers(list, URIResolverExtensionRegistry.STAGE_PHYSICAL).iterator(); i.hasNext(); )
-      {        
-        // get the list of applicable physical resolvers from the extension registry
-        //
-        while (i.hasNext())
-        {
-          URIResolverExtension resolver = (URIResolverExtension) i.next();
-          String tempresult = resolver.resolve(file, baseLocation, publicId, result);
-          if(tempresult != null)
-          {
-            result = tempresult;
-          }
-        }
-      }        
-      return result;
-    }
-    
-
-	protected String normalize(String baseLocation, String systemId)
-	{
-	  // If no systemId has been specified there is nothing to do
-	  // so return null;
-	  if(systemId == null)
-	    return null;
-	  String result = systemId;
-      
-      // cs : sometimes normalizing the URI will cause an exception to get thrown
-      // for example the 'bad' version of the URI below ...
-      //
-      //   good = "jar:/resource/project-name/WebContent/WEB-INF/lib/generator.jar!/META-INF/schema/config.dtd"
-      //   bad  = "jar:/resource/project-name/WebContent/WEB-INF/lib/generator.jar/META-INF/schema/config.dtd"
-      //
-      // Here we enclose the normalization in a try/catch block with the assumption that the caller
-      // (i.e. the 'resolve' method) isn't interested in handling this exception.        
-	  try
-	  {
-	    // normalize the URI
-	    URI systemURI = URI.createURI(systemId);
-	    if (systemURI.isRelative())
-	    {
-	      baseLocation = baseLocation.replace('\\','/');
-	      URI baseURI = URI.createURI(baseLocation);
-          
-          // TODO (cs) we should add more comments to explain this in a bit more detail
-	      try
-	      {
-	        result = systemURI.resolve(baseURI).toString();
-	      }
-	      catch (IllegalArgumentException e) {
-	        Bundle bundle = URIResolverPlugin.getInstance().getBundle();
-	        IStatus statusObj = null;
-	        java.net.URI baseURI2 = null;
-	        try {
-	          baseURI2 = java.net.URI.create(baseLocation);
-	        }
-	        catch (IllegalArgumentException e2) {
-	          if(logExceptions) {
-	            statusObj = new Status(IStatus.ERROR, bundle.getSymbolicName(), IStatus.ERROR, "Problem in creating java.net.URI in ExtensibleURIResolver:" + e2.getMessage(), e2); //$NON-NLS-1$
-	            Platform.getLog(bundle).log(statusObj);
-	          }
-	        }
-	        try {
-	          if(baseURI2 != null) {
-	            java.net.URI resultURI = baseURI2.resolve(systemId);
-	            result = resultURI.toString();
-	          }
-	        }
-	        catch (IllegalArgumentException e2) {
-	          if(logExceptions) {
-	            statusObj = new Status(IStatus.ERROR, bundle.getSymbolicName(), IStatus.ERROR, "Problem in resolving with java.net.URI in ExtensibleURIResolver:" + e2.getMessage(), null); //$NON-NLS-1$
-	            Platform.getLog(bundle).log(statusObj);
-	          }
-	        }
-	      }
-	    }
-	  }
-	  catch (Exception e)
-	  {     
-        // just eat the exception and return back the original systemId
-	  }
-	  return result;
-	}
-
-  protected IFile computeFile(String baseLocation)
-  {
-    IFile file = null;
-    if (baseLocation != null)
-    {
-      String pattern = "file:///"; //$NON-NLS-1$
-      if (baseLocation.startsWith(pattern))
-      {
-        baseLocation = baseLocation.substring(pattern.length());
-      }
-      IPath path = new Path(baseLocation);
-      file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
-    }
-    return file;    
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URI.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URI.java
deleted file mode 100644
index aa411a9..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URI.java
+++ /dev/null
@@ -1,2875 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * A representation of a Uniform Resource Identifier (URI), as specified by
- * <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>, with certain
- * enhancements.  A <code>URI</code> instance can be created by specifying
- * values for its components, or by providing a single URI string, which is
- * parsed into its components.  Static factory methods whose names begin
- * with "create" are used for both forms of object creation.  No public or
- * protected constructors are provided; this class can not be subclassed.
- *
- * <p>Like <code>String</code>, <code>URI</code> is an immutable class;
- * a <code>URI</code> instance offers several by-value methods that return a
- * new <code>URI</code> object based on its current state.  Most useful,
- * a relative <code>URI</code> can be {@link #resolve(URI) resolve}d against
- * a base absolute <code>URI</code> -- the latter typically identifies the
- * document in which the former appears.  The inverse to this is {@link
- * #deresolve(URI) deresolve}, which answers the question, "what relative
- * URI will resolve, against the given base, to this absolute URI?"
- *
- * <p>In the <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC</a>, much
- * attention is focused on a hierarchical naming system used widely to
- * locate resources via common protocols such as HTTP, FTP, and Gopher, and
- * to identify files on a local file system.  Acordingly, most of this
- * class's functionality is for handling such URIs, which can be identified
- * via {@link #isHierarchical isHierarchical}.
- *
- * <p><a name="device_explanation">
- * The primary enhancement beyond the RFC description is an optional
- * device component.  Instead of treating the device as just another segment
- * in the path, it can be stored as a separate component (almost a
- * sub-authority), with the root below it.  For example, resolving
- * <code>/bar</code> against <code>file:///c:/foo</code> would result in
- * <code>file:///c:/bar</code> being returned.  Also, you cannot take
- * the parent of a device, so resolving <code>..</code> against
- * <code>file:///c:/</code> would not yield <code>file:///</code>, as you
- * might expect.  This feature is useful when working with file-scheme
- * URIs, as devices do not typically occur in protocol-based ones.  A
- * device-enabled <code>URI</code> is created by parsing a string with
- * {@link #createURI(String) createURI}; if the first segment of the path
- * ends with the <code>:</code> character, it is stored (including the colon)
- * as the device, instead.  Alternately, either the {@link
- * #createHierarchicalURI(String, String, String, String, String) no-path}
- * or the {@link #createHierarchicalURI(String, String, String, String[],
- * String, String) absolute-path} form of <code>createHierarchicalURI()</code>
- * can be used, in which a non-null <code>device</code> parameter can be
- * specified.
- *
- * <p><a name="archive_explanation"> 
- * The other enhancement provides support for the almost-hierarchical
- * form used for files within archives, such as the JAR scheme, defined
- * for the Java Platform in the documentation for {@link
- * java.net.JarURLConnection}. By default, this support is enabled for
- * absolute URIs with scheme equal to "jar", "zip", or "archive" (ignoring case), and
- * is implemented by a hierarchical URI, whose authority includes the
- * entire URI of the archive, up to and including the <code>!</code>
- * character.  The URI of the archive must have no fragment.  The whole
- * archive URI must have no device and an absolute path.  Special handling
- * is supported for {@link #createURI creating}, {@link
- * #validArchiveAuthority validating}, {@link #devicePath getting the path}
- * from, and {@link #toString displaying} archive URIs. In all other
- * operations, including {@link #resolve(URI) resolving} and {@link
- * #deresolve(URI) deresolving}, they are handled like any ordinary URI.
- *
- * <p>This implementation does not impose the all of the restrictions on
- * character validity that are specified in the RFC.  Static methods whose
- * names begin with "valid" are used to test whether a given string is valid
- * value for the various URI components.  Presently, these tests place no
- * restrictions beyond what would have been required in order for {@link
- * createURI(String) createURI} to have parsed them correctly from a single
- * URI string.  If necessary in the future, these tests may be made more
- * strict, to better coform to the RFC.
- * 
- * <p>Another group of static methods, whose names begin with "encode", use
- * percent escaping to encode any characters that are not permitted in the
- * various URI components. Another static method is provided to {@link
- * #decode decode} encoded strings.  An escaped character is represented as
- * a percent sybol (<code>%</code>), followed by two hex digits that specify
- * the character code.  These encoding methods are more strict than the
- * validation methods described above.  They ensure validity according to the
- * RFC, with one exception: non-ASCII characters.
- *
- * <p>The RFC allows only characters that can be mapped to 7-bit US-ASCII
- * representations.  Non-ASCII, single-byte characters can be used only via
- * percent escaping, as described above.  This implementation uses Java's
- * Unicode <code>char</code> and <code>String</code> representations, and
- * makes no attempt to encode characters 0xA0 and above.  Characters in the
- * range 0x80-0x9F are still escaped.  In this respect, this notion of a URI
- * is actually more like an IRI (Internationalized Resource Identifier), for
- * which an RFC is now in <href="http://www.w3.org/International/iri-edit/draft-duerst-iri-09.txt">draft
- * form</a>.
- *
- * <p>Finally, note the difference between a <code>null</code> parameter to
- * the static factory methods and an empty string.  The former signifies the
- * absense of a given URI component, while the latter simply makes the
- * component blank.  This can have a significant effect when resolving.  For
- * example, consider the following two URIs: <code>/bar</code> (with no
- * authority) and <code>///bar</code> (with a blank authority).  Imagine
- * resolving them against a base with an authority, such as
- * <code>http://www.eclipse.org/</code>.  The former case will yield
- * <code>http://www.eclipse.org/bar</code>, as the base authority will be
- * preserved.  In the latter case, the empty authority will override the
- * base authority, resulting in <code>http:///bar</code>!
- */
-public final class URI
-{
-  // Common to all URI types.
-  private final int hashCode;
-  private final boolean hierarchical;
-  private final String scheme;  // null -> relative URI reference
-  private final String authority;
-  private final String fragment;
-  private URI cachedTrimFragment;
-  private String cachedToString;
-  //private final boolean iri;
-  //private URI cachedASCIIURI;
-
-  // Applicable only to a hierarchical URI.
-  private final String device;
-  private final boolean absolutePath;
-  private final String[] segments; // empty last segment -> trailing separator
-  private final String query;
-
-  // A cache of URIs, keyed by the strings from which they were created.
-  // The fragment of any URI is removed before caching it here, to minimize
-  // the size of the cache in the usual case where most URIs only differ by
-  // the fragment.
-  private static final Map uriCache = Collections.synchronizedMap(new HashMap());
-
-  // The lower-cased schemes that will be used to identify archive URIs.
-  private static final Set archiveSchemes;
-
-  // Identifies a file-type absolute URI.
-  private static final String SCHEME_FILE = "file";
-  private static final String SCHEME_JAR = "jar";
-  private static final String SCHEME_ZIP = "zip";
-  private static final String SCHEME_ARCHIVE = "archive";
-
-  // Special segment values interpreted at resolve and resolve time.
-  private static final String SEGMENT_EMPTY = "";
-  private static final String SEGMENT_SELF = ".";
-  private static final String SEGMENT_PARENT = "..";
-  private static final String[] NO_SEGMENTS = new String[0];
-
-  // Separators for parsing a URI string.
-  private static final char SCHEME_SEPARATOR = ':';
-  private static final String AUTHORITY_SEPARATOR = "//";
-  private static final char DEVICE_IDENTIFIER = ':';
-  private static final char SEGMENT_SEPARATOR = '/';
-  private static final char QUERY_SEPARATOR = '?';
-  private static final char FRAGMENT_SEPARATOR = '#';
-  private static final char USER_INFO_SEPARATOR = '@';
-  private static final char PORT_SEPARATOR = ':';
-  private static final char FILE_EXTENSION_SEPARATOR = '.';
-  private static final char ARCHIVE_IDENTIFIER = '!';
-  private static final String ARCHIVE_SEPARATOR = "!/";
-
-  // Characters to use in escaping.
-  private static final char ESCAPE = '%';
-  private static final char[] HEX_DIGITS = {
-    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
-
-  // Some character classes, as defined in RFC 2396's BNF for URI.
-  // These are 128-bit bitmasks, stored as two longs, where the Nth bit is set
-  // iff the ASCII character with value N is included in the set.  These are
-  // created with the highBitmask() and lowBitmask() methods defined below,
-  // and a character is tested against them using matches().
-  //
-  private static final long ALPHA_HI = highBitmask('a', 'z') | highBitmask('A', 'Z');
-  private static final long ALPHA_LO = lowBitmask('a', 'z')  | lowBitmask('A', 'Z');
-  private static final long DIGIT_HI = highBitmask('0', '9');
-  private static final long DIGIT_LO = lowBitmask('0', '9');
-  private static final long ALPHANUM_HI = ALPHA_HI | DIGIT_HI;
-  private static final long ALPHANUM_LO = ALPHA_LO | DIGIT_LO;
-  private static final long HEX_HI = DIGIT_HI | highBitmask('A', 'F') | highBitmask('a', 'f');
-  private static final long HEX_LO = DIGIT_LO | lowBitmask('A', 'F')  | lowBitmask('a', 'f');
-  private static final long UNRESERVED_HI = ALPHANUM_HI | highBitmask("-_.!~*'()"); 
-  private static final long UNRESERVED_LO = ALPHANUM_LO | lowBitmask("-_.!~*'()");
-  private static final long RESERVED_HI = highBitmask(";/?:@&=+$,");
-  private static final long RESERVED_LO = lowBitmask(";/?:@&=+$,");
-  private static final long URIC_HI = RESERVED_HI | UNRESERVED_HI;  // | ucschar | escaped
-  private static final long URIC_LO = RESERVED_LO | UNRESERVED_LO;
-
-  // Additional useful character classes, including characters valid in certain
-  // URI components and separators used in parsing them out of a string. 
-  //
-  private static final long SEGMENT_CHAR_HI = UNRESERVED_HI | highBitmask(";:@&=+$,");  // | ucschar | escaped
-  private static final long SEGMENT_CHAR_LO = UNRESERVED_LO | lowBitmask(";:@&=+$,");
-  private static final long PATH_CHAR_HI = SEGMENT_CHAR_HI | highBitmask('/');  // | ucschar | escaped
-  private static final long PATH_CHAR_LO = SEGMENT_CHAR_LO | lowBitmask('/');
-//  private static final long SCHEME_CHAR_HI = ALPHANUM_HI | highBitmask("+-.");
-//  private static final long SCHEME_CHAR_LO = ALPHANUM_LO | lowBitmask("+-.");
-  private static final long MAJOR_SEPARATOR_HI = highBitmask(":/?#");
-  private static final long MAJOR_SEPARATOR_LO = lowBitmask(":/?#");
-  private static final long SEGMENT_END_HI = highBitmask("/?#");
-  private static final long SEGMENT_END_LO = lowBitmask("/?#");
-
-  // Static initializer for archiveSchemes.
-  static
-  {
-    Set set = new HashSet();
-    set.add(SCHEME_JAR);
-    set.add(SCHEME_ZIP);
-    set.add(SCHEME_ARCHIVE);
-    
-    
-    archiveSchemes = Collections.unmodifiableSet(set);
-  }
-
-  // Returns the lower half bitmask for the given ASCII character.
-  private static long lowBitmask(char c)
-  {
-    return c < 64 ? 1L << c : 0L;
-  }
-
-  // Returns the upper half bitmask for the given ACSII character.
-  private static long highBitmask(char c)
-  {
-    return c >= 64 && c < 128 ? 1L << (c - 64) : 0L;
-  }
-
-  // Returns the lower half bitmask for all ASCII characters between the two
-  // given characters, inclusive.
-  private static long lowBitmask(char from, char to)
-  {
-    long result = 0L;
-    if (from < 64 && from <= to)
-    {
-      to = to < 64 ? to : 63;
-      for (char c = from; c <= to; c++)
-      {
-        result |= (1L << c);
-      }
-    }
-    return result;
-  }
-
-  // Returns the upper half bitmask for all AsCII characters between the two
-  // given characters, inclusive.
-  private static long highBitmask(char from, char to)
-  {
-    return to < 64 ? 0 : lowBitmask((char)(from < 64 ? 0 : from - 64), (char)(to - 64));
-  }
-
-  // Returns the lower half bitmask for all the ASCII characters in the given
-  // string.
-  private static long lowBitmask(String chars)
-  {
-    long result = 0L;
-    for (int i = 0, len = chars.length(); i < len; i++)
-    {
-      char c = chars.charAt(i);
-      if (c < 64) result |= (1L << c);
-    }
-    return result;
-  }
-
-  // Returns the upper half bitmask for all the ASCII characters in the given
-  // string.
-  private static long highBitmask(String chars)
-  {
-    long result = 0L;
-    for (int i = 0, len = chars.length(); i < len; i++)
-    {
-      char c = chars.charAt(i);
-      if (c >= 64 && c < 128) result |= (1L << (c - 64));
-    }
-    return result;
-  }
-
-  // Returns whether the given character is in the set specified by the given
-  // bitmask.
-  private static boolean matches(char c, long highBitmask, long lowBitmask)
-  {
-    if (c >= 128) return false;
-    return c < 64 ?
-      ((1L << c) & lowBitmask) != 0 :
-      ((1L << (c - 64)) & highBitmask) != 0;
-  }
-
-  // Debugging method: converts the given long to a string of binary digits.
-/*
-  private static String toBits(long l)
-  {
-    StringBuffer result = new StringBuffer();
-    for (int i = 0; i < 64; i++)
-    {
-      boolean b = (l & 1L) != 0;
-      result.insert(0, b ? '1' : '0');
-      l >>= 1;
-    }
-    return result.toString();
-  }
-*/
-
-  /**
-   * Static factory method for a generic, non-hierarchical URI.  There is no
-   * concept of a relative non-hierarchical URI; such an object cannot be
-   * created.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>scheme</code> is
-   * null, if <code>scheme</code> is an <a href="#archive_explanation">archive
-   * URI</a> scheme, or if <code>scheme</code>, <code>opaquePart</code>, or
-   * <code>fragment</code> is not valid according to {@link #validScheme
-   * validScheme}, {@link #validOpaquePart validOpaquePart}, or {@link
-   * #validFragment validFragment}, respectively.
-   */
-  public static URI createGenericURI(String scheme, String opaquePart,
-                                     String fragment)
-  {
-    if (scheme == null)
-    {
-      throw new IllegalArgumentException("relative non-hierarchical URI");
-    }
-
-    if (isArchiveScheme(scheme))
-    {
-      throw new IllegalArgumentException("non-hierarchical archive URI");
-    }
-
-    validateURI(false, scheme, opaquePart, null, false, NO_SEGMENTS, null, fragment);
-    return new URI(false, scheme, opaquePart, null, false, NO_SEGMENTS, null, fragment);
-  }
-
-  /**
-   * Static factory method for a hierarchical URI with no path.  The
-   * URI will be relative if <code>scheme</code> is non-null, and absolute
-   * otherwise.  An absolute URI with no path requires a non-null
-   * <code>authority</code> and/or <code>device</code>.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>scheme</code> is
-   * non-null while <code>authority</code> and <code>device</code> are null,
-   * if <code>scheme</code> is an <a href="#archive_explanation">archive
-   * URI</a> scheme, or if <code>scheme</code>, <code>authority</code>,
-   * <code>device</code>, <code>query</code>, or <code>fragment</code> is not
-   * valid according to {@link #validScheme validSheme}, {@link
-   * #validAuthority validAuthority}, {@link #validDevice validDevice},
-   * {@link #validQuery validQuery}, or {@link #validFragment validFragment},
-   * respectively.
-   */
-  public static URI createHierarchicalURI(String scheme, String authority,
-                                          String device, String query,
-                                          String fragment)
-  {
-    if (scheme != null && authority == null && device == null)
-    {
-      throw new IllegalArgumentException(
-        "absolute hierarchical URI without authority, device, path");
-    }
-
-    if (isArchiveScheme(scheme))
-    {
-      throw new IllegalArgumentException("archive URI with no path");
-    }
-
-    validateURI(true, scheme, authority, device, false, NO_SEGMENTS, query, fragment);
-    return new URI(true, scheme, authority, device, false, NO_SEGMENTS, query, fragment);
-  }
-
-  /**
-   * Static factory method for a hierarchical URI with absolute path.
-   * The URI will be relative if <code>scheme</code> is non-null, and
-   * absolute otherwise. 
-   *
-   * @param segments an array of non-null strings, each representing one
-   * segment of the path.  As an absolute path, it is automatically
-   * preceeded by a <code>/</code> separator.  If desired, a trailing
-   * separator should be represented by an empty-string segment as the last
-   * element of the array. 
-   *
-   * @exception java.lang.IllegalArgumentException if <code>scheme</code> is
-   * an <a href="#archive_explanation">archive URI</a> scheme and 
-   * <code>device</code> is non-null, or if <code>scheme</code>,
-   * <code>authority</code>, <code>device</code>, <code>segments</code>,
-   * <code>query</code>, or <code>fragment</code> is not valid according to
-   * {@link #validScheme validScheme}, {@link #validAuthority validAuthority}
-   * or {@link #validArchiveAuthority validArchiveAuthority}, {@link
-   * #validDevice validDevice}, {@link #validSegments validSegments}, {@link
-   * #validQuery validQuery}, or {@link #validFragment validFragment}, as
-   * appropriate.
-   */
-  public static URI createHierarchicalURI(String scheme, String authority,
-                                          String device, String[] segments,
-                                          String query, String fragment)
-  {
-    if (isArchiveScheme(scheme) && device != null)
-    {
-      throw new IllegalArgumentException("archive URI with device");
-    }
-
-    segments = fix(segments);
-    validateURI(true, scheme, authority, device, true, segments, query, fragment);
-    return new URI(true, scheme, authority, device, true, segments, query, fragment);
-  }
-
-  /**
-   * Static factory method for a relative hierarchical URI with relative
-   * path.
-   *
-   * @param segments an array of non-null strings, each representing one
-   * segment of the path.  A trailing separator is represented by an
-   * empty-string segment at the end of the array.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>segments</code>,
-   * <code>query</code>, or <code>fragment</code> is not valid according to 
-   * {@link #validSegments validSegments}, {@link #validQuery validQuery}, or
-   * {@link #validFragment validFragment}, respectively.
-   */
-  public static URI createHierarchicalURI(String[] segments, String query,
-                                          String fragment)
-  {
-    segments = fix(segments);
-    validateURI(true, null, null, null, false, segments, query, fragment);
-    return new URI(true, null, null, null, false, segments, query, fragment);
-  }
-
-  // Converts null to length-zero array, and clones array to ensure
-  // immutability.
-  private static String[] fix(String[] segments)
-  {
-    return segments == null ? NO_SEGMENTS : (String[])segments.clone();
-  }
-  
-  /**
-   * Static factory method based on parsing a URI string, with 
-   * <a href="#device_explanation">explicit device support</a> and handling
-   * for <a href="#archive_explanation">archive URIs</a> enabled. The
-   * specified string is parsed as described in <a
-   * href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>, and an
-   * appropriate <code>URI</code> is created and returned.  Note that
-   * validity testing is not as strict as in the RFC; essentially, only
-   * separator characters are considered.  So, for example, non-Latin
-   * alphabet characters appearing in the scheme would not be considered an
-   * error.
-   *
-   * @exception java.lang.IllegalArgumentException if any component parsed
-   * from <code>uri</code> is not valid according to {@link #validScheme
-   * validScheme}, {@link #validOpaquePart validOpaquePart}, {@link
-   * #validAuthority validAuthority}, {@link #validArchiveAuthority
-   * validArchiveAuthority}, {@link #validDevice validDevice}, {@link
-   * #validSegments validSegments}, {@link #validQuery validQuery}, or {@link
-   * #validFragment validFragment}, as appropriate.
-   */
-  public static URI createURI(String uri)
-  {
-    return createURIWithCache(uri); 
-  }
-
-  /**
-   * Static factory method that encodes and parses the given URI string.
-   * Appropriate encoding is performed for each component of the URI.
-   * If more than one <code>#</code> is in the string, the last one is
-   * assumed to be the fragment's separator, and any others are encoded.
-   *  
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   *
-   * @exception java.lang.IllegalArgumentException if any component parsed
-   * from <code>uri</code> is not valid according to {@link #validScheme
-   * validScheme}, {@link #validOpaquePart validOpaquePart}, {@link
-   * #validAuthority validAuthority}, {@link #validArchiveAuthority
-   * validArchiveAuthority}, {@link #validDevice validDevice}, {@link
-   * #validSegments validSegments}, {@link #validQuery validQuery}, or {@link
-   * #validFragment validFragment}, as appropriate.
-   */
-  public static URI createURI(String uri, boolean ignoreEscaped)
-  {
-    return createURIWithCache(encodeURI(uri, ignoreEscaped));
-  }
-
-  /**
-   * Static factory method based on parsing a URI string, with 
-   * <a href="#device_explanation">explicit device support</a> enabled.  
-   * Note that validity testing is not a strict as in the RFC; essentially,
-   * only separator characters are considered.  So, for example, non-Latin
-   * alphabet characters appearing in the scheme would not be considered an
-   * error.
-   *
-   * @exception java.lang.IllegalArgumentException if any component parsed
-   * from <code>uri</code> is not valid according to {@link #validScheme
-   * validScheme}, {@link #validOpaquePart validOpaquePart}, {@link
-   * #validAuthority validAuthority}, {@link #validArchiveAuthority
-   * validArchiveAuthority}, {@link #validDevice validDevice}, {@link
-   * #validSegments validSegments}, {@link #validQuery validQuery}, or {@link
-   * #validFragment validFragment}, as appropriate.
-   *
-   * @deprecated Use {@link #createURI createURI}, which now has explicit
-   * device support enabled. The two methods now operate identically.
-   */
-  public static URI createDeviceURI(String uri)
-  {
-    return createURIWithCache(uri);
-  }
-
-  // Uses a cache to speed up creation of a URI from a string.  The cache
-  // is consulted to see if the URI, less any fragment, has already been
-  // created.  If needed, the fragment is re-appended to the cached URI,
-  // which is considerably more efficient than creating the whole URI from
-  // scratch.  If the URI wasn't found in the cache, it is created using
-  // parseIntoURI() and then cached.  This method should always be used
-  // by string-parsing factory methods, instead of parseIntoURI() directly.
-  /**
-   * This method was included in the public API by mistake.
-   * 
-   * @deprecated Please use {@link #createURI createURI} instead.
-   */
-  public static URI createURIWithCache(String uri)
-  {
-    int i = uri.indexOf(FRAGMENT_SEPARATOR);
-    String base = i == -1 ? uri : uri.substring(0, i);
-    String fragment = i == -1 ? null : uri.substring(i + 1);
-
-    URI result = (URI)uriCache.get(base);
-
-    if (result == null)
-    {
-      result = parseIntoURI(base);
-      uriCache.put(base, result);
-    }
-
-    if (fragment != null)
-    {
-      result = result.appendFragment(fragment);
-    }
-    return result;
-  }
-
-  // String-parsing implementation.
-  private static URI parseIntoURI(String uri)
-  {
-    boolean hierarchical = true;
-    String scheme = null;
-    String authority = null;
-    String device = null;
-    boolean absolutePath = false;
-    String[] segments = NO_SEGMENTS;
-    String query = null;
-    String fragment = null;
-
-    int i = 0;
-    int j = find(uri, i, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO);
-
-    if (j < uri.length() && uri.charAt(j) == SCHEME_SEPARATOR)
-    {
-      scheme = uri.substring(i, j);
-      i = j + 1;
-    }
-
-    boolean archiveScheme = isArchiveScheme(scheme);
-    if (archiveScheme)
-    {
-      j = uri.lastIndexOf(ARCHIVE_SEPARATOR);
-      if (j == -1)
-      {
-        throw new IllegalArgumentException("no archive separator");
-      }
-      hierarchical = true;
-      authority = uri.substring(i, ++j);
-      i = j;
-    }
-    else if (uri.startsWith(AUTHORITY_SEPARATOR, i))
-    {
-      i += AUTHORITY_SEPARATOR.length();
-      j = find(uri, i, SEGMENT_END_HI, SEGMENT_END_LO);
-      authority = uri.substring(i, j);
-      i = j;
-    }
-    else if (scheme != null &&
-             (i == uri.length() || uri.charAt(i) != SEGMENT_SEPARATOR))
-    {
-      hierarchical = false;
-      j = uri.indexOf(FRAGMENT_SEPARATOR, i);
-      if (j == -1) j = uri.length();
-      authority = uri.substring(i, j);
-      i = j;
-    }
-
-    if (!archiveScheme && i < uri.length() && uri.charAt(i) == SEGMENT_SEPARATOR)
-    {
-      j = find(uri, i + 1, SEGMENT_END_HI, SEGMENT_END_LO);
-      String s = uri.substring(i + 1, j);
-      
-      if (s.length() > 0 && s.charAt(s.length() - 1) == DEVICE_IDENTIFIER)
-      {
-        device = s;
-        i = j;
-      }
-    }
-
-    if (i < uri.length() && uri.charAt(i) == SEGMENT_SEPARATOR)
-    {
-      i++;
-      absolutePath = true;
-    }
-
-    if (segmentsRemain(uri, i))
-    {
-      List segmentList = new ArrayList();
-
-      while (segmentsRemain(uri, i))
-      {
-        j = find(uri, i, SEGMENT_END_HI, SEGMENT_END_LO);
-        segmentList.add(uri.substring(i, j));
-        i = j;
-
-        if (i < uri.length() && uri.charAt(i) == SEGMENT_SEPARATOR)
-        {
-          if (!segmentsRemain(uri, ++i)) segmentList.add(SEGMENT_EMPTY);
-        }
-      }
-      segments = new String[segmentList.size()];
-      segmentList.toArray(segments);
-    }
-
-    if (i < uri.length() && uri.charAt(i) == QUERY_SEPARATOR)
-    {
-      j = uri.indexOf(FRAGMENT_SEPARATOR, ++i);
-      if (j == -1) j = uri.length();
-      query = uri.substring(i, j);
-      i = j;
-    }
-
-    if (i < uri.length()) // && uri.charAt(i) == FRAGMENT_SEPARATOR (implied)
-    {
-      fragment = uri.substring(++i);
-    }
-
-    validateURI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment);
-    return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment);
-  }
-
-  // Checks whether the string contains any more segments after the one that
-  // starts at position i.
-  private static boolean segmentsRemain(String uri, int i)
-  {
-    return i < uri.length() && uri.charAt(i) != QUERY_SEPARATOR &&
-      uri.charAt(i) != FRAGMENT_SEPARATOR;
-  }
-
-  // Finds the next occurance of one of the characters in the set represented
-  // by the given bitmask in the given string, beginning at index i. The index
-  // of the first found character, or s.length() if there is none, is
-  // returned.  Before searching, i is limited to the range [0, s.length()].
-  //
-  private static int find(String s, int i, long highBitmask, long lowBitmask)
-  {
-    int len = s.length();
-    if (i >= len) return len;
-
-    for (i = i > 0 ? i : 0; i < len; i++)
-    {
-      if (matches(s.charAt(i), highBitmask, lowBitmask)) break;
-    }
-    return i;
-  }
-
-  /**
-   * Static factory method based on parsing a {@link java.io.File} path
-   * string.  The <code>pathName</code> is converted into an appropriate
-   * form, as follows: platform specific path separators are converted to
-   * <code>/<code>; the path is encoded; and a "file" scheme and, if missing,
-   * a leading <code>/</code>, are added to an absolute path.  The result
-   * is then parsed using {@link #createURI(String) createURI}.
-   *
-   * <p>The encoding step escapes all spaces, <code>#</code> characters, and
-   * other characters disallowed in URIs, as well as <code>?</code>, which
-   * would delimit a path from a query.  Decoding is automatically performed
-   * by {@link #toFileString toFileString}, and can be applied to the values
-   * returned by other accessors by via the static {@link #decode(String)
-   * decode} method.
-   *
-   * <p>A relative path with a specified device (something like
-   * <code>C:myfile.txt</code>) cannot be expressed as a valid URI.
-   * 
-   * @exception java.lang.IllegalArgumentException if <code>pathName</code>
-   * specifies a device and a relative path, or if any component of the path
-   * is not valid according to {@link #validAuthority validAuthority}, {@link
-   * #validDevice validDevice}, or {@link #validSegments validSegments},
-   * {@link #validQuery validQuery}, or {@link #validFragment validFragment}.
-   */
-  public static URI createFileURI(String pathName)
-  {
-    File file = new File(pathName);
-    String uri = File.separatorChar != '/' ? pathName.replace(File.separatorChar, SEGMENT_SEPARATOR) : pathName;
-    uri = encode(uri, PATH_CHAR_HI, PATH_CHAR_LO, false);
-    if (file.isAbsolute())
-    {
-      URI result = createURI((uri.charAt(0) == SEGMENT_SEPARATOR ? "file:" : "file:/") + uri);
-      return result;
-    }
-    else
-    {
-      URI result = createURI(uri);
-      if (result.scheme() != null)
-      {
-        throw new IllegalArgumentException("invalid relative pathName: " + pathName);
-      }
-      return result;
-    }
-  }
-
-  /**
-   * Static factory method based on parsing a platform-relative path string.
-   *
-   * <p>The <code>pathName</code> must be of the form:
-   * <pre>
-   *   /project-name/path</pre>
-   *
-   * <p>Platform-specific path separators will be converterted to slashes.
-   * If not included, the leading path separator will be added.  The
-   * result will be of this form, which is parsed using {@link #createURI
-   * createURI}:
-   * <pre>
-   *   platform:/resource/project-name/path</pre>
-   *
-   * 
-   * @exception java.lang.IllegalArgumentException if any component parsed
-   * from the path is not valid according to {@link #validDevice validDevice},
-   * {@link #validSegments validSegments}, {@link #validQuery validQuery}, or
-   * {@link #validFragment validFragment}.
-   *
-   * @see org.eclipse.core.runtime.Platform#resolve
-   * @see #createPlatformResourceURI(String, boolean)
-   */
-  public static URI createPlatformResourceURI(String pathName)
-  {
-    return createPlatformResourceURI(pathName, false);
-  }
-
-  /**
-   * Static factory method based on parsing a platform-relative path string,
-   * with an option to encode the created URI.
-   *
-   * <p>The <code>pathName</code> must be of the form:
-   * <pre>
-   *   /project-name/path</pre>
-   *
-   * <p>Platform-specific path separators will be converterted to slashes.
-   * If not included, the leading path separator will be added.  The
-   * result will be of this form, which is parsed using {@link #createURI
-   * createURI}:
-   * <pre>
-   *   platform:/resource/project-name/path</pre>
-   *
-   * <p>This scheme supports relocatable projects in Eclipse and in
-   * stand-alone .
-   *
-   * <p>Depending on the <code>encode</code> argument, the path may be
-   * automatically encoded to escape all spaces, <code>#</code> characters,
-   * and other characters disallowed in URIs, as well as <code>?</code>,
-   * which would delimit a path from a query.  Decoding can be performed with
-   * the static {@link #decode(String) decode} method.
-   * 
-   * @exception java.lang.IllegalArgumentException if any component parsed
-   * from the path is not valid according to {@link #validDevice validDevice},
-   * {@link #validSegments validSegments}, {@link #validQuery validQuery}, or
-   * {@link #validFragment validFragment}.
-   *
-   * @see org.eclipse.core.runtime.Platform#resolve
-   */
-  public static URI createPlatformResourceURI(String pathName, boolean encode)
-  {
-    if (File.separatorChar != SEGMENT_SEPARATOR)
-    {
-      pathName = pathName.replace(File.separatorChar, SEGMENT_SEPARATOR);
-    }
-
-    if (encode)
-    {
-      pathName = encode(pathName, PATH_CHAR_HI, PATH_CHAR_LO, false);
-    }
-    URI result = createURI((pathName.charAt(0) == SEGMENT_SEPARATOR ? "platform:/resource" : "platform:/resource/") + pathName);
-    return result;
-  }
-  
-  // Private constructor for use of static factory methods.
-  private URI(boolean hierarchical, String scheme, String authority,
-              String device, boolean absolutePath, String[] segments,
-              String query, String fragment)
-  {
-    int hashCode = 0;
-    //boolean iri = false;
-
-    if (hierarchical)
-    {
-      ++hashCode;
-    }
-    if (absolutePath)
-    {
-      hashCode += 2;
-    }
-    if (scheme != null)
-    {
-      hashCode ^= scheme.toLowerCase().hashCode();
-    }
-    if (authority != null)
-    {
-      hashCode ^= authority.hashCode();
-      //iri = iri || containsNonASCII(authority);
-    }
-    if (device != null)
-    {
-      hashCode ^= device.hashCode();
-      //iri = iri || containsNonASCII(device);
-    }
-    if (query != null)
-    {
-      hashCode ^= query.hashCode();
-      //iri = iri || containsNonASCII(query);
-    }
-    if (fragment != null)
-    {
-      hashCode ^= fragment.hashCode();
-      //iri = iri || containsNonASCII(fragment);
-    }
-
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      hashCode ^= segments[i].hashCode();
-      //iri = iri || containsNonASCII(segments[i]);
-    }
-
-    this.hashCode = hashCode;
-    //this.iri = iri;
-    this.hierarchical = hierarchical;
-    this.scheme = scheme == null ? null : scheme.intern();
-    this.authority = authority;
-    this.device = device;
-    this.absolutePath = absolutePath;
-    this.segments = segments;
-    this.query = query;
-    this.fragment = fragment;
-  }
-  
-  // Validates all of the URI components.  Factory methods should call this
-  // before using the constructor, though they must ensure that the
-  // inter-component requirements described in their own Javadocs are all
-  // satisfied, themselves.  If a new URI is being constructed out of
-  // an existing URI, this need not be called.  Instead, just the new
-  // components may be validated individually.
-  private static void validateURI(boolean hierarchical, String scheme,
-                                    String authority, String device,
-                                    boolean absolutePath, String[] segments,
-                                    String query, String fragment)
-  {
-    if (!validScheme(scheme))
-    {
-      throw new IllegalArgumentException("invalid scheme: " + scheme);
-    }
-    if (!hierarchical && !validOpaquePart(authority))
-    {
-      throw new IllegalArgumentException("invalid opaquePart: " + authority);
-    }
-    if (hierarchical && !isArchiveScheme(scheme) && !validAuthority(authority))
-    {
-      throw new IllegalArgumentException("invalid authority: " + authority);
-    }
-    if (hierarchical && isArchiveScheme(scheme) && !validArchiveAuthority(authority))
-    {
-      throw new IllegalArgumentException("invalid authority: " + authority);
-    }
-    if (!validDevice(device))
-    {
-      throw new IllegalArgumentException("invalid device: " + device);
-    }
-    if (!validSegments(segments))
-    {
-      String s = segments == null ? "invalid segments: " + segments :
-        "invalid segment: " + firstInvalidSegment(segments);
-      throw new IllegalArgumentException(s);
-    }
-    if (!validQuery(query))
-    {
-      throw new IllegalArgumentException("invalid query: " + query);
-    }
-    if (!validFragment(fragment))
-    {
-      throw new IllegalArgumentException("invalid fragment: " + fragment);
-    }
-  }
-
-  // Alternate, stricter implementations of the following validation methods
-  // are provided, commented out, for possible future use...
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the scheme component of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid scheme may be null or contain any characters except for the
-   * following: <code>: / ? #</code>
-   */
-  public static boolean validScheme(String value)
-  {
-    return value == null || !contains(value, MAJOR_SEPARATOR_HI, MAJOR_SEPARATOR_LO);  
-
-  // <p>A valid scheme may be null, or consist of a single letter followed
-  // by any number of letters, numbers, and the following characters:
-  // <code>+ - .</code>
-
-    //if (value == null) return true;
-    //return value.length() != 0 &&
-    //  matches(value.charAt(0), ALPHA_HI, ALPHA_LO) &&
-    //  validate(value, SCHEME_CHAR_HI, SCHEME_CHAR_LO, false, false);
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the opaque part component of a URI; <code>false</code>
-   * otherwise.
-   *
-   * <p>A valid opaque part must be non-null, non-empty, and not contain the
-   * <code>#</code> character.  In addition, its first character must not be
-   * <code>/</code>
-   */
-  public static boolean validOpaquePart(String value)
-  {
-    return value != null && value.indexOf(FRAGMENT_SEPARATOR) == -1 &&
-    value.length() > 0 && value.charAt(0) != SEGMENT_SEPARATOR;
-
-  // <p>A valid opaque part must be non-null and non-empty. It may contain
-  // any allowed URI characters, but its first character may not be
-  // <code>/</code> 
-
-    //return value != null && value.length() != 0 &&
-    //  value.charAt(0) != SEGMENT_SEPARATOR &&
-    //  validate(value, URIC_HI, URIC_LO, true, true);
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the authority component of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid authority may be null or contain any characters except for
-   * the following: <code>/ ? #</code>
-   */
-  public static boolean validAuthority(String value)
-  {
-    return value == null || !contains(value, SEGMENT_END_HI, SEGMENT_END_LO);
-
-  // A valid authority may be null or contain any allowed URI characters except
-  // for the following: <code>/ ?</code>
-
-    //return value == null || validate(value, SEGMENT_CHAR_HI, SEGMENT_CHAR_LO, true, true);
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the authority component of an <a
-   * href="#archive_explanation">archive URI</a>; <code>false</code>
-   * otherwise.
-   *
-   * <p>To be valid, the authority, itself, must be a URI with no fragment,
-   * followed by the character <code>!</code>.
-   */
-  public static boolean validArchiveAuthority(String value)
-  {
-    if (value != null && value.length() > 0 &&
-        value.charAt(value.length() - 1) == ARCHIVE_IDENTIFIER)
-    {
-      try
-      {
-        URI archiveURI = createURI(value.substring(0, value.length() - 1));
-        return !archiveURI.hasFragment();
-      }
-      catch (IllegalArgumentException e)
-      {
-      }
-    }
-    return false;
-  }
-
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the device component of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid device may be null or non-empty, containing any characters
-   * except for the following: <code>/ ? #</code>  In addition, its last
-   * character must be <code>:</code>
-   */
-  public static boolean validDevice(String value)
-  {    
-    if (value == null) return true;
-    int len = value.length();
-    return len > 0 && value.charAt(len - 1) == DEVICE_IDENTIFIER &&
-      !contains(value, SEGMENT_END_HI, SEGMENT_END_LO);
-
-  // <p>A valid device may be null or non-empty, containing any allowed URI
-  // characters except for the following: <code>/ ?</code>  In addition, its
-  // last character must be <code>:</code>
-
-    //if (value == null) return true;
-    //int len = value.length();
-    //return len > 0 && validate(value, SEGMENT_CHAR_HI, SEGMENT_CHAR_LO, true, true) &&
-    //  value.charAt(len - 1) == DEVICE_IDENTIFIER;
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * a valid path segment of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid path segment must be non-null and not contain any of the
-   * following characters: <code>/ ? #</code>
-   */
-  public static boolean validSegment(String value)
-  {
-    return value != null && !contains(value, SEGMENT_END_HI, SEGMENT_END_LO);
-
-  // <p>A valid path segment must be non-null and may contain any allowed URI
-  // characters except for the following: <code>/ ?</code> 
-
-    //return value != null && validate(value, SEGMENT_CHAR_HI, SEGMENT_CHAR_LO, true, true);
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * a valid path segment array of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid path segment array must be non-null and contain only path
-   * segements that are valid according to {@link #validSegment validSegment}.
-   */
-  public static boolean validSegments(String[] value)
-  {
-    if (value == null) return false;
-    for (int i = 0, len = value.length; i < len; i++)
-    {
-      if (!validSegment(value[i])) return false;
-    }
-    return true;
-  }
-
-  // Returns null if the specicied value is null or would be a valid path
-  // segment array of a URI; otherwise, the value of the first invalid
-  // segment. 
-  private static String firstInvalidSegment(String[] value)
-  {
-    if (value == null) return null;
-    for (int i = 0, len = value.length; i < len; i++)
-    {
-      if (!validSegment(value[i])) return value[i];
-    }
-    return null;
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the query component of a URI; <code>false</code> otherwise.
-   *
-   * <p>A valid query may be null or contain any characters except for
-   * <code>#</code>
-   */
-  public static boolean validQuery(String value)
-  {
-    return value == null || value.indexOf(FRAGMENT_SEPARATOR) == -1;
-
-  // <p>A valid query may be null or contain any allowed URI characters.
-
-    //return value == null || validate(value, URIC_HI, URIC_LO, true, true);
-}
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the fragment component of a URI; <code>false</code> otherwise.
-   *
-   * <p>A fragment is taken to be unconditionally valid.
-   */
-  public static boolean validFragment(String value)
-  {
-    return true;
-
-  // <p>A valid fragment may be null or contain any allowed URI characters.
-
-    //return value == null || validate(value, URIC_HI, URIC_LO, true, true);
-  }
-
-  // Searches the specified string for any characters in the set represnted
-  // by the 128-bit bitmask.  Returns true if any occur, or false otherwise.
-  private static boolean contains(String s, long highBitmask, long lowBitmask)
-  {
-    for (int i = 0, len = s.length(); i < len; i++)
-    {
-      if (matches(s.charAt(i), highBitmask, lowBitmask)) return true;
-    }
-    return false;
-  }
-
-  // Tests the non-null string value to see if it contains only ASCII
-  // characters in the set represented by the specified 128-bit bitmask,
-  // as well as, optionally, non-ASCII characters 0xA0 and above, and,
-  // also optionally, escape sequences of % followed by two hex digits.
-  // This method is used for the new, strict URI validation that is not
-  // not currently in place.
-/*
-  private static boolean validate(String value, long highBitmask, long lowBitmask,
-                                     boolean allowNonASCII, boolean allowEscaped)
-  {
-    for (int i = 0, len = value.length(); i < len; i++)
-    { 
-      char c = value.charAt(i);
-
-      if (matches(c, highBitmask, lowBitmask)) continue;
-      if (allowNonASCII && c >= 160) continue;
-      if (allowEscaped && isEscaped(value, i))
-      {
-        i += 2;
-        continue;
-      }
-      return false;
-    }
-    return true;
-  }
-*/
-
-  /**
-   * Returns <code>true</code> if this is a relative URI, or
-   * <code>false</code> if it is an absolute URI.
-   */
-  public boolean isRelative()
-  {
-    return scheme == null;
-  }
-
-  /**
-   * Returns <code>true</code> if this a a hierarchical URI, or
-   * <code>false</code> if it is of the generic form.
-   */
-  public boolean isHierarchical()
-  {
-    return hierarchical;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarcical URI with an authority
-   * component; <code>false</code> otherwise. 
-   */
-  public boolean hasAuthority()
-  {
-    return hierarchical && authority != null;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a non-hierarchical URI with an
-   * opaque part component; <code>false</code> otherwise.
-   */
-  public boolean hasOpaquePart()
-  {
-    // note: hierarchical -> authority != null
-    return !hierarchical;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with a device
-   * component; <code>false</code> otherwise.
-   */
-  public boolean hasDevice()
-  {
-    // note: device != null -> hierarchical
-    return device != null;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with an
-   * absolute or relative path; <code>false</code> otherwise.
-   */
-  public boolean hasPath()
-  {
-    // note: (absolutePath || authority == null) -> hierarchical
-    // (authority == null && device == null && !absolutePath) -> scheme == null
-    return absolutePath || (authority == null && device == null);
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with an
-   * absolute path, or <code>false</code> if it is non-hierarchical, has no
-   * path, or has a relative path.
-   */
-  public boolean hasAbsolutePath()
-  {
-    // note: absolutePath -> hierarchical
-    return absolutePath;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with a relative
-   * path, or <code>false</code> if it is non-hierarchical, has no path, or
-   * has an absolute path.
-   */
-  public boolean hasRelativePath()
-  {
-    // note: authority == null -> hierarchical
-    // (authority == null && device == null && !absolutePath) -> scheme == null
-    return authority == null && device == null && !absolutePath;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with an empty
-   * relative path; <code>false</code> otherwise.  
-   *
-   * <p>Note that <code>!hasEmpty()</code> does <em>not</em> imply that this
-   * URI has any path segments; however, <code>hasRelativePath &&
-   * !hasEmptyPath()</code> does.
-   */
-  public boolean hasEmptyPath()
-  {
-    // note: authority == null -> hierarchical
-    // (authority == null && device == null && !absolutePath) -> scheme == null
-    return authority == null && device == null && !absolutePath &&
-      segments.length == 0;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI with a query
-   * component; <code>false</code> otherwise.
-   */
-  public boolean hasQuery()
-  {
-    // note: query != null -> hierarchical
-    return query != null;
-  }
-
-  /**
-   * Returns <code>true</code> if this URI has a fragment component;
-   * <code>false</code> otherwise.
-   */
-  public boolean hasFragment()
-  {
-    return fragment != null;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a current document reference; that
-   * is, if it is a relative hierarchical URI with no authority, device or
-   * query components, and no path segments; <code>false</code> is returned
-   * otherwise.
-   */
-  public boolean isCurrentDocumentReference()
-  {
-    // note: authority == null -> hierarchical
-    // (authority == null && device == null && !absolutePath) -> scheme == null
-    return authority == null && device == null && !absolutePath &&
-      segments.length == 0 && query == null;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a {@link
-   * #isCurrentDocumentReference() current document reference} with no
-   * fragment component; <code>false</code> otherwise.
-   *
-   * @see #isCurrentDocumentReference()
-   */
-  public boolean isEmpty()
-  {
-    // note: authority == null -> hierarchical
-    // (authority == null && device == null && !absolutePath) -> scheme == null
-    return authority == null && device == null && !absolutePath &&
-      segments.length == 0 && query == null && fragment == null;
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI that may refer
-   * directly to a locally accessible file.  This is considered to be the
-   * case for a file-scheme absolute URI, or for a relative URI with no query;
-   * <code>false</code> is returned otherwise.
-   */
-  public boolean isFile()
-  {
-    return isHierarchical() &&
-      ((isRelative() && !hasQuery()) || SCHEME_FILE.equalsIgnoreCase(scheme));
-  }
-
-  // Returns true if this is an archive URI.  If so, we should expect that
-  // it is also hierarchical, with an authority (consisting of an absolute
-  // URI followed by "!"), no device, and an absolute path.
-  private boolean isArchive()
-  {
-    return isArchiveScheme(scheme);
-  }
-
-  /**
-   * Returns <code>true</code> if the specified <code>value</code> would be
-   * valid as the scheme of an <a
-   * href="#archive_explanation">archive URI</a>; <code>false</code>
-   * otherwise.
-   */
-  public static boolean isArchiveScheme(String value)
-  {
-    return value != null && archiveSchemes.contains(value.toLowerCase());
-  }
-  
-  /**
-   * Returns the hash code.
-   */
-  public int hashCode()
-  {
-    return hashCode;
-  }
-
-  /**
-   * Returns <code>true</code> if <code>obj</code> is an instance of
-   * <code>URI</code> equal to this one; <code>false</code> otherwise.
-   *
-   * <p>Equality is determined strictly by comparing components, not by
-   * attempting to interpret what resource is being identified.  The
-   * comparison of schemes is case-insensitive.
-   */
-  public boolean equals(Object obj)
-  {
-    if (this == obj) return true;
-    if (!(obj instanceof URI)) return false;
-    URI uri = (URI) obj;
-
-    return hashCode == uri.hashCode() &&
-      hierarchical == uri.isHierarchical() &&
-      absolutePath == uri.hasAbsolutePath() &&
-      equals(scheme, uri.scheme(), true) &&
-      equals(authority, hierarchical ? uri.authority() : uri.opaquePart()) &&
-      equals(device, uri.device()) &&
-      equals(query, uri.query()) && 
-      equals(fragment, uri.fragment()) &&
-      segmentsEqual(uri);
-  }
-
-  // Tests whether this URI's path segment array is equal to that of the
-  // given uri.
-  private boolean segmentsEqual(URI uri)
-  {
-    if (segments.length != uri.segmentCount()) return false;
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      if (!segments[i].equals(uri.segment(i))) return false;
-    }
-    return true;
-  }
-
-  // Tests two objects for equality, tolerating nulls; null is considered
-  // to be a valid value that is only equal to itself.
-  private static boolean equals(Object o1, Object o2)
-  {
-    return o1 == null ? o2 == null : o1.equals(o2);
-  }
-
-  // Tests two strings for equality, tolerating nulls and optionally
-  // ignoring case.
-  private static boolean equals(String s1, String s2, boolean ignoreCase)
-  {
-    return s1 == null ? s2 == null :
-      ignoreCase ? s1.equalsIgnoreCase(s2) : s1.equals(s2);
-  }
-
-  /**
-   * If this is an absolute URI, returns the scheme component;
-   * <code>null</code> otherwise.
-   */
-  public String scheme()
-  {
-    return scheme;
-  }
-
-  /**
-   * If this is a non-hierarchical URI, returns the opaque part component;
-   * <code>null</code> otherwise.
-   */
-  public String opaquePart()
-  {
-    return isHierarchical() ? null : authority;
-  }
-
-  /**
-   * If this is a hierarchical URI with an authority component, returns it;
-   * <code>null</code> otherwise.
-   */
-  public String authority()
-  {
-    return isHierarchical() ? authority : null;
-  }
-
-  /**
-   * If this is a hierarchical URI with an authority component that has a
-   * user info portion, returns it; <code>null</code> otherwise.
-   */
-  public String userInfo()
-  { 
-    if (!hasAuthority()) return null;
-   
-    int i = authority.indexOf(USER_INFO_SEPARATOR);
-    return i < 0 ? null : authority.substring(0, i);
-  }
-
-  /**
-   * If this is a hierarchical URI with an authority component that has a
-   * host portion, returns it; <code>null</code> otherwise.
-   */
-  public String host()
-  {
-    if (!hasAuthority()) return null;
-    
-    int i = authority.indexOf(USER_INFO_SEPARATOR);
-    int j = authority.indexOf(PORT_SEPARATOR);
-    return j < 0 ? authority.substring(i + 1) : authority.substring(i + 1, j);
-  }
-
-  /**
-   * If this is a hierarchical URI with an authority component that has a
-   * port portion, returns it; <code>null</code> otherwise.
-   */
-  public String port()
-  {
-    if (!hasAuthority()) return null;
-
-    int i = authority.indexOf(PORT_SEPARATOR);
-    return i < 0 ? null : authority.substring(i + 1);
-  }
-
-  /**
-   * If this is a hierarchical URI with a device component, returns it;
-   * <code>null</code> otherwise.
-   */
-  public String device()
-  {
-    return device;
-  }
-
-  /**
-   * If this is a hierarchical URI with a path, returns an array containing
-   * the segments of the path; an empty array otherwise.  The leading
-   * separator in an absolute path is not represented in this array, but a
-   * trailing separator is represented by an empty-string segment as the
-   * final element.
-   */
-  public String[] segments()
-  {
-    return (String[])segments.clone();
-  }
-
-  /**
-   * Returns an unmodifiable list containing the same segments as the array
-   * returned by {@link #segments segments}.
-   */
-  public List segmentsList()
-  {
-    return Collections.unmodifiableList(Arrays.asList(segments));
-  }
-
-  /**
-   * Returns the number of elements in the segment array that would be
-   * returned by {@link #segments segments}.
-   */
-  public int segmentCount()
-  {
-    return segments.length;
-  }
-
-  /**
-   * Provides fast, indexed access to individual segments in the path
-   * segment array.
-   *
-   * @exception java.lang.IndexOutOfBoundsException if <code>i < 0</code> or
-   * <code>i >= segmentCount()</code>.
-   */
-  public String segment(int i)
-  {
-    return segments[i];
-  }
-
-  /**
-   * Returns the last segment in the segment array, or <code>null</code>.
-   */
-  public String lastSegment()
-  {
-    int len = segments.length;
-    if (len == 0) return null;
-    return segments[len - 1];
-  }
-
-  /**
-   * If this is a hierarchical URI with a path, returns a string
-   * representation of the path; <code>null</code> otherwise.  The path
-   * consists of a leading segment separator character (a slash), if the
-   * path is absolute, followed by the slash-separated path segments.  If
-   * this URI has a separate <a href="#device_explanation">device
-   * component</a>, it is <em>not</em> included in the path.
-   */
-  public String path()
-  {
-    if (!hasPath()) return null;
-
-    StringBuffer result = new StringBuffer();
-    if (hasAbsolutePath()) result.append(SEGMENT_SEPARATOR);
-
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      if (i != 0) result.append(SEGMENT_SEPARATOR);
-      result.append(segments[i]);
-    }
-    return result.toString();
-  }
-
-  /**
-   * If this is a hierarchical URI with a path, returns a string
-   * representation of the path, including the authority and the 
-   * <a href="#device_explanation">device component</a>; 
-   * <code>null</code> otherwise.  
-   *
-   * <p>If there is no authority, the format of this string is:
-   * <pre>
-   *   device/pathSegment1/pathSegment2...</pre>
-   *
-   * <p>If there is an authority, it is:
-   * <pre>
-   *   //authority/device/pathSegment1/pathSegment2...</pre>
-   *
-   * <p>For an <a href="#archive_explanation">archive URI</a>, it's just:
-   * <pre>
-   *   authority/pathSegment1/pathSegment2...</pre>
-   */
-  public String devicePath()
-  {
-    if (!hasPath()) return null;
-
-    StringBuffer result = new StringBuffer();
-
-    if (hasAuthority())
-    {
-      if (!isArchive()) result.append(AUTHORITY_SEPARATOR);
-      result.append(authority);
-
-      if (hasDevice()) result.append(SEGMENT_SEPARATOR);
-    }
-
-    if (hasDevice()) result.append(device);
-    if (hasAbsolutePath()) result.append(SEGMENT_SEPARATOR);
-
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      if (i != 0) result.append(SEGMENT_SEPARATOR);
-      result.append(segments[i]);
-    }
-    return result.toString();
-  }
-
-  /**
-   * If this is a hierarchical URI with a query component, returns it;
-   * <code>null</code> otherwise.
-   */
-  public String query()
-  {
-    return query;
-  }
-
-
-  /**
-   * Returns the URI formed from this URI and the given query.
-   *
-   * @exception java.lang.IllegalArgumentException if
-   * <code>query</code> is not a valid query (portion) according
-   * to {@link #validQuery validQuery}.
-   */
-  public URI appendQuery(String query)
-  {
-    if (!validQuery(query))
-    {
-      throw new IllegalArgumentException(
-        "invalid query portion: " + query);
-    }
-    return new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); 
-  }
-
-  /**
-   * If this URI has a non-null {@link #query query}, returns the URI
-   * formed by removing it; this URI unchanged, otherwise.
-   */
-  public URI trimQuery()
-  {
-    if (query == null)
-    {
-      return this;
-    }
-    else
-    {
-      return new URI(hierarchical, scheme, authority, device, absolutePath, segments, null, fragment); 
-    }
-  }
-
-  /**
-   * If this URI has a fragment component, returns it; <code>null</code>
-   * otherwise.
-   */
-  public String fragment()
-  {
-    return fragment;
-  }
-
-  /**
-   * Returns the URI formed from this URI and the given fragment.
-   *
-   * @exception java.lang.IllegalArgumentException if
-   * <code>fragment</code> is not a valid fragment (portion) according
-   * to {@link #validFragment validFragment}.
-   */
-  public URI appendFragment(String fragment)
-  {
-    if (!validFragment(fragment))
-    {
-      throw new IllegalArgumentException(
-        "invalid fragment portion: " + fragment);
-    }
-    URI result = new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, fragment); 
-
-    if (!hasFragment())
-    {
-      result.cachedTrimFragment = this;
-    }
-    return result;
-  }
-
-  /**
-   * If this URI has a non-null {@link #fragment fragment}, returns the URI
-   * formed by removing it; this URI unchanged, otherwise.
-   */
-  public URI trimFragment()
-  {
-    if (fragment == null)
-    {
-      return this;
-    }
-    else if (cachedTrimFragment == null)
-    {
-      cachedTrimFragment = new URI(hierarchical, scheme, authority, device, absolutePath, segments, query, null); 
-    }
-
-    return cachedTrimFragment;
-  }
-
-  /**
-   * Resolves this URI reference against a <code>base</code> absolute
-   * hierarchical URI, returning the resulting absolute URI.  If already
-   * absolute, the URI itself is returned.  URI resolution is described in
-   * detail in section 5.2 of <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC
-   * 2396</a>, "Resolving Relative References to Absolute Form."
-   *
-   * <p>During resolution, empty segments, self references ("."), and parent
-   * references ("..") are interpreted, so that they can be removed from the
-   * path.  Step 6(g) gives a choice of how to handle the case where parent
-   * references point to a path above the root: the offending segments can
-   * be preserved or discarded.  This method preserves them.  To have them
-   * discarded, please use the two-parameter form of {@link
-   * #resolve(URI, boolean) resolve}.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>base</code> is
-   * non-hierarchical or is relative.
-   */
-  public URI resolve(URI base)
-  {
-    return resolve(base, true);
-  }
-
-  /**
-   * Resolves this URI reference against a <code>base</code> absolute
-   * hierarchical URI, returning the resulting absolute URI.  If already
-   * absolute, the URI itself is returned.  URI resolution is described in
-   * detail in section 5.2 of <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC
-   * 2396</a>, "Resolving Relative References to Absolute Form."
-   *
-   * <p>During resultion, empty segments, self references ("."), and parent
-   * references ("..") are interpreted, so that they can be removed from the
-   * path.  Step 6(g) gives a choice of how to handle the case where parent
-   * references point to a path above the root: the offending segments can
-   * be preserved or discarded.  This method can do either.
-   *
-   * @param preserveRootParents <code>true</code> if segments refering to the
-   * parent of the root path are to be preserved; <code>false</code> if they
-   * are to be discarded.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>base</code> is
-   * non-hierarchical or is relative.
-   */
-  public URI resolve(URI base, boolean preserveRootParents)
-  {
-    if (!base.isHierarchical() || base.isRelative())
-    {
-      throw new IllegalArgumentException(
-        "resolve against non-hierarchical or relative base");
-    }
-
-    // an absolute URI needs no resolving
-    if (!isRelative()) return this;
-
-    // note: isRelative() -> hierarchical
-
-    String newAuthority = authority;
-    String newDevice = device;
-    boolean newAbsolutePath = absolutePath;
-    String[] newSegments = segments;
-    String newQuery = query;
-    // note: it's okay for two URIs to share a segments array, since
-    // neither will ever modify it
-    
-    if (authority == null)
-    {
-      // no authority: use base's
-      newAuthority = base.authority();
-
-      if (device == null)
-      {
-        // no device: use base's
-        newDevice = base.device();
-
-        if (hasEmptyPath() && query == null)
-        {
-          // current document reference: use base path and query
-          newAbsolutePath = base.hasAbsolutePath();
-          newSegments = base.segments();
-          newQuery = base.query();
-        }
-        else if (hasRelativePath())
-        {
-          // relative path: merge with base and keep query (note: if the
-          // base has no path and this a non-empty relative path, there is
-          // an implied root in the resulting path) 
-          newAbsolutePath = base.hasAbsolutePath() || !hasEmptyPath();
-          newSegments = newAbsolutePath ? mergePath(base, preserveRootParents)
-            : NO_SEGMENTS;
-        }
-        // else absolute path: keep it and query
-      }
-      // else keep device, path, and query
-    }
-    // else keep authority, device, path, and query
-    
-    // always keep fragment, even if null, and use scheme from base;
-    // no validation needed since all components are from existing URIs
-    return new URI(true, base.scheme(), newAuthority, newDevice,
-                   newAbsolutePath, newSegments, newQuery, fragment);
-  }
-
-  // Merges this URI's relative path with the base non-relative path.  If
-  // base has no path, treat it as the root absolute path, unless this has
-  // no path either.
-  private String[] mergePath(URI base, boolean preserveRootParents)
-  {
-    if (base.hasRelativePath())
-    {
-      throw new IllegalArgumentException("merge against relative path");
-    }
-    if (!hasRelativePath())
-    {
-      throw new IllegalStateException("merge non-relative path");
-    }
-
-    int baseSegmentCount = base.segmentCount();
-    int segmentCount = segments.length;
-    String[] stack = new String[baseSegmentCount + segmentCount];
-    int sp = 0;
-
-    // use a stack to accumulate segments of base, except for the last
-    // (i.e. skip trailing separator and anything following it), and of
-    // relative path
-    for (int i = 0; i < baseSegmentCount - 1; i++)
-    {
-      sp = accumulate(stack, sp, base.segment(i), preserveRootParents);
-    }
-
-    for (int i = 0; i < segmentCount; i++)
-    {
-      sp = accumulate(stack, sp, segments[i], preserveRootParents);
-    }
-
-    // if the relative path is empty or ends in an empty segment, a parent 
-    // reference, or a self referenfce, add a trailing separator to a
-    // non-empty path
-    if (sp > 0 &&  (segmentCount == 0 ||
-                    SEGMENT_EMPTY.equals(segments[segmentCount - 1]) ||
-                    SEGMENT_PARENT.equals(segments[segmentCount - 1]) ||
-                    SEGMENT_SELF.equals(segments[segmentCount - 1])))
-    {
-      stack[sp++] = SEGMENT_EMPTY;
-    }
-
-    // return a correctly sized result
-    String[] result = new String[sp];
-    System.arraycopy(stack, 0, result, 0, sp);
-    return result;
-  }
-
-  // Adds a segment to a stack, skipping empty segments and self references,
-  // and interpreting parent references.
-  private static int accumulate(String[] stack, int sp, String segment,
-                                boolean preserveRootParents)
-  {
-    if (SEGMENT_PARENT.equals(segment))
-    {
-      if (sp == 0)
-      {
-        // special care must be taken for a root's parent reference: it is
-        // either ignored or the symbolic reference itself is pushed
-        if (preserveRootParents) stack[sp++] = segment;
-      }
-      else
-      {
-        // unless we're already accumulating root parent references,
-        // parent references simply pop the last segment descended
-        if (SEGMENT_PARENT.equals(stack[sp - 1])) stack[sp++] = segment;
-        else sp--;
-      }
-    }
-    else if (!SEGMENT_EMPTY.equals(segment) && !SEGMENT_SELF.equals(segment))
-    {
-      // skip empty segments and self references; push everything else
-      stack[sp++] = segment;
-    }
-    return sp;
-  }
-
-  /**
-   * Finds the shortest relative or, if necessary, the absolute URI that,
-   * when resolved against the given <code>base</code> absolute hierarchical
-   * URI using {@link #resolve(URI) resolve}, will yield this absolute URI.  
-   *
-   * @exception java.lang.IllegalArgumentException if <code>base</code> is
-   * non-hierarchical or is relative.
-   * @exception java.lang.IllegalStateException if <code>this</code> is
-   * relative.
-   */
-  public URI deresolve(URI base)
-  {
-    return deresolve(base, true, false, true);
-  }
-
-  /**
-   * Finds an absolute URI that, when resolved against the given
-   * <code>base</code> absolute hierarchical URI using {@link
-   * #resolve(URI, boolean) resolve}, will yield this absolute URI.
-   *
-   * @param preserveRootParents the boolean argument to <code>resolve(URI,
-   * boolean)</code> for which the returned URI should resolve to this URI.
-   * @param anyRelPath if <code>true</code>, the returned URI's path (if
-   * any) will be relative, if possible.  If <code>false</code>, the form of
-   * the result's path will depend upon the next parameter.
-   * @param shorterRelPath if <code>anyRelPath</code> is <code>false</code>
-   * and this parameter is <code>true</code>, the returned URI's path (if
-   * any) will be relative, if one can be found that is no longer (by number
-   * of segments) than the absolute path.  If both <code>anyRelPath</code>
-   * and this parameter are <code>false</code>, it will be absolute.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>base</code> is
-   * non-hierarchical or is relative.
-   * @exception java.lang.IllegalStateException if <code>this</code> is
-   * relative.
-   */
-  public URI deresolve(URI base, boolean preserveRootParents,
-                       boolean anyRelPath, boolean shorterRelPath)
-  {
-    if (!base.isHierarchical() || base.isRelative())
-    {
-      throw new IllegalArgumentException(
-        "deresolve against non-hierarchical or relative base");
-    }
-    if (isRelative())
-    {
-      throw new IllegalStateException("deresolve relative URI");
-    }
-
-    // note: these assertions imply that neither this nor the base URI has a
-    // relative path; thus, both have either an absolute path or no path
-    
-    // different scheme: need complete, absolute URI
-    if (!scheme.equalsIgnoreCase(base.scheme())) return this;
-
-    // since base must be hierarchical, and since a non-hierarchical URI
-    // must have both scheme and opaque part, the complete absolute URI is
-    // needed to resolve to a non-hierarchical URI
-    if (!isHierarchical()) return this;
-
-    String newAuthority = authority;
-    String newDevice = device;
-    boolean newAbsolutePath = absolutePath;
-    String[] newSegments = segments;
-    String newQuery = query;
-
-    if (equals(authority, base.authority()) &&
-        (hasDevice() || hasPath() || (!base.hasDevice() && !base.hasPath())))
-    {
-      // matching authorities and no device or path removal
-      newAuthority = null;
-
-      if (equals(device, base.device()) && (hasPath() || !base.hasPath()))
-      {
-        // matching devices and no path removal
-        newDevice = null;
-
-        // exception if (!hasPath() && base.hasPath())
-
-        if (!anyRelPath && !shorterRelPath)
-        {
-          // user rejects a relative path: keep absolute or no path
-        }
-        else if (hasPath() == base.hasPath() && segmentsEqual(base) &&
-                 equals(query, base.query()))
-        {
-          // current document reference: keep no path or query
-          newAbsolutePath = false;
-          newSegments = NO_SEGMENTS;
-          newQuery = null;
-        }
-        else if (!hasPath() && !base.hasPath())
-        {
-          // no paths: keep query only
-          newAbsolutePath = false;
-          newSegments = NO_SEGMENTS;
-        }
-        // exception if (!hasAbsolutePath())
-        else if (hasCollapsableSegments(preserveRootParents))
-        {
-          // path form demands an absolute path: keep it and query
-        }
-        else
-        {
-          // keep query and select relative or absolute path based on length
-          String[] rel = findRelativePath(base, preserveRootParents);
-          if (anyRelPath || segments.length > rel.length)
-          {
-            // user demands a relative path or the absolute path is longer
-            newAbsolutePath = false;
-            newSegments = rel;
-          }
-          // else keep shorter absolute path
-        }
-      }
-      // else keep device, path, and query
-    }
-    // else keep authority, device, path, and query
-
-    // always include fragment, even if null;
-    // no validation needed since all components are from existing URIs
-    return new URI(true, null, newAuthority, newDevice, newAbsolutePath,
-                   newSegments, newQuery, fragment);
-  }
-
-  // Returns true if the non-relative path includes segments that would be
-  // collapsed when resolving; false otherwise.  If preserveRootParents is
-  // true, collapsable segments include any empty segments, except for the
-  // last segment, as well as and parent and self references.  If
-  // preserveRootsParents is false, parent references are not collapsable if
-  // they are the first segment or preceeded only by other parent
-  // references.
-  private boolean hasCollapsableSegments(boolean preserveRootParents)
-  {
-    if (hasRelativePath())
-    {
-      throw new IllegalStateException("test collapsability of relative path");
-    }
-
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      String segment = segments[i];
-      if ((i < len - 1 && SEGMENT_EMPTY.equals(segment)) ||
-          SEGMENT_SELF.equals(segment) ||
-          SEGMENT_PARENT.equals(segment) && (
-            !preserveRootParents || (
-              i != 0 && !SEGMENT_PARENT.equals(segments[i - 1]))))
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  // Returns the shortest relative path between the the non-relative path of
-  // the given base and this absolute path.  If the base has no path, it is
-  // treated as the root absolute path.
-  private String[] findRelativePath(URI base, boolean preserveRootParents)
-  {
-    if (base.hasRelativePath())
-    {
-      throw new IllegalArgumentException(
-        "find relative path against base with relative path");
-    }
-    if (!hasAbsolutePath())
-    {
-      throw new IllegalArgumentException(
-        "find relative path of non-absolute path");
-    }
-
-    // treat an empty base path as the root absolute path
-    String[] startPath = base.collapseSegments(preserveRootParents);
-    String[] endPath = segments;
-
-    // drop last segment from base, as in resolving
-    int startCount = startPath.length > 0 ? startPath.length - 1 : 0;
-    int endCount = endPath.length;
-
-    // index of first segment that is different between endPath and startPath
-    int diff = 0;
-
-    // if endPath is shorter than startPath, the last segment of endPath may
-    // not be compared: because startPath has been collapsed and had its
-    // last segment removed, all preceeding segments can be considered non-
-    // empty and followed by a separator, while the last segment of endPath
-    // will either be non-empty and not followed by a separator, or just empty
-    for (int count = startCount < endCount ? startCount : endCount - 1;
-         diff < count && startPath[diff].equals(endPath[diff]); diff++);
-
-    int upCount = startCount - diff;
-    int downCount = endCount - diff;
-
-    // a single separator, possibly preceeded by some parent reference
-    // segments, is redundant
-    if (downCount == 1 && SEGMENT_EMPTY.equals(endPath[endCount - 1]))
-    {
-      downCount = 0;
-    }
-
-    // an empty path needs to be replaced by a single "." if there is no
-    // query, to distinguish it from a current document reference
-    if (upCount + downCount == 0)
-    {
-      if (query == null) return new String[] { SEGMENT_SELF };
-      return NO_SEGMENTS;
-    }
-
-    // return a correctly sized result
-    String[] result = new String[upCount + downCount];
-    Arrays.fill(result, 0, upCount, SEGMENT_PARENT);
-    System.arraycopy(endPath, diff, result, upCount, downCount);
-    return result;
-  }
-
-  // Collapses non-ending empty segments, parent references, and self
-  // references in a non-relative path, returning the same path that would
-  // be produced from the base hierarchical URI as part of a resolve.
-  String[] collapseSegments(boolean preserveRootParents)
-  {
-    if (hasRelativePath())
-    {
-      throw new IllegalStateException("collapse relative path");
-    }
-
-    if (!hasCollapsableSegments(preserveRootParents)) return segments();
-
-    // use a stack to accumulate segments
-    int segmentCount = segments.length;
-    String[] stack = new String[segmentCount];
-    int sp = 0;
-
-    for (int i = 0; i < segmentCount; i++)
-    {
-      sp = accumulate(stack, sp, segments[i], preserveRootParents);
-    }
-
-    // if the path is non-empty and originally ended in an empty segment, a
-    // parent reference, or a self reference, add a trailing separator
-    if (sp > 0 && (SEGMENT_EMPTY.equals(segments[segmentCount - 1]) ||
-                   SEGMENT_PARENT.equals(segments[segmentCount - 1]) ||
-                   SEGMENT_SELF.equals(segments[segmentCount - 1])))
-    {                   
-      stack[sp++] = SEGMENT_EMPTY;
-    }
-
-    // return a correctly sized result
-    String[] result = new String[sp];
-    System.arraycopy(stack, 0, result, 0, sp);
-    return result;
-  }
-
-  /**
-   * Returns the string representation of this URI.  For a generic,
-   * non-hierarchical URI, this looks like:
-   * <pre>
-   *   scheme:opaquePart#fragment</pre>
-   * 
-   * <p>For a hierarchical URI, it looks like:
-   * <pre>
-   *   scheme://authority/device/pathSegment1/pathSegment2...?query#fragment</pre>
-   *
-   * <p>For an <a href="#archive_explanation">archive URI</a>, it's just:
-   * <pre>
-   *   scheme:authority/pathSegment1/pathSegment2...?query#fragment</pre>
-   * <p>Of course, absent components and their separators will be omitted.
-   */
-  public String toString()
-  {
-    if (cachedToString == null)
-    {
-      StringBuffer result = new StringBuffer();
-      if (!isRelative())
-      {
-        result.append(scheme);
-        result.append(SCHEME_SEPARATOR);
-      }
-
-      if (isHierarchical())
-      {
-        if (hasAuthority())
-        {
-          if (!isArchive()) result.append(AUTHORITY_SEPARATOR);
-          result.append(authority);
-        }
-
-        if (hasDevice())
-        {
-          result.append(SEGMENT_SEPARATOR);
-          result.append(device);
-        }
-
-        if (hasAbsolutePath()) result.append(SEGMENT_SEPARATOR);
-
-        for (int i = 0, len = segments.length; i < len; i++)
-        {
-          if (i != 0) result.append(SEGMENT_SEPARATOR);
-          result.append(segments[i]);
-        }
-
-        if (hasQuery())
-        {
-          result.append(QUERY_SEPARATOR);
-          result.append(query);
-        }
-      }
-      else
-      {
-        result.append(authority);
-      }
-
-      if (hasFragment())
-      {
-        result.append(FRAGMENT_SEPARATOR);
-        result.append(fragment);
-      }
-      cachedToString = result.toString();
-    }
-    return cachedToString;
-  }
-
-  // Returns a string representation of this URI for debugging, explicitly
-  // showing each of the components.
-  String toString(boolean includeSimpleForm)
-  {
-    StringBuffer result = new StringBuffer();
-    if (includeSimpleForm) result.append(toString());
-    result.append("\n hierarchical: ");
-    result.append(hierarchical);
-    result.append("\n       scheme: ");
-    result.append(scheme);
-    result.append("\n    authority: ");
-    result.append(authority);
-    result.append("\n       device: ");
-    result.append(device);
-    result.append("\n absolutePath: ");
-    result.append(absolutePath);
-    result.append("\n     segments: ");
-    if (segments.length == 0) result.append("<empty>");
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      if (i > 0) result.append("\n               ");
-      result.append(segments[i]);
-    }
-    result.append("\n        query: ");
-    result.append(query);
-    result.append("\n     fragment: ");
-    result.append(fragment);
-    return result.toString();
-  }
-
-  /**
-   * If this URI may refer directly to a locally accessible file, as
-   * determined by {@link #isFile isFile}, {@link decode decodes} and formats  
-   * the URI as a pathname to that file; returns null otherwise.
-   *
-   * <p>If there is no authority, the format of this string is:
-   * <pre>
-   *   device/pathSegment1/pathSegment2...</pre>
-   *
-   * <p>If there is an authority, it is:
-   * <pre>
-   *   //authority/device/pathSegment1/pathSegment2...</pre>
-   * 
-   * <p>However, the character used as a separator is system-dependant and
-   * obtained from {@link java.io.File#separatorChar}.
-   */
-  public String toFileString()
-  {
-    if (!isFile()) return null;
-
-    StringBuffer result = new StringBuffer();
-    char separator = File.separatorChar;
-
-    if (hasAuthority())
-    {
-      result.append(separator);
-      result.append(separator);
-      result.append(authority);
-
-      if (hasDevice()) result.append(separator);
-    }
-
-    if (hasDevice()) result.append(device);
-    if (hasAbsolutePath()) result.append(separator);
-
-    for (int i = 0, len = segments.length; i < len; i++)
-    {
-      if (i != 0) result.append(separator);
-      result.append(segments[i]);
-    }
-
-    return decode(result.toString());
-  }
-
-  /**
-   * Returns the URI formed by appending the specified segment on to the end
-   * of the path of this URI, if hierarchical; this URI unchanged,
-   * otherwise.  If this URI has an authority and/or device, but no path,
-   * the segment becomes the first under the root in an absolute path.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>segment</code>
-   * is not a valid segment according to {@link #validSegment}.
-   */
-  public URI appendSegment(String segment)
-  {
-    if (!validSegment(segment))
-    {
-      throw new IllegalArgumentException("invalid segment: " + segment);
-    }
-
-    if (!isHierarchical()) return this;
-
-    // absolute path or no path -> absolute path
-    boolean newAbsolutePath = !hasRelativePath();
-
-    int len = segments.length;
-    String[] newSegments = new String[len + 1];
-    System.arraycopy(segments, 0, newSegments, 0, len);
-    newSegments[len] = segment;
-
-    return new URI(true, scheme, authority, device, newAbsolutePath,
-                   newSegments, query, fragment);
-  }
-
-  /**
-   * Returns the URI formed by appending the specified segments on to the
-   * end of the path of this URI, if hierarchical; this URI unchanged,
-   * otherwise.  If this URI has an authority and/or device, but no path,
-   * the segments are made to form an absolute path.
-   *
-   * @param segments an array of non-null strings, each representing one
-   * segment of the path.  If desired, a trailing separator should be
-   * represented by an empty-string segment as the last element of the
-   * array.
-   *
-   * @exception java.lang.IllegalArgumentException if <code>segments</code>
-   * is not a valid segment array according to {@link #validSegments}.
-   */
-  public URI appendSegments(String[] segments)
-  {
-    if (!validSegments(segments))
-    {
-      String s = segments == null ? "invalid segments: " + segments :
-        "invalid segment: " + firstInvalidSegment(segments);
-      throw new IllegalArgumentException(s);
-    }
-
-    if (!isHierarchical()) return this;
-
-    // absolute path or no path -> absolute path
-    boolean newAbsolutePath = !hasRelativePath(); 
-
-    int len = this.segments.length;
-    int segmentsCount = segments.length;
-    String[] newSegments = new String[len + segmentsCount];
-    System.arraycopy(this.segments, 0, newSegments, 0, len);
-    System.arraycopy(segments, 0, newSegments, len, segmentsCount);
-    
-    return new URI(true, scheme, authority, device, newAbsolutePath,
-                   newSegments, query, fragment);
-  }
-
-  /**
-   * Returns the URI formed by trimming the specified number of segments
-   * (including empty segments, such as one representing a trailing
-   * separator) from the end of the path of this URI, if hierarchical;
-   * otherwise, this URI is returned unchanged.
-   *
-   * <p>Note that if all segments are trimmed from an absolute path, the
-   * root absolute path remains.
-   * 
-   * @param i the number of segments to be trimmed in the returned URI.  If
-   * less than 1, this URI is returned unchanged; if equal to or greater
-   * than the number of segments in this URI's path, all segments are
-   * trimmed.  
-   */
-  public URI trimSegments(int i)
-  {
-    if (!isHierarchical() || i < 1) return this;
-
-    String[] newSegments = NO_SEGMENTS;
-    int len = segments.length - i;
-    if (len > 0)
-    {
-      newSegments = new String[len];
-      System.arraycopy(segments, 0, newSegments, 0, len);
-    }
-    return new URI(true, scheme, authority, device, absolutePath,
-                   newSegments, query, fragment);
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI that has a path
-   * that ends with a trailing separator; <code>false</code> otherwise.
-   *
-   * <p>A trailing separator is represented as an empty segment as the
-   * last segment in the path; note that this definition does <em>not</em>
-   * include the lone separator in the root absolute path.
-   */
-  public boolean hasTrailingPathSeparator()
-  {
-    return segments.length > 0 && 
-      SEGMENT_EMPTY.equals(segments[segments.length - 1]);
-  }
-
-  /**
-   * If this is a hierarchical URI whose path includes a file extension,
-   * that file extension is returned; null otherwise.  We define a file
-   * extension as any string following the last period (".") in the final
-   * path segment.  If there is no path, the path ends in a trailing
-   * separator, or the final segment contains no period, then we consider
-   * there to be no file extension.  If the final segment ends in a period,
-   * then the file extension is an empty string.
-   */
-  public String fileExtension()
-  {
-    int len = segments.length;
-    if (len == 0) return null;
-
-    String lastSegment = segments[len - 1];
-    int i = lastSegment.lastIndexOf(FILE_EXTENSION_SEPARATOR);
-    return i < 0 ? null : lastSegment.substring(i + 1);
-  }
-
-  /**
-   * Returns the URI formed by appending a period (".") followed by the
-   * specified file extension to the last path segment of this URI, if it is
-   * hierarchical with a non-empty path ending in a non-empty segment;
-   * otherwise, this URI is returned unchanged.
-
-   * <p>The extension is appended regardless of whether the segment already
-   * contains an extension.
-   *
-   * @exception java.lang.IllegalArgumentException if
-   * <code>fileExtension</code> is not a valid segment (portion) according
-   * to {@link #validSegment}.
-   */
-  public URI appendFileExtension(String fileExtension)
-  {
-    if (!validSegment(fileExtension))
-    {
-      throw new IllegalArgumentException(
-        "invalid segment portion: " + fileExtension);
-    }
-
-    int len = segments.length;
-    if (len == 0) return this;
-
-    String lastSegment = segments[len - 1];
-    if (SEGMENT_EMPTY.equals(lastSegment)) return this;
-    StringBuffer newLastSegment = new StringBuffer(lastSegment);
-    newLastSegment.append(FILE_EXTENSION_SEPARATOR);
-    newLastSegment.append(fileExtension);
-
-    String[] newSegments = new String[len];
-    System.arraycopy(segments, 0, newSegments, 0, len - 1);
-    newSegments[len - 1] = newLastSegment.toString();
-    
-    // note: segments.length > 0 -> hierarchical
-    return new URI(true, scheme, authority, device, absolutePath,
-                   newSegments, query, fragment); 
-  }
-
-  /**
-   * If this URI has a non-null {@link #fileExtension fileExtension},
-   * returns the URI formed by removing it; this URI unchanged, otherwise.
-   */
-  public URI trimFileExtension()
-  {
-    int len = segments.length;
-    if (len == 0) return this;
-
-    String lastSegment = segments[len - 1];
-    int i = lastSegment.lastIndexOf(FILE_EXTENSION_SEPARATOR);
-    if (i < 0) return this;
-
-    String newLastSegment = lastSegment.substring(0, i);
-    String[] newSegments = new String[len];
-    System.arraycopy(segments, 0, newSegments, 0, len - 1);
-    newSegments[len - 1] = newLastSegment;
-
-    // note: segments.length > 0 -> hierarchical
-    return new URI(true, scheme, authority, device, absolutePath,
-                   newSegments, query, fragment); 
-  }
-
-  /**
-   * Returns <code>true</code> if this is a hierarchical URI that ends in a
-   * slash; that is, it has a trailing path separator or is the root
-   * absolute path, and has no query and no fragment; <code>false</code>
-   * is returned otherwise.
-   */
-  public boolean isPrefix()
-  {
-    return hierarchical && query == null && fragment == null &&
-      (hasTrailingPathSeparator() || (absolutePath && segments.length == 0));
-  }
-
-  /**
-   * If this is a hierarchical URI reference and <code>oldPrefix</code> is a
-   * prefix of it, this returns the URI formed by replacing it by
-   * <code>newPrefix</code>; <code>null</code> otherwise.
-   *
-   * <p>In order to be a prefix, the <code>oldPrefix</code>'s
-   * {@link #isPrefix isPrefix} must return <code>true</code>, and it must
-   * match this URI's scheme, authority, and device.  Also, the paths must
-   * match, up to prefix's end.
-   *
-   * @exception java.lang.IllegalArgumentException if either
-   * <code>oldPrefix</code> or <code>newPrefix</code> is not a prefix URI
-   * according to {@link #isPrefix}.
-   */
-  public URI replacePrefix(URI oldPrefix, URI newPrefix)
-  {
-    if (!oldPrefix.isPrefix() || !newPrefix.isPrefix())
-    {
-      String which = oldPrefix.isPrefix() ? "new" : "old";
-      throw new IllegalArgumentException("non-prefix " + which + " value");
-    }
-
-    // Get what's left of the segments after trimming the prefix.
-    String[] tailSegments = getTailSegments(oldPrefix);
-    if (tailSegments == null) return null;
-
-    // If the new prefix has segments, it is not the root absolute path,
-    // and we need to drop the trailing empty segment and append the tail
-    // segments.
-    String[] mergedSegments = tailSegments;
-    if (newPrefix.segmentCount() != 0)
-    {
-      int segmentsToKeep = newPrefix.segmentCount() - 1;
-      mergedSegments = new String[segmentsToKeep + tailSegments.length];
-      System.arraycopy(newPrefix.segments(), 0, mergedSegments, 0,
-                       segmentsToKeep);
-
-      if (tailSegments.length != 0)
-      {
-        System.arraycopy(tailSegments, 0, mergedSegments, segmentsToKeep,
-                         tailSegments.length);
-      }
-    }
-
-    // no validation needed since all components are from existing URIs
-    return new URI(true, newPrefix.scheme(), newPrefix.authority(),
-                   newPrefix.device(), newPrefix.hasAbsolutePath(),
-                   mergedSegments, query, fragment);
-  }
-
-  // If this is a hierarchical URI reference and prefix is a prefix of it,
-  // returns the portion of the path remaining after that prefix has been
-  // trimmed; null otherwise.
-  private String[] getTailSegments(URI prefix)
-  {
-    if (!prefix.isPrefix())
-    {
-      throw new IllegalArgumentException("non-prefix trim");
-    }
-
-    // Don't even consider it unless this is hierarchical and has scheme,
-    // authority, device and path absoluteness equal to those of the prefix.
-    if (!hierarchical ||
-        !equals(scheme, prefix.scheme(), true) ||
-        !equals(authority, prefix.authority()) ||
-        !equals(device, prefix.device()) ||
-        absolutePath != prefix.hasAbsolutePath())
-    {
-      return null;
-    }
-
-    // If the prefix has no segments, then it is the root absolute path, and
-    // we know this is an absolute path, too.
-    if (prefix.segmentCount() == 0) return segments;
-
-    // This must have no fewer segments than the prefix.  Since the prefix
-    // is not the root absolute path, its last segment is empty; all others
-    // must match.
-    int i = 0;
-    int segmentsToCompare = prefix.segmentCount() - 1;
-    if (segments.length <= segmentsToCompare) return null;
-
-    for (; i < segmentsToCompare; i++)
-    {
-      if (!segments[i].equals(prefix.segment(i))) return null;
-    }
-
-    // The prefix really is a prefix of this.  If this has just one more,
-    // empty segment, the paths are the same.
-    if (i == segments.length - 1 && SEGMENT_EMPTY.equals(segments[i]))
-    {
-      return NO_SEGMENTS;
-    }
-    
-    // Otherwise, the path needs only the remaining segments.
-    String[] newSegments = new String[segments.length - i];
-    System.arraycopy(segments, i, newSegments, 0, newSegments.length);
-    return newSegments;
-  }
-
-  /**
-   * Encodes a string so as to produce a valid opaque part value, as defined
-   * by the RFC.  All excluded characters, such as space and <code>#</code>,
-   * are escaped, as is <code>/</code> if it is the first character.
-   * 
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   */
-  public static String encodeOpaquePart(String value, boolean ignoreEscaped)
-  {
-    String result = encode(value, URIC_HI, URIC_LO, ignoreEscaped);
-    return result != null && result.length() > 0 && result.charAt(0) == SEGMENT_SEPARATOR ?
-      "%2F" + result.substring(1) :
-      result;
-  }
-
-  /**
-   * Encodes a string so as to produce a valid authority, as defined by the
-   * RFC.  All excluded characters, such as space and <code>#</code>,
-   * are escaped, as are <code>/</code> and <code>?</code>
-   * 
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   */
-  public static String encodeAuthority(String value, boolean ignoreEscaped)
-  {
-    return encode(value, SEGMENT_CHAR_HI, SEGMENT_CHAR_LO, ignoreEscaped);
-  }
-
-  /**
-   * Encodes a string so as to produce a valid segment, as defined by the
-   * RFC.  All excluded characters, such as space and <code>#</code>,
-   * are escaped, as are <code>/</code> and <code>?</code>
-   * 
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   */
-  public static String encodeSegment(String value, boolean ignoreEscaped)
-  {
-    return encode(value, SEGMENT_CHAR_HI, SEGMENT_CHAR_LO, ignoreEscaped);
-  }
-
-  /**
-   * Encodes a string so as to produce a valid query, as defined by the RFC.
-   * Only excluded characters, such as space and <code>#</code>, are escaped.
-   * 
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   */
-  public static String encodeQuery(String value, boolean ignoreEscaped)
-  {
-    return encode(value, URIC_HI, URIC_LO, ignoreEscaped);
-  }
-
-  /**
-   * Encodes a string so as to produce a valid fragment, as defined by the
-   * RFC.  Only excluded characters, such as space and <code>#</code>, are
-   * escaped.
-   * 
-   * @param ignoreEscaped <code>true</code> to leave <code>%</code> characters
-   * unescaped if they already begin a valid three-character escape sequence;
-   * <code>false</code> to encode all <code>%</code> characters.  Note that
-   * if a <code>%</code> is not followed by 2 hex digits, it will always be
-   * escaped. 
-   */
-  public static String encodeFragment(String value, boolean ignoreEscaped)
-  {
-    return encode(value, URIC_HI, URIC_LO, ignoreEscaped);
-  }
-
-  // Encodes a complete URI, optionally leaving % characters unescaped when
-  // beginning a valid three-character escape sequence.  We assume that the
-  // last # begins the fragment.
-  private static String encodeURI(String uri, boolean ignoreEscaped)
-  {
-    if (uri == null) return null;
-
-    StringBuffer result = new StringBuffer();
-
-    int i = uri.indexOf(SCHEME_SEPARATOR);
-    if (i != -1)
-    {
-      String scheme = uri.substring(0, i);
-      result.append(scheme);
-      result.append(SCHEME_SEPARATOR);
-    }
-    
-    int j = uri.lastIndexOf(FRAGMENT_SEPARATOR);
-    if (j != -1)
-    {
-      String sspart = uri.substring(++i, j);
-      result.append(encode(sspart, URIC_HI, URIC_LO, ignoreEscaped));
-      result.append(FRAGMENT_SEPARATOR);
-
-      String fragment = uri.substring(++j);
-      result.append(encode(fragment, URIC_HI, URIC_LO, ignoreEscaped));
-    }
-    else
-    {
-      String sspart = uri.substring(++i);
-      result.append(encode(sspart, URIC_HI, URIC_LO, ignoreEscaped));
-    }
-    
-    return result.toString();
-  }
-
-  // Encodes the given string, replacing each ASCII character that is not in
-  // the set specified by the 128-bit bitmask and each non-ASCII character
-  // below 0xA0 by an escape sequence of % followed by two hex digits.  If
-  // % is not in the set but ignoreEscaped is true, then % will not be encoded
-  // iff it already begins a valid escape sequence.
-  private static String encode(String value, long highBitmask, long lowBitmask, boolean ignoreEscaped)
-  {
-    if (value == null) return null;
-
-    StringBuffer result = null;
-
-    for (int i = 0, len = value.length(); i < len; i++)
-    {
-      char c = value.charAt(i);
-
-      if (!matches(c, highBitmask, lowBitmask) && c < 160 &&
-          (!ignoreEscaped || !isEscaped(value, i)))
-      {
-        if (result == null)
-        {
-          result = new StringBuffer(value.substring(0, i));
-        }
-        appendEscaped(result, (byte)c);
-      }
-      else if (result != null)
-      {
-        result.append(c);
-      }
-    }
-    return result == null ? value : result.toString();
-  }
-
-  // Tests whether an escape occurs in the given string, starting at index i.
-  // An escape sequence is a % followed by two hex digits.
-  private static boolean isEscaped(String s, int i)
-  {
-    return s.charAt(i) == ESCAPE && s.length() > i + 2 &&
-      matches(s.charAt(i + 1), HEX_HI, HEX_LO) &&
-      matches(s.charAt(i + 2), HEX_HI, HEX_LO);
-  }
-
-  // Computes a three-character escape sequence for the byte, appending
-  // it to the StringBuffer.  Only characters up to 0xFF should be escaped;
-  // all but the least significant byte will be ignored.
-  private static void appendEscaped(StringBuffer result, byte b)
-  {
-    result.append(ESCAPE);
-
-    // The byte is automatically widened into an int, with sign extension,
-    // for shifting.  This can introduce 1's to the left of the byte, which
-    // must be cleared by masking before looking up the hex digit.
-    //
-    result.append(HEX_DIGITS[(b >> 4) & 0x0F]);
-    result.append(HEX_DIGITS[b & 0x0F]);
-  }
-
-  /**
-   * Decodes the given string, replacing each three-digit escape sequence by
-   * the character that it represents.  Incomplete escape sequences are
-   * ignored.
-   */
-  public static String decode(String value)
-  {
-    if (value == null) return null;
-
-    StringBuffer result = null;
-
-    for (int i = 0, len = value.length(); i < len; i++)
-    {
-      if (isEscaped(value, i)) 
-      {
-        if (result == null)
-        {
-          result = new StringBuffer(value.substring(0, i));
-        }
-        result.append(unescape(value.charAt(i + 1), value.charAt(i + 2)));
-        i += 2;
-      }
-      else if (result != null)
-      {
-        result.append(value.charAt(i));
-      }
-    }
-    return result == null ? value : result.toString();
-  }
-
-  // Returns the character encoded by % followed by the two given hex digits,
-  // which is always 0xFF or less, so can safely be casted to a byte.  If
-  // either character is not a hex digit, a bogus result will be returned.
-  private static char unescape(char highHexDigit, char lowHexDigit)
-  {
-    return (char)((valueOf(highHexDigit) << 4) | valueOf(lowHexDigit));
-  }
-
-  // Returns the int value of the given hex digit.
-  private static int valueOf(char hexDigit)
-  {
-    if (hexDigit >= 'A' && hexDigit <= 'F')
-    {
-      return hexDigit - 'A' + 10;
-    }
-    if (hexDigit >= 'a' && hexDigit <= 'f')
-    {
-      return hexDigit - 'a' + 10;
-    }
-    if (hexDigit >= '0' && hexDigit <= '9')
-    {
-      return hexDigit - '0';
-    }
-    return 0;
-  }
-
-  /*
-   * Returns <code>true</code> if this URI contains non-ASCII characters;
-   * <code>false</code> otherwise.
-   *
-   * This unused code is included for possible future use... 
-   */
-/*
-  public boolean isIRI()
-  {
-    return iri; 
-  }
-
-  // Returns true if the given string contains any non-ASCII characters;
-  // false otherwise.
-  private static boolean containsNonASCII(String value)
-  {
-    for (int i = 0, len = value.length(); i < len; i++)
-    {
-      if (value.charAt(i) > 127) return true;
-    }
-    return false;
-  }
-*/
-
-  /*
-   * If this is an {@link #isIRI IRI}, converts it to a strict ASCII URI,
-   * using the procedure described in Section 3.1 of the
-   * <a href="http://www.w3.org/International/iri-edit/draft-duerst-iri-09.txt">IRI
-   * Draft RFC</a>.  Otherwise, this URI, itself, is returned.
-   *
-   * This unused code is included for possible future use...
-   */
-/*
-  public URI toASCIIURI()
-  {
-    if (!iri) return this;
-
-    if (cachedASCIIURI == null)
-    {
-      String eAuthority = encodeAsASCII(authority);
-      String eDevice = encodeAsASCII(device);
-      String eQuery = encodeAsASCII(query);
-      String eFragment = encodeAsASCII(fragment);
-      String[] eSegments = new String[segments.length];
-      for (int i = 0; i < segments.length; i++)
-      {
-        eSegments[i] = encodeAsASCII(segments[i]);
-      }
-      cachedASCIIURI = new URI(hierarchical, scheme, eAuthority, eDevice, absolutePath, eSegments, eQuery, eFragment); 
-
-    }
-    return cachedASCIIURI;
-  }
-
-  // Returns a strict ASCII encoding of the given value.  Each non-ASCII
-  // character is converted to bytes using UTF-8 encoding, which are then
-  // represnted using % escaping.
-  private String encodeAsASCII(String value)
-  {
-    if (value == null) return null;
-
-    StringBuffer result = null;
-
-    for (int i = 0, len = value.length(); i < len; i++)
-    {
-      char c = value.charAt(i);
-
-      if (c >= 128)
-      {
-        if (result == null)
-        {
-          result = new StringBuffer(value.substring(0, i));
-        }
-
-        try
-        {
-          byte[] encoded = (new String(new char[] { c })).getBytes("UTF-8");
-          for (int j = 0, encLen = encoded.length; j < encLen; j++)
-          {
-            appendEscaped(result, encoded[j]);
-          }
-        }
-        catch (UnsupportedEncodingException e)
-        {
-          throw new WrappedException(e);
-        }
-      }
-      else if (result != null)
-      {
-        result.append(c);
-      }
-
-    }
-    return result == null ? value : result.toString();
-  }
-
-  // Returns the number of valid, consecutive, three-character escape
-  // sequences in the given string, starting at index i.
-  private static int countEscaped(String s, int i)
-  {
-    int result = 0;
-
-    for (int len = s.length(); i < len; i += 3)
-    {
-      if (isEscaped(s, i)) result++;
-    }
-    return result;
-  }
-*/
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java
deleted file mode 100644
index 647fa36..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionDescriptor.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension;
-import org.osgi.framework.Bundle;
-
-/**
- * A URI resolver extension descriptor contains all the information about
- * an extension URI resolver. The information contained allows for the
- * extension resolver to be instantiated and called at the correct times.
- */
-public class URIResolverExtensionDescriptor
-{
-	protected URIResolverExtension resolver;
-
-	protected String fileType;
-
-	protected String className;
-
-	public List projectNatureIds;
-
-	protected String resourceType;
-
-	protected int stage = URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION;
-
-	protected String priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
-
-	protected String pluginId;
-
-	protected boolean error;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param className The extension URI resolver class name.
-	 * @param pluginId The ID of the plugin that contains the extension URI resolver class.
-	 * @param projectNatureIds The project nature IDs for which the resolver should run.
-	 * @param resourceType The type of resource for which the resolver should run.
-	 * @param stage The stage of the resolver. Either prenormalization or postnormalization.
-	 * @param priority The resolver's priority. high, medium, or low.
-	 */
-	public URIResolverExtensionDescriptor(String className, String pluginId,
-			List projectNatureIds, String resourceType, int stage, String priority)
-	{
-		this.className = className;
-		this.pluginId = pluginId;
-		this.projectNatureIds = projectNatureIds;
-		this.resourceType = resourceType;
-		this.stage = stage;
-		this.priority = priority;
-	}
-
-	/**
-	 * Get the extension URI resolver.
-	 * 
-	 * @return The extension URI resolver.
-	 */
-	public URIResolverExtension getResolver()
-	{
-
-		if (resolver == null && className != null && !error)
-		{
-			try
-			{
-				// Class theClass = classLoader != null ?
-				// classLoader.loadClass(className) : Class.forName(className);
-				Bundle bundle = Platform.getBundle(pluginId);
-				Class theClass = bundle.loadClass(className);
-				resolver = (URIResolverExtension) theClass.newInstance();
-			} catch (Exception e)
-			{
-				error = true;
-				e.printStackTrace();
-			}
-		}
-		return resolver;
-	}
-
-	/**
-	 * Determines if the resolver should run in the current scenario given
-	 * the project nature ID, resource type, and stage.
-	 * 
-	 * @param projectNatureId The project nature ID to check against.
-	 * @param resourceType The resource type to check against.
-	 * @param stage The stage to check against.
-	 * @return True if the resolver should run, false otherwise.
-	 */
-	public boolean matches(String projectNatureId, String resourceType, int stage)
-	{
-		if (projectNatureIds.contains(projectNatureId))
-		{
-			return matches(this.resourceType, resourceType) && this.stage == stage;
-		}
-		return false;
-	}
-
-	/**
-	 * Determines if string a matches string b.
-	 * TODO: Why is this required instead of just using String.equals?
-	 * 
-	 * @param a String for comparison.
-	 * @param b String for comparison.
-	 * @return True if the strings match, false otherwise.
-	 */
-	private boolean matches(String a, String b)
-	{
-		return (a != null) ? a.equals(b) : a == b;
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
deleted file mode 100644
index d081bf1..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistry.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * The URI resolver extension registry contains information about
- * all of the extension URI resolvers.
- */
-public class URIResolverExtensionRegistry
-{
-	protected HashMap map = new HashMap();
-
-	public static final int STAGE_PRENORMALIZATION = 1;
-
-	public static final int STAGE_POSTNORMALIZATION = 2;
-
-	public static final int STAGE_PHYSICAL = 3;
-
-	public static final String PRIORITY_LOW = "low";
-
-	public static final String PRIORITY_MEDIUM = "medium";
-
-	public static final String PRIORITY_HIGH = "high";
-
-	protected final static String NULL_PROJECT_NATURE_ID = "";
-
-	protected static URIResolverExtensionRegistry instance;
-
-	private URIResolverExtensionRegistry()
-	{
-	}
-
-	/**
-	 * Get the one and only instance of the registry.
-	 * 
-	 * @return The one and only instance of the registry.
-	 */
-	public synchronized static URIResolverExtensionRegistry getIntance()
-	{
-		if (instance == null)
-		{
-			instance = new URIResolverExtensionRegistry();
-			new URIResolverExtensionRegistryReader(instance).readRegistry();
-		}
-		return instance;
-	}
-
-	/**
-	 * Add an extension resolver to the registry.
-	 * 
-	 * @param className The name of the extension URI resolver class.
-	 * @param pluginId The ID of the plugin that contains the extension URI resolver class.
-	 * @param projectNatureIds A list of project natures IDs for which the resolver should run.
-	 * @param resourceType The type of resoure for which an extension resource should run.
-	 * @param stage The stage to run. Either prenormalization or postnormalization.
-	 * @param priority The priority of the resolver. Valid values are high, medium, and low.
-	 */
-	public void put(String className, String pluginId, List projectNatureIds,
-			String resourceType, int stage, String priority)
-	{
-		if (projectNatureIds == null)
-			projectNatureIds = new ArrayList();
-		if (projectNatureIds.isEmpty())
-		{
-			projectNatureIds.add(NULL_PROJECT_NATURE_ID);
-		}
-		URIResolverExtensionDescriptor info = new URIResolverExtensionDescriptor(
-				className, pluginId, projectNatureIds, resourceType, stage, priority);
-
-		Iterator idsIter = projectNatureIds.iterator();
-		while (idsIter.hasNext())
-		{
-			String key = (String) idsIter.next();
-
-			HashMap priorityMap = (HashMap) map.get(key);
-			if (priorityMap == null)
-			{
-				priorityMap = new HashMap();
-				map.put(key, priorityMap);
-				priorityMap.put(PRIORITY_HIGH, new ArrayList());
-				priorityMap.put(PRIORITY_MEDIUM, new ArrayList());
-				priorityMap.put(PRIORITY_LOW, new ArrayList());
-			}
-			List list = (List) priorityMap.get(priority);
-			list.add(info);
-		}
-	}
-
-	/**
-	 * Return a list of URIResolverExtensionDescriptor objects that apply to this
-	 * project. The list is in the priority order high, medium, low.
-	 * 
-	 * @param project The project for which you are requesting resolvers.
-	 * @return A list of URIResolverExtensionDescriptor objects.
-	 */
-	public List getExtensionDescriptors(IProject project)
-	{
-		List result = new ArrayList();
-		for (Iterator i = map.keySet().iterator(); i.hasNext();)
-		{
-			String key = (String) i.next();
-			try
-			{
-				if (key == NULL_PROJECT_NATURE_ID || project == null
-						|| project.hasNature(key))
-				{
-					result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_HIGH));
-					result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_MEDIUM));
-					result.addAll((List) ((HashMap) map.get(key)).get(PRIORITY_LOW));
-				}
-			} catch (CoreException e)
-			{
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Return a list of URIResolver objects that match the stage.
-	 * TODO: This seems like an odd method to house here. It may need to be moved
-	 *       or removed if the stage attribute dissapears.
-	 * 
-	 * @param resolverInfoList A list of resolvers to prune.
-	 * @param stage The stage requested.
-	 * @return A list of URIResolver objects that match the stage.
-	 */
-	public List getMatchingURIResolvers(List resolverInfoList, int stage)
-	{
-		List result = new ArrayList();
-		for (Iterator i = resolverInfoList.iterator(); i.hasNext();)
-		{
-			URIResolverExtensionDescriptor info = (URIResolverExtensionDescriptor) i
-					.next();
-			if (info.stage == stage)
-			{
-				Object resolver = info.getResolver();
-				if (resolver != null)
-				{
-					result.add(resolver);
-				}
-			}
-		}
-		return result;
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
deleted file mode 100644
index a173f28..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/URIResolverExtensionRegistryReader.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-
-/**
- * This class reads the URI resolver extension point and registers extension
- * resolvers with the URI resolver registry.
- */
-public class URIResolverExtensionRegistryReader
-{
-
-	protected static final String EXTENSION_POINT_ID = "resolverExtensions";
-
-	protected static final String TAG_NAME = "resolverExtension";
-
-	protected static final String ATT_ID = "id";
-
-	protected static final String ELEM_PROJECT_NATURE_ID = "projectNature";
-
-	protected static final String ATT_RESOURCE_TYPE = "resourceType";
-
-	protected static final String ATT_CLASS = "class";
-
-	protected static final String ATT_STAGE = "stage";
-
-	protected static final String VAL_STAGE_PRE = "prenormalization";
-
-	protected static final String VAL_STAGE_POST = "postnormalization";
-
-	protected static final String VAL_STAGE_PHYSICAL = "physical";
-
-	protected static final String ATT_VALUE = "value";
-
-	protected static final String ATT_PRIORITY = "priority";
-
-	protected URIResolverExtensionRegistry registry;
-
-	public URIResolverExtensionRegistryReader(URIResolverExtensionRegistry registry)
-	{
-		this.registry = registry;
-	}
-
-	/**
-	 * read from plugin registry and parse it.
-	 */
-	public void readRegistry()
-	{
-		IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = pluginRegistry.getExtensionPoint(URIResolverPlugin
-				.getInstance().getBundle().getSymbolicName(), EXTENSION_POINT_ID);
-		if (point != null)
-		{
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++)
-			{
-				readElement(elements[i]);
-			}
-		}
-	}
-
-	/**
-	 * readElement() - parse and deal with an extension like:
-	 * 
-	 * <extension point="org.eclipse.wst.contentmodel.util_implementation">
-	 * <util_implementation class =
-	 * org.eclipse.wst.baseutil.CMUtilImplementationImpl /> </extension>
-	 */
-	protected void readElement(IConfigurationElement element)
-	{
-		if (element.getName().equals(TAG_NAME))
-		{
-			// String id = element.getAttribute(ATT_ID);
-			String className = element.getAttribute(ATT_CLASS);
-			// String projectNatureId = element.getAttribute(ATT_PROJECT_NATURE_ID);
-			String resourceType = element.getAttribute(ATT_RESOURCE_TYPE);
-			String stage = element.getAttribute(ATT_STAGE);
-			String priority = element.getAttribute(ATT_PRIORITY);
-			if (priority == null || priority.equals(""))
-			{
-				priority = URIResolverExtensionRegistry.PRIORITY_MEDIUM;
-			}
-			List projectNatureIds = new ArrayList();
-			IConfigurationElement[] ids = element.getChildren(ELEM_PROJECT_NATURE_ID);
-			int numids = ids.length;
-			for (int i = 0; i < numids; i++)
-			{
-				String tempid = ids[i].getAttribute(ATT_VALUE);
-
-				if (tempid != null)
-				{
-					projectNatureIds.add(tempid);
-				}
-			}
-			if (className != null)
-			{
-				try
-				{
-					String pluginId = element.getDeclaringExtension().getNamespaceIdentifier();
-
-					int stageint = URIResolverExtensionRegistry.STAGE_POSTNORMALIZATION;
-					if (stage.equalsIgnoreCase(VAL_STAGE_PRE))
-					{
-						stageint = URIResolverExtensionRegistry.STAGE_PRENORMALIZATION;
-					} else if (stage.equalsIgnoreCase(VAL_STAGE_PHYSICAL))
-					{
-						stageint = URIResolverExtensionRegistry.STAGE_PHYSICAL;
-					}
-					registry.put(className, pluginId, projectNatureIds, resourceType,
-							stageint, priority);
-				} catch (Exception e)
-				{
-					// TODO: Log exception as this will cause an extension resolver
-					//       from loading.
-				}
-			}
-		}
-	}
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolver.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolver.java
deleted file mode 100644
index ef0a4ca..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolver.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal.provisional;
-
-/**
- * A URIResolver is used to resolve URI references to resources.
- */
-public interface URIResolver {
-	
-	/**
-	 * @param baseLocation - the location of the resource that contains the uri 
-	 * @param publicId - an optional public identifier (i.e. namespace name), or null if none
-	 * @param systemId - an absolute or relative URI, or null if none 
-	 * @return an absolute URI represention the 'logical' location of the resource
-	 */
-	public String resolve(String baseLocation, String publicId, String systemId);
-    
-    /**
-     * @param baseLocation - the location of the resource that contains the uri 
-     * @param publicId - an optional public identifier (i.e. namespace name), or null if none
-     * @param systemId - an absolute or relative URI, or null if none 
-     * @return an absolute URI represention the 'physical' location of the resource
-     */
-    public String resolvePhysicalLocation(String baseLocation, String publicId, String logicalLocation);    
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverExtension.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverExtension.java
deleted file mode 100644
index 16d61e7..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverExtension.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal.provisional;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * An extension to augment the behaviour of a URIResolver.  Extensions are project aware
- * so that they can apply specialized project specific resolving rules. 
- */
-public interface URIResolverExtension {
-	/**
-	 * @param file the in-workspace base resource, if one exists
-	 * @param baseLocation - the location of the resource that contains the uri
-	 * @param publicId - an optional public identifier (i.e. namespace name), or null if none
-	 * @param systemId - an absolute or relative URI, or null if none 
-	 * 
-	 * @return an absolute URI or null if this extension can not resolve this reference
-	 */
-	public String resolve(IFile file, String baseLocation, String publicId, String systemId);
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java
deleted file mode 100644
index 2b63687..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/provisional/URIResolverPlugin.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal.provisional;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.common.uriresolver.internal.ExtensibleURIResolver;
-import org.eclipse.wst.common.uriresolver.internal.URIResolverExtensionRegistry;
-
-
-public class URIResolverPlugin extends Plugin {
-	protected static URIResolverPlugin instance;	
-	protected URIResolverExtensionRegistry xmlResolverExtensionRegistry;
-
-	public static URIResolverPlugin getInstance()
-	{
-		return instance;
-	}
-	
-	public URIResolverPlugin() {
-		super();
-		instance = this;
-	}	
-	
-					
-	public static URIResolver createResolver()
-	{
-		return createResolver(null);
-	}
-	
-	public static URIResolver createResolver(Map properties)
-	{
-		// TODO... utilize properties
-		return new ExtensibleURIResolver();
-	}	
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIEncoder.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIEncoder.java
deleted file mode 100644
index 6fc7c9e..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIEncoder.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal.util;
-
-import java.io.BufferedWriter;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.BitSet;
-
-/**
- *  This class is a modified version of java.lang.URLEncoder.
- */
-public class URIEncoder 
-{
-  static BitSet dontNeedEncoding;
-  static final int caseDiff = ('a' - 'A');
-  static String dfltEncName = null;
-  
-
-  static 
-  {            
-	  dontNeedEncoding = new BitSet(256);
-	  int i;
-	  for (i = 'a'; i <= 'z'; i++) 
-    {
-	    dontNeedEncoding.set(i);
-	  }
-	  for (i = 'A'; i <= 'Z'; i++) 
-    {
-	    dontNeedEncoding.set(i);
-	  }
-	  for (i = '0'; i <= '9'; i++) 
-    {
-	    dontNeedEncoding.set(i);
-	  }
-
-	  //dontNeedEncoding.set(' '); // cs.. removed so that space character will be replaced by %20
-	  dontNeedEncoding.set('-');
-	  dontNeedEncoding.set('_');
-	  dontNeedEncoding.set('.');
-	  dontNeedEncoding.set('*');
-	  dontNeedEncoding.set(':');   // cs.. added 
-	  dontNeedEncoding.set('/');   // cs.. added so that slashes don't get encoded as %2F
-
-  	// dfltEncName = (String)AccessController.doPrivileged(new GetPropertyAction("file.encoding"));
-  	// As discussed with Sandy, we should encode URIs with UTF8
-   dfltEncName = "UTF8";
-    //System.out.println("dfltEncName " + dfltEncName);
-   }
-
-  /**
-   * You can't call the constructor.
-   */
-  private URIEncoder() { }
-
-  /**
-   * Translates a string into <code>x-www-form-urlencoded</code>
-   * format. This method uses the platform's default encoding
-   * as the encoding scheme to obtain the bytes for unsafe characters.
-   *
-   * @param   s   <code>String</code> to be translated.
-   * @deprecated The resulting string may vary depending on the platform's
-   *             default encoding. Instead, use the encode(String,String)
-   *             method to specify the encoding.
-   * @return  the translated <code>String</code>.
-   */
-  public static String encode(String s) 
-  {
-	  String str = null;
-	  try 
-    {
-	    str = encode(s, dfltEncName);
-	  } 
-    catch (UnsupportedEncodingException e) 
-    {
-	    // The system should always have the platform default
-	  }
-	  return str;
-  }
-
-  /**
-   * Translates a string into <code>application/x-www-form-urlencoded</code>
-   * format using a specific encoding scheme. This method uses the
-   * supplied encoding scheme to obtain the bytes for unsafe
-   * characters.
-   * <p>
-   * <em><strong>Note:</strong> The <a href=
-   * "http://www.w3.org/TR/html40/appendix/notes.html#non-ascii-chars">
-   * World Wide Web Consortium Recommendation</a> states that
-   * UTF-8 should be used. Not doing so may introduce
-   * incompatibilites.</em>
-   *
-   * @param   s   <code>String</code> to be translated.
-   * @param   enc   The name of a supported 
-   *    <a href="../lang/package-summary.html#charenc">character
-   *    encoding</a>.
-   * @return  the translated <code>String</code>.
-   * @exception  UnsupportedEncodingException
-   *             If the named encoding is not supported
-   * @see java.net.URLDecoder#decode(java.lang.String, java.lang.String)
-   */
-  public static String encode(String s, String enc) throws UnsupportedEncodingException 
-  {
-	  boolean needToChange = false;
-	  boolean wroteUnencodedChar = false; 
-	  int maxBytesPerChar = 10; // rather arbitrary limit, but safe for now
-    StringBuffer out = new StringBuffer(s.length());
-	  ByteArrayOutputStream buf = new ByteArrayOutputStream(maxBytesPerChar);
-	  BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(buf, enc));
-
-	  for (int i = 0; i < s.length(); i++) 
-    {
-	    int c = s.charAt(i);
-	    //System.out.println("Examining character: " + c);
-	    if (dontNeedEncoding.get(c))
-      {
-		   //if (c == ' ')
-       //{
-		   //  c = '+';
-		   //  needToChange = true;
-		   //}
-		   //System.out.println("Storing: " + c);
-		   out.append((char)c);
-		   wroteUnencodedChar = true;
-	    }
-      else
-      {
-		    // convert to external encoding before hex conversion
-		    try
-        {
-		      if (wroteUnencodedChar) 
-          { // Fix for 4407610
-		    	  writer = new BufferedWriter(new OutputStreamWriter(buf, enc));
-			      wroteUnencodedChar = false;
-		      }
-		      writer.write(c);
-		        
-		      // If this character represents the start of a Unicode
-		      // surrogate pair, then pass in two characters. It's not
-		      // clear what should be done if a bytes reserved in the 
-		      // surrogate pairs range occurs outside of a legal
-		      // surrogate pair. For now, just treat it as if it were 
-		      // any other character.
-		      // 
-		      if (c >= 0xD800 && c <= 0xDBFF) 
-          {
-			      //  System.out.println(Integer.toHexString(c) + " is high surrogate");			      
-			      if ( (i+1) < s.length()) 
-            {
-			        int d = s.charAt(i+1);
-			        // System.out.println("\tExamining " + Integer.toHexString(d));			      
-			        if (d >= 0xDC00 && d <= 0xDFFF) 
-              {
-				        // System.out.println("\t" + Integer.toHexString(d) + " is low surrogate");				
-				        writer.write(d);
-				        i++;
-			        }
-			      }
-		      }
-		      writer.flush();
-		    } 
-        catch(IOException e) 
-        {
-		      buf.reset();
-		      continue;
-		    }
-		    byte[] ba = buf.toByteArray();
-
-		    for (int j = 0; j < ba.length; j++) 
-        {
-		      out.append('%');
-		      char ch = Character.forDigit((ba[j] >> 4) & 0xF, 16);
-		      // converting to use uppercase letter as part of
-		      // the hex value if ch is a letter.
-		      if (Character.isLetter(ch)) 
-          {
-			      ch -= caseDiff;
-		      }
-		      out.append(ch);
-		      ch = Character.forDigit(ba[j] & 0xF, 16);
-		      if (Character.isLetter(ch)) 
-          {
-			      ch -= caseDiff;
-		      }
-		      out.append(ch);
-		    }
-		    buf.reset();
-		    needToChange = true;
-	    }
-	  }
-	  return (needToChange? out.toString() : s);
-  }
-}
diff --git a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIHelper.java b/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIHelper.java
deleted file mode 100644
index b30d4ab..0000000
--- a/plugins/org.eclipse.wst.common.uriresolver/src/org/eclipse/wst/common/uriresolver/internal/util/URIHelper.java
+++ /dev/null
@@ -1,527 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-package org.eclipse.wst.common.uriresolver.internal.util;
-
-import java.io.File;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URL;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-
-public class URIHelper
-{                       
-  protected static final String FILE_PROTOCOL = "file:";
-  protected static final String PLATFORM_RESOURCE_PROTOCOL = "platform:/resource/";
-  protected static final String PROTOCOL_PATTERN = ":"; 
-  
-  
-  public static String ensureURIProtocolFormat(String uri) {
-	  String protocol = getProtocol(uri);
-	  if (protocol.equals(FILE_PROTOCOL)) {
-		  return ensureFileURIProtocolFormat(uri);
-	  } else {
-		  return uri;
-	  }
-  }
-  
-  
-  /**
-   * This method takes a file URI in String format and ensures the protocol is followed by three slashes.
-   * For example, files "file:D:/XXX", "file:/D:/XXX" and "file://D:/XXX" are corrected to:
-   * "file:///D:/XXX".
-   * If the input is not a file URI (does not start with "file:"), the String is returned unmodified.
-   */
-  public static String ensureFileURIProtocolFormat(String uri) {
-      if (uri.startsWith(FILE_PROTOCOL) && !uri.startsWith(FILE_PROTOCOL + "///")) //$NON-NLS-1$
-      {
-      	if (uri.startsWith(FILE_PROTOCOL + "//")) {
-      		uri = FILE_PROTOCOL + "/" + uri.substring(FILE_PROTOCOL.length()); //$NON-NLS-1$
-      	} else if (uri.startsWith(FILE_PROTOCOL + "/")) {
-      		uri = FILE_PROTOCOL + "//" + uri.substring(FILE_PROTOCOL.length()); //$NON-NLS-1$
-      	} else {
-      		uri = FILE_PROTOCOL + "///" + uri.substring(FILE_PROTOCOL.length()); //$NON-NLS-1$
-      	}
-      }
-     return uri;
-  }
-  
-  public static String normalize(String uri)
-  {                           
-    if (uri != null)
-    {                      
-      String protocol = getProtocol(uri);
-      String file = uri;
-           
-      if (protocol != null)
-      {               
-        try
-        {   
-          // 
-          URL url = new URL(uri); 
-          // we use a 'Path' on the 'file' part of the url in order to normalize the '.' and '..' segments
-          IPath path = new Path(url.getFile()); 
-          URL url2 = new URL(url.getProtocol(), url.getHost(), url.getPort(), path.toString());
-          uri = url2.toString();                               
-        }                        
-        catch (Exception e)
-        {  
-        }
-      }   
-      else
-      {      
-        IPath path = new Path(file);
-        uri = path.toString();
-      }
-    }
-    return uri;
-  }
-
-
-  /**
-   * a 'null' rootLocation argument will causes uri that begins with a '/' to be treated as a workspace relative resource
-   * (i.e. the string "platform:/resource" is prepended and the uri is resolved via the Platform object)
-   */
-  public static String normalize(String uri, String resourceLocation, String rootLocation)
-  {
-    String result = null;
-
-    if (uri != null)
-    { 
-      // is the uri a url
-      if (hasProtocol(uri))
-      {                  
-        if (isPlatformResourceProtocol(uri))
-        {
-          result = resolvePlatformUrl(uri);
-        }
-        else
-        {
-          result = uri;
-        }
-      }
-   
-      // is uri absolute
-      //
-      if (result == null)
-      {
-        if (uri.indexOf(":") != -1 || uri.startsWith("/") || uri.startsWith("\\"))
-        {                   
-          result = uri;
-        }
-      }
-  
-      // if uri is relative to the resourceLocation
-      //
-      if (result == null && resourceLocation != null)
-      {          
-        if (resourceLocation.endsWith("/"))
-        {
-			    result = resourceLocation + uri;
-        }
-		    else
-        {
-			    result = resourceLocation + "/../" + uri;
-        }
-      }
-      
-      if (result == null)
-      {
-        result = uri;
-      }
-  
-      result = normalize(result);
-    }
-
-    //System.out.println("normalize(" + uri + ", " + resourceLocation + ", " + rootLocation + ") = " + result);
-    return result;
-  }
-
-
-  public static boolean isURL(String uri)
-  {
-    return uri.indexOf(":/") > 2; // test that the index is > 2 so that C:/ is not considered a protocol
-  }
-
-
-  public static String getLastSegment(String uri)
-  {
-    String result = uri;
-    int index = Math.max(uri.lastIndexOf("/"), uri.lastIndexOf("\\"));
-    if (index != -1)
-    {
-      result = uri.substring(index + 1);
-    }
-    return result;
-  }
-
-
-  public static String getFileExtension(String uri)
-  {
-    String result = null;
-    int dotIndex = getExtensionDotIndex(uri);
-               
-    if (dotIndex != -1)
-    {
-      result = uri.substring(dotIndex + 1);
-    }
-
-    return result;
-  }
-
-
-  public static String removeFileExtension(String uri)
-  {
-    String result = null;
-    int dotIndex = getExtensionDotIndex(uri);
-
-    if (dotIndex != -1)
-    {
-      result = uri.substring(0, dotIndex);
-    }
-
-    return result;
-  }   
-             
-
-  // here we use the Platform to resolve a workspace relative path to an actual url
-  //
-  protected static String resolvePlatformUrl(String urlspec)
-  {
-    String result = null;
-    try
-    {                        
-      urlspec = urlspec.replace('\\', '/'); 
-      URL url = new URL(urlspec);
-      URL resolvedURL = FileLocator.resolve(url);
-      result = resolvedURL.toString();
-    }
-    catch (Exception e)
-    {
-    }
-    return result;
-  }
-
-
-  protected static int getExtensionDotIndex(String uri)
-  {
-    int result = -1;
-    int dotIndex = uri.lastIndexOf(".");
-    int slashIndex = Math.max(uri.lastIndexOf("/"), uri.lastIndexOf("\\"));
-
-    if (dotIndex != -1 && dotIndex > slashIndex)
-    {
-      result = dotIndex;
-    }
-
-    return result;
-  }
-  
-
-  public static boolean isPlatformResourceProtocol(String uri)
-  {                                                     
-    return uri != null && uri.startsWith(PLATFORM_RESOURCE_PROTOCOL);
-  }                                                   
-
-  public static String removePlatformResourceProtocol(String uri)
-  {  
-    if (uri != null && uri.startsWith(PLATFORM_RESOURCE_PROTOCOL))
-    {
-      uri = uri.substring(PLATFORM_RESOURCE_PROTOCOL.length());
-    }                                                          
-    return uri;
-  }            
-
-
-  public static String prependPlatformResourceProtocol(String uri)
-  {  
-    if (uri != null && !uri.startsWith(PLATFORM_RESOURCE_PROTOCOL))
-    {
-      uri = PLATFORM_RESOURCE_PROTOCOL + uri;
-    }                                                          
-    return uri;
-  } 
-  
-
-  public static String prependFileProtocol(String uri)
-  {  
-    if (uri != null && !uri.startsWith(FILE_PROTOCOL))
-    {
-      uri = FILE_PROTOCOL + uri;
-    }                                                          
-    return uri;
-  } 
-            
-  public static boolean hasProtocol(String uri)
-  {
-    boolean result = false;     
-    if (uri != null)
-    {
-      int index = uri.indexOf(PROTOCOL_PATTERN);
-      if (index != -1 && index > 2) // assume protocol with be length 3 so that the'C' in 'C:/' is not interpreted as a protocol
-      {
-        result = true;
-      }
-    }
-    return result;
-  }     
-                      
-
-  public static boolean isAbsolute(String uri)
-  {
-    boolean result = false;     
-    if (uri != null)
-    {
-      int index = uri.indexOf(PROTOCOL_PATTERN);
-      if (index != -1 || uri.startsWith("/"))
-      {
-        result = true;
-      }
-    }
-    return result;
-  }
-
-
-  public static String addImpliedFileProtocol(String uri)
-  {  
-    if (!hasProtocol(uri))
-    {                           
-      String prefix = FILE_PROTOCOL;
-      prefix += uri.startsWith("/") ? "//" : "///";
-      uri = prefix + uri;
-    }
-    return uri;
-  }
-             
-  // todo... need to revisit this before we publicize it
-  // 
-  protected static String getProtocol(String uri)
-  {  
-    String result = null;     
-    if (uri != null)
-    {
-      int index = uri.indexOf(PROTOCOL_PATTERN);
-      if (index > 2) // assume protocol with be length 3 so that the'C' in 'C:/' is not interpreted as a protocol
-      {
-        result = uri.substring(0, index + PROTOCOL_PATTERN.length());
-      }
-    }
-    return result;
-  } 
- 
-
-  public static String removeProtocol(String uri)
-  {
-    String result = uri;     
-    if (uri != null)
-    {
-      int index = uri.indexOf(PROTOCOL_PATTERN);
-      if (index > 2)
-      {
-        result = result.substring(index + PROTOCOL_PATTERN.length());                 
-      }
-    }
-    return result;
-  } 
-
-
-  protected static boolean isProtocolFileOrNull(String uri)
-  {                                    
-    String protocol = getProtocol(uri);   
-    return protocol == null || protocol.equals(FILE_PROTOCOL);
-  }  
-
-                                           
-  protected static boolean isMatchingProtocol(String uri1, String uri2)
-  { 
-    boolean result = false;  
-
-    String protocol1 = getProtocol(uri1);
-    String protocol2 = getProtocol(uri2);
-
-    if (isProtocolFileOrNull(protocol1) && isProtocolFileOrNull(protocol2))
-    {                                                                      
-      result = true;
-    } 
-    else
-    {
-      result = protocol1 != null && protocol2 != null && protocol1.equals(protocol2);
-    }             
-
-    return result;
-  }
-
-  /**
-   * warning... this method not fully tested yet
-   */
-  public static String getRelativeURI(String uri, String resourceLocation)
-  {                                      
-    String result = uri;  
-    if (isMatchingProtocol(uri, resourceLocation)) 
-    {
-      result = getRelativeURI(new Path(removeProtocol(uri)),
-                              new Path(removeProtocol(resourceLocation)));
-    }            
-
-    return result;
-  }
-
-  /**
-   * warning... this method not fully tested yet
-   */
-  public static String getRelativeURI(IPath uri, IPath resourceLocation)
-  {            
-    String result = null;
-    int nMatchingSegments = 0;       
-    resourceLocation = resourceLocation.removeLastSegments(1);
-    while (true)
-    {                   
-      String a = uri.segment(nMatchingSegments); 
-      String b = resourceLocation.segment(nMatchingSegments); 
-      if (a != null && b != null && a.equals(b))
-      {
-        nMatchingSegments++;
-      }
-      else
-      {
-        break;
-      }
-    }                 
-
-    if (nMatchingSegments == 0)
-    {
-      result = uri.toOSString();
-    }
-    else
-    {    
-      result = "";   
-      boolean isFirst = true;
-      String[] segments = resourceLocation.segments();
-      for (int i = nMatchingSegments; i < segments.length; i++)
-      {  
-        result += isFirst ? ".." : "/..";     
-        if (isFirst)
-        {
-          isFirst = false;
-        }        
-      }
-      // 
-      segments = uri.segments();
-      for (int i = nMatchingSegments; i < segments.length; i++)
-      {                      
-        result += isFirst ? segments[i] : ("/" + segments[i]);     
-        if (isFirst)
-        {
-          isFirst = false;
-        } 
-      }
-    }   
-    return result;
-  }
-
-
-  public static String getPlatformURI(IResource resource)
-  {                            
-    String fullPath = resource.getFullPath().toString();
-    if (fullPath.startsWith("/"))
-    {
-      fullPath = fullPath.substring(1);
-    }
-    return PLATFORM_RESOURCE_PROTOCOL + fullPath;
-  }
-  
-
-  /**
-   * This methods is used as a quick test to see if a uri can be resolved to an existing resource.   
-   */
-  public static boolean isReadableURI(String uri, boolean testRemoteURI)
-  {  
-    boolean result = true;  
-    if (uri != null)
-    {   
-      try
-      {                               
-        uri = normalize(uri, null, null);
-        if (isProtocolFileOrNull(uri))
-        {
-          uri = removeProtocol(uri);                            
-          File file = new File(uri);
-          result = file.exists() && file.isFile();
-        }
-        else if (isPlatformResourceProtocol(uri))
-        {
-          // Note - If we are here, uri has been failed to resolve
-          // relative to the Platform. See normalize() to find why.
-          result = false;
-        }
-        else if (testRemoteURI)
-        {
-          URL url = new URL(uri);
-          InputStream is = url.openConnection().getInputStream();
-          is.close();
-          // the uri is readable if we reach here.
-          result = true;
-        }
-      }
-      catch (Exception e)
-      {
-        result = false;
-      }
-    }
-    else // uri is null
-      result = false;
-
-    return result;
-  }  
-
-  /**
-   * return true if this is a valid uri
-   */
-  public static boolean isValidURI(String uri)
-  {                       
-    boolean result = false;
-    try                                                              
-    {
-      new URI(uri);
-      result = true;
-    }
-    catch (Exception e)
-    {
-    }               
-    return result;
-  }
-
-  /**
-   * returns an acceptable URI for a file path
-   */
-  public static String getURIForFilePath(String filePath)
-  {
-    String result = addImpliedFileProtocol(filePath);
-    if (!isValidURI(result))
-    {
-    	try
-    	{
-        result = URIEncoder.encode(result, "UTF8");
-    	}
-    	catch(UnsupportedEncodingException e)
-    	{
-    		// Do nothing as long as UTF8 is used. This is supported.
-    	}
-    }
-    return result;
-  }
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/.classpath b/plugins/org.eclipse.wst.internet.cache/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.wst.internet.cache/.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.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.internet.cache/.cvsignore b/plugins/org.eclipse.wst.internet.cache/.cvsignore
deleted file mode 100644
index 0515302..0000000
--- a/plugins/org.eclipse.wst.internet.cache/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-temp.folder
-build.xml
-cache.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.internet.cache/.project b/plugins/org.eclipse.wst.internet.cache/.project
deleted file mode 100644
index d7188f0..0000000
--- a/plugins/org.eclipse.wst.internet.cache/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.internet.cache</name>
-	<comment></comment>
-	<projects>
-	</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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 53d1a0e..0000000
--- a/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Mar 15 17:27:33 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 82024b2..0000000
--- a/plugins/org.eclipse.wst.internet.cache/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Mar 15 17:27:33 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF
deleted file mode 100644
index 35f197a..0000000
--- a/plugins/org.eclipse.wst.internet.cache/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %_PLUGIN_NAME
-Bundle-SymbolicName: org.eclipse.wst.internet.cache; singleton:=true
-Bundle-Version: 1.0.200.qualifier
-Bundle-Activator: org.eclipse.wst.internet.cache.internal.CachePlugin
-Bundle-Vendor: %_PLUGIN_PROVIDER
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)"
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.wst.internet.cache.internal;x-friends:="org.eclipse.wst.internet.cache.tests",
- org.eclipse.wst.internet.cache.internal.preferences;x-internal:=true
diff --git a/plugins/org.eclipse.wst.internet.cache/about.html b/plugins/org.eclipse.wst.internet.cache/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.internet.cache/about.html
+++ /dev/null
@@ -1,34 +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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" will mean the Content.</P>
-
-<P>If you did not receive this Content directly from the Eclipse Foundation, the 
-Content is being redistributed by another party ("Redistributor") and different 
-terms and conditions may apply to your use of any object code in the Content. 
-Check the Redistributor’s license that was provided with the Content. If no such 
-license exists, contact the Redistributor. Unless otherwise indicated below, the 
-terms and conditions of the EPL still apply to any source code in the Content 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/plugins/org.eclipse.wst.internet.cache/build.properties b/plugins/org.eclipse.wst.internet.cache/build.properties
deleted file mode 100644
index dbd4f60..0000000
--- a/plugins/org.eclipse.wst.internet.cache/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-source.. = src/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               plugin.properties,\
-               about.html
-src.includes = exsd/,\
-               .,\
-               build.properties
-output.. = bin/
diff --git a/plugins/org.eclipse.wst.internet.cache/exsd/cacheresource.exsd b/plugins/org.eclipse.wst.internet.cache/exsd/cacheresource.exsd
deleted file mode 100644
index bacb272..0000000
--- a/plugins/org.eclipse.wst.internet.cache/exsd/cacheresource.exsd
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.internet.cache">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.internet.cache" id="cacheresource" name="Cache Resource"/>
-      </appInfo>
-      <documentation>
-         The cache resource extension point allows clients to specify resources that may be cached that require licenses to be accepted prior to caching.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="cacheresource" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="cacheresource">
-      <complexType>
-         <attribute name="url" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The URL of the resource to cache.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="license" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The license of the resource to cache. The license is specified as a URL that resolves to a file that contains the license.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         The following is an example of a cache resource contribution:
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.wst.internet.cache.cacheresource&quot;&gt;
-      &lt;cacheresource
-            license=&quot;http://www.eclipse.org/license.html&quot;
-            url=&quot;http://www.eclipse.org&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.internet.cache/plugin.properties b/plugins/org.eclipse.wst.internet.cache/plugin.properties
deleted file mode 100644
index 5df72b9..0000000
--- a/plugins/org.eclipse.wst.internet.cache/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-_PLUGIN_PROVIDER                       = Eclipse.org
-_PLUGIN_NAME                           = Cache URI Resolver Plug-in
-
-cacheResource                          = Cache Resource
-_UI_CACHE_PREFERENCE_PAGE_TITLE        = Cache
-
diff --git a/plugins/org.eclipse.wst.internet.cache/plugin.xml b/plugins/org.eclipse.wst.internet.cache/plugin.xml
deleted file mode 100644
index 09c05eb..0000000
--- a/plugins/org.eclipse.wst.internet.cache/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point name="%cacheResource" id="cacheresource" schema="exsd/cacheresource.exsd"/>
-
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%_UI_CACHE_PREFERENCE_PAGE_TITLE"
-            class="org.eclipse.wst.internet.cache.internal.preferences.CachePreferencePage"
-            id="org.eclipse.wst.internet.cache.internal.preferences.CachePreferencePage"
-            category = "org.eclipse.internet">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.wst.internet.cache.internal.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   
-   <extension point="org.eclipse.wst.common.uriresolver.resolverExtensions">
-      <resolverExtension
-            stage="physical"
-            priority="low"
-            class="org.eclipse.wst.internet.cache.internal.CacheURIResolverExtension">
-      </resolverExtension>
-   </extension>
-</plugin>
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/Cache.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/Cache.java
deleted file mode 100644
index 20cd05f..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/Cache.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Random;
-import java.util.Set;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.transform.Result;
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * The cache holds references to remote resources. The cache can store resources,
- * retrieve resources, and delete resources.
- *
- */
-public class Cache 
-{
-  /**
-   * String instances.
-   */
-  private static final String URI = "uri";
-  private static final String LOCATION ="location";
-  private static final String ENTRY = "entry";
-  private static final String CACHE = "cache";
-  private static final String LAST_MODIFIED = "lastModified";
-  private static final String EXPIRATION_TIME = "expirationTime";
-  private static final String FILE_PROTOCOL = "file:///";
-  private static final String CACHE_FILE = "cache.xml";
-  private static final String CACHE_EXTENSION = ".cache";
-  private static final String CACHE_PREFIX = "wtpcache";
-  private static final String CACHE_SUFFIX = null;
-  /**
-   * The default timeout for a cache entry is 1 day.
-   */
-  private static final long TIMEOUT = 86400000;
-	
-  /**
-   * The one and only instance of the cache.
-   */
-  private static Cache cacheInstance = null;
-  
-  /**
-   * The cache is stored in a hashtable.
-   */
-  private Hashtable cache;
-  
-  /**
-   * A set of uncached resources. The cache was not able to cache resources
-   * in this list. This list allows quickly skipping over these resources in
-   * future requests. 
-   */
-  private Set uncached;
-  
-  /**
-   * The location of the cache
-   */
-  private File cacheLocation = null;
-  
-  /**
-   * Private constructor.
-   */
-  protected Cache(IPath cacheLocation)
-  {
-	  this.cacheLocation = cacheLocation.toFile();//Platform.getPluginStateLocation(CachePlugin.getDefault()).toFile();
-    cache = new Hashtable();
-    uncached = new HashSet();
-  }
-  
-  /**
-   * Get the one and only instance of the cache.
-   * 
-   * @return The one and only instance of the cache.
-   */
-  public static Cache getInstance()
-  {
-//	  if(cacheInstance == null)
-//	  {
-//		  cacheInstance = new Cache(cacheLocation);
-//		  cacheInstance.open(cacheLocation);
-//	  }
-	  return cacheInstance;
-  }
-  
-  /**
-   * Return the local resource for the specified uri. If there is no resource
-   * the cache will attempt to download and cache the resource before returning.
-   * If a remote resource cannot be cached this method will return null.
-   * 
-   * @param uri The URI for which a resource is requested.
-   * @return The local resource for the specified URI or null if a remote resource cannot be cached.
-   */
-  public String getResource(String uri)
-  {
-	  if(uri == null) return null;
-	  CacheEntry result = (CacheEntry)cache.get(uri);
-	  
-	  // If no result is in the cache and the URI is of an allowed type
-	  // retrieve it and store it in the cache.
-	  if(result == null)
-	  {
-      
-        if(!uncached.contains(uri))
-	    {
-          result = cacheResource(uri); 
-        }
-	  }
-	  // Retreive a fresh copy of the result if it has timed out.
-	  else if(result.hasExpired())
-	  {
-		result = refreshCacheEntry(result);
-	  }
-	  if(result == null || result.getLocalFile() == null)
-	  {
-		return null;
-	  }
-	  return FILE_PROTOCOL + cacheLocation.toString() + "/" + result.getLocalFile();
-  }
-  
-  /**
-   * Get the list of uncached resources.
-   * 
-   * @return The list of uncached resources.
-   */
-  protected String[] getUncachedURIs()
-  {
-    return (String[])uncached.toArray(new String[uncached.size()]);
-  }
-  
-  /**
-   * Clear the list of uncached resources.
-   */
-  protected void clearUncachedURIs()
-  {
-    uncached.clear();
-  }
-  
-  /**
-   * Add an uncached resource to the list and start the 
-   * uncached job if not already started.
-   */
-  protected void addUncachedURI(String uri)
-  {
-	CacheJob.startJob();
-    uncached.add(uri);
-  }
-  
-  /**
-   * Cache the specified resource. This method creates a local version of the
-   * remote resource and adds the resource reference to the cache. If the resource
-   * cannot be accessed it is not added and null is returned.
-   * 
-   * @param uri The remote URI to cache.
-   * @return A new CacheEntry representing the cached resource or null if the remote
-   *         resource could not be retrieved.
-   */
-  protected CacheEntry cacheResource(String uri)
-  {
-	  CacheEntry cacheEntry = null;
-	  URLConnection conn = null;
-	  InputStream is = null;
-	  OutputStream os = null;
-	  try
-	  {
-		  URL url = new URL(uri);
-		  conn = url.openConnection();
-		  conn.connect();
-		  // Determine if this resource can be cached.
-		  if(conn.getUseCaches())
-		  {
-		    is = conn.getInputStream();//url.openStream();
-		  
-		    Random rand = new Random();
-			String fileName = rand.nextInt() + CACHE_EXTENSION;
-		    File file = new File(cacheLocation, fileName);
-		    // If the file already exists we need to change the file name.
-		    while(!file.createNewFile())
-		    {
-			  fileName = rand.nextInt() + CACHE_EXTENSION;
-			  file = new File(cacheLocation,fileName);
-		    }
-		    os = new FileOutputStream(file);
-		    byte[] bytes = new byte[1024];
-		    int bytelength;
-		    while((bytelength = is.read(bytes)) != -1)
-		    {
-			  os.write(bytes, 0, bytelength);
-		    }
-			long lastModified = conn.getLastModified();
-		    long expiration = conn.getExpiration();
-			if(expiration == 0)
-			{
-			  expiration = System.currentTimeMillis() + TIMEOUT;
-			}
-		    cacheEntry = new CacheEntry(uri, fileName, lastModified, expiration);
-		    cache.put(uri,cacheEntry);
-		  }
-
-	  }
-	  catch(Throwable t)
-	  {
-		  // Put the entry in the uncached list so the resolution work will not be performed again.
-      // TODO: Add in a timeout for the non-located uris.
-      addUncachedURI(uri);
-	  }
-	  finally
-	  {
-		  if(is != null)
-		  {
-			  try
-			  {
-			    is.close();
-			  }
-			  catch(IOException e)
-			  {
-			    // Do nothing if the stream cannot be closed.
-			  }
-		  }
-		  if(os != null)
-		  {
-			  try
-			  {
-			    os.close();
-			  }
-			  catch(IOException e)
-			  {
-				// Do nothing if the stream cannot be closed. 
-			  }
-		  }
-	  }
-	  return cacheEntry;
-  }
-  
-  /**
-   * Refresh the cache entry if necessary. The cache entry will be refreshed
-   * if the remote resource is accessible and the last modified time of the
-   * remote resource is greater than the last modified time of the cached
-   * resource.
-   * 
-   * @param cacheEntry The cache entry to refresh.
-   * @return The refreshed cache entry.
-   */
-  protected CacheEntry refreshCacheEntry(CacheEntry cacheEntry)
-  {
-	  URLConnection conn = null;
-	  InputStream is = null;
-	  OutputStream os = null;
-	  try
-	  {
-		  URL url = new URL(cacheEntry.getURI());
-		  conn = url.openConnection();
-		  conn.connect();
-		  
-		  long lastModified = conn.getLastModified();
-	      if(lastModified > cacheEntry.getLastModified())
-		  {
-			long expiration = conn.getExpiration();
-		    if(expiration == 0)
-			{
-			  expiration = System.currentTimeMillis() + TIMEOUT;
-			}
-			
-		    is = conn.getInputStream();
-			
-			String localFile = cacheEntry.getLocalFile();
-  
-		    File tempFile = File.createTempFile(CACHE_PREFIX, CACHE_SUFFIX);
-			tempFile.deleteOnExit();
-
-		    os = new FileOutputStream(tempFile);
-		    byte[] bytes = new byte[1024];
-		    int bytelength;
-		    while((bytelength = is.read(bytes)) != -1)
-		    {
-			  os.write(bytes, 0, bytelength);
-		    }
-			is.close();
-			os.close();
-			deleteFile(cacheEntry.getURI());
-			File f = new File(cacheLocation, localFile);
-			tempFile.renameTo(f);
-			cacheEntry.setExpiration(expiration);
-			cacheEntry.setLastModified(lastModified);
-		  }
-		  // The cache entry hasn't changed. Just update the expiration time.
-	      else
-		  {
-			long expiration = conn.getExpiration();
-			if(expiration == 0)
-			{
-			  expiration = System.currentTimeMillis() + TIMEOUT;
-			}
-			cacheEntry.setExpiration(expiration);
-		  }
-
-	  }
-	  catch(Exception e)
-	  {
-      // Do nothing.
-	  }
-	  finally
-	  {
-		  if(is != null)
-		  {
-			  try
-			  {
-			    is.close();
-			  }
-			  catch(IOException e)
-			  {
-			    // Do nothing if the stream cannot be closed.
-			  }
-		  }
-		  if(os != null)
-		  {
-			  try
-			  {
-			    os.close();
-			  }
-			  catch(IOException e)
-			  {
-				// Do nothing if the stream cannot be closed. 
-			  }
-		  }
-	  }
-	  return cacheEntry;
-  }
-  
-  /**
-   * Get an array of the cached URIs.
-   * 
-   * @return An array of the cached URIs.
-   */
-  public String[] getCachedURIs()
-  {
-	Set keyset = cache.keySet();
-	return (String[])keyset.toArray(new String[keyset.size()]);
-  }
-  
-  /**
-   * Close the cache. Closing the cache involves serializing the data to an XML file
-   * in the plugin state location.
-   */
-  protected void close()
-  {
-	  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-      try {
-        DocumentBuilder builder = factory.newDocumentBuilder();
-        Document cachedoc = builder.newDocument();
-		Element rootelem = cachedoc.createElement(CACHE);
-		cachedoc.appendChild(rootelem);
-		
-	  Enumeration uris = cache.keys();
-	  while(uris.hasMoreElements())
-	  {
-		  String key = (String)uris.nextElement();
-		  CacheEntry cacheEntry = (CacheEntry)cache.get(key);
-		  if(cacheEntry != null)
-		  {
-			  Element entry = cachedoc.createElement(ENTRY);
-			  entry.setAttribute(URI, key);
-			  entry.setAttribute(LOCATION, cacheEntry.getLocalFile());
-			  entry.setAttribute(EXPIRATION_TIME, String.valueOf(cacheEntry.getExpirationTime()));
-			  entry.setAttribute(LAST_MODIFIED, String.valueOf(cacheEntry.getLastModified()));
-			  rootelem.appendChild(entry);
-		  }
-	  }
-	  
-	  // Write the cache entry.
-	  TransformerFactory tFactory  = TransformerFactory.newInstance();
-      Transformer transformer = tFactory.newTransformer();
-      Source input = new DOMSource(cachedoc);
-	  IPath stateLocation = Platform.getStateLocation(CachePlugin.getDefault().getBundle());
-      Result output = new StreamResult(stateLocation.toString() + "/" + CACHE_FILE);
-      transformer.transform(input, output);
-
-      }catch(Exception e)
-	  {
-		  System.out.println("Unable to store internet cache.");
-	  }
-	  cacheInstance = null;
-  }
-  
-  /**
-   * Open the cache. Opening the cache involves parsing the cache XML file in
-   * the plugin state location if it can be read.
-   */
-  protected static void open(IPath cacheLocation)
-  {
-    cacheInstance = new Cache(cacheLocation);
-	  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-      try {
-		  
-		IPath stateLocation = cacheLocation;
-        DocumentBuilder builder = factory.newDocumentBuilder();
-        Document cachedoc = builder.parse(stateLocation.toString() + "/" + CACHE_FILE);
-		Element rootelem = cachedoc.getDocumentElement();
-		NodeList entries = rootelem.getChildNodes();
-		int numEntries = entries.getLength();
-		for(int i = 0; i < numEntries; i++)
-		{
-			Node entry = entries.item(i);
-			if(entry instanceof Element)
-			{
-				Element e = (Element)entry;
-				if(e.getNodeName().equals(ENTRY))
-				{
-					String uri = e.getAttribute(URI);
-					String location = e.getAttribute(LOCATION);
-					String lm = e.getAttribute(LAST_MODIFIED);
-					String et = e.getAttribute(EXPIRATION_TIME);
-					long lastModified = -1;
-					long expirationTime = -1;
-					try
-					{
-						lastModified = Long.parseLong(lm);
-					}
-					catch(NumberFormatException nfe)
-					{
-					}
-					try
-					{
-						expirationTime = Long.parseLong(et);
-					}
-					catch(NumberFormatException nfe)
-					{
-					}
-					if(uri != null && location != null)
-					{
-					  cacheInstance.cache.put(uri, new CacheEntry(uri, location, lastModified, expirationTime));
-					}
-				}
-			}
-		}
-      }
-	  catch(FileNotFoundException e)
-	  {
-		// If the file doesn't exist in the correct location there is nothing to load. Do nothing.
-	  }
-	  catch(Exception e)
-	  {
-		  System.out.println("Unable to load cache.");
-	  }
-  }
-  
-  /**
-   * Clear all of the entries from the cache. This method also deletes the cache files.
-   */
-  public void clear()
-  {
-	Enumeration keys = cache.keys();
-	while(keys.hasMoreElements())
-	{
-	  String key = (String)keys.nextElement();
-	  
-	  deleteFile(key);
-	}
-	cache.clear();
-  }
-  
-  /**
-   * Delete the cache entry specified by the given URI.
-   * @param uri The URI entry to remove from the catalog.
-   */
-  public void deleteEntry(String uri)
-  {
-	  if(uri == null) return;
-	  
-	  deleteFile(uri);
-	  cache.remove(uri);
-  }
-  
-  /**
-   * Delete the file specified by the URI.
-   * 
-   * @param uri The URI of the file to delete.
-   */
-  protected void deleteFile(String uri)
-  {
-	  CacheEntry cacheEntry = (CacheEntry)cache.get(uri);
-	  if(cacheEntry != null)
-	  {
-		String location = cacheLocation.toString() + "/" + cacheEntry.getLocalFile();
-	    File file = new File(location);
-	    if(!file.delete())
-	    {
-	      System.out.println("Unable to delete file " + location + " from cache.");
-	    } 
-	  }
-  }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheEntry.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheEntry.java
deleted file mode 100644
index 817ec06..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheEntry.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-/**
- * A cache entry contains a URI, a local file, and a timeout.
- */
-public class CacheEntry 
-{
-  private String uri;
-  private String localFile;
-  private long lastModified;
-  private long expirationTime;
-  
-  /**
-   * Create a new cache entry.
-   * 
-   * @param uri The remote URI of the cache entry.
-   * @param localFile The local file that contains the cached entry.
-   * @param lastModifie The time this resource was last modified.
-   * @param expirationTime The time in miliseconds that this cache entry will
-   *                       expire.
-   */
-  public CacheEntry(String uri, String localFile, long lastModified, long expirationTime)
-  {
-	this.uri = uri;
-	this.localFile = localFile;
-	this.lastModified = lastModified;
-	this.expirationTime = expirationTime;
-  }
-  
-  /**
-   * The cache entry is expired if its expiration time is less then the
-   * current system time and not equal to -1.
-   * 
-   * @return True if this cached entry has expired, false otherwise.
-   */
-  public boolean hasExpired()
-  {
-	 if(expirationTime != -1 && System.currentTimeMillis() > expirationTime)
-	 {
-	   return true;
-	 }
-	 return false;
-  }
-  
-  /**
-   * Set the time in miliseconds that this cache entry will expire.
-   * 
-   * @param timeout The time in miliseconds that this cache entry will expire.
-   *                -1 indicates that this entry will not expire.
-   */
-  public void setExpiration(long expirationTime)
-  {
-	this.expirationTime = expirationTime;
-  }
-  
-  /**
-   * Get the time at which this cache entry will expire.
-   * 
-   * @return The time at which this cache entry will expire.
-   */
-  public long getExpirationTime()
-  {
-	return expirationTime;
-  }
-  
-  /**
-   * Get the remote URI for this cache entry.
-   * 
-   * @return The remote URI for this cache entry.
-   */
-  public String getURI()
-  {
-	return uri;
-  }
-  
-  /**
-   * Get the local file for this cache entry.
-   * 
-   * @return The local file for this cache entry.
-   */
-  public String getLocalFile()
-  {
-	return localFile;
-  }
-  
-  /**
-   * Get the last time this cache entry was modified.
-   * 
-   * @return The last time this cache entry was modified.
-   */
-  public long getLastModified()
-  {
-	return lastModified;
-  }
-  
-  /**
-   * Set the last time this cache entry was modified.
-   */
-  public void setLastModified(long lastModified)
-  {
-	this.lastModified = lastModified;
-  }
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheJob.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheJob.java
deleted file mode 100644
index 34c3943..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheJob.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-
-/**
- * A cache job runs once an hour to cache any prespecified resources which
- * should be cached and any resources for which an attempt was previously 
- * made to cache them but they were unable to be cached.
- */
-public class CacheJob extends Job
-{
-  private static final long SCHEDULE_TIME = 3600000;
-
-  private static CacheJob job = null;
-  /**
-   * Constructor.
-   */
-  public CacheJob()
-  {
-    super(CacheMessages._UI_CACHE_MONITOR_NAME);
-  }
-
-  /**
-   * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-   */
-  protected IStatus run(IProgressMonitor monitor)
-  {
-	boolean allSuccessful = true;
-    Cache cache = Cache.getInstance();
-    String[] uncachedURIs = cache.getUncachedURIs();
-    int numUncachedURIs = uncachedURIs.length;
-
-    cache.clearUncachedURIs();
-    monitor.beginTask(CacheMessages._UI_CACHE_MONITOR_NAME, numUncachedURIs);
-    try
-    {
-      for(int i = 0; i < numUncachedURIs; i++)
-      {
-        if (monitor.isCanceled())
-        {
-          for(int j = i; j < numUncachedURIs; j++)
-          {
-            cache.addUncachedURI(uncachedURIs[j]);
-          }
-          return Status.CANCEL_STATUS;
-        }
-        String uri = uncachedURIs[i];
-        monitor.setTaskName(MessageFormat.format(CacheMessages._UI_CACHE_MONITOR_CACHING, new Object[]{uri}));
-       
-        String cachedURI = cache.getResource(uri);
-        if(cachedURI == null)
-    	{
-    	  allSuccessful = false;
-    	}
-        monitor.worked(1);
-      }
-      monitor.done();
-      return Status.OK_STATUS;
-    } 
-    finally
-    {
-      // If all the uncached URIs could not be cached 
-      // schedule the next time the job should run.
-      if(!allSuccessful)
-      {
-    	  startJob(SCHEDULE_TIME); 
-      }
-    }
-  }
-  
-  /**
-   * Start the cache job. The cache job caches resources that were not able to be previously
-   * downloaded. Only one job is run at a time.
-   */
-  protected static void startJob() 
-  {
-	if(job == null)
-	{
-	  startJob(0);
-	}
-  }
-  
-  /**
-   * Start a new cache job with the specified delay.
-   * 
-   * @param delay
-   * 		The start delay for the cache job.
-   */
-  private static void startJob(long delay)
-  {
-	job = new CacheJob();
-	job.setPriority(CacheJob.DECORATE);
-	job.schedule(delay); // start as soon as possible
-  }
-
-  /**
-   * Stop the current cache job. The cache job caches resources that were not able to be previously
-   * downloaded.
-   */
-  protected static void stopJob() 
-  {
-	if (job != null) 
-	{
-	  job.cancel();
-	}
-	job = null;
-  }
-
-}
-
-
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheMessages.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheMessages.java
deleted file mode 100644
index f8fee2f..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheMessages.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Copyright (c) 2006 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.wst.internet.cache.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by the cache.
- */
-public class CacheMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.internet.cache.internal.CachePluginResources";//$NON-NLS-1$
-
-	public static String _UI_CONFIRM_CLEAR_CACHE_DIALOG_TITLE;
-	public static String _UI_CONFIRM_CLEAR_CACHE_DIALOG_MESSAGE;
-	public static String _UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_TITLE;
-	public static String _UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_MESSAGE;
-	public static String _UI_BUTTON_CLEAR_CACHE;
-	public static String _UI_BUTTON_DELETE_ENTRY;
-	public static String _UI_PREF_CACHE_ENTRIES_TITLE;
-	public static String _UI_PREF_CACHE_CACHE_OPTION;
-	public static String _UI_PREF_CACHE_ABOUT;
-	public static String _UI_PREF_PROMPT_FOR_DISAGREED_LICENSES;
-	public static String _UI_CACHE_MONITOR_NAME;
-	public static String _UI_CACHE_MONITOR_CACHING;
-
-	// Cache license dialog
-	public static String _UI_CACHE_DIALOG_LICENSE_STATEMENT1;
-	public static String _UI_CACHE_DIALOG_LICENSE_STATEMENT2;
-	public static String _UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_INTERNAL;
-	public static String _UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_BROWSER;
-	public static String _UI_CACHE_DIALOG_AGREE_BUTTON;
-	public static String _UI_CACHE_DIALOG_DISAGREE_BUTTON;
-	public static String _UI_CACHE_DIALOG_TITLE;
-	public static String _UI_LOADING_LICENSE;
-
-	// Cache logging messages
-	public static String _LOG_INFO_WTP_NO_USER_INTERACTION;
-
-	// WTP test no user interaction system property
-	public static String WTP_NO_USER_INTERACTION_SYSTEM_PROP;   
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, CacheMessages.class);
-	}
-
-	private CacheMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePlugin.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePlugin.java
deleted file mode 100644
index 704f0e0..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePlugin.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.internet.cache.internal.preferences.PreferenceConstants;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class CachePlugin extends AbstractUIPlugin 
-{
-  /**
-   * The ID of this plugin.
-   */
-  public static final String PLUGIN_ID = "org.eclipse.wst.internet.cache";
-
-  /**
-   * The shared instance.
-   */
-  private static CachePlugin plugin;
-
-  /**
-   * The constructor.
-   */
-  public CachePlugin() 
-  {
-	super();
-	plugin = this;
-  }
-
-  /**
-   * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-   */
-  public void start(BundleContext context) throws Exception 
-  {
-	super.start(context);
-	ToCacheRegistryReader.getInstance().readRegistry();
-	Cache.open(Platform.getStateLocation(getBundle()));
-	if (getPluginPreferences().contains(PreferenceConstants.CACHE_ENABLED)) 
-	{
-	  setCacheEnabled(getPluginPreferences().getBoolean(PreferenceConstants.CACHE_ENABLED));
-	} 
-	else 
-	{
-	  // The cache is disabled by default.
-	  setCacheEnabled(false);
-	}
-	
-	// Restore license preferences
-	Preferences prefs = getPluginPreferences();
-	LicenseRegistry registry = LicenseRegistry.getInstance();
-	String[] licenses = registry.getLicenses();
-	int numLicenses = licenses.length;
-	for(int i = 0; i < numLicenses; i++)
-	{
-	  int state = prefs.getInt(licenses[i]);
-	  if(state == LicenseRegistry.LICENSE_AGREE.intValue())
-	  {
-		registry.agreeLicense(licenses[i]);
-	  }
-	  else if(state == LicenseRegistry.LICENSE_DISAGREE.intValue())
-	  {
-		registry.disagreeLicense(licenses[i]);
-	  }
-	}
-  }
-
-  /**
-   * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-   */
-  public void stop(BundleContext context) throws Exception 
-  {
-	// Save the license state information.
-	Preferences prefs = getPluginPreferences();
-	LicenseRegistry registry = LicenseRegistry.getInstance();
-	String[] licenses = registry.getLicenses();
-	int numLicenses = licenses.length;
-	for(int i = 0; i < numLicenses; i++)
-	{
-	  Integer state = registry.getLicenseState(licenses[i]);
-      // For states that have been disagreed to this session store
-	  // them as disagree.
-	  if(state == LicenseRegistry.LICENSE_DISAGREE_THIS_SESSION)
-	  {
-		state = LicenseRegistry.LICENSE_DISAGREE;
-	  }
-	  prefs.setValue(licenses[i], state.intValue());
-	}
-	
-	Cache.getInstance().close();
-	CacheJob.stopJob();
-	super.stop(context);
-	plugin = null;
-  }
-
-  /**
-   * Returns the shared instance.
-   * 
-   * @return The shared instance.
-   */
-  public static CachePlugin getDefault() 
-  {
-	return plugin;
-  }
-
-  /**
-   * Set whether or not the cache is enabled.
-   * 
-   * @param enabled If true the cache is enabled, if false it is not enabled.
-   */
-  public void setCacheEnabled(boolean enabled) 
-  {
-	getPluginPreferences().setValue(PreferenceConstants.CACHE_ENABLED, enabled);
-	CacheJob.stopJob();
-  }
-
-  /**
-   * Returns true if the cache is enabled, false otherwise.
-   * 
-   * @return True if the cache is enabled, false otherwise.
-   */
-  public boolean isCacheEnabled() 
-  {
-	if (getPluginPreferences().contains(PreferenceConstants.CACHE_ENABLED))
-	  return getPluginPreferences().getBoolean(PreferenceConstants.CACHE_ENABLED);
-	return true;
-  }
-  
-  /**
-   * Set whether or not the user should be prompted for licenses to which they 
-   * have previously disagreed.
-   * 
-   * @param prompt If true the the user should be prompted, if false the user should not be prompted.
-   */
-  public void setPromptDisagreedLicenses(boolean prompt) 
-  {
-	getPluginPreferences().setValue(PreferenceConstants.PROMPT_DISAGREED_LICENSES, prompt);
-  }
-
-  /**
-   * Returns true if the the user should be prompted for licenses to which they
-   * have previously disagreed, false otherwise.
-   * 
-   * @return True if the user should be prompted, false otherwise.
-   */
-  public boolean shouldPrompt() 
-  {
-	if (getPluginPreferences().contains(PreferenceConstants.PROMPT_DISAGREED_LICENSES))
-	  return getPluginPreferences().getBoolean(PreferenceConstants.PROMPT_DISAGREED_LICENSES);
-	return true;
-  }
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePluginResources.properties b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePluginResources.properties
deleted file mode 100644
index fe850d6..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CachePluginResources.properties
+++ /dev/null
@@ -1,43 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-# Cache preference page strings.
-_UI_CONFIRM_CLEAR_CACHE_DIALOG_TITLE             = Remove All?
-_UI_CONFIRM_CLEAR_CACHE_DIALOG_MESSAGE           = Remove all cache entries?
-_UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_TITLE      = Remove Entries?
-_UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_MESSAGE    = Remove all selected cache entries?
-_UI_BUTTON_CLEAR_CACHE                           = Remove &All
-_UI_BUTTON_DELETE_ENTRY                          = &Remove
-_UI_PREF_CACHE_ENTRIES_TITLE                     = &Cache entries:
-_UI_PREF_CACHE_CACHE_OPTION                      = &Disable caching
-_UI_PREF_CACHE_ABOUT                             = Manage the cache of remote resources, such as those downloaded from the internet.
-_UI_PREF_PROMPT_FOR_DISAGREED_LICENSES           = &Prompt me for agreement for licenses for whose terms I have already disagreed.
-
-# Cache monitor strings.
-_UI_CACHE_MONITOR_NAME                           = Caching Remote Resources
-_UI_CACHE_MONITOR_CACHING                        = Caching {0}
-
-# Cache license dialog
-_UI_CACHE_DIALOG_LICENSE_STATEMENT1              = A request has been made to cache the resource:
-_UI_CACHE_DIALOG_LICENSE_STATEMENT2              = In order to cache the resource you must agree to the license below:
-_UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_INTERNAL  = In order to cache the resource you must agree to the license which has been opened in your browser.
-_UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_BROWSER   = The license cannot be displayed in this dialog. In order to cache the resource you must agree to the license located at {0}.
-_UI_CACHE_DIALOG_AGREE_BUTTON                    = I Agree
-_UI_CACHE_DIALOG_DISAGREE_BUTTON                 = I Disagree
-_UI_CACHE_DIALOG_TITLE                           = License Agreement
-_UI_LOADING_LICENSE                              = Loading license
-
-# Cache logging messages
-_LOG_INFO_WTP_NO_USER_INTERACTION                = {0} is set. Licenses dialogs will not be displayed.
-
-# WTP test no user interaction system property
-# This property is checked by the cache. This sting is not shown to the user.
-WTP_NO_USER_INTERACTION_SYSTEM_PROP              = wtp.autotest.noninteractive
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheURIResolverExtension.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheURIResolverExtension.java
deleted file mode 100644
index f6518f2..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/CacheURIResolverExtension.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-
-/**
- * A cache URI resolver. This resolver will cache remote resources and return
- * the local copy if they can be cached. If a resource cannot be cached the
- * resource returns null.
- */
-public class CacheURIResolverExtension implements URIResolverExtension 
-{
-	/**
-	 * @see org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverExtension#resolve(org.eclipse.core.resources.IProject, java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public String resolve(IFile file, String baseLocation, String publicId, String systemId)
-	{ 
-      if(CachePlugin.getDefault().isCacheEnabled())
-      {
-		  String resource = null;
-		  if(systemId != null)
-		  {
-		    resource = URIHelper.normalize(systemId, baseLocation, null);
-		  } 
-		  
-		  if(resource != null && (resource.startsWith("http:") || resource.startsWith("ftp:")))
-		  {
-		    // Handle resources prespecified to cache.
-		    ToCacheResource toCacheResource = ToCacheRegistryReader.getInstance().getResourceToCache(resource);
-		    if(toCacheResource == null || LicenseRegistry.getInstance().hasLicenseBeenAccepted(resource, toCacheResource.getLicense()))
-		    { 	
-		      return Cache.getInstance().getResource(resource);
-		    }
-		  }
-      }
-	  return null;
-	}
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseAcceptanceDialog.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseAcceptanceDialog.java
deleted file mode 100644
index 369d7e4..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseAcceptanceDialog.java
+++ /dev/null
@@ -1,342 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.internet.cache.internal;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.Hashtable;
-
-import org.eclipse.jface.dialogs.IconAndMessageDialog;
-import org.eclipse.jface.wizard.ProgressMonitorPart;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.ProgressListener;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog that prompts the user to accept a license agreement.
- */
-public class LicenseAcceptanceDialog extends IconAndMessageDialog 
-{
-  /**
-   * Holds all the dialogs that are currently displayed keyed by the license URL.
-   */
-  private static Hashtable dialogsInUse = new Hashtable();
-  
-  /**
-   * The URL of the resource.
-   */
-  private String url;
-
-  /**
-   * The URL of the license.
-   */
-  private String licenseURL;
-  
-  /**
-   * The agree button for the dialog.
-   */
-  private Button agreeButton = null;
-  
-  /**
-   * Constructor.
-   * 
-   * @param parent The parent of this dialog.
-   * @param url The license URL.
-   */
-  protected LicenseAcceptanceDialog(Shell parent, String url, String licenseURL) 
-  {
-    super(parent);
-	this.url = url;
-	this.licenseURL = licenseURL;
-  }
-  
-  /**
-   * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-   */
-  protected void configureShell(Shell shell) 
-  {
-    super.configureShell(shell);
-    shell.setText(CacheMessages._UI_CACHE_DIALOG_TITLE);
-    shell.setImage(null);
-  }
-
-  /**
-   * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-   */
-  protected Control createButtonBar(Composite parent) 
-  {
-	Composite buttonBar = new Composite(parent, SWT.NONE);
-	GridLayout layout = new GridLayout();
-	layout.numColumns = 0;
-	layout.makeColumnsEqualWidth = true;
-	buttonBar.setLayout(layout);
-	GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
-	buttonBar.setLayoutData(gd);
-	
-	// Create the agree button.
-	agreeButton = createButton(buttonBar, LicenseAcceptanceDialog.OK, 
-			CacheMessages._UI_CACHE_DIALOG_AGREE_BUTTON, false);
-	agreeButton.setEnabled(false);
-	
-	// Create the disagree button.
-	createButton(buttonBar, LicenseAcceptanceDialog.CANCEL, 
-			CacheMessages._UI_CACHE_DIALOG_DISAGREE_BUTTON, false);
-	
-	return buttonBar;
-  }
-
-  /**
-   * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
-   */
-  protected Control createContents(Composite parent) 
-  {
-	Composite composite = new Composite(parent, SWT.NONE);
-	GridLayout layout = new GridLayout();
-	composite.setLayout(layout);
-	GridData gd = new GridData(SWT.FILL);
-	gd.widthHint = 500;
-	composite.setLayoutData(gd);
-
-	// Display a statement about the license.
-	Label licenseText1 = new Label(composite, SWT.NONE);
-	licenseText1.setText(CacheMessages._UI_CACHE_DIALOG_LICENSE_STATEMENT1);
-	Label urlText = new Label(composite, SWT.WRAP);
-	gd = new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1);
-	urlText.setLayoutData(gd);
-	urlText.setText(url);
-	new Label(composite, SWT.NONE); // Spacing label.
-	Label licenseText2 = new Label(composite, SWT.WRAP);
-	gd = new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1);
-	licenseText2.setLayoutData(gd);
-	
-	// Display the license in a browser.
-	try
-	{
-	  final Composite licenseTextComposite = new Composite(composite, SWT.NONE);
-	  final StackLayout stackLayout = new StackLayout();
-	  licenseTextComposite.setLayout(stackLayout);
-	  gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-	  gd.heightHint = 400;
-	  licenseTextComposite.setLayoutData(gd);
-	  // Create the loading progress monitor composite and part.
-	  Composite monitorComposite = new Composite(licenseTextComposite, SWT.NONE);
-	  monitorComposite.setLayout(new GridLayout());
-	  gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-	  gd.heightHint = 400;
-	  monitorComposite.setLayoutData(gd);
-	  final ProgressMonitorPart monitor = new ProgressMonitorPart(monitorComposite, new GridLayout());
-	  gd = new GridData(SWT.FILL, SWT.BOTTOM, true, true);
-	  monitor.setLayoutData(gd);
-	  monitor.beginTask(CacheMessages._UI_LOADING_LICENSE, 100);
-	  stackLayout.topControl = monitorComposite;
-	  // Create the browser.
-	  final Browser browser = new Browser(licenseTextComposite, SWT.BORDER);
-	  gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-	  //gd.heightHint = 400;
-	  
-	  // The browser widget has problems loading files stored in jars
-	  // so we read from the jar and set the browser text ourselves.
-	  // See bug 154721.
-	  if(licenseURL.startsWith("jar:"))
-	  {
-		  InputStream licenseStream = null;
-		  InputStreamReader isreader = null;
-		  BufferedReader breader = null;
-		  try
-		  {
-		  URL browserURL = new URL(licenseURL);
-		  licenseStream = browserURL.openStream();
-		  isreader = new InputStreamReader(licenseStream);
-		  breader = new BufferedReader(isreader);
-		  String str;
-		  StringBuffer sb = new StringBuffer();
-		  while((str = breader.readLine())!=null){
-		      sb.append(str);
-		  }
-		  browser.setText(sb.toString());
-		  }
-		  finally
-		  {
-			  if(licenseStream != null)
-			  {
-				  licenseStream.close();
-			  }
-			  if(isreader != null)
-			  {
-				  isreader.close();
-			  }
-			  if(breader != null)
-			  {
-				  breader.close();
-			  }
-		  }
-	  }
-	  else
-	  {
-		  browser.setUrl(licenseURL);
-	  }
-	  browser.setLayoutData(gd);
-	  browser.addProgressListener(new ProgressListener(){
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.browser.ProgressListener#changed(org.eclipse.swt.browser.ProgressEvent)
-		 */
-		public void changed(ProgressEvent event) 
-		{
-		  if (event.total != 0)
-		  {
-		    monitor.internalWorked(event.current * 100 / event.total);
-		  }
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.browser.ProgressListener#completed(org.eclipse.swt.browser.ProgressEvent)
-		 */
-		public void completed(ProgressEvent event) 
-		{
-		  monitor.done();
-			
-		  stackLayout.topControl = browser;
-		  agreeButton.setEnabled(true);
-		  licenseTextComposite.layout();
-		}
-	  });
-	  
-	  licenseText2.setText(CacheMessages._UI_CACHE_DIALOG_LICENSE_STATEMENT2);
-	}
-	catch(Throwable e)
-	{
-	  // The browser throws an exception on platforms that do not support it. 
-	  // In this case we need to create an external browser.
-	  try
-	  {
-	    CachePlugin.getDefault().getWorkbench().getBrowserSupport().getExternalBrowser().openURL(new URL(licenseURL));
-	    licenseText2.setText(CacheMessages._UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_INTERNAL);
-	  }
-	  catch(Exception ex)
-	  {
-		// In this case the license cannot be display. Inform the user of this and give them the license location.
-		licenseText2.setText(MessageFormat.format(CacheMessages._UI_CACHE_DIALOG_LICENSE_STATEMENT2_NO_BROWSER, new Object[]{licenseURL}));
-	  }
-	}
-
-	createButtonBar(composite);
-		
-	return composite;
-  }
-
-  /**
-   * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-   */
-  protected Image getImage() 
-  {
-	return getInfoImage();
-  }
-
-  /**
-   * Prompt the user to accept the specified license. This method creates the
-   * dialog and returns the result.
-   * 
-   * @param parent The parent of this dialog.
-   * @param url The URL of the resource for which the license must be accepted.
-   * @param licenseURL The license URL.
-   * @return True if the license is accepted, false otherwise.
-   */
-  public static boolean promptForLicense(Shell parent, String url, String licenseURL) throws IOException
-  {
-	boolean agreedToLicense = false;
-	boolean newDialog = true;
-	LicenseAcceptanceDialog dialog = null;
-	// If the dialog is already displayed for this license use it instead of 
-	// displaying another dialog.
-	if(dialogsInUse.containsKey(licenseURL))
-	{
-	  newDialog = false;
-	  dialog = (LicenseAcceptanceDialog)dialogsInUse.get(licenseURL);
-	}
-	else
-	{
-	  InputStream is = null;
-
-	  try
-	  {
-	    URL urlObj = new URL(licenseURL);
-	    is = urlObj.openStream();
-
-	    dialog = new LicenseAcceptanceDialog(parent, url, licenseURL);
-	    dialogsInUse.put(licenseURL, dialog);
-	    dialog.setBlockOnOpen(true);
-	  }
-	  catch(Exception e)
-	  {
-		throw new IOException("The license cannot be opened.");
-	  }
-	  finally
-	  {
-		if(is != null)
-		{
-		  try
-		  {
-			is.close();
-		  }
-		  catch(IOException e)
-		  {
-		    // Do nothing.
-		  }
-		}
-	  }
-	}
-	if(dialog != null)
-	{
-	  dialog.open();
-	  
-	  if (dialog.getReturnCode() == LicenseAcceptanceDialog.OK) 
-	  {
-		agreedToLicense = true;
-      }
-		
-	  if(newDialog)
-	  {
-       dialogsInUse.remove(licenseURL);
-	  }
-	}
-	 
-	return agreedToLicense;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.dialogs.Dialog#close()
-   */
-  public boolean close() 
-  {
-	if(agreeButton != null)
-	{
-	  agreeButton.dispose();
-	  agreeButton = null;
-	}
-	return super.close();
-  }
-  
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseRegistry.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseRegistry.java
deleted file mode 100644
index 2ffb248..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/LicenseRegistry.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.internet.cache.internal;
-
-import java.text.MessageFormat;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * The license registry holds all of the registered licenses and whether or not they
- * have been accepted.
- */
-public class LicenseRegistry 
-{
-  protected static Integer LICENSE_UNSPECIFIED = new Integer(0); // This needs to be 0 for the plugin prefs.
-  protected static Integer LICENSE_AGREE = new Integer(1);
-  protected static Integer LICENSE_DISAGREE = new Integer(2);
-  // Signifies a license that has been disagreed to this session.
-  protected static Integer LICENSE_DISAGREE_THIS_SESSION = new Integer(3);
-  
-  /**
-   * There is only one instance of the license registry.
-   */
-  protected static LicenseRegistry instance = null;
-  
-  /**
-   * If set to true, the do not prompt flag will prevent user prompting. Used for automated testing.
-   */
-  private boolean DO_NOT_PROMPT = false;
-  
-  /**
-   * The licenses hashtable contains licenses and whether or not they've been accepted.
-   */
-  protected Hashtable licenses;
-  
-  protected LicenseRegistry()
-  {
-	licenses = new Hashtable();
-	
-	// If the wtp quiet system property is set the DO_NOT_PROMPT flag is set to true.
-	// This is used for automated testing.
-	if(System.getProperty(CacheMessages.WTP_NO_USER_INTERACTION_SYSTEM_PROP, "false").equals("true"))
-	{
-	  CachePlugin.getDefault().getLog().log(new Status(IStatus.INFO, CachePlugin.PLUGIN_ID, IStatus.OK, MessageFormat.format(CacheMessages._LOG_INFO_WTP_NO_USER_INTERACTION, new Object[]{CacheMessages.WTP_NO_USER_INTERACTION_SYSTEM_PROP}), null));
-	  DO_NOT_PROMPT = true;
-	}
-  }
-  
-  /**
-   * Get the one and only instance of the license registry.
-   * 
-   * @return The one and only instance of the license registry.
-   */
-  public static LicenseRegistry getInstance()
-  {
-	if(instance == null)
-	{
-	  instance = new LicenseRegistry();
-	}
-	return instance;
-  }
-  
-  /**
-   * Add the specified license to the license registry. A license can only be added to the
-   * registry once.
-   * 
-   * @param url The URL of the license to add to the registry.
-   */
-  public void addLicense(String url)
-  {
-	if(url != null && !licenses.containsKey(url))
-	{
-	  licenses.put(url, LICENSE_UNSPECIFIED);
-	}
-  }
-  
-  /**
-   * Agree to the specified license. The license is agreed to only if it has already
-   * been registered with the registry.
-   * 
-   * @param url The URL of the license to accept.
-   */
-  protected void agreeLicense(String url)
-  {
-	if(licenses.containsKey(url))
-	{
-	  licenses.put(url, LICENSE_AGREE);
-	}
-  }
-  
-  /**
-   * Disagree to the specified license. The license is disagreed to only if it has already
-   * been registered with the registry.
-   * 
-   * @param url The URL of the license to accept.
-   */
-  protected void disagreeLicense(String url)
-  {
-	if(licenses.containsKey(url))
-	{
-	  licenses.put(url, LICENSE_DISAGREE);
-	}
-  }
-  
-  /**
-   * Disagree to the specified license for this session. The license is disagreed to only if it has already
-   * been registered with the registry. 
-   * 
-   * @param url The URL of the license to accept.
-   */
-  private void disagreeLicenseThisSession(String url)
-  {
-	if(licenses.containsKey(url))
-	{
-	  licenses.put(url, LICENSE_DISAGREE_THIS_SESSION);
-	}
-  }
-  
-  /**
-   * Determine if the license has been accepted. This method will return true if the license
-   * has been accepted or is not registered with the registry and false if it has not been accepted. 
-   * 
-   * @param url The URL of the resource for which we are checking the license.
-   * @param licenseURL The URL of the license that should be checked to see if it has been accepted.
-   * @return True if the license has been accepted or is not registered with the registry, false otherwise.
-   */
-  public boolean hasLicenseBeenAccepted(String url, String licenseURL)
-  {
-	if(DO_NOT_PROMPT)
-	{
-	  return true;
-	}
-	
-	if(licenses.containsKey(licenseURL))
-	{
-	  Integer agreed = (Integer)licenses.get(licenseURL);
-	  if(agreed == LICENSE_AGREE)
-	  {
-		return true;
-	  }
-	  else if(agreed == LICENSE_DISAGREE)
-	  {
-		if(!CachePlugin.getDefault().shouldPrompt())
-		  return false;
-		licenses.put(licenseURL, LICENSE_DISAGREE_THIS_SESSION);
-	  }
-	  // The license has already been disagreed to this session. Do not prompt.
-	  else if(agreed == LICENSE_DISAGREE_THIS_SESSION)
-	  {
-		return false;
-	  }
-		  
-	  
-	  // Prompt the user to accept the license.
-	  int licenseAcceptance = promptToAcceptLicense(url, licenseURL);
-	  if(licenseAcceptance == Accepted.ACCEPTED)
-	  {
-		agreeLicense(licenseURL);
-		return true;
-	  }
-	  else if(licenseAcceptance == Accepted.NOT_ACCEPTED)
-	  {
-	    disagreeLicenseThisSession(licenseURL);
-	    return false;
-	  }
-	  return false;
-	}
-	
-	// The license is not registred with the registry.
-	return true;
-  }
-  
-  /**
-   * Prompt the user to accept the license. This method creates a LicenseAcceptanceDialog.
-   * 
-   * @param url The URL of the resource for which the license needs to be accepted.
-   * @param licenseURL The URL of the license to be accepted. 
-   * @return 0 if accepted, 1 if not accepted, 2 if not able to accept.
-   */
-  protected int promptToAcceptLicense(final String url, final String licenseURL) 
-  {
-	final Accepted accepted = new Accepted();
-	  Display.getDefault().syncExec(new Runnable() {
-			public void run() {
-				try
-				{
-				  if(LicenseAcceptanceDialog.promptForLicense(null, url, licenseURL))
-				  {
-					accepted.accepted = Accepted.ACCEPTED;
-				  }
-				  else
-				  {
-					accepted.accepted = Accepted.NOT_ACCEPTED;
-				  }
-				}
-				catch(Exception e)
-				{
-				  accepted.accepted = Accepted.NOT_DETERMINED;
-				}
-			}
-		});
-	return accepted.accepted;
-  }
-  
-  /**
-   * Get an array containing all the licenses in the registry.
-   * 
-   * @return As array containing all the licenses in the registry. 
-   */
-  protected String[] getLicenses()
-  {
-	return (String[])licenses.keySet().toArray(new String[licenses.keySet().size()]);
-  }
-  
-  /**
-   * Get the state of the license.
-   * 
-   * @param url The URL of the license.
-   * @return The state of the license.
-   */
-  protected Integer getLicenseState(String url)
-  {
-	return (Integer)licenses.get(url);
-  }
-  
-  
-  /**
-   * A class to hold acceptance information for the prompt method.
-   */
-  private class Accepted
-  {
-	public static final int ACCEPTED = 0;
-	public static final int NOT_ACCEPTED = 1;
-	public static final int NOT_DETERMINED = 2;
-	public int accepted = NOT_ACCEPTED;
-  }
-
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheRegistryReader.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheRegistryReader.java
deleted file mode 100644
index 73165b2..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheRegistryReader.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal;
-
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.osgi.framework.Bundle;
-
-/**
- * The ToCacheRegistryReaders reads Eclipse extensions which specify
- * resources to cache. An extension point looks like the following.
- * 
- *  <extension point="org.eclipse.wst.internet.cache.cacheresource">
- *    <cacheresource uri="URI_TO_CACHE" license="URI_OF_LICENSE"/>
- *  </extension> 
- *
- */
-public class ToCacheRegistryReader
-{
-  protected static final String PLUGIN_ID = "org.eclipse.wst.internet.cache";
-  protected static final String EXTENSION_POINT_ID = "cacheresource";
-  protected static final String ATT_URL = "url";
-  protected static final String ATT_LICENSE = "license";
- 
-  private static ToCacheRegistryReader registryReader = null;
-  
-  private Hashtable resourcesToCache = new Hashtable();
-
-  /**
-   * Get the one and only instance of this registry reader.
-   * 
-   * @return The one and only instance of this registry reader.
-   */
-  public static ToCacheRegistryReader getInstance()
-  {
-    if(registryReader == null)
-    {
-      registryReader = new ToCacheRegistryReader();
-    }
-    return registryReader;
-  }
-  /**
-   * Read from plugin registry and handle the configuration elements that match
-   * the spedified elements.
-   */
-  public void readRegistry()
-  {
-    IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-    IExtensionPoint point = pluginRegistry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-    if (point != null)
-    {
-      IConfigurationElement[] elements = point.getConfigurationElements();
-      for (int i = 0; i < elements.length; i++)
-      {
-        ToCacheResource toCacheResource = readElement(elements[i]);
-        if(toCacheResource != null)
-        {
-          resourcesToCache.put(toCacheResource.getURL(), toCacheResource);
-          LicenseRegistry.getInstance().addLicense(toCacheResource.getLicense());
-        }
-      }
-    }
-  }
-
-  /**
-   * Parse and deal with the extension points.
-   * 
-   * @param element The extension point element.
-   */
-  protected ToCacheResource readElement(IConfigurationElement element)
-  {
-	
-    if(element.getName().equals(EXTENSION_POINT_ID))
-    {
-      String url = element.getAttribute(ATT_URL);
-      if(url != null)
-      {
-    	String license = element.getAttribute(ATT_LICENSE);
-    	
-    	// If the license is relative resolve relative to the
-    	// plug-in that declares it.
-    	try
-    	{
-    	  URI licenseURI = new URI(license);
-    	  if(!licenseURI.isAbsolute())
-    	  {
-    		Bundle pluginBundle = Platform.getBundle(element.getDeclaringExtension().getContributor().getName());
-    		URL licenseURL = pluginBundle.getEntry(license);
-    		if(licenseURL != null)
-    		{
-    	      license = FileLocator.resolve(licenseURL).toExternalForm();  
-    		}
-    	  }
-    	}
-    	catch(URISyntaxException e)
-    	{
-    	  // Use the license as specified.
-    	}
-    	catch(IOException e)
-    	{
-    	  // Use the license as specified.
-    	}
-    	return new ToCacheResource(url, license);
-      }
-    }
-    return null;
-  }
-  
-  /**
-   * Get the list of URIs that have been specified for caching.
-   * 
-   * @return The list of URIs that have been specified for caching.
-   */
-  public String[] getURIsToCache()
-  {
-    return (String[])resourcesToCache.keySet().toArray(new String[resourcesToCache.size()]);
-  }
-  
-  /**
-   * Get the resource to cache if one has been specified.
-   * 
-   * @param url The URL of the resource to cache.
-   * @return A ToCacheResource object representing the URL or null if none has been specified.
-   */
-  public ToCacheResource getResourceToCache(String url)
-  {
-	return (ToCacheResource)resourcesToCache.get(url);
-  }
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheResource.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheResource.java
deleted file mode 100644
index 3f6778b..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/ToCacheResource.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.internet.cache.internal;
-
-/**
- * A resource that is specified to be cached. The resource has a URL and an optional
- * license.
- */
-public class ToCacheResource 
-{
-  private String url;
-  private String license;
-  
-  /**
-   * Constructor.
-   * 
-   * @param url The URL of the resource to be cached.
-   * @param license The URL of the optional license for this resource.
-   */
-  public ToCacheResource(String url, String license)
-  {
-	this.url = url;
-	this.license = license;
-  }
-  
-  /**
-   * Get the URL of the resource to be cached.
-   * 
-   * @return The URL of the resource to be cached.
-   */
-  public String getURL()
-  {
-	return url;
-  }
-  
-  /**
-   * Get the license URL of the resource to be cached.
-   * 
-   * @return The license URL of the resource to be cached.
-   */
-  public String getLicense()
-  {
-	return license;
-  }
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/CachePreferencePage.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/CachePreferencePage.java
deleted file mode 100644
index 896fac1..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/CachePreferencePage.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal.preferences;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.internet.cache.internal.Cache;
-import org.eclipse.wst.internet.cache.internal.CacheMessages;
-import org.eclipse.wst.internet.cache.internal.CachePlugin;
-
-/**
- * This class represents a preference page that is contributed to the
- * Preferences dialog. This page contains options for the cache. The cache can
- * be disabled, the list of entries in the cache can be viewed, and individual
- * entries or the entire cache can be deleted.
- */
-
-public class CachePreferencePage extends PreferencePage implements
-    IWorkbenchPreferencePage
-{
-  protected Button clearButton;
-
-  protected Button deleteButton;
-
-  protected Button enabledButton;
-  
-  protected Button disagreedLicensesButton;
-
-  protected List entries;
-
-  protected Composite composite = null;
-
-  /**
-   * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-   */
-  public void dispose()
-  {
-    if (composite != null)
-    {
-      composite.dispose();
-    }
-    super.dispose();
-  }
-
-  /**
-   * Constructor.
-   */
-  public CachePreferencePage()
-  {
-    setPreferenceStore(CachePlugin.getDefault().getPreferenceStore());
-  }
-
-  /**
-   * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-   */
-  public void init(IWorkbench workbench)
-  {
-  }
-
-  /**
-   * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-   */
-  protected Control createContents(Composite parent)
-  {
-    noDefaultAndApplyButton();
-
-    composite = new Composite(parent, SWT.NULL);
-    GridLayout layout = new GridLayout();
-    layout.numColumns = 2;
-    layout.horizontalSpacing = convertHorizontalDLUsToPixels(4);
-    layout.verticalSpacing = convertVerticalDLUsToPixels(3);
-    layout.marginWidth = 0;
-    layout.marginHeight = 0;
-    composite.setLayout(layout);
-    GridData gd = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL);
-    composite.setLayoutData(gd);
-    
-    Label aboutLabel = new Label(composite, SWT.WRAP);
-    aboutLabel.setText(CacheMessages._UI_PREF_CACHE_ABOUT);
-    GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-    gridData.horizontalSpan = 2;
-    aboutLabel.setLayoutData(gridData);
-    new Label(composite, SWT.None);
-    try
-    {
-      // Created the disable cache option.
-      enabledButton = new Button(composite, SWT.CHECK | SWT.LEFT);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-      gridData.horizontalSpan = 2;
-      enabledButton.setLayoutData(gridData);
-      enabledButton.setText(CacheMessages._UI_PREF_CACHE_CACHE_OPTION);
-      enabledButton.setSelection(!CachePlugin.getDefault().getPreferenceStore()
-          .getBoolean(PreferenceConstants.CACHE_ENABLED));
-      enabledButton.addSelectionListener(new SelectionListener()
-      {
-
-        public void widgetDefaultSelected(SelectionEvent e)
-        {
-          widgetSelected(e);
-
-        }
-
-        public void widgetSelected(SelectionEvent e)
-        {
-          boolean disabled = enabledButton.getSelection();
-          CachePlugin.getDefault().setCacheEnabled(!disabled);
-        }
-
-      });
-      
-      disagreedLicensesButton = new Button(composite, SWT.CHECK | SWT.LEFT);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-      gridData.horizontalSpan = 2;
-      disagreedLicensesButton.setLayoutData(gridData);
-      disagreedLicensesButton.setText(CacheMessages._UI_PREF_PROMPT_FOR_DISAGREED_LICENSES);
-      disagreedLicensesButton.setSelection(CachePlugin.getDefault().getPreferenceStore()
-          .getBoolean(PreferenceConstants.PROMPT_DISAGREED_LICENSES));
-      disagreedLicensesButton.addSelectionListener(new SelectionListener()
-      {
-
-        public void widgetDefaultSelected(SelectionEvent e)
-        {
-          widgetSelected(e);
-
-        }
-
-        public void widgetSelected(SelectionEvent e)
-        {
-          boolean prompt = disagreedLicensesButton.getSelection();
-          CachePlugin.getDefault().setPromptDisagreedLicenses(prompt);
-        }
-
-      });
-
-      // Create the entities group.
-      Label entriesLabel = new Label(composite, SWT.WRAP);
-      entriesLabel.setText(CacheMessages._UI_PREF_CACHE_ENTRIES_TITLE);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-      gridData.horizontalSpan = 2;
-      entriesLabel.setLayoutData(gridData);
-
-      entries = new List(composite, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(entries,
-          ContextIds.PREF_ENTRIES);
-      String[] cacheEntries = Cache.getInstance().getCachedURIs();
-      Arrays.sort(cacheEntries);
-      entries.setItems(cacheEntries);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-          | GridData.VERTICAL_ALIGN_FILL);
-      gridData.grabExcessHorizontalSpace = true;
-      gridData.grabExcessVerticalSpace = true;
-      entries.setLayoutData(gridData);
-      entries.addSelectionListener(new SelectionAdapter()
-      {
-        public void widgetSelected(SelectionEvent event)
-        {
-          setPreferenceWidgets();
-        }
-      });
-
-      Composite buttonComposite = new Composite(composite, SWT.NULL);
-      GridLayout gridLayout = new GridLayout();
-      gridLayout.horizontalSpacing = 0;
-      gridLayout.verticalSpacing = convertVerticalDLUsToPixels(3);
-      gridLayout.marginWidth = 0;
-      gridLayout.marginHeight = 0;
-      gridLayout.numColumns = 1;
-      buttonComposite.setLayout(gridLayout);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL | SWT.TOP);
-      buttonComposite.setLayoutData(gridData);
-      // Create the Delete button
-      deleteButton = new Button(buttonComposite, SWT.PUSH);
-      deleteButton.setText(CacheMessages._UI_BUTTON_DELETE_ENTRY);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-      gridData.grabExcessHorizontalSpace = true;
-      deleteButton.setLayoutData(gridData);
-      deleteButton.addSelectionListener(new SelectionAdapter()
-      {
-        public void widgetSelected(SelectionEvent event)
-        {
-          if (MessageDialog
-              .openConfirm(
-                  Display.getDefault().getActiveShell(),
-                  CacheMessages._UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_TITLE,
-                  CacheMessages._UI_CONFIRM_DELETE_CACHE_ENTRY_DIALOG_MESSAGE))
-          {
-            String[] selectedEntries = entries.getSelection();
-            int numSelectedEntries = selectedEntries.length;
-
-            Cache cache = Cache.getInstance();
-            for (int i = 0; i < numSelectedEntries; i++)
-            {
-              cache.deleteEntry(selectedEntries[i]);
-            }
-            String[] cacheEntries = cache.getCachedURIs();
-            Arrays.sort(cacheEntries);
-            entries.setItems(cacheEntries);
-            setPreferenceWidgets();
-          }
-        }
-      });
-
-      // Create the Clear Cache button
-      clearButton = new Button(buttonComposite, SWT.PUSH);
-      clearButton.setText(CacheMessages._UI_BUTTON_CLEAR_CACHE);
-      gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-      gridData.grabExcessHorizontalSpace = true;
-      clearButton.setLayoutData(gridData);
-      clearButton.addSelectionListener(new SelectionAdapter()
-      {
-        public void widgetSelected(SelectionEvent event)
-        {
-          if (MessageDialog.openConfirm(Display.getDefault().getActiveShell(),
-              CacheMessages._UI_CONFIRM_CLEAR_CACHE_DIALOG_TITLE,
-              CacheMessages._UI_CONFIRM_CLEAR_CACHE_DIALOG_MESSAGE))
-          {
-            Cache cache = Cache.getInstance();
-            cache.clear();
-            String[] cacheEntries = cache.getCachedURIs();
-            Arrays.sort(cacheEntries);
-            entries.setItems(cacheEntries);
-            setPreferenceWidgets();
-          }
-        }
-      });
-
-    } catch (Throwable e)
-    {
-      //TODO: Log error
-    }
-    setPreferenceWidgets();
-    applyDialogFont(composite);
-
-    return composite;
-  }
-
-  /**
-   * Set the preference page widgets. There are a few rules. 1. If disabled, all
-   * of the widgets are diabled except for the disabled check box. 2. If
-   * enabled, all widgets are enabled except a. The delete button is enabled
-   * only if there is a selection in the list. b. The clear button is enabled
-   * only if there are items in the list.
-   */
-  public void setPreferenceWidgets()
-  {
-    if (composite != null && composite.getEnabled())
-    {
-      if (entries.getSelectionCount() > 0)
-      {
-        deleteButton.setEnabled(true);
-      } 
-      else
-      {
-        deleteButton.setEnabled(false);
-      }
-      if (entries.getItemCount() > 0)
-      {
-        clearButton.setEnabled(true);
-      } 
-      else
-      {
-        clearButton.setEnabled(false);
-      }
-      
-    }
-  }
-
-  /*
-   * @see PreferencePage#createControl(Composite)
-   */
-  public void createControl(Composite parent)
-  {
-    super.createControl(parent);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), ContextIds.PREF); //$NON-NLS-1$
-  }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/ContextIds.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/ContextIds.java
deleted file mode 100644
index 259cafb..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/ContextIds.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.internet.cache.internal.preferences;
-
-import org.eclipse.wst.internet.cache.internal.CachePlugin;
-
-/**
- * Constant ids for context help.
- */
-public interface ContextIds {
-	public static final String PREF = CachePlugin.PLUGIN_ID + ".cpr0000";
-	public static final String PREF_ENTRIES = CachePlugin.PLUGIN_ID + ".cpr0002";
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceConstants.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceConstants.java
deleted file mode 100644
index a51c4ae..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal.preferences;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants 
-{
-  public static final String CACHE_ENABLED = "cacheEnabled";
-  
-  public static final String PROMPT_DISAGREED_LICENSES = "promptDisagreedLicenses";
-	
-}
diff --git a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceInitializer.java b/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceInitializer.java
deleted file mode 100644
index a7b4af9..0000000
--- a/plugins/org.eclipse.wst.internet.cache/src/org/eclipse/wst/internet/cache/internal/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.internet.cache.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.wst.internet.cache.internal.CachePlugin;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer 
-{
-  /**
-   * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-   */
-  public void initializeDefaultPreferences() 
-  {
-	IPreferenceStore store = CachePlugin.getDefault().getPreferenceStore();
-    store.setDefault(PreferenceConstants.CACHE_ENABLED, true);
-    store.setDefault(PreferenceConstants.PROMPT_DISAGREED_LICENSES, false);
-  }
-}