This commit was manufactured by cvs2svn to create tag 'v200608141516'.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.classpath b/plugins/org.eclipse.wst.common.project.facet.core/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.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.project.facet.core/.cvsignore b/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
deleted file mode 100644
index 812fb36..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-build.xml
-facet-core.jar
-temp.folder
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.options b/plugins/org.eclipse.wst.common.project.facet.core/.options
deleted file mode 100644
index 7d7212b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.options
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.wst.common.project.facet.core/delegate/calls = false
-org.eclipse.wst.common.project.facet.core/actionSorting = false
-org.eclipse.wst.common.project.facet.core/activation = false
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.project b/plugins/org.eclipse.wst.common.project.facet.core/.project
deleted file mode 100644
index 3e9e5cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.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.project.facet.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8f1ea5c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Thu Mar 02 17:02:23 PST 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=error
-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=error
-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.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 3c52ca4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.1.100.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.core.internal;x-internal:=true,
- org.eclipse.wst.common.project.facet.core.runtime,
- org.eclipse.wst.common.project.facet.core.runtime.internal;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.expressions;bundle-version="[3.2.0,4.0)"
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/about.html b/plugins/org.eclipse.wst.common.project.facet.core/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.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.project.facet.core/build.properties b/plugins/org.eclipse.wst.common.project.facet.core/build.properties
deleted file mode 100644
index 238e537..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               schemas/,\
-               META-INF/,\
-               plugin.properties,\
-               component.xml,\
-               .options,\
-               about.html
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/component.xml b/plugins/org.eclipse.wst.common.project.facet.core/component.xml
deleted file mode 100644
index 661e4ed..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/component.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.common.project.facet">
-  <description url=""></description>
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.wst.common.project.facet.core" fragment="false"/>
-  <plugin id="org.eclipse.wst.common.project.facet.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
deleted file mode 100644
index 4d776a4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-pluginName = Project Facet Core
-providerName = Eclipse.org
-builderName = Faceted Project Validation Builder
-validationMarkerName = Faceted Project Problem
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
deleted file mode 100644
index 4477284..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension-point 
-    id="facets"
-    name="Project Facets Extension Point"
-    schema="schemas/facets.exsd"/>
-
-  <extension-point 
-    id="runtimes"
-    name="Runtimes Extension Point"
-    schema="schemas/runtimes.exsd"/>
-
-  <extension-point 
-    id="runtimeBridges"
-    name="Runtime Bridges Extension Point"
-    schema="schemas/runtimeBridges.exsd"/>
-
-  <extension-point 
-    id="defaultFacets"
-    name="Default Facets Extension Point"
-    schema="schemas/defaultFacets.exsd"/>
-
-  <extension-point 
-    id="validators"
-    name="Faceted Project Validators Extension Point"
-    schema="schemas/validators.exsd"/>
-  
-  <extension
-    id="nature"
-    point="org.eclipse.core.resources.natures">
-    <runtime>
-      <run class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature"/>
-    </runtime>
-    <builder id="org.eclipse.wst.common.project.facet.core.builder"/>
-  </extension>
-  
-  <extension
-    id="builder"
-    name="%builderName"
-    point="org.eclipse.core.resources.builders">
-    <builder hasNature="true">
-      <run class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectValidationBuilder"/>
-    </builder>
-  </extension>
-  
-  <extension 
-    point="org.eclipse.core.resources.markers"
-    id="validation.marker"
-    name="%validationMarkerName">
-    <super type="org.eclipse.core.resources.problemmarker"/>
-    <persistent value="true"/>
-  </extension>
-  
-  <extension
-    point="org.eclipse.wst.common.project.facet.core.validators">
-    <validator 
-      class="org.eclipse.wst.common.project.facet.core.internal.BasicFacetedProjectValidator"/>
-  </extension>    
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectAdapter" 
-      adaptableType="org.eclipse.core.resources.IProject">
-      <adapter type="org.eclipse.wst.common.project.facet.core.IFacetedProject"/>
-    </factory>
-  </extension>
-
-  <extension point="org.eclipse.core.expressions.propertyTesters">
-    <propertyTester
-      id="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester"
-      type="org.eclipse.core.resources.IResource"
-      namespace="org.eclipse.wst.common.project.facet.core"
-      properties="projectFacet"
-      class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectPropertyTester">
-    </propertyTester>
-  </extension>
-  
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
deleted file mode 100644
index 46e063d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="defaultFacets" name="Default Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used to specify which facets (and which versions of those facets) should be selected by default when a runtime that includes the specified runtime component is selected. Multiple extensions referring to the same runtime component (type and version) will be merged. This allows a party not affiliated with the runtime vendor to specify that a certain additional facet should be preselected when the runtime containing the specified runtime component is selected.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="default-facets"/>
-         </choice>
-         <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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="default-facets">
-      <annotation>
-         <documentation>
-            Used to specify which facets (and which versions of those facets) should be selected by default when a runtime that includes the specified runtime component is selected. Multiple extensions referring to the same runtime component (type and version) will be merged. This allows a party not affiliated with the runtime vendor to specify that a certain additional facet should be preselected when the runtime containing the specified runtime component is selected.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="runtime-component"/>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Specifies the runtime component type id and version that these defaults are for.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Runtime component type id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Specifies project facet id and version
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The project facet version.
-               </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>
-         &lt;p&gt;The following example declares facet1 (version 1.3) and facet2 (version 5.0) as default facets for runtime component MyRuntimeComponent.&lt;/p&gt; 
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.defaultFacets&quot;&gt;
-  &lt;default-facets&gt;
-    &lt;runtime-component id=&quot;MyRuntimeComponent&quot;/&gt;
-    &lt;facet id=&quot;facet1&quot; version=&quot;1.3&quot;/&gt;
-    &lt;facet id=&quot;facet2&quot; version=&quot;5.0&quot;/&gt;
-  &lt;/default-facets&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;Multiple plugins can contribute to the set of the default facets for a given runtime component. If the following example is combined with the first one, there will be three default facets associated with MyRuntimeComponent.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.defaultFacets&quot;&gt;
-  &lt;default-facets&gt;
-    &lt;runtime-component id=&quot;MyRuntimeComponent&quot;/&gt;
-    &lt;facet id=&quot;facet3&quot; version=&quot;1.2&quot;/&gt;
-  &lt;/default-facets&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) 2005-2006 BEA Systems, Inc. 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.project.facet.core/schemas/facets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
deleted file mode 100644
index 66709f6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ /dev/null
@@ -1,705 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="facets" name="Project Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         This is the main extension point in the faceted project framework. It is used for defining project facets. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="project-facet"/>
-            <element ref="project-facet-version"/>
-            <element ref="category"/>
-            <element ref="preset"/>
-            <element ref="template"/>
-            <element ref="action"/>
-            <element ref="event-handler"/>
-         </choice>
-         <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="label" type="string">
-      <annotation>
-         <documentation>
-            The localizable name that is presented to the user.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            The description text.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="and">
-      <annotation>
-         <documentation>
-            A facet constraint operator that performs a conjunction over the results of evaluation of two or more sub-expressions. This operator will return true if and only if all sub-expressions evaluate to true.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="2" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="or">
-      <annotation>
-         <documentation>
-            A facet constraint operator that performs a disjunction over the results of evaluation of two or more sub-expressions. This operator will return true if any of the sub-expressions evaluate to true.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="2" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="requires">
-      <annotation>
-         <documentation>
-            A facet constraint operator that is used to declare a dependency of one facet on another. This operator will return true if the dependency is satisfied.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the facet.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the facet version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="soft" type="boolean">
-            <annotation>
-               <documentation>
-                  If set to true indicates that this is a soft dependency. A soft dependency will not prevent the facet from being installed if it is not met. The purpose of specifying a soft dependency is to control facet installation order. If facet A declares a soft dependency on facet B, facet A is guaranteed to be installed after B has been installed (assuming B is selected).
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="conflicts">
-      <annotation>
-         <documentation>
-            A facet constraint operator that is used to declare a conflict between this facet and another facet or this facet and a group of facets. This operator will return true if and only if the conflict is not present. Note that the group attribute should not be used together with the facet and version attributes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="group" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet group that this facet conflicts with. Note that it is safe for the declaring facet to be a member of this group. Conflicts between the facet and itself are ignored. This attribute should not be used in conjunction with the facet and version attributes.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the facet that this facet conflicts with. If the version attribute is specified, the conflict declaration will be limited to those versions covered by the version expression.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Used in conjunction with the facet attribute to limit the versions covered by the conflict declaration. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="constraint">
-      <annotation>
-         <documentation>
-            Specifies the constraint that has to be satisfied before this facet can be installed in a project. A constraint can be used to specify dependencies on other facets as well as conflicts.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="group-member">
-      <annotation>
-         <documentation>
-            Makes this facet a member of the group specified in the id attribute. A facet can be a member of any number of groups. Groups are auto-created when referenced by this extension point. The facet groups are primarily used when specifying conflict constraints.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the facet group to add this facet to. Groups are auto-created when referenced by this extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet">
-      <annotation>
-         <documentation>
-            Declares a project facet. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed. Note that a facet need to have a least one version declared in order to be useful. See project-facet-version for more details.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-            <element name="category" type="string">
-               <annotation>
-                  <documentation>
-                     Project facet can optionally belong to a category. This specifies the category id.
-                  </documentation>
-               </annotation>
-            </element>
-            <element ref="default-version" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Project facet identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet-version">
-      <annotation>
-         <documentation>
-            Declares a project facet version. Each facet needs to have at leas one version declared in order to be useful.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="constraint" minOccurs="0" maxOccurs="1"/>
-            <element ref="group-member" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="event-handler" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this is a version of. The facet itself needs to be declared using the project-facet element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version string. Has to be compatible with the version comparator specified for this facet or use the standard decimal version notation (i.e. 1.23.005) if the facet does not specify a custom version comparator.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <annotation>
-         <documentation>
-            Specifies the version comparator for this project facet. If no version comparator is specified the default comparator will be used. The default version comparator can handle versions that are written in standard decimal notation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version comparator class name. Has to implement java.util.Comparator&amp;lt;String&amp;gt; interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="category">
-      <annotation>
-         <documentation>
-            Declares a project facets category. Categories are groups of facets that the user will typically want to add or remove as a set.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The category id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="preset">
-      <annotation>
-         <documentation>
-            Declares a preset. A preset represents a common configuration of facets and their versions that a user might want to utilize on several projects. Presets can be supplied via this extension point or created by the user.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element name="facet">
-               <annotation>
-                  <documentation>
-                     Specifies the facet that is part of this preset.
-                  </documentation>
-               </annotation>
-               <complexType>
-                  <attribute name="id" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           The project facet id.
-                        </documentation>
-                     </annotation>
-                  </attribute>
-                  <attribute name="version" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           The facet version.
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="template">
-      <annotation>
-         <documentation>
-            Declares a template. A template is simply a combination of fixed facets and an optional preset. Templates are used as a guide when creation projects.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element name="fixed">
-               <annotation>
-                  <documentation>
-                     Specifies a facet that should be fixed (made not deselectable) for the project.
-                  </documentation>
-               </annotation>
-               <complexType>
-                  <attribute name="facet" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           The project facet id.
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-            <element name="preset">
-               <annotation>
-                  <documentation>
-                     Specifies which preset should be selected by default.
-                  </documentation>
-               </annotation>
-               <complexType>
-                  <attribute name="id" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           The preset id.
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The template id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="action">
-      <annotation>
-         <documentation>
-            Provides implementation of an action, such as install or uninstall, that a user can take on a project facet. Any action that&apos;s not implemented will not be available to the user. The action element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="config-factory" minOccurs="0" maxOccurs="1"/>
-            <element ref="delegate"/>
-            <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  Action type.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="install">
-                  </enumeration>
-                  <enumeration value="uninstall">
-                  </enumeration>
-                  <enumeration value="version-change">
-                  </enumeration>
-                  <enumeration value="runtime-changed">
-                  </enumeration>
-                  <enumeration value="INSTALL">
-                  </enumeration>
-                  <enumeration value="UNINSTALL">
-                  </enumeration>
-                  <enumeration value="VERSION_CHANGE">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this action applies to. This attribute should not be used when embeding the action element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  The version of the project facet that this action applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the action element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  The action id. If not specified, a default id will be assigned using the &quot;[facet-id]#[version-expression]#[action-type]&quot; pattern.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="config-factory">
-      <annotation>
-         <documentation>
-            Specifies the factory that will construct a configuration object to be used for parameterizing the action delegate. A configuration object is not necessary if the delegate does not require parameterization.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The config factory class name. Has to implement org.eclipse.wst.common.project.facet.core.IActionConfigFactory interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IActionConfigFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="delegate">
-      <annotation>
-         <documentation>
-            Specifies the delegate that should be invoked when an action or an event happens.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The delegate class name. Has to implement org.eclipse.wst.common.project.facet.core.IDelegate interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDelegate"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="event-handler">
-      <annotation>
-         <documentation>
-            Adds an event handler for one of the events in the faceted project life cycle. The event-handler element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="delegate"/>
-         </sequence>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  The type of the event.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="PRE_INSTALL">
-                  </enumeration>
-                  <enumeration value="POST_INSTALL">
-                  </enumeration>
-                  <enumeration value="PRE_UNINSTALL">
-                  </enumeration>
-                  <enumeration value="POST_UNINSTALL">
-                  </enumeration>
-                  <enumeration value="PRE_VERSION_CHANGE">
-                  </enumeration>
-                  <enumeration value="POST_VERSION_CHANGE">
-                  </enumeration>
-                  <enumeration value="RUNTIME_CHANGED">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The id of the project facet that this event handler applies to. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  The version of the project facet that this event handler applies to. Multiple versions can be specified using version expression syntax. The version expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive. This attribute should not be used when embeding the event-handler element inside the project-facet-version element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="property">
-      <annotation>
-         <documentation>
-            Specifies an action property.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="name" use="required">
-            <annotation>
-               <documentation>
-                  The name of the property.
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="from.versions">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="value" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The value of the property.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="default-version">
-      <annotation>
-         <documentation>
-            Used to provide the facet version that should be selected by default. If a default version is not specified, the latest version will be used. Note that if a runtime is selected, the runtime can override this default with a version best suited for that runtime. The default can be specified either statically by using the &lt;code&gt;version&lt;/code&gt; attribute or dynamically by implementing the &lt;code&gt;org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider&lt;/code&gt; interface and using the &lt;code&gt;provider&lt;/code&gt; attribute.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the version that should be used as the default. This attribute is ignored if the &lt;code&gt;provider&lt;/code&gt; attribute is specified.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="provider" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the version provider that will be consulted in order to determine the default version. If this attribute is used, the &lt;code&gt;version&lt;/code&gt; attribute will be ignored if present.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider"/>
-               </appInfo>
-            </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>
-         &lt;p&gt;The following example illustrates the various facilities exposed by this extension point. This example is taken from the &lt;i&gt;Building Project Facets&lt;/i&gt; tutorial.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.facets&quot;&gt;
-
-  &lt;category id=&quot;formgen.category&quot;&gt;
-    &lt;label&gt;FormGen&lt;/label&gt;
-    &lt;description&gt;Enables generation of HTML forms based on XML definition files.&lt;/description&gt;
-  &lt;/category&gt;
-
-  &lt;project-facet id=&quot;formgen.core&quot;&gt;
-    &lt;label&gt;FormGen Core&lt;/label&gt;
-    &lt;description&gt;
-      Enables generation of HTML forms based on XML definition files.
-    &lt;/description&gt;
-    &lt;category&gt;formgen.category&lt;/category&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet=&quot;formgen.core&quot; version=&quot;1.0&quot;&gt;
-    &lt;constraint&gt;
-      &lt;requires facet=&quot;jst.web&quot; version=&quot;2.2,2.3,2.4&quot;/&gt;
-    &lt;/constraint&gt;
-    &lt;action type=&quot;INSTALL&quot; id=&quot;formgen.core.install&quot;&gt;
-      &lt;config-factory class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory&quot;/&gt;
-      &lt;delegate class=&quot;com.formgen.eclipse.FormGenCoreFacetInstallDelegate&quot;/&gt;
-    &lt;/action&gt;
-  &lt;/project-facet-version&gt;
-
-  &lt;project-facet id=&quot;formgen.ext&quot;&gt;
-    &lt;label&gt;FormGen Extensions&lt;/label&gt;
-    &lt;description&gt;
-      Enables additional FormGen widgets.
-    &lt;/description&gt;
-    &lt;category&gt;formgen.category&lt;/category&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet=&quot;formgen.ext&quot; version=&quot;1.0&quot;&gt;
-    &lt;constraint&gt;
-      &lt;requires facet=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
-    &lt;/constraint&gt;
-    &lt;action type=&quot;INSTALL&quot;&gt;
-      &lt;delegate class=&quot;com.formgen.eclipse.FormGenExtFacetInstallDelegate&quot;/&gt;
-    &lt;/action&gt;
-  &lt;/project-facet-version&gt;
-
-  &lt;preset id=&quot;formgen.preset&quot;&gt;
-    &lt;label&gt;FormGen Web Project&lt;/label&gt;
-    &lt;description&gt;Creates a web project with FormGen functionality.&lt;/description&gt;
-    &lt;facet id=&quot;jst.java&quot; version=&quot;5.0&quot;/&gt;
-    &lt;facet id=&quot;jst.web&quot; version=&quot;2.2&quot;/&gt;
-    &lt;facet id=&quot;formgen.core&quot; version=&quot;1.0&quot;/&gt;
-    &lt;facet id=&quot;formgen.ext&quot; version=&quot;1.0&quot;/&gt;
-  &lt;/preset&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) 2005, 2006 BEA Systems, Inc. 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.project.facet.core/schemas/runtimeBridges.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
deleted file mode 100644
index 67c7ad9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimeBridges" name="Runtime Bridges Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="bridge"/>
-         </choice>
-         <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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="bridge">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge"/>
-               </appInfo>
-            </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>
-         
-      </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) 2005 BEA Systems, Inc. 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.project.facet.core/schemas/runtimes.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
deleted file mode 100644
index 6dce3ed..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimes" name="Runtimes Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="runtime-component-type"/>
-            <element ref="runtime-component-version"/>
-            <element ref="adapter"/>
-            <element ref="supported"/>
-         </choice>
-         <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="runtime-component-type">
-      <annotation>
-         <documentation>
-            Defines a runtime component type.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id that will be used to reference this runtime component type.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <annotation>
-         <documentation>
-            Specifies the version comparator. If not specified, the default version comparator will be used. The default version comparator is capable of handing numerical versions that use decimal notation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtime-component-version">
-      <annotation>
-         <documentation>
-            Defines a runtime component version.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the runtime component type that this is a version of.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version string.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="adapter">
-      <annotation>
-         <documentation>
-            Registers an adapter to be used with some set of runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="runtime-component"/>
-            <element ref="factory"/>
-            <element ref="type"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Used to reference multiple runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the runtime component type id. If this attribute is used, the &lt;code&gt;any&lt;/code&gt; attribute should not be used.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="any" type="string">
-            <annotation>
-               <documentation>
-                  Used to indicate that all runtime component types and versions should be matched. If this attribute is used, the &lt;code&gt;id&lt;/code&gt; and &lt;code&gt;version&lt;/code&gt; attributes should not be used. Note that this attribute can only be used when the &lt;code&gt;runtime-component&lt;/code&gt; element appears beneath the &lt;code&gt;supported&lt;/code&gt; element.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <annotation>
-         <documentation>
-            Specifies the adapter factory. The factory has to implement org.eclipse.core.runtime.IAdapterFactory interface.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.core.runtime.IAdapterFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="type">
-      <annotation>
-         <documentation>
-            Specifies the type that this adapter will be adapting to.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="supported">
-      <annotation>
-         <documentation>
-            Specifies that these project facets are supported by these runtimes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="runtime-component" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Used to reference one or more version of a project facet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </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>
-         
-      </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) 2005 BEA Systems, Inc. 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.project.facet.core/schemas/validators.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.exsd
deleted file mode 100644
index 00b1052..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.exsd
+++ /dev/null
@@ -1,142 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="validators" name="Faceted Project Validators Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used for declaring faceted project validators.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="validator" minOccurs="1" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A fully qualified identifier of the target extension point.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Used to reference one or more version of a project facet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,[3.0-5.3],(7.3&quot;, where the comas function as an OR. Brackets and parenthesis are used as part of the range notation. A bracket means inclusive while a parenthesis means exclusive.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="validator">
-      <annotation>
-         <documentation>
-            Declares a faceted project validator. The validator can be restricted to projects containing specific facets.
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
-         </choice>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The validator class name. Has to implement org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator"/>
-               </appInfo>
-            </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>
-         &lt;p&gt;The following example declares a validator that applies to projects that have facet1 (version 1.3 or 2.5) and facet2 (any version) installed.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.validators&quot;&gt;
-  &lt;validator class=&quot;com.mycorp.MyValidator1&quot;&gt;
-    &lt;facet id=&quot;facet1&quot; version=&quot;1.3,2.5&quot;/&gt;
-    &lt;facet id=&quot;facet2&quot;/&gt;
-  &lt;/validator&gt;
-&lt;/extension&gt;
-&lt;/pre&gt;
-
-&lt;p&gt;The second example declares a validator that applies to all faceted projects.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.validators&quot;&gt;
-  &lt;validator class=&quot;com.mycorp.MyValidator2&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) 2005 BEA Systems, Inc. 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.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
deleted file mode 100644
index 1da2477..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.StringTokenizer;
-
-/**
- * The default version comparator that will be used when one is not explicitly 
- * specified. The default version comparator can handle version strings using 
- * the standard decimal notation. It can also be subclassed to modify the 
- * separators that are used or to provide custom parsing for a version segment.
- *
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultVersionComparator
-
-    implements Comparator
-    
-{
-    public final int compare( final Object obj1,
-                              final Object obj2 )
-    
-        throws VersionFormatException
-        
-    {
-        final Comparable[] parsed1 = parse( (String) obj1 );
-        final Comparable[] parsed2 = parse( (String) obj2 );
-        
-        for( int i = 0; i < parsed1.length && i < parsed2.length; i++ )
-        {
-            final int res = parsed1[ i ].compareTo( parsed2[ i ] );
-            if( res != 0 ) return res;
-        }
-        
-        if( parsed1.length > parsed2.length )
-        {
-            return 1;
-        }
-        else if( parsed1.length < parsed2.length )
-        {
-            return -1;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-    
-    /**
-     * Returns the string containing the separator characters that should be
-     * used when breaking the version string into segments. The default
-     * implementation returns ".". Subclasses can override this method.
-     * 
-     * @return the separator characters
-     */
-    
-    protected String getSeparators()
-    {
-        return "."; //$NON-NLS-1$
-    }
-    
-    /**
-     * Parses a segment of the version string. The default implementation parses
-     * the first segment as an integer (leading zeroes are ignored) and the
-     * rest of the segments as decimals (leading zeroes are kept). Subclasses 
-     * can override this method to provide custom parsing for any number of 
-     * segments.
-     * 
-     * @param version the full version string
-     * @param segment the version segment
-     * @param position the position of the segment in the version string
-     * @return the parsed representation of the segment as a {@see Comparable}
-     * @throws VersionFormatException if encountered an error while parsing
-     */
-    
-    protected Comparable parse( final String version,
-                                final String segment,
-                                final int position )
-    
-        throws VersionFormatException
-        
-    {
-        try
-        {
-            if( position == 0 )
-            {
-                return new Integer( segment );
-            }
-            else
-            {
-                return new BigDecimal( "." + segment ); //$NON-NLS-1$
-            }
-        }
-        catch( NumberFormatException e )
-        {
-            throw new VersionFormatException( this, version );
-        }
-    }
-    
-    /**
-     * Parses the version string.
-     * 
-     * @param ver the version string
-     * @return an array containing the parsed representation of the version
-     */
-    
-    private Comparable[] parse( final String ver )
-    {
-        final ArrayList segments = new ArrayList();
-        
-        for( StringTokenizer t = new StringTokenizer( ver, getSeparators() );
-             t.hasMoreTokens(); )
-        {
-            segments.add( t.nextToken() );
-        }
-        
-        final Comparable[] parsed = new Comparable[ segments.size() ];
-        
-        for( int i = 0, n = segments.size(); i < n; i++ )
-        {
-            parsed[ i ] = parse( ver, (String) segments.get( i ), i );
-        }
-        
-        return parsed;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
deleted file mode 100644
index a5178a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
+++ /dev/null
@@ -1,125 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetsManagerImpl;
-
-public final class FacetedProjectFramework
-{
-    public static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core"; //$NON-NLS-1$
-    
-    private static ProjectFacetsManagerImpl impl = null;
-    
-    private FacetedProjectFramework() { }
-    
-    /**
-     * <p>Determines whether the specified project facet is installed in the
-     * provided project. Returns <code>false</code> if the project is not 
-     * accessible, the project is not faceted or the facet id is unrecognized.</p>
-     * 
-     * <p>This method is explicitly designed to avoid activation of the Faceted
-     * Project Framework if the project is not faceted. For the code that
-     * operates in the context where it can be assumed that the framework has
-     * started already, better performance can be achieved by storing 
-     * {@see IProjectFacet} and {@see IProjectFacetVersion} instances using the
-     * singleton pattern and using the
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacet)} or
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacetVersion)} methods.</p>
-     * 
-     * <p>This method is equivalent to calling 
-     * {@see hasProjectFacet(IProject,String,String)} with <code>null</code>
-     * version expression parameter.</p>
-     * 
-     * @param project the project to check for the facet presence
-     * @param fid the project facet id
-     * @throws CoreException if failed while reading faceted project metadata
-     */
-
-    public static boolean hasProjectFacet( final IProject project,
-                                           final String fid )
-    
-        throws CoreException
-        
-    {
-        return hasProjectFacet( project, fid, null );
-    }
-    
-    /**
-     * <p>Determines whether the specified project facet is installed in the
-     * provided project. Returns <code>false</code> if the project is not 
-     * accessible, the project is not faceted or the facet id is unrecognized.</p>
-     * 
-     * <p>This method is explicitly designed to avoid activation of the Faceted
-     * Project Framework if the project is not faceted. For the code that
-     * operates in the context where it can be assumed that the framework has
-     * started already, better performance can be achieved by storing 
-     * {@see IProjectFacet} and {@see IProjectFacetVersion} instances using the
-     * singleton pattern and using the
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacet)} or
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacetVersion)} methods.</p>
-     * 
-     * @param project the project to check for the facet presence
-     * @param fid the project facet id
-     * @param vexpr the version match expression, or <code>null</code> to
-     *   match any version
-     * @throws CoreException if failed while reading faceted project metadata;
-     *   if the version expression is invalid
-     */
-
-    public static boolean hasProjectFacet( final IProject project,
-                                           final String fid,
-                                           final String vexpr )
-    
-        throws CoreException
-        
-    {
-        if( project.isAccessible() &&
-            project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) )
-        {
-            initialize();
-            
-            final IFacetedProject fproj = ProjectFacetsManager.create( project );
-            
-            if( fproj != null )
-            {
-                if( ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                    
-                    if( vexpr == null )
-                    {
-                        return fproj.hasProjectFacet( f );
-                    }
-                    else
-                    {
-                        final IProjectFacetVersion fv = fproj.getInstalledVersion( f );
-                        
-                        if( fv != null )
-                        {
-                            return f.getVersions( vexpr ).contains( fv );
-                        }
-                    }
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    private static synchronized void initialize()
-    {
-        if( impl == null )
-        {
-            impl = new ProjectFacetsManagerImpl();
-        }
-    }
-    
-    static ProjectFacetsManagerImpl getProjectFacetsManagerImpl()
-    {
-        initialize();
-        return impl;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
deleted file mode 100644
index 542cf95..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfig
-{
-    void setVersion( IProjectFacetVersion fv );
-    void setProjectName( String pjname );
-    IStatus validate();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
deleted file mode 100644
index 42909b6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * This interface is implemented in order to provide a method for creating 
- * a config object that will be used for parameterizing the facet action
- * delegate.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfigFactory
-{
-    /**
-     * Creates a new facet action configuration object. The new configuration
-     * object should ideally be populated with reasonable defaults.
-     * 
-     * @return a new facet action configuration object
-     * @throws CoreException if failed while creating the configuration object
-     */
-    
-    Object create()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java
deleted file mode 100644
index 8e46b9d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * An action is an operation on a single facet within a faceted project to
- * install, uninstall, or change the version of the facet. An action definition
- * represents the information supplied by the facet author regarding the
- * implementation of an action. A single action definition can apply to multiple
- * facet versions. For instance, the facet author may choose to supply one
- * action definition for all versions of his facet. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionDefinition
-{
-    /**
-     * The name of the property that's used to constraint the starting version
-     * of the VERSION_CHANGE action definition.
-     */
-    
-    static final String PROP_FROM_VERSIONS = "from.versions"; //$NON-NLS-1$
-    
-    /**
-     * Returns the id of the action definition. If not explicitly specified, a
-     * default action id is generated that takes the following form:
-     * [facet-id]#[version-expression]#[action-type](#[prop.name]=[prop.value])*.
-     * 
-     * @return the id of the action definition
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the project facet that this action definition is associated with.
-     * 
-     * @return the project facet that this action definition is associated with
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * Returns the version expression that controls which facet versions this
-     * action definition applies to.
-     * 
-     * @return the version expression that controls which facet versions this
-     *   action definition applies to
-     */
-    
-    IVersionExpr getVersionExpr();
-    
-    /**
-     * Returns the action type, such as <code>INSTALL</code>, <code>UNINSTALL</code>,
-     * or <code>VERSION_CHANGE</code>.
-     * 
-     * @return the action type
-     */
-    
-    Action.Type getActionType();
-    
-    /**
-     * Returns the properties that further specify action behavior and 
-     * applicability.
-     * 
-     * @return the properties of this action definition (key type: {@see String}, 
-     *   value type {@see Object})
-     */
-    
-    Map getProperties();
-    
-    /**
-     * Returns the property value corresponding to the provided name.
-     * 
-     * @param name the name of the property
-     * @return the value of the property
-     */
-    
-    Object getProperty( String name );
-    
-    /**
-     * Creates a new config object that can be used for parameterizing the
-     * execution of this action. If this action definition does not specify a
-     * config object factory, this method will return <code>null</code>.
-     * 
-     * @param fv the actual facet version that this config object will be used
-     *   with; should be one of the versions matched by the version expression
-     *   specified for this action definition
-     * @param pjname the project name
-     * @return the new config object
-     * @throws CoreException if failed while instantiating the config object
-     *   factory or creating the config object
-     */
-    
-    Object createConfigObject( IProjectFacetVersion fv,
-                               String pjname )
-    
-        throws CoreException;
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
deleted file mode 100644
index 38d1c63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Models a grouping of project facets that are intended to be selected and 
- * deselected as a set. This interface is not intended to be implemented by 
- * clients.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface ICategory
-
-    extends IAdaptable
-    
-{
-    String getId();
-    String getPluginId();
-    String getLabel();
-    String getDescription();
-    
-    /**
-     * Returns the project facets that compose this category.
-     * 
-     * @return the member project facets (element type: {@see IProjectFacet})
-     */
-    
-    Set getProjectFacets();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
deleted file mode 100644
index fe2eebd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Models a single constraint in the constraint expression. 
- *  
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IConstraint 
-{
-    /**
-     * The enumeration of operator types.
-     *  
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-    
-    static final class Type
-    {
-        private static final Map items = new HashMap();
-
-        public static final Type AND 
-            = new Type( "and" ); //$NON-NLS-1$
-        
-        public static final Type OR 
-            = new Type( "or" ); //$NON-NLS-1$
-        
-        public static final Type REQUIRES 
-            = new Type( "requires" ); //$NON-NLS-1$
-        
-        public static final Type CONFLICTS 
-            = new Type( "conflicts" ); //$NON-NLS-1$
-        
-        private final String name;
-        
-        private Type( final String name )
-        {
-            this.name = name;
-            items.put( name, this );
-        }
-        
-        public static Type valueOf( final String name )
-        {
-            return (Type) items.get( name.toLowerCase() );
-        }
-        
-        public String name()
-        {
-            return this.name;
-        }
-        
-        public String toString()
-        {
-            return this.name;
-        }
-    }
-    
-    /**
-     * Returns the operator type
-     * 
-     * @return the operator type
-     */
-    
-    Type getType();
-    
-    /**
-     * Returns the list operands.
-     * 
-     * @return the list of operands (element type: {@link Object})
-     */
-    
-    List getOperands();
-    
-    /**
-     * Returns the operand at the specified position.
-     * 
-     * @param index the position of the operand in the list of operands
-     * @return the operand
-     */
-    
-    Object getOperand( int index );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets (element type:
-     *   {@link IProjectFacetVersion})
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
-     */
-    
-    IStatus check( Collection facets );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets (element type:
-     *   {@link IProjectFacetVersion})
-     * @param validateSoftDependencies if <code>true</code> soft dependencies
-     *   will be treated as required
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
-     */
-
-    IStatus check( Collection facets,
-                   boolean validateSoftDependencies );
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java
deleted file mode 100644
index 2e40105..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * This interface can be implemented in order to provide the facet version that
- * is selected by default. If a version provider is not specified, the latest
- * version will be used. Note that if a runtime is selected, the runtime can 
- * override this default with a version best suited for that runtime. 
- *  
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IDefaultVersionProvider
-{
-    /**
-     * Returns the facet version that should be selected by default.
-     * 
-     * @return the facet version that should be selected by default
-     */
-    
-    IProjectFacetVersion getDefaultVersion();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
deleted file mode 100644
index 4c4da44..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * This interface is implemented in order to provide logic associated with
- * a particular event in project facet's life cycle, such as install or 
- * uninstall.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IDelegate 
-{
-    /**
-     * The method that's called to execute the delegate.
-     * 
-     * @param project the workspace project
-     * @param fv the project facet version that this delegate is handling; this
-     *   is useful when sharing the delegate among several versions of the same
-     *   project facet or even different project facets
-     * @param config the configuration object, or <code>null</code> if defaults
-     *   should be used
-     * @param monitor the progress monitor
-     * @throws CoreException if the delegate fails for any reason
-     */
-    
-    void execute( IProject project,
-                  IProjectFacetVersion fv,
-                  Object config,
-                  IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
deleted file mode 100644
index f9c6449..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is used for manipulating the set of facets installed on a
- * project. Use {@see ProjectFacetsManager#create(IProject)} to get an instance 
- * of this interface.
- *  
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProject 
-{
-    /**
-     * Represents a single action such as installing or uninstalling a project
-     * facet.
-     *  
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-    
-    static final class Action
-    {
-        /**
-         * The action type enumeration.
-         *  
-         * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-         */
-        
-        public static final class Type
-        {
-            private static final Map items = new HashMap();
-            
-            public static final Type INSTALL 
-                = new Type( "INSTALL" ); //$NON-NLS-1$
-            
-            public static final Type UNINSTALL 
-                = new Type( "UNINSTALL" ); //$NON-NLS-1$
-            
-            public static final Type VERSION_CHANGE 
-                = new Type( "VERSION_CHANGE" ); //$NON-NLS-1$
-            
-            static
-            {
-                // Backwards compatibility.
-                
-                items.put( "install", INSTALL ); //$NON-NLS-1$
-                items.put( "uninstall", UNINSTALL ); //$NON-NLS-1$
-                items.put( "version-change", VERSION_CHANGE ); //$NON-NLS-1$
-            }
-            
-            private final String name;
-            
-            private Type( final String name )
-            {
-                this.name = name;
-                items.put( name, this );
-            }
-            
-            public static Type valueOf( final String name )
-            {
-                return (Type) items.get( name );
-            }
-            
-            public String name()
-            {
-                return this.name;
-            }
-            
-            public String toString()
-            {
-                return this.name;
-            }
-        }
-        
-        private final Type type;
-        private final IProjectFacetVersion fv;
-        private final Object config;
-        
-        /**
-         * Creates a new action.
-         * 
-         * @param type action type
-         * @param fv the the project facet version
-         * @param config the configuration object, or <code>null</code>
-         */
-        
-        public Action( final Type type,
-                       final IProjectFacetVersion fv,
-                       final Object config )
-        {
-            if( type == null || fv == null )
-            {
-                throw new IllegalArgumentException();
-            }
-            
-            this.type = type;
-            this.fv = fv;
-            this.config = config;
-        }
-        
-        /**
-         * Returns the action type
-         * 
-         * @return the action type
-         */
-        
-        public Type getType()
-        {
-            return this.type;
-        }
-        
-        /**
-         * Returns the descriptor for the project facet version that this 
-         * action will be manipulating.
-         * 
-         * @return the descriptor for the project facet version that this action 
-         *   will be manipulating
-         */
-        
-        public IProjectFacetVersion getProjectFacetVersion()
-        {
-            return this.fv;
-        }
-        
-        /**
-         * Returns the configuration object associated with this action, if any.
-         * 
-         * @return the configuration object associated with this action, or
-         *   <code>null</code>
-         */
-        
-        public Object getConfig()
-        {
-            return this.config;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof Action ) )
-            {
-                return false;
-            }
-            else
-            {
-                final Action action = (Action) obj;
-                
-                return this.type == action.type && 
-                       this.fv.equals( action.fv );
-            }
-        }
-        
-        public int hashCode()
-        {
-            return this.type.hashCode() ^ this.fv.hashCode();
-        }
-        
-        public String toString()
-        {
-            final StringBuffer buf = new StringBuffer();
-            
-            buf.append( this.type.toString() );
-            buf.append( '[' );
-            buf.append( this.fv.getProjectFacet().getId() );
-            buf.append( ' ' );
-            buf.append( this.fv.getVersionString() );
-            buf.append( ']' );
-            
-            return buf.toString();
-        }
-    }
-    
-    IProject getProject();
-    
-    /**
-     * Returns the set of project facets currently installed on this project.
-     * 
-     * @return the set of project facets currently installed on this project 
-     *   (element type: {@see IProjectFacetVersion})
-     */
-    
-    Set getProjectFacets();
-    
-    /**
-     * Determines whether any version of the specified project facet is 
-     * installed on this project.
-     * 
-     * @param f the project facet descriptor
-     * @return <code>true</code> if any version of the specified project facet 
-     *   is installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacet f );
-    
-    /**
-     * Determines whether the specfied project facet version is installed on 
-     * this project.
-     * 
-     * @param fv the project facet version descriptor
-     * @return <code>true</code> if the specified project facet version is 
-     *   installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacetVersion fv );
-    
-    IProjectFacetVersion getInstalledVersion( IProjectFacet f );
-    
-    /**
-     * <p>Installs a project facet on this project. This method is equivalent to 
-     * calling the {@see #modify(Set, IProgressMonitor)} method with a single 
-     * install action.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   installed
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during install
-     */
-    
-    void installProjectFacet( IProjectFacetVersion fv,
-                              Object config,
-                              IProgressMonitor monitor)
-    
-        throws CoreException;
-    
-    /**
-     * <p>Uninstalls a project facet from this project. This method is 
-     * equivalent to calling the {@see #modify(Set, IProgressMonitor)} method 
-     * with a single uninstall action.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   uninstalled
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during uninstall
-     */
-    
-    void uninstallProjectFacet( IProjectFacetVersion fv,
-                                Object config,
-                                IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Modifies the set of project facets installed on this project by 
-     * performing a series of actions such as install and uninstall.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param actions the set of actions to apply to the project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong while applying actions
-     */
-    
-    void modify( Set actions,
-                 IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @return the set of fixed project facets for this project (element type:
-     *   {@see IProjectFacet})
-     */
-    
-    Set getFixedProjectFacets();
-    
-    /**
-     * Sets the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @param facets the set of project facets to mark as fixed (element type:
-     *   {@see IProjectFacet})
-     * @throws CoreException if failed while updating the set of fixed project
-     *   facets
-     */
-
-    void setFixedProjectFacets( Set facets )
-    
-        throws CoreException;
-    
-    /**
-     * 
-     * @deprecated use getTargetRuntimes() and getPrimaryRuntime() instead
-     */
-    
-    IRuntime getRuntime();
-    
-    /**
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @deprecated use setTargetRuntimes() and setPrimaryRuntime() instead
-     */
-    
-    void setRuntime( IRuntime runtime,
-                     IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Returns the set of all runtimes that this project is targeting. When a
-     * project targets a runtime, the set of facets that can be installed is
-     * limited to those supported by that runtime. When a project targets
-     * multiple runtimes, the set of applicable facets is limited to those
-     * supported by all targeted runtimes.</p>
-     * 
-     * @return the set of targeted runtimes (element type: {@see IRuntime})
-     */
-    
-    Set getTargetedRuntimes();
-    
-    /**
-     * <p>Sets the runtimes that this project will target. When a project 
-     * targets a runtime, the set of facets that can be installed is limited to 
-     * those supported by that runtime. When a project targets multiple 
-     * runtimes, the set of applicable facets is limited to those supported by 
-     * all targeted runtimes.<p>
-     * 
-     * <p>If the existing primary runtime is <code>null</code> or is not part of 
-     * the new set of targeted runtimes, the primary runtime will be reset to 
-     * one picked at random from the new set. If the new set is empty, the 
-     * primary runtime will be set to <code>null</code>.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtimes the new set of runtimes to target (element type: 
-     *   {@see IRuntime})
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the project contains one or more facets that
-     *   are not supported by all of the new runtimes; if failed for any other 
-     *   reason
-     */
-    
-    void setTargetedRuntimes( Set runtimes,
-                              IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Adds a new runtime to the set of runtimes targeted by this project.
-     * If the set of targeted runtimes has been empty prior to this call, this
-     * runtime will become the primary runtime</p>
-     *  
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the runtime
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the project contains one or more facets that
-     *   are not supported by this runtime; if failed for any other reason
-     */
-    
-    void addTargetedRuntime( IRuntime runtime,
-                             IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * <p>Removes a runtime from the set of runtimes targeted by this project.
-     * If this runtime has been the primary runtime prior to this call, a new
-     * primary will be automatically assigned (unless the list of target
-     * runtimes becomes empty, in which case the primary runtime will be set
-     * to <code>null</code>).</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the runtime to remove
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if failed for any reason
-     */
-    
-    void removeTargetedRuntime( IRuntime runtime,
-                                IProgressMonitor monitor )
-    
-        throws CoreException;
-
-    /**
-     * <p>Returns the primary target runtime for this project. There is always
-     * a primary runtime unless the list of target runtimes is empty.</p>
-     * 
-     * @return the primary runtime, or <code>null</code>
-     */
-    
-    IRuntime getPrimaryRuntime();
-    
-    /**
-     * <p>Sets the primary target runtime for this project. The new primary has
-     * to be one of the runtimes currently targeted by the project.
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     * 
-     * @param runtime the new primary runtime
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *   reporting and cancelation are not desired
-     * @throws CoreException if the primary runtime is not one of the runtimes
-     *   currently targeted by the project; if failed for any other reason
-     */
-
-    void setPrimaryRuntime( IRuntime runtime,
-                            IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    IMarker createErrorMarker( String message )
-    
-        throws CoreException;
-    
-    IMarker createErrorMarker( String type,
-                               String message )
-    
-        throws CoreException;
-    
-    IMarker createWarningMarker( String message )
-    
-        throws CoreException;
-    
-    IMarker createWarningMarker( String type,
-                                 String message )
-    
-        throws CoreException;
-    
-    void addListener( IFacetedProjectListener listener );
-    void removeListener( IFacetedProjectListener listener );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
deleted file mode 100644
index 45cf67f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectListener
-{
-    void projectChanged();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
deleted file mode 100644
index 176f858..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectTemplate
-{
-    String getId();
-    String getLabel();
-    
-    /**
-     * 
-     * @return the set of fixed project facets (element type: 
-     *   {@see IProjectFacet})
-     */
-    
-    Set getFixedProjectFacets();
-    IPreset getInitialPreset();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java
deleted file mode 100644
index 7fad4ab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectValidator
-{
-    /**
-     * The marker type that should be used as the base for all markers reported
-     * by the faceted project validator.
-     */
-    
-    static final String BASE_MARKER_ID
-        = FacetCorePlugin.PLUGIN_ID + ".validation.marker"; //$NON-NLS-1$
-    
-    void validate( IFacetedProject fproj )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
deleted file mode 100644
index 5dd8fc9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A group is a named collection collection of {@see IProjectFacetVersion} 
- * objects. It's used for a variety of purposes including as a parameter to 
- * the "one-of" constraint. A given project facet version can belong to
- * several groups.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IGroup 
-{
-    /**
-     * Returns the id of this set.
-     * 
-     * @return the id of this set
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the set of member project facets.
-     * 
-     * @return the set of member project facets (element type: {@link 
-     * IProjectFacetVersion})
-     */
-    
-    Set getMembers();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
deleted file mode 100644
index 9cef741..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IListener
-{
-    void handle();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
deleted file mode 100644
index dc58286..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A preset is a user convenience mechanism for quickly selecting a predefined 
- * set of project facets. Presets can be defined by plugin writers through the
- * supplied extension point as well as by end users. When a user preset is
- * created, the metadata describing it is stored in the workspace.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IPreset
-{
-    /**
-     * Returns the id of the preset.
-     * 
-     * @return the id of the preset
-     */
-    
-    String getId();
-
-    /**
-     * Returns the preset label. The label should be used when presenting the
-     * preset to the user.
-     * 
-     * @return the preset label
-     */
-    
-    String getLabel();
-    
-    /**
-     * Returns the description of the preset.
-     * 
-     * @return the description of the preset
-     */
-    
-    String getDescription();
-    
-    /**
-     * Returns the project facets that are part of this preset.
-     * 
-     * @return project facets that are part of this preset (element type: 
-     *   {@link IProjectFacetVersion})
-     */
-
-    Set getProjectFacets();
-    
-    /**
-     * Indicates whether the preset is user defined. A user-defined preset is
-     * stored in the workspace and can be deleted.
-     * 
-     * @return <code>true</code> if the preset is user-defined,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean isUserDefined();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
deleted file mode 100644
index d8f48e3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Contains metadata that describes a project facet. This interface is not 
- * intended to be implemented by clients.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacet
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the project facet identifier. 
-     * 
-     * @return the project facet identifier
-     */
-
-    String getId();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet. This method
-     * will return <code>null</code> if this facet is not defined. 
-     * 
-     * @return the id of the plugin that defines this project facet, or
-     *   <code>null</code>
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the project facet label. The label should be used when presenting
-     * the project facet to the user.
-     * 
-     * @return the project facet label
-     */
-
-    String getLabel();
-    
-    /**
-     * Returns the project facet description.
-     * 
-     * @return the project facet description
-     */
-
-    String getDescription();
-    
-    /**
-     * Returns the category, if any, that this project facet belongs to.
-     * 
-     * @return the category that this project facet belongs to, or 
-     *   <code>null</code>
-     */
-    
-    ICategory getCategory();
-    
-    /**
-     * Returns the descriptors of all versions of this project facet.
-     * 
-     * @return the descriptors of all versions of this project facet (element
-     *   type: {@see IProjectFacetVersion})
-     */
-    
-    Set getVersions();
-    
-    Set getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified project facet version exists.
-     * 
-     * @param version the verson string
-     * @return <code>true</code> if the specified project facet version exists,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the descriptor of the given project facet version.
-     * 
-     * @param version the version string
-     * @return the descriptor of the given project facet version, or 
-     *   <code>null</code>
-     */
-        
-    IProjectFacetVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of the project facet as specified by the 
-     * version comparator.
-     * 
-     * @return returns the latest version of the project facet
-     */
-    
-    IProjectFacetVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException;
-    
-    IProjectFacetVersion getLatestSupportedVersion( IRuntime runtime )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the facet version that should be selected by default. If the
-     * default version is not explicitly specified in the facet definition, the
-     * latest version (as specified by {@see getLatestVersion()} method) will
-     * be returned. 
-     * 
-     * @return the facet version that should be selected by default
-     */
-    
-    IProjectFacetVersion getDefaultVersion();
-
-    /**
-     * Returns a sorted list containing the descriptors of all versions of this 
-     * project facet. 
-     * 
-     * @param ascending whether version descriptors should be sorted in 
-     *   ascending order
-     * @return a sorted list containing the descriptors of all versions of this 
-     *   project facet (element type: {@see IProjectFacetVersion})
-     * @throws VersionFormatException if failed while parsing a version string
-     */
-    
-    List getSortedVersions( boolean ascending )
-    
-        throws VersionFormatException, CoreException;
-    
-    /**
-     * Returns the version comparator specified for this project facet. If no 
-     * version comparator is specified, this method will return an instance of 
-     * the {@see DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this project facet
-     */
-    
-    Comparator getVersionComparator()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
deleted file mode 100644
index 56c50ea..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * Contains metadata that describes a specific version of a project facet. This 
- * interface is not intended to be implemented by by clients.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetVersion
-{
-    /**
-     * Returns the project facet descriptor.
-     * 
-     * @return the project facet descriptor
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet version. 
-     * This method will return <code>null</code> if this version is not defined. 
-     * 
-     * @return the id of the plugin that defines this project facet version, or
-     *   <code>null</code>
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the constraint that has to be satisfied prior to installing this
-     * project facet.
-     * 
-     * @return the constraint that has to be satisfied prior to installing this 
-     *   project facet
-     */
-    
-    IConstraint getConstraint();
-    
-    /**
-     * Determines whether this project facet version supports a particular 
-     * action type. For instance, some project facets may not be uninstallable, 
-     * in which case they will not support <code>Action.Type.UNINSTALL</code>.
-     * 
-     * @param base the set of facets currently installed in the project that
-     *   the desired action type would be executed against (element type:
-     *   {@see IProjectFacetVersion})
-     * @param type action type
-     * @return <code>true</code> if and only if this project facet supports the 
-     *   provided action type
-     */
-    
-    boolean supports( Set base,
-                      Action.Type type );
-    
-    /**
-     * Determines whether this project facet version supports a particular 
-     * action type. For instance, some project facets may not be uninstallable, 
-     * in which case they will not support <code>Action.Type.UNINSTALL</code>.
-     * 
-     * @param type action type
-     * @return <code>true</code> if this project facet supports the provided 
-     *   action type, <code>false</code> otherwise
-     * @deprecated use {@link supports( Set, Action.Type)} instead
-     */
-    
-    boolean supports( Action.Type type );
-    
-    /**
-     * Returns all of the action definitions for this project facet version.
-     * 
-     * @return all of the action definitions for this project facet version
-     *   (element type: {@link IActionDefinition})
-     */
-    
-    Set getActionDefinitions();
-    
-    /**
-     * Returns the action definitions corresponding to a particular action type
-     * over this project facet version. For <code>INSTALL</code> and
-     * <code>UNINSTALL</code> action types, this method will return a set of
-     * length 0 or 1. For <code>VERSION_CHANGE</code> action type, the returned
-     * set may contain more than one item as there may exist multiple action
-     * definitions for converting from various versions.
-     * 
-     * @param type action type
-     * @return a set containing action definitions corresponding to a particular
-     *   action type over this project facet version 
-     *   (element type: {@link IActionDefinition})
-     */
-    
-    Set getActionDefinitions( Action.Type type );
-    
-    /**
-     * Returns the action definition corresponding to a particular action type
-     * over this project facet version. The {@link supports( Set, Action.Type )} 
-     * method can be used to check whether the action is supported prior to
-     * calling this method.
-     * 
-     * @param base the set of facets currently installed in the project that
-     *   the desired action type would be executed against (element type:
-     *   {@see IProjectFacetVersion})
-     * @param type action type
-     * @return the action definition corresponding to a particular action type
-     *   over this project facet version
-     * @throws CoreException if this project facet version does not support the
-     *   provided action type
-     */
-    
-    IActionDefinition getActionDefinition( Set base,
-                                           Action.Type type )
-    
-        throws CoreException;
-    
-    /**
-     * Creates a new instance of the config object associated with the specified
-     * action on this facet. Will return <code>null</code> if the action 
-     * requires no config.
-     * 
-     * @param type the type of the action.
-     * @param pjname the name of the project that this action will be executed
-     *   on
-     * @return the action config object, or <code>null</code>
-     * @throws CoreException if this project facet version does not support the
-     *   specified action type or if failed while creating the action config
-     *   object
-     * @deprecated this method will not behave correctly in presence of multiple
-     * action definitions of the same type as can be the case with VERSION_CHANGE
-     * actions; instead use IActionDefinition.createConfigObject()
-     */
-    
-    Object createActionConfig( Action.Type type,
-                               String pjname )
-    
-        throws CoreException;
-    
-    /**
-     * @deprecated this method will not behave correctly in presence of multiple
-     * action definitions of the same type as can be the case with VERSION_CHANGE
-     * actions; instead compare appropriate IActionDefinition objects directly 
-     */
-    
-    boolean isSameActionConfig( Action.Type type,
-                                IProjectFacetVersion fv )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether this facet version is valid for projects that have
-     * the provided set of fixed facets. The determination is done by checking 
-     * to see whether this facet or any of its dependencies are in conflict with
-     * any of the fixed facets.
-     * 
-     * @param fixed the set of fixed facets (element type: {@see IProjectFacet})
-     * @return <code>true</code> if this facet version is valid for the projects
-     *   that have the provided set of fixed facets
-     */
-    
-    boolean isValidFor( Set fixed );
-    
-    boolean conflictsWith( IProjectFacetVersion fv );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java
deleted file mode 100644
index 1410b5e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Describes the runtime changed event to the RUNTIME_CHANGED event handlers.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeChangedEvent
-{
-    /**
-     * Returns the runtime previously associated with the project.
-     * 
-     * @return the runtime previously associated with the project, or
-     *   <code>null</code>
-     */
-    
-    IRuntime getOldRuntime();
-    
-    /**
-     * Returns the runtime that's now associated with the project.
-     * 
-     * @return the runtime that's now associated with the project, or
-     *   <code>null</code>
-     */
-    
-    IRuntime getNewRuntime();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java
deleted file mode 100644
index 06d2605..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * The compiled form of a version expression. A version expression is used to
- * specify one or more versions.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IVersionExpr
-{
-    /**
-     * Contains the symbol used to represent the wildcard. The wildcard matches
-     * any version. Note that it is not possible to use the wildcard to match
-     * part of the version string. 
-     */
-    
-    static final String WILDCARD_SYMBOL = "*"; //$NON-NLS-1$
-    
-    /**
-     * Evaluates the version expression against the specified version. Returns
-     * <code>true</code> if and only if the version expression matches the
-     * specified version.
-     * 
-     * @param version the version string to check against the version expression
-     * @return <code>true</code> if and only if the version expression matches
-     *   the specified version
-     */
-    
-    boolean evaluate( String version );
-    
-    /**
-     * Returns human-readable form of the version expression that uses
-     * descriptive terms rather than symbols.
-     * 
-     * @return human-readable form of the version expression
-     */
-    
-    String toDisplayString();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
deleted file mode 100644
index c731f11..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ /dev/null
@@ -1,451 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetsManagerImpl;
-
-/**
- * This is the entry point to the project facet framework API. From here, you 
- * can (among other things) list available project facets and create instances 
- * of {@see IFacetedProject}.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManager 
-{
-    private static ProjectFacetsManagerImpl impl 
-        = FacetedProjectFramework.getProjectFacetsManagerImpl();
-    
-    private ProjectFacetsManager() {}
-    
-    /**
-     * Returns all of the available project facets.
-     * 
-     * @return a set containing all of the available project facets (element 
-     *   type: {@link IProjectFacet})
-     */
-    
-    public static Set getProjectFacets()
-    {
-        return impl.getProjectFacets();
-    }
-
-    /**
-     * Determines whether a given project facet id is recognized.
-     * 
-     * @param id the id of the project facet
-     * @return <code>true</code> if the project facet id is recognized, 
-     *   <code>false</code> otherwise 
-     */
-    
-    public static boolean isProjectFacetDefined( final String id )
-    {
-        return impl.isProjectFacetDefined( id );
-    }
-    
-    /**
-     * Returns the project facet descriptor corresponding to the specified id.
-     * 
-     * @param id the id of the project facet
-     * @return the project facet descriptor
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static IProjectFacet getProjectFacet( final String id )
-    {
-        return impl.getProjectFacet( id );
-    }
-    
-    /**
-     * Returns all of the available project facet action definitions.
-     * 
-     * @return a set containing all of the available project facets action
-     *   definitions (element type: {@link IActionDefinition})
-     */
-    
-    public static Set getActionDefinitions()
-    {
-        return impl.getActionDefinitions();
-    }
-    
-    /**
-     * Determines whether a given project facet action id is recognized.
-     * 
-     * @param id the id of the project facet action
-     * @return <code>true</code> if the project facet action id is recognized, 
-     *   <code>false</code> otherwise 
-     */
-    
-    public static boolean isActionDefined( final String id )
-    {
-        return impl.isActionDefined( id );
-    }
-    
-    /**
-     * Returns the project facet action definition corresponding to the 
-     * specified action id.
-     * 
-     * @param id the id of the project facet action
-     * @return the project facet action definition
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static IActionDefinition getActionDefinition( final String id )
-    {
-        return impl.getActionDefinition( id );
-    }
-
-    /**
-     * Returns all of the categories.
-     * 
-     * @return a set containing all of the categories (element type: {@link 
-     *   ICategory})
-     */
-    
-    public static Set getCategories()
-    {
-        return impl.getCategories();
-    }
-
-    /**
-     * Determines whether a given category id is recognized.
-     * 
-     * @param id the id of the category
-     * @return <code>true</code> if the category id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isCategoryDefined( final String id )
-    {
-        return impl.isCategoryDefined( id );
-    }
-    
-    /**
-     * Returns the category corresponding to the specified id.
-     * 
-     * @param id the id of the category
-     * @return the category
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static ICategory getCategory( final String id )
-    {
-        return impl.getCategory( id );
-    }
-    
-    /**
-     * Returns all of the presets.
-     * 
-     * @return a set conaining all of the presets (element type: 
-     *   {@link IPreset})
-     */
-    
-    public static Set getPresets()
-    {
-        return impl.getPresets();
-    }
-    
-    /**
-     * Determines whether a given preset id is recognized.
-     * 
-     * @param id the preset id
-     * @return <code>true</code> if the preset id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isPresetDefined( final String id )
-    {
-        return impl.isPresetDefined( id );
-    }
-    
-    /**
-     * Returns the preset corresponding to the specified id.
-     * 
-     * @param id the preset id
-     * @return the preset
-     * @throws IllegalArgumentException if the preset is not found
-     */
-    
-    public static IPreset getPreset( final String id )
-    {
-        return impl.getPreset( id );
-    }
-    
-    /**
-     * Defines a new preset. User-defined presets are stored in the workspace. 
-     * 
-     * @param name the name of the preset
-     * @param facets the set of project facets that the preset should contain
-     *   (element type: {@see IProjectFacetVersion})
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final Set facets )
-    {
-        return impl.definePreset( name, facets );
-    }
-    
-    /**
-     * Defines a new preset. User-defined presets are stored in the workspace. 
-     * 
-     * @param name the name of the preset
-     * @param description the description of the preset
-     * @param facets the set of project facets that the preset should contain
-     *   (element type: {@see IProjectFacetVersion})
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final String description,
-                                        final Set facets )
-    {
-        return impl.definePreset( name, description, facets );
-    }
-
-    /**
-     * Deletes a preset. Note that only user-defined presets can be deleted.
-     * 
-     * @param preset the preset
-     * @return <code>true</code> if the preset was deleted, or 
-     *   <code>false</code> if the preset was not found or was not user-defined 
-     */
-    
-    public static boolean deletePreset( final IPreset preset )
-    {
-        return impl.deletePreset( preset );
-    }
-    
-    /**
-     * Returns all of the faceted project templates.
-     * 
-     * @return a set conaining all of the faceted project templates (element 
-     *   type: {@link IFacetedProjectTemplate})
-     */
-    
-    public static Set getTemplates()
-    {
-        return impl.getTemplates();
-    }
-    
-    /**
-     * Determines whether a given template id is recognized.
-     * 
-     * @param id the template id
-     * @return <code>true</code> if the template id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isTemplateDefined( final String id )
-    {
-        return impl.isTemplateDefined( id );
-    }
-    
-    /**
-     * Returns the faceted project template corresponding to the specified id.
-     * 
-     * @param id the template id
-     * @return the faceted project templte
-     * @throws IllegalArgumentException if the template is not found
-     */
-    
-    public static IFacetedProjectTemplate getTemplate( final String id )
-    {
-        return impl.getTemplate( id );
-    }
-    
-    /**
-     * Returns all of the groups.
-     * 
-     * @return a set containing all of the groups (element type: {@link IGroup})
-     */
-    
-    public static Set getGroups()
-    {
-        return impl.getGroups();
-    }
-
-    /**
-     * Determines whether a given group id is recognized.
-     * 
-     * @param id the group id
-     * @return <code>true</code> if the group id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isGroupDefined( final String id )
-    {
-        return impl.isGroupDefined( id );
-    }
-    
-    /**
-     * Returns the group corresponding to the specified id.
-     * 
-     * @param id the group id
-     * @return the group descriptor
-     * @throws IllegalArgumentException if the group id is not found 
-     */
-    
-    public static IGroup getGroup( final String id )
-    {
-        return impl.getGroup( id );
-    }
-    
-    public static Set getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects();
-    }
-
-    public static Set getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects( f );
-    }
-
-    public static Set getFacetedProjects( final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects( fv );
-    }
-    
-    /**
-     * Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project.
-     *  
-     * @param project an Eclipse project
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project );
-    }
-    
-    /**
-     * <p>Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project. The
-     * project will be made into a faceted project if necessary.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-     *  
-     * @param project an Eclipse project
-     * @param convertIfNecessary whether the project should be converted into a
-     *   faceted project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project,
-                                          final boolean convertIfNecessary,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project, convertIfNecessary, monitor );
-    }
-
-    /**
-     * <p>Creates a new faceted project.</p>
-     * 
-     * <p>This method should not be called from the UI thread as it is long-
-     * running and may trigger resource change events. Although this framework
-     * is safe, there is no guarantee that other bundles are UI-safe and the
-     * risk of UI deadlock is high.</p>
-
-     * @param name project name
-     * @param location 
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}
-     * @throws CoreException
-     */
-    
-    public static IFacetedProject create( final String name,
-                                          final IPath location,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( name, location, monitor );
-    }
-    
-    /**
-     * Checks the validity of applying the specified set of actions to the
-     * specified set of base project facets. Returns the union of all validation
-     * problems that are found.
-     *
-     * @param base the set of project facets that the actions will be applied to
-     *   (element type: {@link IProjectFacetVersion})
-     * @param actions the set of actions to evaluate (element type: {@link 
-     *   Action})
-     * @return a status object with severity of {@see IStatus#OK} if all of the
-     *   constraints were satisfied or otherwise a {@see MultiStatus} composed
-     *   of {@see ValidationProblem} status objects
-     */
-    
-    public static IStatus check( final Set base,
-                                 final Set actions )
-    {
-        return impl.check( base, actions );
-    }
-    
-    /**
-     * Sorts actions in the order that they should be applied to a project such
-     * that project facet constraints are not violated.
-     * 
-     * @param base the set of project facets that the actions will be applied to
-     *   (element type: {@link IProjectFacetVersion})
-     * @param actions the list of actions to sort (element type: {@link 
-     *   Action}); this list will be modified
-     */
-    
-    public static void sort( final Set base,
-                             final List actions )
-    {
-        impl.sort( base, actions );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
deleted file mode 100644
index 2d5c1fa..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * The exception that's thrown when version string cannot be parsed.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class VersionFormatException 
-    
-    extends RuntimeException 
-    
-{
-    private static final long serialVersionUID = 1L;
-    
-    private final Object comparator;
-    private final String version;
-    
-    public VersionFormatException( final Object comparator,
-                                   final String version )
-    {
-        this.comparator = comparator;
-        this.version = version;
-    }
-    
-    public Object getComparator()
-    {
-        return this.comparator;
-    }
-    
-    public String getVersion()
-    {
-        return this.version;
-    }
-    
-    public String getMessage()
-    {
-        return NLS.bind( Resources.couldNotParse, this.version,
-                         this.comparator.getClass().getName() );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String couldNotParse;
-        
-        static
-        {
-            initializeMessages( VersionFormatException.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties
deleted file mode 100644
index 4979d82..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.properties
+++ /dev/null
@@ -1 +0,0 @@
-couldNotParse = Could not parse "{0}" with {1}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java
deleted file mode 100644
index 1480d06..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * The implementation of the <code>IActionDefinition</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ActionDefinition
-
-    implements IActionDefinition
-    
-{
-    private String id;
-    private String pluginId;
-    private IProjectFacet facet;
-    private IVersionExpr versionMatchExpr;
-    private Action.Type type;
-    private final Map properties = new HashMap();
-    private final Map propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    private String delegateClassName;
-    private IDelegate delegate = null;
-    private String configFactoryClassName;
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    void setPluginId( final String pluginId )
-    {
-        this.pluginId = pluginId;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final IProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-    
-    public IVersionExpr getVersionExpr()
-    {
-        return this.versionMatchExpr;
-    }
-    
-    void setVersionExpr( final IVersionExpr expr )
-    {
-        this.versionMatchExpr = expr;
-    }
-    
-    public Action.Type getActionType()
-    {
-        return this.type;
-    }
-    
-    void setActionType( final Action.Type type )
-    {
-        this.type = type;
-    }
-    
-    public Map getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-    
-    void setProperty( final String name,
-                      final Object value )
-    {
-        this.properties.put( name, value );
-    }
-    
-    public Object getProperty( final String name )
-    {
-        return this.properties.get( name );
-    }
-    
-    public Object createConfigObject( final IProjectFacetVersion fv,
-                                      final String pjname )
-    
-        throws CoreException
-        
-    {
-        if( this.configFactoryClassName == null )
-        {
-            return null;
-        }
-        else
-        {
-            final Object factory 
-                = FacetCorePlugin.instantiate( this.pluginId, 
-                                               this.configFactoryClassName, 
-                                               IActionConfigFactory.class );
-            
-            final Object config = ( (IActionConfigFactory) factory ).create();
-            
-            IActionConfig cfg = null;
-            
-            if( config instanceof IActionConfig )
-            {
-                cfg = (IActionConfig) config;
-            }
-            else
-            {
-                final IAdapterManager m = Platform.getAdapterManager();
-                cfg = (IActionConfig) m.loadAdapter( config, IActionConfig.class.getName() );
-            }
-            
-            if( cfg != null )
-            {
-                cfg.setVersion( fv );
-                cfg.setProjectName( pjname );
-            }
-            
-            return config;
-        }
-    }
-    
-    String getDelegateClassName()
-    {
-        return this.delegateClassName;
-    }
-    
-    void setDelegateClassName( final String delegateClassName )
-    {
-        this.delegateClassName = delegateClassName;
-    }
-    
-    IDelegate getDelegate()
-    
-        throws CoreException
-        
-    {
-        if( this.delegate == null )
-        {
-            final Object obj 
-                = FacetCorePlugin.instantiate( this.pluginId, 
-                                               this.delegateClassName, 
-                                               IDelegate.class );
-            
-            this.delegate = (IDelegate) obj;
-        }
-        
-        return this.delegate;
-    }
-    
-    String getConfigFactoryClassName()
-    {
-        return this.configFactoryClassName;
-    }
-    
-    void setConfigFactoryClassName( final String configFactoryClassName )
-    {
-        this.configFactoryClassName = configFactoryClassName;
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.java
deleted file mode 100644
index 5010337..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.UnknownRuntime;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class BasicFacetedProjectValidator
-
-    implements IFacetedProjectValidator
-    
-{
-    public void validate( final IFacetedProject fproj ) 
-    
-        throws CoreException
-        
-    {
-        // Are any of the target runtimes not defined?
-        
-        for( Iterator itr1 = fproj.getTargetedRuntimes().iterator();
-             itr1.hasNext(); )
-        {
-            final IRuntime r = (IRuntime) itr1.next();
-            
-            if( r instanceof UnknownRuntime )
-            {
-                final String msg
-                    = NLS.bind( Resources.runtimeNotDefined, r.getName() );
-                
-                fproj.createErrorMarker( msg );
-            }
-        }
-        
-        // Is an installed facet not supported by the runtime?
-        
-        for( Iterator itr1 = fproj.getTargetedRuntimes().iterator();
-             itr1.hasNext(); )
-        {
-            final IRuntime r = (IRuntime) itr1.next();
-            
-            for( Iterator itr2 = fproj.getProjectFacets().iterator(); 
-                 itr2.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr2.next();
-                
-                if( ! r.supports( fv ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.facetNotSupported, fv.toString(), 
-                                    r.getName() );
-                    
-                    fproj.createErrorMarker( msg );
-                }
-            }
-        }
-        
-        // Does the project contain any unknown facets or versions?
-        
-        for( Iterator itr = fproj.getProjectFacets().iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-            final IProjectFacet f = fv.getProjectFacet();
-            
-            if( f.getPluginId() == null )
-            {
-                final String msg 
-                    = NLS.bind( Resources.facetNotFound, f.getId() );
-                
-                fproj.createWarningMarker( msg );
-            }
-            else if( fv.getPluginId() == null )
-            {
-                final String msg
-                    = NLS.bind( Resources.facetVersionNotFound, f.getId(),
-                                fv.getVersionString() );
-                
-                fproj.createWarningMarker( msg );
-            }
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String runtimeNotDefined;
-        public static String facetNotSupported;
-        public static String facetNotFound;
-        public static String facetVersionNotFound;
-        
-        static
-        {
-            initializeMessages( BasicFacetedProjectValidator.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.properties
deleted file mode 100644
index c6511af..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/BasicFacetedProjectValidator.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-runtimeNotDefined = Target runtime {0} is not defined.
-facetNotSupported = Project facet {0} is not supported by target runtime {1}.
-facetNotFound = Implementation of project facet {0} could not be found. Functionality will be limited.
-facetVersionNotFound = Implementation of version {1} of project facet {0} could not be found. Functionality will be limited.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
deleted file mode 100644
index b3a327b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Category 
-
-    implements ICategory 
-    
-{
-    private String id = null;
-    private String plugin = null;
-    private String label = null;
-    private String description = null;
-    private HashSet facets = new HashSet();
-    private Set facetsReadOnly = Collections.unmodifiableSet( this.facets );
-    
-    Category() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacet f )
-    {
-        this.facets.add( f );
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
deleted file mode 100644
index 466b53f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 - 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Constraint
-
-    implements IConstraint
-    
-{
-    private final IProjectFacetVersion fv;
-    private final Type type;
-    private final List operands;
-    
-    Constraint( final IProjectFacetVersion fv,
-                final Type type,
-                final Object[] operands )
-    {
-        this.fv = fv;
-        this.type = type;
-        
-        final ArrayList temp = new ArrayList();
-        
-        for( int i = 0; i < operands.length; i++ )
-        {
-            temp.add( operands[ i ] );
-        }
-        
-        this.operands = Collections.unmodifiableList( temp );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public List getOperands()
-    {
-        return this.operands;
-    }
-    
-    public Object getOperand( final int index )
-    {
-        return this.operands.get( index );
-    }
-    
-    public IStatus check( final Collection facets )
-    {
-        return check( facets, false );
-    }
-    
-    public IStatus check( final Collection facets,
-                          final boolean validateSoftDeps )
-    {
-        final MultiStatus result = createMultiStatus(); 
-        
-        if( this.type == Type.AND )
-        {
-            for( Iterator itr = this.operands.iterator(); itr.hasNext(); )
-            {
-                final IConstraint operand 
-                    = (IConstraint) itr.next();
-                
-                final IStatus st = operand.check( facets, validateSoftDeps );
-                
-                if( st.getSeverity() != IStatus.OK )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        else if( this.type == Type.OR )
-        {
-            boolean someBranchWorks = false;
-            
-            for( Iterator itr = this.operands.iterator(); itr.hasNext();  )
-            {
-                final IConstraint operand
-                    = (IConstraint) itr.next();
-                
-                if( operand.check( facets, validateSoftDeps ).isOK() )
-                {
-                    someBranchWorks = true;
-                    break;
-                }
-            }
-            
-            if( ! someBranchWorks )
-            {
-                ValidationProblem p = null;
-                
-                if( this.operands.size() == 2 && containsOnlyRequires() )
-                {
-                    final ProjectFacetRef[] frefs = new ProjectFacetRef[ 2 ];
-                    
-                    for( int i = 0; i < 2; i++ )
-                    {
-                        final IConstraint c 
-                            = (IConstraint) this.operands.get( i );
-                        
-                        final IProjectFacet rf 
-                            = (IProjectFacet) c.getOperand( 0 );
-
-                        final VersionExpr vexpr 
-                            = (VersionExpr) c.getOperand( 1 );
-                        
-                        frefs[ i ] = new ProjectFacetRef( rf, vexpr );
-                    }
-                    
-                    p = new ValidationProblem( ValidationProblem.Type.REQUIRES_ONE_OF_TWO,
-                                               this.fv, frefs[ 0 ], 
-                                               frefs[ 1 ] );
-                }
-                
-                if( p == null )
-                {
-                    p = new ValidationProblem( ValidationProblem.Type.COMPLEX,
-                                               this.fv );
-                }
-                
-                result.add( p );
-            }
-        }
-        else if( this.type == Type.REQUIRES )
-        {
-            final IProjectFacet rf = (IProjectFacet) this.operands.get( 0 );
-            final VersionExpr vexpr = (VersionExpr) this.operands.get( 1 );
-            
-            final boolean soft
-                = ( (Boolean) this.operands.get( 2 ) ).booleanValue();
-            
-            if( ! soft || validateSoftDeps )
-            {
-                boolean found = false;
-                
-                for( Iterator itr = facets.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( fv.getProjectFacet() == rf )
-                    {
-                        try
-                        {
-                            if( vexpr.evaluate( (IVersion) fv ) )
-                            {
-                                found = true;
-                            }
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                        
-                        break;
-                    }
-                }
-                
-                if( ! found )
-                {
-                    final ValidationProblem.Type ptype 
-                        = ValidationProblem.Type.REQUIRES;
-                    
-                    final ProjectFacetRef fref 
-                        = new ProjectFacetRef( rf, vexpr );
-                    
-                    final ValidationProblem problem
-                        = new ValidationProblem( ptype, this.fv, fref ); 
-                    
-                    result.add( problem );
-                }
-            }
-        }
-        else if( this.type == Type.CONFLICTS )
-        {
-            final Object firstOperand = this.operands.get( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-            
-                for( Iterator itr = group.getMembers().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final IProjectFacetVersion member
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( member.getProjectFacet() != this.fv.getProjectFacet() && 
-                        facets.contains( member ) )
-                    {
-                        final ValidationProblem.Type t 
-                            = ValidationProblem.Type.CONFLICTS;
-                                
-                        final ValidationProblem problem
-                            = new ValidationProblem( t, this.fv, member );
-                        
-                        result.add( problem );
-                    }
-                }
-            }
-            else
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                
-                final VersionExpr vexpr
-                    = this.operands.size() == 2 
-                      ? (VersionExpr) this.operands.get( 1 ) : null;
-                      
-                for( Iterator itr = facets.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fver 
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( fver.getProjectFacet() == f )
-                    {
-                        try
-                        {
-                            if( vexpr == null 
-                                || vexpr.evaluate( (IVersion) fver ) )
-                            {
-                                final ValidationProblem.Type t 
-                                    = ValidationProblem.Type.CONFLICTS;
-                                        
-                                final ValidationProblem problem
-                                    = new ValidationProblem( t, this.fv, fver );
-                                
-                                result.add( problem );
-                                
-                                break;
-                            }
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return result;
-    }
-    
-    private boolean containsOnlyRequires()
-    {
-        for( Iterator itr = this.operands.iterator(); itr.hasNext(); )
-        {
-            if( ( (IConstraint) itr.next() ).getType() != Type.REQUIRES )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    static MultiStatus createMultiStatus()
-    {
-        return createMultiStatus( new IStatus[ 0 ] );
-    }
-
-    static MultiStatus createMultiStatus( final IStatus[] children )
-    {
-        return new MultiStatus( FacetCorePlugin.PLUGIN_ID, 0, children, 
-                                Resources.validationProblems, null );
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String validationProblems;
-        
-        static
-        {
-            initializeMessages( Constraint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
deleted file mode 100644
index 9b2f33c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
+++ /dev/null
@@ -1 +0,0 @@
-validationProblems = One or more constraints have not been satisfied.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java
deleted file mode 100644
index ca26fc4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.AbstractSet;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class CopyOnWriteSet
-
-    extends AbstractSet
-    
-{
-    private Set base;
-    private Set baseReadOnly;
-    
-    public CopyOnWriteSet()
-    {
-        this.base = new HashSet();
-        this.baseReadOnly = null;
-    }
-    
-    public boolean add( final Object obj )
-    {
-        copy();
-        return this.base.add( obj );
-    }
-
-    public boolean addAll( final Collection collection )
-    {
-        copy();
-        return this.base.addAll( collection );
-    }
-    
-    public boolean remove( final Object obj )
-    {
-        copy();
-        return this.base.remove( obj );
-    }
-    
-    public boolean removeAll( final Collection collection )
-    {
-        copy();
-        return this.base.removeAll( collection );
-    }
-
-    public boolean retainAll( final Collection collection )
-    {
-        copy();
-        return this.base.retainAll( collection );
-    }
-    
-    public void clear()
-    {
-        if( this.baseReadOnly != null )
-        {
-            this.base = new HashSet();
-            this.baseReadOnly = null;
-        }
-        else
-        {
-            this.base.clear();
-        }
-    }
-
-    public int size()
-    {
-        return this.base.size();
-    }
-
-    public Iterator iterator()
-    {
-        return new CopyOnWriteIterator( this.base.iterator() );
-    }
-    
-    public Set getReadOnlySet()
-    {
-        if( this.baseReadOnly == null )
-        {
-            this.baseReadOnly = Collections.unmodifiableSet( this.base );
-        }
-        
-        return this.baseReadOnly;
-    }
-    
-    private boolean copy()
-    {
-        if( this.baseReadOnly != null )
-        {
-            this.base = new HashSet( this.base );
-            this.baseReadOnly = null;
-            return true;
-        }
-        else
-        {
-            return false;
-        }
-    }
-    
-    private final class CopyOnWriteIterator
-    
-        implements Iterator
-        
-    {
-        private final Iterator itr;
-        private Object current;
-        
-        public CopyOnWriteIterator( final Iterator itr )
-        {
-            this.itr = itr;
-            this.current = null;
-        }
-        
-        public void remove()
-        {
-            if( copy() )
-            {
-                CopyOnWriteSet.this.base.remove( this.current );
-            }
-            else
-            {
-                this.itr.remove();
-            }
-        }
-
-        public boolean hasNext()
-        {
-            return this.itr.hasNext();
-        }
-
-        public Object next()
-        {
-            this.current = this.itr.next();
-            return this.current;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/EventHandler.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/EventHandler.java
deleted file mode 100644
index 039dd92..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/EventHandler.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * Describes a single faceted project event handler registered via the
- * <code>org.eclipse.wst.common.project.facet.core.facets</code> extension
- * point.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class EventHandler
-{
-    public static final class Type
-    {
-        private static final Map items = new HashMap();
-
-        public static final Type PRE_INSTALL 
-            = new Type( "PRE_INSTALL" ); //$NON-NLS-1$
-        
-        public static final Type POST_INSTALL 
-            = new Type( "POST_INSTALL" ); //$NON-NLS-1$
-        
-        public static final Type PRE_UNINSTALL 
-            = new Type( "PRE_UNINSTALL" ); //$NON-NLS-1$
-        
-        public static final Type POST_UNINSTALL 
-            = new Type( "POST_UNINSTALL" ); //$NON-NLS-1$
-        
-        public static final Type PRE_VERSION_CHANGE
-            = new Type( "PRE_VERSION_CHANGE" ); //$NON-NLS-1$
-        
-        public static final Type POST_VERSION_CHANGE
-            = new Type( "POST_VERSION_CHANGE" ); //$NON-NLS-1$
-        
-        public static final Type RUNTIME_CHANGED
-            = new Type( "RUNTIME_CHANGED" ); //$NON-NLS-1$
-        
-        private final String name;
-        
-        private Type( final String name )
-        {
-            this.name = name;
-            items.put( name, this );
-        }
-        
-        public static Type valueOf( final String name )
-        {
-            return (Type) items.get( name );
-        }
-        
-        public String name()
-        {
-            return this.name;
-        }
-        
-        public String toString()
-        {
-            return this.name;
-        }
-    }
-    
-    private IProjectFacet facet;
-    private VersionExpr vexpr;
-    private Type type;
-    private String pluginId;
-    private Object delegate;
-    
-    EventHandler() {}
-    
-    IProjectFacet getProjectFacet()
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final IProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-    
-    VersionExpr getVersionExpr()
-    {
-        return this.vexpr;
-    }
-    
-    void setVersionExpr( final VersionExpr vexpr )
-    {
-        this.vexpr = vexpr;
-    }
-    
-    Type getType()
-    {
-        return this.type;
-    }
-    
-    void setType( final Type type )
-    {
-        this.type = type;
-    }
-    
-    String getPluginId()
-    {
-        return this.pluginId;
-    }
-    
-    void setPluginId( final String pluginId )
-    {
-        this.pluginId = pluginId;
-    }
-    
-    boolean hasDelegate()
-    {
-        return ( this.delegate != null );
-    }
-    
-    IDelegate getDelegate()
-        
-        throws CoreException
-        
-    {
-        if( this.delegate instanceof String )
-        {
-            this.delegate 
-                = FacetCorePlugin.instantiate( this.pluginId, 
-                                               (String) this.delegate, 
-                                               IDelegate.class );
-        }
-        
-        return (IDelegate) this.delegate;
-    }
-    
-    void setDelegate( final String className )
-    {
-        this.delegate = className;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
deleted file mode 100644
index bab8521..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetCorePlugin 
-{
-    public static final String PLUGIN_ID = FacetedProjectFramework.PLUGIN_ID;
-    
-    private static final String TRACING_ACTION_SORTING
-        = PLUGIN_ID + "/actionSorting"; //$NON-NLS-1$
-
-    private static final String TRACING_FRAMEWORK_ACTIVATION
-        = PLUGIN_ID + "/activation"; //$NON-NLS-1$
-    
-    private static final Set messagesLogged = new HashSet();
-    
-    private static final ILog platformLog
-        = Platform.getLog( Platform.getBundle( PLUGIN_ID ) );
-    
-    public static boolean isTracingActionSorting()
-    {
-        return checkDebugOption( TRACING_ACTION_SORTING );
-    }
-    
-    public static boolean isTracingFrameworkActivation()
-    {
-        return checkDebugOption( TRACING_FRAMEWORK_ACTIVATION );
-    }
-    
-    private static boolean checkDebugOption( final String debugOption )
-    {
-        final String optionValue = Platform.getDebugOption( debugOption );
-        
-        return optionValue == null 
-               ? false : Boolean.valueOf( optionValue ).equals( Boolean.TRUE );
-    }
-    
-    public static void log( final Exception e )
-    {
-        final String msg = e.getMessage() + ""; //$NON-NLS-1$
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-
-    public static void log( final IStatus status )
-    {
-        platformLog.log( status );
-    }
-    
-    public static void log( final String msg )
-    {
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static void logError( final String msg )
-    {
-        logError( msg, false );
-    }
-    
-    public static void logError( final String msg,
-                                 final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-
-    public static void logWarning( final String msg )
-    {
-        logWarning( msg, false );
-    }
-    
-    public static void logWarning( final String msg,
-                                   final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.WARNING, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static IStatus createErrorStatus( final String msg )
-    {
-        return createErrorStatus( msg, null );
-    }
-
-    public static IStatus createErrorStatus( final String msg,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, msg, e );
-    }
-    
-    public static Object instantiate( final String pluginId,
-                                      final String clname,
-                                      final Class interfc )
-    
-        throws CoreException
-        
-    {
-        final Bundle bundle = Platform.getBundle( pluginId );
-        
-        final Object obj;
-        
-        try
-        {
-            final Class cl = bundle.loadClass( clname );
-            obj = cl.newInstance();
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = NLS.bind( Resources.failedToCreate, clname );
-            
-            throw new CoreException( createErrorStatus( msg, e ) );
-        }
-        
-        if( ! interfc.isAssignableFrom( obj.getClass() ) )
-        {
-            final String msg
-                = NLS.bind( Resources.doesNotImplement, clname, 
-                            interfc.getClass().getName() );
-            
-            throw new CoreException( createErrorStatus( msg ) );
-        }
-        
-        return obj;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedToCreate;
-        public static String doesNotImplement;
-        
-        static
-        {
-            initializeMessages( FacetCorePlugin.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties
deleted file mode 100644
index a252b6c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-failedToCreate = Failed to instantiate class {0}.
-doesNotImplement = Class {0} does not implement {1} interface.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
deleted file mode 100644
index edc3da5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
+++ /dev/null
@@ -1,1656 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.UnknownRuntime;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-/* 
- * Synchronization Notes
- * 
- * 1. There is an internal lock object that's used to synchronize access to
- *    the data structure. By synchronizing on an internal object, outside code
- *    cannot cause a deadlock by synchronizing on the FacetedProject object.
- *    
- * 2. Readers synchronize on the lock object for the duration of the method
- *    call. This protects the readers from writers and makes sure that reader
- *    is not reading stale data from thread's local memory.
- *    
- * 3. All collections that are returned by the reader methods are guaranteed
- *    to not change after the fact. This is implemented through a copy-on-write 
- *    policy.
- * 
- * 4. Writers synchronize on the lock object briefly at the start of the method 
- *    and mark the FacetedProject as being modified. If the project is already
- *    being modified, the new writer will wait. Inside the bodies of the
- *    modifier methods, the writer thread is only synchronized on the lock
- *    object while modifying the internal datastructures. These synchronization
- *    sections are kept short and they never span over code that might modify
- *    file system resources. This is done to prevent deadlocks. Once the write
- *    is complete, the writer thread synchronizes on the lock object, resets the 
- *    "being modified" flag, and notifies any writers that may be waiting. 
- */
-
-public final class FacetedProject
-
-    implements IFacetedProject
-    
-{
-    private static final String TRACING_DELEGATE_CALLS
-        = FacetCorePlugin.PLUGIN_ID + "/delegate/calls"; //$NON-NLS-1$
-    
-    private static final String FACETS_METADATA_FILE
-        = ".settings/" + FacetCorePlugin.PLUGIN_ID + ".xml"; //$NON-NLS-1$ //$NON-NLS-2$
-    
-    private static final String EL_RUNTIME = "runtime"; //$NON-NLS-1$
-    private static final String EL_SECONDARY_RUNTIME = "secondary-runtime"; //$NON-NLS-1$
-    private static final String EL_FIXED = "fixed"; //$NON-NLS-1$
-    private static final String EL_INSTALLED = "installed"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-
-    private final IProject project;
-    private final CopyOnWriteSet facets;
-    private final CopyOnWriteSet fixed;
-    private final Map unknownFacets = new HashMap();
-    private final CopyOnWriteSet targetedRuntimes;
-    private String primaryRuntime;
-    IFile f;
-    private long fModificationStamp = -1;
-    private final List listeners;
-    private final Object lock = new Object();
-    private boolean isBeingModified = false;
-    private Thread modifierThread = null;
-    
-    FacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        this.project = project;
-        this.facets = new CopyOnWriteSet();
-        this.fixed = new CopyOnWriteSet();
-        this.targetedRuntimes = new CopyOnWriteSet();
-        this.listeners = new ArrayList();
-        
-        this.f = project.getFile( FACETS_METADATA_FILE );
-        
-        refresh();
-    }
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public Set getProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.getReadOnlySet();
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacetVersion fv )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.contains( fv );
-        }
-    }
-    
-    public IProjectFacetVersion getInstalledVersion( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    return fv;
-                }
-            }
-            
-            return null;
-        }
-    }
-
-    public void installProjectFacet( final IProjectFacetVersion fv,
-                                     final Object config,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.INSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-
-    public void uninstallProjectFacet( final IProjectFacetVersion fv,
-                                       final Object config,
-                                       final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.UNINSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-    
-    public void modify( final Set actions,
-                        final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    modifyInternal( actions, monitor );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-        
-        notifyListeners();
-    }
-        
-    private void modifyInternal( final Set actions,
-                                 final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", actions.size() * 100 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            final IStatus st 
-                = ProjectFacetsManager.check( this.facets, actions );
-            
-            if( ! st.isOK() )
-            {
-                throw new CoreException( st );
-            }
-            
-            // Sort the actions into the order of execution.
-            
-            final List copy = new ArrayList( actions );
-            ProjectFacetsManager.sort( this.facets, copy );
-            
-            // Update and check the action configs.
-            
-            for( int i = 0, n = copy.size(); i < n; i++ )
-            {
-                Action action = (Action) copy.get( i );
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                Object config = action.getConfig();
-                
-                if( config == null )
-                {
-                    final IActionDefinition def 
-                        = fv.getActionDefinition( this.facets, action.getType() );
-                    
-                    config = def.createConfigObject( fv, this.project.getName() );
-                    
-                    if( config != null )
-                    {
-                        action = new Action( action.getType(), fv, config );
-                        copy.set( i, action );
-                    }
-                }
-                
-                if( config != null )
-                {
-                    IActionConfig cfg = null;
-                    
-                    if( config instanceof IActionConfig )
-                    {
-                        cfg = (IActionConfig) config;
-                    }
-                    else
-                    {
-                        final IAdapterManager m = Platform.getAdapterManager();
-                        cfg = (IActionConfig) m.loadAdapter( config, IActionConfig.class.getName() );
-                    }
-                    
-                    if( cfg != null )
-                    {
-                        cfg.setProjectName( this.project.getName() );
-                        cfg.setVersion( fv );
-                        
-                        final IStatus status = cfg.validate();
-                        
-                        if( status.getSeverity() != IStatus.OK )
-                        {
-                            throw new CoreException( status );
-                        }
-                    }
-                }
-            }
-            
-            // Execute the actions.
-            
-            for( Iterator itr = copy.iterator(); itr.hasNext(); )
-            {
-                final Action action = (Action) itr.next();
-                final Action.Type type = action.getType();
-                
-                final ProjectFacetVersion fv 
-                    = (ProjectFacetVersion) action.getProjectFacetVersion();
-                
-                final IActionDefinition def 
-                    = fv.getActionDefinition( this.facets, type );
-                
-                callEventHandlers( fv, getPreEventHandlerType( type ), 
-                                   action.getConfig(), submon( monitor, 10 ) );
-                
-                final IDelegate delegate 
-                    = ( (ActionDefinition) def ).getDelegate();
-                
-                if( delegate == null )
-                {
-                    if( monitor != null )
-                    {
-                        monitor.worked( 80 );
-                    }
-                }
-                else
-                {
-                    callDelegate( fv, delegate, action.getConfig(), type,
-                                  submon( monitor, 80 ) );
-                }
-        
-                synchronized( this.lock )
-                {
-                    apply( action );
-                }
-                
-                save();
-
-                callEventHandlers( fv, getPostEventHandlerType( type ), 
-                                   action.getConfig(), submon( monitor, 10 ) );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public Set getFixedProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.fixed.getReadOnlySet();
-        }
-    }
-    
-    public void setFixedProjectFacets( final Set facets )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    synchronized( FacetedProject.this.lock )
-                    {
-                        FacetedProject.this.fixed.clear();
-                        FacetedProject.this.fixed.addAll( facets );
-                    }
-                        
-                    save();
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        notifyListeners();
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public IRuntime getRuntime()
-    {
-        return getPrimaryRuntime();
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void setRuntime( final IRuntime runtime,
-                            final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set runtimes
-            = runtime == null 
-              ? Collections.EMPTY_SET : Collections.singleton( runtime );
-        
-        setTargetedRuntimes( runtimes, monitor );
-    }
-    
-    public Set getTargetedRuntimes()
-    {
-        synchronized( this.lock )
-        {
-            final Set result = new HashSet();
-            
-            for( Iterator itr = this.targetedRuntimes.iterator(); itr.hasNext(); )
-            {
-                result.add( getRuntimeFromName( (String) itr.next() ) );
-            }
-            
-            return Collections.unmodifiableSet( result );
-        }
-    }
-    
-    public void setTargetedRuntimes( final Set runtimes,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    setTargetedRuntimesInternal( runtimes, monitor );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        notifyListeners();
-    }
-    
-    private void setTargetedRuntimesInternal( final Set runtimes,
-                                              final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", this.facets.size() + 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( this.targetedRuntimes.size() == runtimes.size() )
-            {
-                boolean different = false;
-                
-                for( Iterator itr = runtimes.iterator(); itr.hasNext(); )
-                {
-                    final String rname = ( (IRuntime) itr.next() ).getName();
-                    
-                    if( ! this.targetedRuntimes.contains( rname ) )
-                    {
-                        different = true;
-                        break;
-                    }
-                }
-                
-                if( ! different )
-                {
-                    return;
-                }
-            }
-            
-            for( Iterator itr1 = runtimes.iterator(); itr1.hasNext(); )
-            {
-                final IRuntime runtime = (IRuntime) itr1.next();
-
-                for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( ! runtime.supports( fv ) )
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.facetNotSupported, 
-                                        runtime.getName(), fv.toString() );
-                        
-                        final IStatus st 
-                            = FacetCorePlugin.createErrorStatus( msg );
-                        
-                        throw new CoreException( st );
-                    }
-                }
-            }
-            
-            final IRuntime oldPrimary;
-            final IRuntime newPrimary;
-            
-            synchronized( this.lock )
-            {
-                this.targetedRuntimes.clear();
-                
-                for( Iterator itr = runtimes.iterator(); itr.hasNext(); )
-                {
-                    final IRuntime runtime = (IRuntime) itr.next();
-                    this.targetedRuntimes.add( runtime.getName() );
-                }
-                
-                oldPrimary = getPrimaryRuntime();
-                assignPrimaryRuntimeIfNecessary();
-                newPrimary = getPrimaryRuntime();
-            }
-            
-            save();
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-
-            if( ! equals( oldPrimary, newPrimary ) )
-            {
-                final IRuntimeChangedEvent event 
-                    = new RuntimeChangedEvent( oldPrimary, newPrimary );
-    
-                for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-                {
-                    final ProjectFacetVersion fv
-                        = (ProjectFacetVersion) itr.next();
-                    
-                    callEventHandlers( fv, EventHandler.Type.RUNTIME_CHANGED, 
-                                       event, submon( monitor, 1 ) );
-                }
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public void addTargetedRuntime( final IRuntime runtime,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    addTargetedRuntimeInternal( runtime, monitor );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        notifyListeners();
-    }
-    
-    private void addTargetedRuntimeInternal( final IRuntime runtime,
-                                             final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( runtime == null )
-            {
-                throw new NullPointerException();
-            }
-            
-            if( this.targetedRuntimes.contains( runtime.getName() ) )
-            {
-                return;
-            }
-            
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( ! runtime.supports( fv ) )
-                {
-                    final String msg 
-                        = NLS.bind( Resources.facetNotSupported, 
-                                    runtime.getName(), fv.toString() );
-                    
-                    final IStatus st 
-                        = FacetCorePlugin.createErrorStatus( msg );
-                    
-                    throw new CoreException( st );
-                }
-            }
-            
-            synchronized( this.lock )
-            {
-                this.targetedRuntimes.add( runtime.getName() );
-            }
-            
-            save();
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public void removeTargetedRuntime( final IRuntime runtime,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    removeTargetedRuntimeInternal( runtime, monitor );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        notifyListeners();
-    }
-
-    private void removeTargetedRuntimeInternal( final IRuntime runtime,
-                                                final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", this.facets.size() + 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( runtime == null || 
-                this.targetedRuntimes.contains( runtime.getName() ) )
-            {
-                return;
-            }
-            
-            final IRuntime oldPrimary;
-            final IRuntime newPrimary;
-            
-            synchronized( this.lock )
-            {
-                this.targetedRuntimes.remove( runtime.getName() );
-                
-                oldPrimary = getPrimaryRuntime();
-                assignPrimaryRuntimeIfNecessary();
-                newPrimary = getPrimaryRuntime();
-            }
-            
-            save();
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-
-            if( ! equals( oldPrimary, newPrimary ) )
-            {
-                final IRuntimeChangedEvent event 
-                    = new RuntimeChangedEvent( oldPrimary, newPrimary );
-    
-                for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-                {
-                    final ProjectFacetVersion fv
-                        = (ProjectFacetVersion) itr.next();
-                    
-                    callEventHandlers( fv, EventHandler.Type.RUNTIME_CHANGED, 
-                                       event, submon( monitor, 1 ) );
-                }
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IRuntime getPrimaryRuntime()
-    {
-        synchronized( this.lock )
-        {
-            if( this.primaryRuntime == null )
-            {
-                return null;
-            }
-            else
-            {
-                return getRuntimeFromName( this.primaryRuntime );
-            }
-        }
-    }
-    
-    public void setPrimaryRuntime( final IRuntime runtime,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    setPrimaryRuntimeInternal( runtime, monitor );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        notifyListeners();
-    }
-    
-    private void setPrimaryRuntimeInternal( final IRuntime runtime,
-                                            final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", this.facets.size() + 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( runtime == null )
-            {
-                throw new NullPointerException();
-            }
-            
-            if( equals( this.primaryRuntime, runtime.getName() ) )
-            {
-                return;
-            }
-
-            if( ! this.targetedRuntimes.contains( runtime.getName() ) )
-            {
-                final String msg = Resources.newPrimaryNotTargetRuntime;
-                final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-            
-                throw new CoreException( st );
-            }
-            
-            final IRuntime oldPrimary;
-            
-            synchronized( this.lock )
-            {
-                oldPrimary = getPrimaryRuntime();
-                this.primaryRuntime = runtime.getName();
-            }
-            
-            save();
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-
-            final IRuntimeChangedEvent event 
-                = new RuntimeChangedEvent( oldPrimary, runtime );
-
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final ProjectFacetVersion fv
-                    = (ProjectFacetVersion) itr.next();
-                
-                callEventHandlers( fv, EventHandler.Type.RUNTIME_CHANGED, 
-                                   event, submon( monitor, 1 ) );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    private static IRuntime getRuntimeFromName( final String name )
-    {
-        if( RuntimeManager.isRuntimeDefined( name ) )
-        {
-            return RuntimeManager.getRuntime( name );
-        }
-        else
-        {
-            return new UnknownRuntime( name );
-        }
-    }
-    
-    private void assignPrimaryRuntimeIfNecessary()
-    {
-        if( this.targetedRuntimes.isEmpty() )
-        {
-            this.primaryRuntime = null;
-        }
-        else
-        {
-            if( this.primaryRuntime == null || 
-                ! this.targetedRuntimes.contains( this.primaryRuntime ) )
-            {
-                this.primaryRuntime 
-                    = (String) this.targetedRuntimes.iterator().next();
-            }
-        }
-    }
-    
-    public IMarker createErrorMarker( final String message )
-    
-        throws CoreException
-        
-    {
-        return createErrorMarker( IFacetedProjectValidator.BASE_MARKER_ID, message );
-    }
-
-    public IMarker createErrorMarker( final String type,
-                                      final String message )
-    
-        throws CoreException
-        
-    {
-        return createMarker( IMarker.SEVERITY_ERROR, type, message );
-    }
-    
-    public IMarker createWarningMarker( final String message )
-    
-        throws CoreException
-        
-    {
-        return createWarningMarker( IFacetedProjectValidator.BASE_MARKER_ID, message );
-    }
-    
-    public IMarker createWarningMarker( final String type,
-                                      final String message )
-    
-        throws CoreException
-        
-    {
-        return createMarker( IMarker.SEVERITY_WARNING, type, message );
-    }
-    
-    private IMarker createMarker( final int severity,
-                                  final String type,
-                                  final String message )
-      
-        throws CoreException
-      
-    {
-        final IMarker[] existing
-            = this.project.findMarkers( type, false, IResource.DEPTH_ZERO );
-        
-        for( int i = 0; i < existing.length; i++ )
-        {
-            final IMarker m = existing[ i ];
-            
-            if( m.getAttribute( IMarker.SEVERITY, -1 ) == severity &&
-                m.getAttribute( IMarker.MESSAGE, "" ).equals( message ) ) //$NON-NLS-1$
-            {
-                return m;
-            }
-        }
-        
-        final IMarker m = this.project.createMarker( type );
-      
-        m.setAttribute( IMarker.MESSAGE, message ); 
-        m.setAttribute( IMarker.SEVERITY, severity );
-      
-        return m;
-    }
-    
-    public void addListener( final IFacetedProjectListener listener )
-    {
-        synchronized( this.listeners )
-        {
-            this.listeners.add( listener );
-        }
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        synchronized( this.listeners )
-        {
-            this.listeners.remove( listener );
-        }
-    }
-    
-    private void notifyListeners()
-    {
-        // Copy the list of listeners in order to avoid holding the monitor
-        // while calling the listeners. This is done to avoid potential 
-        // deadlocks.
-        
-        final Object[] copy;
-        
-        synchronized( this.listeners )
-        {
-            copy = this.listeners.toArray();
-        }
-        
-        for( int i = 0; i < copy.length; i++ )
-        {
-            try
-            {
-                ( (IFacetedProjectListener) copy[ i ] ).projectChanged();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    private void beginModification()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            while( this.isBeingModified )
-            {
-                if( this.modifierThread == Thread.currentThread() )
-                {
-                    final String msg = Resources.illegalModificationMsg;
-                    final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                    
-                    throw new CoreException( st );
-                }
-                
-                try
-                {
-                    this.lock.wait();
-                }
-                catch( InterruptedException e ) {}
-            }
-            
-            this.isBeingModified = true;
-            this.modifierThread = Thread.currentThread();
-        }
-    }
-    
-    private void endModification()
-    {
-        synchronized( this.lock )
-        {
-            this.isBeingModified = false;
-            this.modifierThread = null;
-            this.lock.notifyAll();
-        }
-    }
-    
-    private EventHandler.Type getPreEventHandlerType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return EventHandler.Type.PRE_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return EventHandler.Type.PRE_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return EventHandler.Type.PRE_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private EventHandler.Type getPostEventHandlerType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return EventHandler.Type.POST_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return EventHandler.Type.POST_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return EventHandler.Type.POST_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-
-    private void callEventHandlers( final IProjectFacetVersion fv,
-                                    final EventHandler.Type type,
-                                    final Object config,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ProjectFacet f = (ProjectFacet) fv.getProjectFacet();
-        final List handlers = f.getEventHandlers( fv, type );
-        
-        if( monitor != null )
-        {
-            monitor.beginTask( "", handlers.size() ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            for( Iterator itr = handlers.iterator(); itr.hasNext(); )
-            {
-                final EventHandler h = (EventHandler) itr.next();
-                IDelegate delegate = null;
-                
-                try
-                {
-                    delegate = h.getDelegate();
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e.getStatus() );
-                }
-                
-                if( delegate != null )
-                {
-                    callDelegate( fv, delegate, config, type,
-                                  submon( monitor, 1 ) );
-                }
-                
-                if( monitor != null )
-                {
-                    monitor.worked( 1 );
-                }
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    private void callDelegate( final IProjectFacetVersion fv,
-                               final IDelegate delegate,
-                               final Object config,
-                               final Object context,
-                               final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final String tracingDelegateCallsStr
-            = Platform.getDebugOption( TRACING_DELEGATE_CALLS );
-        
-        final boolean tracingDelegateCalls 
-            = tracingDelegateCallsStr == null ? false 
-              : tracingDelegateCallsStr.equals( "true" );  //$NON-NLS-1$
-        
-        long timeStarted = -1;
-        
-        if( tracingDelegateCalls )
-        {
-            final String msg
-                = Resources.bind( Resources.tracingDelegateStarting,
-                                  fv.getProjectFacet().getId(),
-                                  fv.getVersionString(), context.toString(),
-                                  delegate.getClass().getName() );
-            
-            System.out.println( msg );
-            
-            timeStarted = System.currentTimeMillis();
-        }
-        
-        try
-        {
-            delegate.execute( this.project, fv, config, monitor ); 
-        }
-        catch( Exception e )
-        {
-            final String msg;
-            
-            if( context == Action.Type.INSTALL ||
-                context == EventHandler.Type.PRE_INSTALL ||
-                context == EventHandler.Type.POST_INSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnInstall, fv );
-            }
-            else if( context == Action.Type.UNINSTALL ||
-                     context == EventHandler.Type.PRE_UNINSTALL ||
-                     context == EventHandler.Type.POST_UNINSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnUninstall, fv );
-            }
-            else if( context == Action.Type.VERSION_CHANGE ||
-                     context == EventHandler.Type.PRE_VERSION_CHANGE ||
-                     context == EventHandler.Type.POST_VERSION_CHANGE )
-            {
-                msg = NLS.bind( Resources.failedOnVersionChange, 
-                                fv.getProjectFacet().getLabel(), 
-                                fv.getVersionString() );
-            }
-            else if( context == EventHandler.Type.RUNTIME_CHANGED )
-            {
-                msg = NLS.bind( Resources.failedOnRuntimeChanged, fv );
-            }
-            else
-            {
-                throw new IllegalStateException( context.toString() );
-            }
-            
-            final IStatus status
-                = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, 
-                              msg, e );
-
-            throw new CoreException( status ); 
-        }
-        
-        if( tracingDelegateCalls )
-        {
-            final long duration = System.currentTimeMillis() - timeStarted;
-            
-            final String msg 
-                = NLS.bind( Resources.tracingDelegateFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    private void apply( final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            this.facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            this.facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion x 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    itr.remove();
-                    break;
-                }
-            }
-            
-            this.facets.add( fv );
-        }
-    }
-    
-    private void save()
-    
-        throws CoreException
-        
-    {
-        final StringWriter w = new StringWriter();
-        final PrintWriter out = new PrintWriter( w );
-        
-        final String nl = System.getProperty( "line.separator" ); //$NON-NLS-1$
-        
-        out.print( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" ); //$NON-NLS-1$
-        out.print( nl );
-        out.print( "<faceted-project>" ); //$NON-NLS-1$
-        out.print( nl );
-        
-        if( this.primaryRuntime != null )
-        {
-            out.print( "  <runtime name=\"" ); //$NON-NLS-1$
-            out.print( this.primaryRuntime );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( Iterator itr = this.targetedRuntimes.iterator(); itr.hasNext(); )
-        {
-            final String name = (String) itr.next();
-            
-            if( ! name.equals( this.primaryRuntime ) )
-            {
-                out.print( "  <secondary-runtime name=\"" ); //$NON-NLS-1$
-                out.print( name );
-                out.print( "\"/>" ); //$NON-NLS-1$
-                out.print( nl );
-            }
-        }
-        
-        for( Iterator itr = this.fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            out.print( "  <fixed facet=\"" ); //$NON-NLS-1$
-            out.print( f.getId() );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv
-                = (IProjectFacetVersion) itr.next();
-            
-            out.print( "  <installed facet=\"" ); //$NON-NLS-1$
-            out.print( fv.getProjectFacet().getId() );
-            out.print( "\" version=\"" ); //$NON-NLS-1$
-            out.print( fv.getVersionString() );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        out.print( "</faceted-project>" ); //$NON-NLS-1$
-        out.print( nl );
-        
-        final byte[] bytes;
-        
-        try
-        {
-            bytes = w.getBuffer().toString().getBytes( "UTF-8" ); //$NON-NLS-1$
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            // Unexpected. All JVMs are supposed to support UTF-8.
-            throw new RuntimeException( e );
-        }
-        
-        final InputStream in = new ByteArrayInputStream( bytes );
-        
-        if( this.f.exists() )
-        {
-            this.f.setContents( in, true, false, null );
-        }
-        else
-        {
-            final IFolder parent = (IFolder) this.f.getParent();
-            
-            if( ! parent.exists() )
-            {
-                parent.create( true, true, null );
-            }
-            
-            this.f.create( in, true, null );
-        }
-        
-        this.fModificationStamp = this.f.getModificationStamp();
-    }
-
-    public void refresh()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            if( this.isBeingModified )
-            {
-                return;
-            }
-            
-            if( this.f.exists() && 
-                this.f.getModificationStamp() == this.fModificationStamp )
-            {
-                return;
-            }
-            
-            beginModification();
-            
-            try
-            {
-                this.facets.clear();
-                this.fixed.clear();
-                this.unknownFacets.clear();
-                this.targetedRuntimes.clear();
-                this.primaryRuntime = null;
-                
-                if( ! this.f.exists() )
-                {
-                    this.fModificationStamp = -1;
-                    return;
-                }
-                
-                this.fModificationStamp = this.f.getModificationStamp();
-                
-                final Element root = parse( this.f.getLocation().toFile() );
-                final Element[] elements = children( root );
-                
-                for( int i = 0; i < elements.length; i++ )
-                {
-                    final Element e = elements[ i ];
-                    final String name = e.getNodeName();
-                    
-                    if( name.equals( EL_RUNTIME ) )
-                    {
-                        this.primaryRuntime = e.getAttribute( ATTR_NAME );
-                        this.targetedRuntimes.add( this.primaryRuntime );
-                    }
-                    else if( name.equals( EL_SECONDARY_RUNTIME ) )
-                    {
-                        this.targetedRuntimes.add( e.getAttribute( ATTR_NAME ) );
-                    }
-                    else if( name.equals( EL_FIXED ) )
-                    {
-                        final String id = e.getAttribute( ATTR_FACET );
-                        final IProjectFacet f;
-                        
-                        if( ProjectFacetsManager.isProjectFacetDefined( id ) )
-                        {
-                            f = ProjectFacetsManager.getProjectFacet( id );
-                        }
-                        else
-                        {
-                            f = createUnknownFacet( id );
-                        }
-                        
-                        this.fixed.add( f );
-                    }
-                    else if( name.equals( EL_INSTALLED ) )
-                    {
-                        final String id = e.getAttribute( ATTR_FACET );
-                        final String version = e.getAttribute( ATTR_VERSION );
-                        
-                        final IProjectFacet f;
-                        
-                        if( ProjectFacetsManager.isProjectFacetDefined( id ) )
-                        {
-                            f = ProjectFacetsManager.getProjectFacet( id );
-                        }
-                        else
-                        {
-                            f = createUnknownFacet( id );
-                        }
-                        
-                        final IProjectFacetVersion fv;
-                        
-                        if( f.hasVersion( version ) )
-                        {
-                            fv = f.getVersion( version );
-                        }
-                        else
-                        {
-                            fv = createUnknownFacetVersion( f, version );
-                        }
-                            
-                        this.facets.add( fv );
-                    }
-                }
-                
-                notifyListeners();
-            }
-            finally
-            {
-                endModification();
-            }
-        }
-    }
-    
-    private ProjectFacet createUnknownFacet( final String id )
-    {
-        ProjectFacet f = (ProjectFacet) this.unknownFacets.get( id );
-        
-        if( f == null )
-        {
-            f = new ProjectFacet();
-            f.setId( id );
-            f.setLabel( id );
-            
-            this.unknownFacets.put( id, f );
-        }
-        
-        return f;
-    }
-    
-    private ProjectFacetVersion createUnknownFacetVersion( final IProjectFacet f,
-                                                           final String version )
-    {
-        final ProjectFacetVersion fv;
-        
-        if( f.hasVersion( version ) )
-        {
-            fv = (ProjectFacetVersion) f.getVersion( version );
-        }
-        else
-        {
-            fv = new ProjectFacetVersion();
-            fv.setProjectFacet( (ProjectFacet) f );
-            fv.setVersionString( version );
-        }
-        
-        return fv;
-    }
-    
-    private static Element parse( final File f )
-    {
-        final DocumentBuilder docbuilder;
-        
-        try
-        {
-            final DocumentBuilderFactory factory 
-                = DocumentBuilderFactory.newInstance();
-            
-            factory.setValidating( false );
-            
-            docbuilder = factory.newDocumentBuilder();
-            
-            docbuilder.setEntityResolver
-            (
-                new EntityResolver()
-                {
-                    public InputSource resolveEntity( final String publicID, 
-                                                      final String systemID )
-                    {
-                        return new InputSource( new StringReader( "" ) ); //$NON-NLS-1$
-                    }
-                }
-            );
-        }
-        catch( ParserConfigurationException e )
-        {
-            throw new RuntimeException( e );
-        }
-
-        try
-        {
-            return docbuilder.parse( f ).getDocumentElement();
-        }
-        catch( Exception e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    private Element[] children( final Element element )
-    {
-        final List list = new ArrayList();
-        final NodeList nl = element.getChildNodes();
-        
-        for( int i = 0, n = nl.getLength(); i < n; i++ )
-        {
-            final Node node = nl.item( i );
-            
-            if( node.getNodeType() == Node.ELEMENT_NODE )
-            {
-                list.add( node );
-            }
-        }
-        
-        return (Element[]) list.toArray( new Element[ list.size() ] );
-    }
-    
-    private static IProgressMonitor submon( final IProgressMonitor parent,
-                                            final int ticks )
-    {
-        return ( parent == null ? null : new SubProgressMonitor( parent, ticks ) );
-    }
-    
-    private static boolean equals( final Object obj1,
-                                   final Object obj2 )
-    {
-        if( obj1 == obj2 )
-        {
-            return true;
-        }
-        else if( obj1 == null || obj2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return obj1.equals( obj2 );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedOnInstall;
-        public static String failedOnUninstall;
-        public static String failedOnVersionChange;
-        public static String failedOnRuntimeChanged;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String facetNotSupported;
-        public static String illegalModificationMsg;
-        public static String tracingDelegateStarting;
-        public static String tracingDelegateFinished;
-        public static String newPrimaryNotTargetRuntime;
-        
-        static
-        {
-            initializeMessages( FacetedProject.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static final String bind( final String msg,
-                                         final String arg1,
-                                         final String arg2,
-                                         final String arg3,
-                                         final String arg4 )
-        {
-            return NLS.bind( msg, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
deleted file mode 100644
index f08ecbd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-failedOnInstall = Failed while installing {0}.
-failedOnUninstall = Failed while uninstalling {0}.
-failedOnVersionChange = Failed while changing version of {0} to {1}.
-failedOnRuntimeChanged = Failed while {0} was reacting to changed runtime.
-facetNotDefined = Facet {0} is not defined.
-facetVersionNotDefined = Version {1} of facet {0} is not defined.
-facetNotSupported = Runtime {0} does not support project facet {1}.
-illegalModificationMsg = Cannot modify faceted project from within a facet delegate.
-tracingDelegateStarting = \
-Calling project facet delegate:\n\
-\  facet: {0} : {1}\n\
-\  type:  {2}\n\
-\  class: {3}
-tracingDelegateFinished = Project facet delegate completed successfully in {0} ms.
-newPrimaryNotTargetRuntime = Primary runtime has to be one of the targeted runtimes.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
deleted file mode 100644
index ac484a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * Adapts {@see IProject} to {@see IFacetedProject}.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectAdapter
-
-    implements IAdapterFactory
-    
-{
-    private static final Class[] ADAPTER_TYPES = { IFacetedProject.class };
-    
-    public Object getAdapter( final Object adaptable, 
-                              final Class adapterType )
-    {
-        if( adapterType == IFacetedProject.class )
-        {
-            try
-            {
-                return ProjectFacetsManager.create( (IProject) adaptable );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-            }
-        }
-
-        return null;
-    }
-
-    public Class[] getAdapterList()
-    {
-        return ADAPTER_TYPES;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
deleted file mode 100644
index 9cb2bb1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IProjectNature;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectNature
-
-    implements IProjectNature
-
-{
-    public static final String NATURE_ID 
-        = FacetCorePlugin.PLUGIN_ID + ".nature"; //$NON-NLS-1$
-    
-    private IProject project;
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public void setProject( final IProject project )
-    {
-        this.project = project;
-    }
-    
-    public void configure() 
-    
-        throws CoreException
-        
-    {
-        final IProjectDescription desc = this.project.getDescription();
-        
-        final ICommand[] existing = desc.getBuildSpec();
-        final ICommand[] cmds = new ICommand[ existing.length + 1 ];
-        
-        final ICommand newcmd = this.project.getDescription().newCommand();
-        newcmd.setBuilderName( FacetedProjectValidationBuilder.BUILDER_ID );
-        
-        cmds[ 0 ] = newcmd;
-        System.arraycopy( existing, 0, cmds, 1, existing.length );
-        
-        desc.setBuildSpec( cmds );
-        this.project.setDescription( desc, null );
-    }
-    
-    public void deconfigure() {}
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.java
deleted file mode 100644
index 426b442..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectPropertyTester.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.expressions.PropertyTester;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectPropertyTester
-
-    extends PropertyTester
-    
-{
-    public boolean test( final Object receiver, 
-                         final String property, 
-                         final Object[] args, 
-                         final Object value )
-    {
-        try
-        {
-            if( ! ( receiver instanceof IResource ) )
-            {
-                return false;
-            }
-            
-            final IProject pj = ( (IResource) receiver ).getProject();
-            
-            if( pj == null )
-            {
-                return false;
-            }
-            
-            final String val = (String) value;
-            final int colon = val.indexOf( ':' );
-            
-            final String fid;
-            final String vexpr;
-            
-            if( colon == -1 || colon == val.length() - 1 )
-            {
-                fid = val;
-                vexpr = null;
-            }
-            else
-            {
-                fid = val.substring( 0, colon );
-                vexpr = val.substring( colon + 1 );
-            }
-            
-            return FacetedProjectFramework.hasProjectFacet( pj, fid, vexpr );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e.getStatus() );
-        }
-            
-        return false;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
deleted file mode 100644
index 08e11be..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectTemplate
-
-    implements IFacetedProjectTemplate
-    
-{
-    private String id;
-    private String label;
-    private final Set fixed = new HashSet();
-    private final Set fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-    private IPreset preset;
-    
-    FacetedProjectTemplate() {}
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public Set getFixedProjectFacets()
-    {
-        return this.fixedReadOnly;
-    }
-    
-    void addFixedProjectFacet( final IProjectFacet facet )
-    {
-        this.fixed.add( facet );
-    }
-
-    public IPreset getInitialPreset()
-    {
-        return this.preset;
-    }
-    
-    void setInitialPreset( final IPreset preset )
-    {
-        this.preset = preset;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java
deleted file mode 100644
index 38bd6cf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectValidator;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectValidationBuilder
-
-    extends IncrementalProjectBuilder
-    
-{
-    public static final String BUILDER_ID
-        = FacetCorePlugin.PLUGIN_ID + ".builder"; //$NON-NLS-1$
-
-    public static final String VALIDATORS_EXTENSION_ID = "validators"; //$NON-NLS-1$
-    
-    private static final String EL_VALIDATOR = "validator"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
-    private static final List validators = new ArrayList();
-    
-    static
-    {
-        readMetadata();
-    }
-    
-    protected IProject[] build( final int kind, 
-                                final Map args, 
-                                final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IProject proj = getProject();
-        final IFacetedProject fproj = ProjectFacetsManager.create( proj );
-        
-        proj.deleteMarkers( IFacetedProjectValidator.BASE_MARKER_ID, true, 
-                            IResource.DEPTH_INFINITE );
-        
-        for( Iterator itr = validators.iterator(); itr.hasNext(); )
-        {
-            final ValidatorDefinition def = (ValidatorDefinition) itr.next();
-            
-            if( def.isApplicable( fproj.getProjectFacets() ) )
-            {
-                final IFacetedProjectValidator validator = def.getValidator();
-                
-                if( validator != null )
-                {
-                    validator.validate( fproj );
-                }
-            }
-        }
-        
-        return new IProject[0];
-    }
-    
-    private static void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          VALIDATORS_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_VALIDATOR ) )
-            {
-                ValidatorDefinition def = new ValidatorDefinition();
-                def.plugin = config.getContributor().getName();
-                
-                def.className = config.getAttribute( ATTR_CLASS );
-
-                if( def.className == null )
-                {
-                    ProjectFacetsManagerImpl.reportMissingAttribute( config, ATTR_CLASS );
-                    continue;
-                }
-                
-                final IConfigurationElement[] children = config.getChildren();
-                
-                for( int j = 0; j < children.length; j++ )
-                {
-                    final IConfigurationElement child = children[ j ];
-                    final String childName = child.getName();
-                    
-                    if( childName.equals( EL_FACET ) )
-                    {
-                        final ProjectFacetRef ref 
-                            = ProjectFacetRef.read( child );
-                        
-                        if( ref != null )
-                        {
-                            def.constraints.add( ref );
-                        }
-                        else
-                        {
-                            def = null;
-                            break;
-                        }
-                    }
-                }
-                
-                if( def != null )
-                {
-                    validators.add( def );
-                }
-            }
-        }
-    }
-    
-    private static final class ValidatorDefinition
-    {
-        public String plugin;
-        public String className;
-        public IFacetedProjectValidator validator;
-        public final List constraints = new ArrayList();
-        
-        public boolean isApplicable( final Set facets )
-        
-            throws CoreException
-            
-        {
-            for( Iterator itr = this.constraints.iterator(); itr.hasNext(); )
-            {
-                final ProjectFacetRef ref = (ProjectFacetRef) itr.next();
-                
-                if( ! ref.check( facets ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public synchronized IFacetedProjectValidator getValidator()
-        
-            throws CoreException
-            
-        {
-            if( this.validator == null )
-            {
-                final Object instance
-                    = FacetCorePlugin.instantiate( this.plugin, 
-                                                   this.className, 
-                                                   IFacetedProjectValidator.class );
-            
-                this.validator = (IFacetedProjectValidator) instance;
-            }
-            
-            return this.validator;
-        }
-    }
-            
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
deleted file mode 100644
index b91e369..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@see IGroup} interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Group 
-
-    implements IGroup 
-    
-{
-    private String id = null;
-    
-    private final Set members = new HashSet();
-    
-    private final Set membersReadOnly 
-        = Collections.unmodifiableSet( this.members );
-    
-    Group() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public Set getMembers()
-    {
-        return this.membersReadOnly;
-    }
-    
-    void addMember( final IProjectFacetVersion fv )
-    {
-        this.members.add( fv );
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java
deleted file mode 100644
index 72b7b8e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract interface IVersion
-{
-    String getVersionString();
-    Versionable getVersionable();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java
deleted file mode 100644
index 1f74a1a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class IndexedSet
-
-    extends HashSet
-    
-{
-    private static final long serialVersionUID = 1L;
-    private final Set unmodifiable = Collections.unmodifiableSet( this );
-    private final HashMap index = new HashMap();
-    
-    public void add( final Object key,
-                     final Object value )
-    {
-        add( value );
-        this.index.put( key, value );
-    }
-    
-    public boolean delete( final Object key )
-    {
-        final Object value = this.index.get( key );
-        
-        if( value == null )
-        {
-            return false;
-        }
-        else
-        {
-            remove( value );
-            this.index.remove( key );
-            return true;
-        }
-    }
-    
-    public Object get( final Object key )
-    {
-        return this.index.get( key );
-    }
-    
-    public boolean containsKey( final Object key )
-    {
-        return this.index.containsKey( key );
-    }
-    
-    public Set getUnmodifiable()
-    {
-        return this.unmodifiable;
-    }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java
deleted file mode 100644
index 9c458bc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@see IPreset} interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Preset
-
-    implements IPreset
-    
-{
-    private String id;
-    private String label;
-    private String description;
-    
-    private final Set facets = new HashSet();
-    
-    private final Set facetsReadOnly 
-        = Collections.unmodifiableSet( this.facets );
-    
-    private boolean isUserDefined = false;
-    
-    Preset() {}
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacetVersion fv )
-    {
-        this.facets.add( fv );
-    }
-    
-    void addProjectFacet( final Set facets )
-    {
-        this.facets.addAll( facets );
-    }
-    
-    public boolean isUserDefined()
-    {
-        return this.isUserDefined;
-    }
-    
-    void setUserDefined( final boolean isUserDefined )
-    {
-        this.isUserDefined = isUserDefined;
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
deleted file mode 100644
index 98a9d5c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * The implementation of the <code>IProjectFacet</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacet 
-
-    extends Versionable
-    implements IProjectFacet 
-    
-{
-    private static final IVersionAdapter VERSION_ADAPTER = new IVersionAdapter()
-    {
-        public String adapt( final Object obj )
-        {
-            return ( (IProjectFacetVersion) obj ).getVersionString();
-        }
-    };
-    
-    private String id;
-    private String plugin;
-    private String label;
-    private String description;
-    private ICategory category;
-    private final List actionDefinitions = new ArrayList();
-    private final List eventHandlers = new ArrayList();
-    private IProjectFacetVersion defaultVersion;
-    private IDefaultVersionProvider defaultVersionProvider;
-    
-    ProjectFacet() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public ICategory getCategory()
-    {
-        return this.category;
-    }
-    
-    void setCategory( final ICategory category )
-    {
-        this.category = category;
-    }
-    
-    public IProjectFacetVersion getVersion( final String version )
-    {
-        final IProjectFacetVersion fv
-            = (IProjectFacetVersion) this.versions.get( version );
-        
-        if( fv == null )
-        {
-            final String msg 
-                = NLS.bind( Resources.versionNotFound, this.getId(), version );
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return fv;
-    }
-    
-    void addVersion( final IProjectFacetVersion version )
-    {
-        this.versions.add( version.getVersionString(), version );
-    }
-
-    public IProjectFacetVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        if( this.versions.size() > 0 )
-        {
-            final Comparator comp = getVersionComparator( true, VERSION_ADAPTER );
-            final Object max = Collections.max( this.versions, comp );
-            
-            return (IProjectFacetVersion) max;
-        }
-        else
-        {
-            return null;
-        }
-    }
-    
-    public IProjectFacetVersion getLatestSupportedVersion( final IRuntime r )
-    
-        throws CoreException
-        
-    {
-        for( Iterator itr = getSortedVersions( false ).iterator(); 
-             itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-            
-            if( r.supports( fv ) )
-            {
-                return fv;
-            }
-        }
-        
-        return null;
-    }
-    
-    public IProjectFacetVersion getDefaultVersion()
-    {
-        IProjectFacetVersion defver = null;
-        
-        if( this.defaultVersionProvider != null )
-        {
-            try
-            {
-                defver = this.defaultVersionProvider.getDefaultVersion();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-            
-            if( defver != null )
-            {
-                if( defver.getProjectFacet() != this )
-                {
-                    final String msg
-                        = NLS.bind( Resources.versionProviderReturnedWrongVersion,
-                                    this.id );
-                    
-                    FacetCorePlugin.log( msg );
-
-                    defver = null;
-                }
-            }
-            
-            if( defver == null )
-            {
-                try
-                {
-                    defver = getLatestVersion();
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-                catch( VersionFormatException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-            
-            return defver;
-        }
-        else
-        {
-            return this.defaultVersion;
-        }
-    }
-    
-    void setDefaultVersion( IProjectFacetVersion fv )
-    {
-        this.defaultVersion = fv;
-        this.defaultVersionProvider = null;
-    }
-    
-    void setDefaultVersionProvider( IDefaultVersionProvider provider )
-    {
-        this.defaultVersion = null;
-        this.defaultVersionProvider = provider;
-    }
-    
-    protected IVersionAdapter getVersionAdapter()
-    {
-        return VERSION_ADAPTER;
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( ProjectFacetsManagerImpl.Resources.facetVersionNotDefined,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-    
-    Set getActionDefinitions( final IProjectFacetVersion fv )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr = this.actionDefinitions.iterator(); itr.hasNext(); )
-        {
-            final IActionDefinition def = (IActionDefinition) itr.next();
-            
-            if( def.getVersionExpr().evaluate( fv.getVersionString() ) )
-            {
-                result.add( def );
-            }
-        }
-        
-        return result;
-    }
-    
-    void addActionDefinition( final ActionDefinition actionDefinition )
-    {
-        this.actionDefinitions.add( actionDefinition );
-    }
-    
-    List getEventHandlers( final IProjectFacetVersion fv,
-                           final EventHandler.Type type )
-    {
-        final List res = new ArrayList();
-        
-        for( Iterator itr = this.eventHandlers.iterator(); itr.hasNext(); )
-        {
-            final EventHandler h = (EventHandler) itr.next();
-            
-            try
-            {
-                if( h.getType() == type &&
-                    h.getVersionExpr().evaluate( (IVersion) fv ) )
-                {
-                    res.add( h );
-                }
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-            }
-        }
-        
-        return res;
-    }
-    
-    void addEventHandler( final EventHandler h )
-    {
-        this.eventHandlers.add( h );
-    }
-    
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String versionNotFound;
-        public static String versionProviderReturnedWrongVersion;
-        
-        static
-        {
-            initializeMessages( ProjectFacet.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties
deleted file mode 100644
index dd708d1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-versionNotFound = Could not find version {1} of project facet {0}.
-versionProviderReturnedWrongVersion = Version provider for facet {0} returned version that does not belong this facet.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java
deleted file mode 100644
index 82e46ea..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetRef
-{
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    
-    private final IProjectFacet f;
-    private final VersionExpr vexpr;
-    
-    public ProjectFacetRef( final IProjectFacet f,
-                            final VersionExpr vexpr )
-    {
-        this.f = f;
-        this.vexpr = vexpr;
-    }
-    
-    public boolean check( final Set facets )
-    
-        throws CoreException
-        
-    {
-        for( Iterator itr = facets.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-            
-            if( this.f == fv.getProjectFacet() )
-            {
-                if( this.vexpr != null )
-                {
-                    return this.vexpr.evaluate( (IVersion) fv );
-                }
-                else
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public static ProjectFacetRef read( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            ProjectFacetsManagerImpl.reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            ProjectFacetsManagerImpl.reportMissingFacet( id, config.getContributor().getName() );
-            return null;
-        }
-        
-        final IProjectFacet f = ProjectFacetsManager.getProjectFacet( id );
-        
-        final String v = config.getAttribute( ATTR_VERSION );
-        VersionExpr vexpr = null;
-        
-        if( v != null )
-        {
-            try
-            {
-                vexpr = new VersionExpr( f, v, config.getContributor().getName() );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e.getStatus() );
-                return null;
-            }
-        }
-        
-        return new ProjectFacetRef( f, vexpr );
-    }
-    
-    public String toString()
-    {
-        if( this.vexpr == null )
-        {
-            return this.f.getLabel();
-        }
-        else if( this.vexpr.isSingleVersionMatch() )
-        {
-            return NLS.bind( Resources.exactVersion, this.f.getLabel(),
-                             this.vexpr.toString() );
-        }
-        else if( this.vexpr.isSimpleAllowNewer() )
-        {
-            return NLS.bind( Resources.allowNewer, this.f.getLabel(),
-                             this.vexpr.getFirstVersion() );
-        }
-        else if( this.vexpr.isWildcard() )
-        {
-            return NLS.bind( Resources.wildcard, this.f.getLabel() );
-        }
-        else
-        {
-            return NLS.bind( Resources.versionExpr, this.f.getLabel(),
-                             this.vexpr.toString() );
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String exactVersion;
-        public static String allowNewer;
-        public static String wildcard;
-        public static String versionExpr;
-        
-        static
-        {
-            initializeMessages( ProjectFacetRef.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties
deleted file mode 100644
index 284c918..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-exactVersion = {0} {1}
-allowNewer = {0} {1} or newer
-wildcard = any version of {0}
-versionExpr = {0} with version matching expression "{1}"
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
deleted file mode 100644
index a85cc89..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
+++ /dev/null
@@ -1,492 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * The implementation of the <code>IProjectFacetVersion</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetVersion 
-
-    implements IProjectFacetVersion, IVersion 
-    
-{
-    private ProjectFacet facet;
-    private String version;
-    private IConstraint constraint;
-    private String plugin;
-    
-    ProjectFacetVersion() {}
-    
-    public IProjectFacet getProjectFacet() 
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final ProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-
-    public String getVersionString() 
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable getVersionable()
-    {
-        return this.facet;
-    }
-
-    public IConstraint getConstraint()
-    {
-        if( this.constraint == null )
-        {
-            this.constraint = new Constraint( this, IConstraint.Type.AND, new Object[ 0 ] );
-        }
-        
-        return this.constraint;
-    }
-    
-    void setConstraint( final IConstraint constraint )
-    {
-        this.constraint = constraint;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public boolean supports( final Set base,
-                             final Action.Type type )
-    {
-        try
-        {
-            return ( getActionDefinitionInternal( base, type ) != null );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return false;
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public boolean supports( final Action.Type type )
-    {
-        try
-        {
-            return getActionDefinition( type ) != null;
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return false;
-        }
-    }
-    
-    public Set getActionDefinitions()
-    {
-        return this.facet.getActionDefinitions( this );
-    }
-    
-    public Set getActionDefinitions( final Action.Type type )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr = getActionDefinitions().iterator(); itr.hasNext(); )
-        {
-            final IActionDefinition def = (IActionDefinition) itr.next();
-            
-            if( def.getActionType() == type )
-            {
-                result.add( def );
-            }
-        }
-
-        if( result.size() > 1 && type != Action.Type.VERSION_CHANGE )
-        {
-            final String msg
-                = Resources.bind( Resources.multipleActionDefinitions,
-                                  this.facet.getId(), this.version,
-                                  type.toString() );
-            
-            FacetCorePlugin.logWarning( msg, true );
-        }
-        
-        return result;
-    }
-    
-    public IActionDefinition getActionDefinition( final Set base,
-                                                  final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final IActionDefinition def = getActionDefinitionInternal( base, type );
-        
-        if( def == null )
-        {
-            final String msg 
-                = NLS.bind( Resources.actionNotSupported, toString(), 
-                            type.toString() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        return def;
-    }
-    
-    private IActionDefinition getActionDefinitionInternal( final Set base,
-                                                           final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final Set definitions = getActionDefinitions( type );
-        
-        if( definitions.size() > 0 )
-        {
-            if( type == Action.Type.VERSION_CHANGE )
-            {
-                String fromVersion = null;
-                
-                for( Iterator itr = base.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion x = (IProjectFacetVersion) itr.next();
-                    
-                    if( x.getProjectFacet() == this.facet )
-                    {
-                        fromVersion = x.getVersionString();
-                        break;
-                    }
-                }
-                
-                if( fromVersion != null )
-                {
-                    for( Iterator itr = definitions.iterator(); itr.hasNext(); )
-                    {
-                        final IActionDefinition def = (IActionDefinition) itr.next();
-                        
-                        final IVersionExpr vexpr 
-                            = (IVersionExpr) def.getProperty( IActionDefinition.PROP_FROM_VERSIONS );
-                        
-                        if( vexpr == null || vexpr.evaluate( fromVersion ) )
-                        {
-                            return def;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                return (IActionDefinition) definitions.iterator().next();
-            }
-        }
-
-        return null;
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public IActionDefinition getActionDefinition( final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final Set definitions = getActionDefinitions( type );
-        
-        if( definitions.size() == 0 )
-        {
-            return null;
-        }
-        else
-        {
-            return (IActionDefinition) definitions.iterator().next();
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public Object createActionConfig( final Action.Type type,
-                                      final String pjname )
-    
-        throws CoreException
-        
-    {
-        if( ! supports( type ) )
-        {
-            final String msg 
-                = NLS.bind( Resources.actionNotSupported, toString(), 
-                            type.toString() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        final IActionDefinition def = getActionDefinition( type );
-        
-        if( def == null )
-        {
-            return null;
-        }
-        else
-        {
-            return def.createConfigObject( this, pjname );
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public boolean isSameActionConfig( final Action.Type type,
-                                       final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return ( (ProjectFacetVersion) fv ).getActionDefinition( type ) == getActionDefinition( type );
-    }
-    
-    public boolean isValidFor( final Set fixed )
-    {
-        for( Iterator itr = fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            if( this.facet == f )
-            {
-                return true;
-            }
-        }
-        
-        for( Iterator itr1 = fixed.iterator(); itr1.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr1.next();
-            
-            boolean conflictsWithAllVersions = true;
-            
-            for( Iterator itr2 = f.getVersions().iterator(); itr2.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr2.next();
-                
-                if( ! conflictsWith( fv ) )
-                {
-                    conflictsWithAllVersions = false;
-                    break;
-                }
-            }
-            
-            if( conflictsWithAllVersions )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    public boolean conflictsWith( final IProjectFacetVersion fv )
-    {
-        if( this == fv )
-        {
-            return false;
-        }
-        else if( this.facet == fv.getProjectFacet() )
-        {
-            return true;
-        }
-        else
-        {
-            return conflictsWith( fv, getConstraint() ) || 
-                   conflictsWith( this, fv.getConstraint() );
-        }
-    }
-    
-    private boolean conflictsWith( final IProjectFacetVersion fv,
-                                   final IConstraint op )
-    {
-        if( op.getType() == IConstraint.Type.AND )
-        {
-            for( Iterator itr = op.getOperands().iterator(); itr.hasNext(); )
-            {
-                if( conflictsWith( fv, (IConstraint) itr.next() ) )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-        else if( op.getType() == IConstraint.Type.OR )
-        {
-            boolean allBranchesConflict = true;
-            
-            for( Iterator itr = op.getOperands().iterator(); itr.hasNext(); )
-            {
-                if( ! conflictsWith( fv, (IConstraint) itr.next() ) )
-                {
-                    allBranchesConflict = false;
-                    break;
-                }
-            }
-            
-            return allBranchesConflict;
-        }
-        else if( op.getType() == IConstraint.Type.CONFLICTS )
-        {
-            final Object firstOperand = op.getOperand( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-                return group.getMembers().contains( fv );
-            }
-            else
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                
-                final VersionExpr vexpr
-                    = op.getOperands().size() == 2 
-                      ? (VersionExpr) op.getOperand( 1 ) : null;
-                
-                try
-                {
-                    if( fv.getProjectFacet() == f )
-                    {
-                        if( vexpr == null || vexpr.evaluate( (IVersion ) fv ) )
-                        {
-                            return true;
-                        }
-                    }
-                    
-                    return false;
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return false;
-                }
-            }
-        }
-        else if( op.getType() == IConstraint.Type.REQUIRES )
-        {
-            final IProjectFacet rf = (IProjectFacet) op.getOperand( 0 );
-            final VersionExpr vexpr = (VersionExpr) op.getOperand( 1 );
-            
-            final boolean soft
-                = ( (Boolean) op.getOperand( 2 ) ).booleanValue();
-        
-            if( soft )
-            {
-                return false;
-            }
-            else
-            {
-                boolean conflictsWithAllVersions = true;
-                
-                try
-                {
-                    final String vexprstr = vexpr.toString();
-                    
-                    for( Iterator itr = rf.getVersions( vexprstr ).iterator();
-                         itr.hasNext(); )
-                    {
-                        final IProjectFacetVersion rfv 
-                            = (IProjectFacetVersion) itr.next();
-                        
-                        if( ! rfv.conflictsWith( fv ) )
-                        {
-                            conflictsWithAllVersions = false;
-                            break;
-                        }
-                    }
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return false;
-                }
-            
-                return conflictsWithAllVersions;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public String toString()
-    {
-        return this.facet.getLabel() + " " + this.version; //$NON-NLS-1$
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String actionNotSupported;
-        public static String multipleActionDefinitions;
-        
-        static
-        {
-            initializeMessages( ProjectFacetVersion.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3 } );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
deleted file mode 100644
index 36e31ed..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-actionNotSupported = Project facet {0} does not support action type {1}.
-multipleActionDefinitions = More than one declaration found for action type {2} of projet facet {0} {1}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java
deleted file mode 100644
index 09cafe8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java
+++ /dev/null
@@ -1,2447 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The implementation of the {@see ProjectFacetsManager} abstract class.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManagerImpl
-{
-    private static final String EXTENSION_ID = "facets"; //$NON-NLS-1$
-
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_GROUP = "group"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_NAME = "name"; //$NON-NLS-1$
-    private static final String ATTR_PROVIDER = "provider"; //$NON-NLS-1$
-    private static final String ATTR_SOFT = "soft"; //$NON-NLS-1$
-    private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
-    private static final String ATTR_VALUE = "value"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String EL_ACTION = "action"; //$NON-NLS-1$
-    private static final String EL_CATEGORY = "category"; //$NON-NLS-1$
-    private static final String EL_CONFIG_FACTORY = "config-factory"; //$NON-NLS-1$
-    private static final String EL_CONSTRAINT = "constraint"; //$NON-NLS-1$
-    private static final String EL_DEFAULT_VERSION = "default-version"; //$NON-NLS-1$
-    private static final String EL_DELEGATE = "delegate"; //$NON-NLS-1$
-    private static final String EL_DESCRIPTION = "description"; //$NON-NLS-1$
-    private static final String EL_EVENT_HANDLER = "event-handler"; //$NON-NLS-1$
-    private static final String EL_FIXED = "fixed"; //$NON-NLS-1$
-    private static final String EL_GROUP_MEMBER = "group-member"; //$NON-NLS-1$
-    private static final String EL_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_PRESET = "preset"; //$NON-NLS-1$
-    private static final String EL_PROJECT_FACET = "project-facet"; //$NON-NLS-1$
-    private static final String EL_PROJECT_FACET_VERSION = "project-facet-version"; //$NON-NLS-1$
-    private static final String EL_PROPERTY = "property"; //$NON-NLS-1$
-    private static final String EL_TEMPLATE = "template"; //$NON-NLS-1$
-    private static final String EL_VERSION_COMPARATOR = "version-comparator"; //$NON-NLS-1$
-    
-    private static final Set facetsReportedMissing = new HashSet();
-    
-    private final IndexedSet facets;
-    private final IndexedSet actions;
-    private final IndexedSet categories;
-    private final IndexedSet presets;
-    private final IndexedSet templates;
-    private final IndexedSet groups;
-    private final Map projects;
-    
-    public ProjectFacetsManagerImpl()
-    {
-        long activationStart = 0;
-        
-        if( FacetCorePlugin.isTracingFrameworkActivation() )
-        {
-            final StringWriter sw = new StringWriter();
-            final PrintWriter pw = new PrintWriter( sw );
-            ( new Throwable() ).printStackTrace( pw );
-            
-            String context = sw.getBuffer().toString();
-            final int endOfFirstLine = context.indexOf( '\n' );
-            context = context.substring( endOfFirstLine + 1 );
-            context = context.replaceAll( "\\t", "  " ); //$NON-NLS-1$ //$NON-NLS-2$
-            
-            int length = context.length();
-            
-            if( context.charAt( length - 2 ) == '\r' )
-            {
-                length = length - 2;
-            }
-            else
-            {
-                length = length - 1;
-            }
-            
-            context = context.substring( 0, length );
-            
-            final String msg 
-                = NLS.bind( Resources.tracingFrameworkActivationStarting, 
-                            context ); 
-            
-            System.out.println( msg );
-            
-            activationStart = System.currentTimeMillis();
-        }
-        
-        this.facets = new IndexedSet();
-        this.actions = new IndexedSet();
-        this.categories = new IndexedSet();
-        this.presets = new IndexedSet();
-        this.templates = new IndexedSet();
-        this.groups = new IndexedSet();
-        this.projects = new HashMap();
-        
-        readMetadata();
-        readUserPresets();
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IResourceChangeListener ls = new ResourceChangeListener();
-        ws.addResourceChangeListener( ls, IResourceChangeEvent.POST_CHANGE );
-        
-        if( FacetCorePlugin.isTracingFrameworkActivation() )
-        {
-            final long duration 
-                = System.currentTimeMillis() - activationStart;
-            
-            final String msg
-                = NLS.bind( Resources.tracingFrameworkActivationFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facets.getUnmodifiable();
-    }
-    
-    public boolean isProjectFacetDefined( final String id )
-    {
-        return this.facets.containsKey( id );
-    }
-    
-    public IProjectFacet getProjectFacet( final String id )
-    {
-        final IProjectFacet f 
-            = (IProjectFacet) this.facets.get( id );
-        
-        if( f == null )
-        {
-            final String msg = NLS.bind( Resources.facetNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return f;
-    }
-    
-    public Set getActionDefinitions()
-    {
-        return this.actions.getUnmodifiable();
-    }
-    
-    public boolean isActionDefined( final String id )
-    {
-        return this.actions.containsKey( id );
-    }
-    
-    public IActionDefinition getActionDefinition( final String id )
-    {
-        final IActionDefinition adef
-            = (IActionDefinition) this.actions.get( id );
-        
-        if( adef == null )
-        {
-            final String msg = NLS.bind( Resources.actionNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return adef;
-    }
-    
-    public Set getCategories()
-    {
-        return this.categories.getUnmodifiable();
-    }
-
-    public boolean isCategoryDefined( final String id )
-    {
-        return this.categories.containsKey( id );
-    }
-    
-    public ICategory getCategory( final String id )
-    {
-        final ICategory category 
-            = (ICategory) this.categories.get( id );
-        
-        if( category == null )
-        {
-            final String msg = NLS.bind( Resources.categoryNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return category;
-    }
-    
-    public Set getPresets()
-    {
-        return this.presets.getUnmodifiable();
-    }
-    
-    public boolean isPresetDefined( final String id )
-    {
-        return this.presets.containsKey( id );
-    }
-    
-    public IPreset getPreset( final String id )
-    {
-        final IPreset preset = (IPreset) this.presets.get( id );
-        
-        if( preset == null )
-        {
-            final String msg = NLS.bind( Resources.presetNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return preset;
-    }
-    
-    public IPreset definePreset( final String name,
-                                 final Set facets )
-    {
-        return definePreset( name, "", facets, true ); //$NON-NLS-1$
-    }
-
-    public IPreset definePreset( final String name,
-                                 final String description,
-                                 final Set facets )
-    {
-        return definePreset( name, description, facets, true );
-    }
-    
-    private IPreset definePreset( final String name,
-                                  final String description,
-                                  final Set facets,
-                                  final boolean save )
-    {
-        synchronized( this.presets )
-        {
-            String id;
-            int i = 0;
-            
-            do
-            {
-                id = ".usr." + i; //$NON-NLS-1$
-                i++;
-            }
-            while( this.presets.containsKey( id ) );
-            
-            final Preset preset = new Preset();
-            
-            preset.setId( id );
-            preset.setLabel( name );
-            preset.setDescription( description == null ? "" : description ); //$NON-NLS-1$
-            preset.addProjectFacet( facets );
-            preset.setUserDefined( true );
-            
-            this.presets.add( id, preset );
-            
-            if( save )
-            {
-                saveUserPresets();
-            }
-            
-            return preset;
-        }
-    }
-    
-    public boolean deletePreset( final IPreset preset )
-    {
-        synchronized( this.presets )
-        {
-            if( ! preset.isUserDefined() )
-            {
-                return false;
-            }
-            
-            final boolean res = this.presets.delete( preset.getId() );
-            
-            if( res )
-            {
-                saveUserPresets();
-            }
-            
-            return res;
-        }
-    }
-    
-    public Set getTemplates()
-    {
-        return this.templates.getUnmodifiable();
-    }
-    
-    public boolean isTemplateDefined( final String id )
-    {
-        return this.templates.containsKey( id );
-    }
-    
-    public IFacetedProjectTemplate getTemplate( final String id )
-    {
-        final IFacetedProjectTemplate template 
-            = (IFacetedProjectTemplate) this.templates.get( id );
-        
-        if( template == null )
-        {
-            final String msg = NLS.bind( Resources.templateNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return template;
-    }
-    
-    public Set getGroups()
-    {
-        return this.groups.getUnmodifiable();
-    }
-    
-    public boolean isGroupDefined( final String id )
-    {
-        return this.groups.containsKey( id );
-    }
-    
-    public IGroup getGroup( final String id )
-    {
-        final IGroup group = (IGroup) this.groups.get( id );
-        
-        if( group == null )
-        {
-            final String msg = NLS.bind( Resources.groupNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return group;
-    }
-
-    public Set getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, null );
-    }
-
-    public Set getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( f, null );
-    }
-
-    public Set getFacetedProjects( final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, fv );
-    }
-
-    private Set getFacetedProjects( final IProjectFacet f,
-                                    final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IProject[] all 
-            = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        
-        final Set result = new HashSet();
-        
-        for( int i = 0; i < all.length; i++ )
-        {
-            final IProject proj = all[ i ];
-            final IFacetedProject fproj = create( proj );
-            
-            if( fproj != null )
-            {
-                if( ( f != null && ! fproj.hasProjectFacet( f ) ) ||
-                    ( fv != null && ! fproj.hasProjectFacet( fv ) ) )
-                {
-                    continue;
-                }
-                else
-                {
-                    result.add( fproj );
-                }
-            }
-        }
-        
-        return result;
-    }
-
-    public IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        if( project.isAccessible() &&
-            project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) )
-        {
-            synchronized( this.projects )
-            {
-                FacetedProject fproj 
-                    = (FacetedProject) this.projects.get( project.getName() );
-                
-                if( fproj == null )
-                {
-                    fproj = new FacetedProject( project );
-                    this.projects.put( project.getName(), fproj );
-                }
-                else
-                {
-                    fproj.refresh();
-                }
-                
-                return fproj;
-            }
-        }
-
-        return null;
-    }
-
-    public IFacetedProject create( final IProject project,
-                                   final boolean convertIfNecessary,
-                                   final IProgressMonitor monitor)
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 1 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            if( project.isAccessible() &&
-                ! project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) && 
-                convertIfNecessary )
-            {
-                IProjectDescription description = project.getDescription();
-                String[] prevNatures = description.getNatureIds();
-                String[] newNatures = new String[ prevNatures.length + 1 ];
-                System.arraycopy( prevNatures, 0, newNatures, 0, prevNatures.length );
-                newNatures[ prevNatures.length ] = FacetedProjectNature.NATURE_ID;
-                description.setNatureIds( newNatures );
-                
-                project.setDescription( description, submon( monitor, 1 ) );
-            }
-            
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IFacetedProject create( final String name,
-                                   final IPath location,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 2 ); //$NON-NLS-1$
-        }
-        
-        try
-        {
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            final IProject project = ws.getRoot().getProject( name );
-            
-            final IProjectDescription desc
-                = ws.newProjectDescription( name );
-    
-            desc.setLocation( location );
-                    
-            project.create( desc, submon( monitor, 1 ) );
-            project.open( IResource.BACKGROUND_REFRESH, submon( monitor, 1 ) );
-            
-            // This is odd, but apparently nature's configure() method will only
-            // be called if the setDescription() method is used. It will not be
-            // called if nature is added to the project description prior to
-            // calling IProject.create() method.
-            
-            desc.setNatureIds( new String[] { FacetedProjectNature.NATURE_ID } );
-            project.setDescription( desc, null );
-            
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IStatus check( final Set base,
-                          final Set actions )
-    {
-        MultiStatus result = Constraint.createMultiStatus();
-        
-        // Verify that all of the actions are supported.
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( ! action.getProjectFacetVersion().supports( base, action.getType() ) )
-            {
-                final ValidationProblem.Type ptype;
-                
-                if( action.getType() == Action.Type.INSTALL )
-                {
-                    ptype = ValidationProblem.Type.INSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.UNINSTALL )
-                {
-                    ptype = ValidationProblem.Type.UNINSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.VERSION_CHANGE )
-                {
-                    ptype = ValidationProblem.Type.VERSION_CHANGE_NOT_SUPPORTED;
-                }
-                else
-                {
-                    throw new IllegalStateException();
-                }
-                
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                
-                final ValidationProblem vp
-                    = new ValidationProblem( ptype, 
-                                             fv.getProjectFacet().getLabel(),
-                                             fv.getVersionString() );
-                
-                result.add( vp );
-            }
-        }
-        
-        // Multiple actions on the same facet are not supported in the same
-        // batch. The only exception is an uninstall of a previosly-installed
-        // version followed by an install of a new version.
-        
-        final Map facetToActionsMap = new HashMap();
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            final IProjectFacet f
-                = action.getProjectFacetVersion().getProjectFacet();
-            
-            Set group = (Set) facetToActionsMap.get( f );
-            
-            if( group == null )
-            {
-                group = new HashSet();
-                facetToActionsMap.put( f, group );
-            }
-            
-            group.add( action );
-        }
-        
-        for( Iterator itr1 = facetToActionsMap.entrySet().iterator(); 
-             itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final Set group = (Set) entry.getValue();
-            
-            if( group.size() > 1 )
-            {
-                boolean bad = true;
-                
-                if( group.size() == 2 )
-                {
-                    Action install = null;
-                    Action uninstall = null;
-                    
-                    for( Iterator itr2 = group.iterator(); itr2.hasNext(); )
-                    {
-                        final Action action = (Action) itr2.next();
-                        
-                        if( action.getType() == Action.Type.INSTALL )
-                        {
-                            install = action;
-                        }
-                        else if( action.getType() == Action.Type.UNINSTALL )
-                        {
-                            uninstall = action;
-                        }
-                        else
-                        {
-                            break;
-                        }
-                    }
-                    
-                    if( install != null && uninstall != null )
-                    {
-                        if( base.contains( uninstall.getProjectFacetVersion() ) )
-                        {
-                            bad = false;
-                        }
-                    }
-                }
-                
-                if( bad )
-                {
-                    final ValidationProblem.Type ptype 
-                        = ValidationProblem.Type.MULTIPLE_ACTIONS_NOT_SUPPORTED;
-                    
-                    result.add( new ValidationProblem( ptype ) );
-                    
-                    break;
-                }
-            }
-        }
-        
-        // Check for attempts to uninstall or change version of facets that
-        // haven't been installed. Also check for attempts to install a facet
-        // that's already installed.
-        
-        for( Iterator itr1 = actions.iterator(); itr1.hasNext(); )
-        {
-            final Action action = (Action) itr1.next();
-            final IProjectFacetVersion fv = action.getProjectFacetVersion();
-            final IProjectFacet f = fv.getProjectFacet();
-
-            ValidationProblem.Type ptype = null;
-            
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                if( ! base.contains( fv ) )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_UNINSTALL;
-                }
-            }
-            else
-            {
-                IProjectFacetVersion existing = null;
-                
-                for( Iterator itr2 = base.iterator(); itr2.hasNext(); )
-                {
-                    final IProjectFacetVersion temp
-                        = (IProjectFacetVersion) itr2.next();
-                    
-                    if( temp.getProjectFacet() == f )
-                    {
-                        existing = temp;
-                        break;
-                    }
-                }
-                
-                if( action.getType() == Action.Type.VERSION_CHANGE && 
-                    existing == null )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_CHANGE_VERSION;
-                }
-                else if( action.getType() == Action.Type.INSTALL &&
-                         existing != null )
-                {
-                    ptype = ValidationProblem.Type.FACET_ALREADY_INSTALLED;
-                }
-            }
-            
-            if( ptype != null )
-            {
-                result.add( new ValidationProblem( ptype, f.getLabel(),
-                                                   fv.getVersionString() ) );
-            }
-        }
-        
-        // Abort at this point if there are any validation problems.
-        
-        if( ! result.isOK() )
-        {
-            return result;
-        }
-        
-        // Apply all the uninstall actions.
-        
-        final Set all = new HashSet( base );
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Apply all the install and version change actions.
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() != Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Check the contrains on all of the facets.
-        
-        for( Iterator itr = all.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv
-                = (IProjectFacetVersion) itr.next();
-            
-            final IConstraint constraint = fv.getConstraint();
-            
-            if( constraint != null )
-            {
-                final IStatus st = constraint.check( all );
-                
-                if( ! st.isOK() )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        
-        // Eliminate symmetric conflicts problem entries.
-        
-        final Set problems = new HashSet();
-        IStatus[] children = result.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            problems.add( children[ i ] );
-        }
-        
-        final Set toremove = new HashSet();
-        
-        for( Iterator itr = problems.iterator(); itr.hasNext(); )
-        {
-            final ValidationProblem problem = (ValidationProblem) itr.next();
-            
-            if( toremove.contains( problem ) )
-            {
-                itr.remove();
-            }
-            else
-            {
-                if( problem.getType() == ValidationProblem.Type.CONFLICTS )
-                {
-                    final Object[] p = problem.getParameters();
-                    
-                    final ValidationProblem reverse
-                        = new ValidationProblem( ValidationProblem.Type.CONFLICTS,
-                                                 new Object[] { p[ 1 ], p[ 0 ] } );
-                    
-                    toremove.add( reverse );
-                }
-            }
-        }
-        
-        if( children.length != problems.size() )
-        {
-            children 
-                = (IStatus[]) problems.toArray( new IStatus[ problems.size() ] );
-            
-            result = Constraint.createMultiStatus( children );
-        }
-        
-        // Return the problems to the caller.
-        
-        return result;
-    }
-    
-    public void sort( final Set base,
-                      final List actions )
-    {
-        final int count = actions.size();
-        
-        if( count == 0 )
-        {
-            return;
-        }
-        
-        // Before sorting, check that the constraints can be met. Otherwise
-        // the sort algorithm will not terminate.
-        
-        final IStatus st = check( base, new HashSet( actions ) );
-        
-        if( ! st.isOK() )
-        {
-            FacetCorePlugin.log( st );
-            return;
-        }
-        
-        // Initialize tracing.
-        
-        List unsorted = null;
-        int steps = 0;
-        
-        if( FacetCorePlugin.isTracingActionSorting() )
-        {
-            unsorted = new ArrayList( actions );
-        }
-        
-        // Step 1 : Pre-sort all uninstall actions to the front of the list. 
-        //          Within that order, sort actions based on facet id. The
-        //          secondary sort assures a stable sort order among actions on
-        //          unrelated facets.
-        
-        final Comparator comp = new Comparator()
-        {
-            public int compare( final Object obj1, 
-                                final Object obj2 )
-            {
-                final Action a1 = (Action) obj1;
-                final Action a2 = (Action) obj2;
-                
-                int res = compare( a1.getType(), a2.getType() );
-                
-                if( res == 0 )
-                {
-                    final String fid1 
-                        = a1.getProjectFacetVersion().getProjectFacet().getId();
-                    
-                    final String fid2 
-                        = a2.getProjectFacetVersion().getProjectFacet().getId();
-                    
-                    res = fid1.compareTo( fid2 );
-                }
-                
-                return res;
-            }
-            
-            private int compare( final Action.Type t1,
-                                 final Action.Type t2 )
-            {
-                if( t1 == t2 )
-                {
-                    return 0;
-                }
-                else if( t1 == Action.Type.UNINSTALL )
-                {
-                    return -1;
-                }
-                else if( t2 == Action.Type.UNINSTALL )
-                {
-                    return 1;
-                }
-                else
-                {
-                    return 0;
-                }
-            }
-        };
-        
-        Collections.sort( actions, comp );
-        
-        // Step 2 : Sort based on the constraints.
-        
-        final HashSet fnl = new HashSet( base );
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            apply( fnl, (Action) itr.next() );
-        }
-        
-        boolean makeAnotherPass = true;
-        
-        while( makeAnotherPass )
-        {
-            makeAnotherPass = false;
-            
-            HashSet state = new HashSet( base );
-            
-            for( int i = 0; i < count; )
-            {
-                final Action action = (Action) actions.get( i );
-                final Action.Type type = action.getType();
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                final IConstraint constraint = fv.getConstraint();
-                
-                if( type == Action.Type.UNINSTALL )
-                {
-                    if( ! constraint.check( state, true ).isOK() &&
-                        constraint.check( base, true ).isOK() )
-                    {
-                        moveToFront( actions, i );
-                        makeAnotherPass = true;
-                        steps++;
-                        break;
-                    }
-                    else
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                }
-                else
-                {
-                    if( constraint.check( state ).isOK() &&
-                        ! ( ! constraint.check( state, true ).isOK() &&
-                            constraint.check( fnl, true ).isOK() ) )
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                    else
-                    {
-                        moveToEnd( actions, i );
-                        steps++;
-                    }
-                }
-            }
-        }
-        
-        // Output tracing information.
-        
-        if( FacetCorePlugin.isTracingActionSorting() )
-        {
-            final String text
-                = Resources.bind( Resources.tracingActionSorting,
-                                  toString( base ), toString( unsorted ),
-                                  toString( actions ), String.valueOf( steps ) );
-            
-            System.out.println( text );
-        }
-    }
-    
-    static void apply( final Set facets,
-                       final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( Iterator itr = facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion x 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    itr.remove();
-                    break;
-                }
-            }
-            
-            facets.add( fv );
-        }
-    }
-    
-    public static void reportMissingFacet( final String fid,
-                                           final String plugin )
-    {
-        synchronized( facetsReportedMissing )
-        {
-            if( ! facetsReportedMissing.contains( fid ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.facetNotDefined, fid ) +
-                      NLS.bind( Resources.usedInPlugin, plugin );
-                
-                FacetCorePlugin.log( msg );
-                
-                facetsReportedMissing.add( fid );
-            }
-        }
-    }
-
-    public static void reportMissingFacet( final String fid,
-                                           final IProjectFacetVersion fv )
-    {
-        synchronized( facetsReportedMissing )
-        {
-            if( ! facetsReportedMissing.contains( fid ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.facetNotDefined, fid ) +
-                      NLS.bind( Resources.usedInConstraint, 
-                                fv.getProjectFacet().getId(),
-                                fv.getVersionString() );
-                
-                FacetCorePlugin.log( msg );
-                
-                facetsReportedMissing.add( fid );
-            }
-        }
-    }
-    
-    private static IProgressMonitor submon( final IProgressMonitor monitor,
-                                            final int ticks )
-    {
-        if( monitor == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new SubProgressMonitor( monitor, ticks );
-        }
-    }
-    
-    private static void moveToFront( final List actions,
-                                     final int index )
-    {
-        final Action action = (Action) actions.get( index );
-        
-        for( int i = index; i > 0; i-- )
-        {
-            actions.set( i, actions.get( i - 1 ) );
-        }
-        
-        actions.set( 0, action );
-    }
-    
-    private static void moveToEnd( final List actions,
-                                   final int index )
-    {
-        final Action action = (Action) actions.get( index );
-        
-        for( int i = index + 1, n = actions.size(); i < n; i++ )
-        {
-            actions.set( i - 1, actions.get( i ) );
-        }
-        
-        actions.set( actions.size() - 1, action );
-    }
-    
-    private void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_CATEGORY ) )
-            {
-                readCategory( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                readProjectFacet( config );
-            }
-        }
-        
-        final Map fvToConstraint = new HashMap();
-        final Map fvToActions = new HashMap();
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_PROJECT_FACET_VERSION ) )
-            {
-                readProjectFacetVersion( config, fvToConstraint, fvToActions );
-            }
-        }
-        
-        for( Iterator itr = fvToConstraint.entrySet().iterator(); 
-             itr.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr.next();
-            
-            final ProjectFacetVersion fv = (ProjectFacetVersion) entry.getKey();
-            
-            final IConfigurationElement config 
-                = (IConfigurationElement) entry.getValue();
-            
-            readConstraint( config, fv );
-        }
-        
-        for( Iterator itr1 = fvToActions.entrySet().iterator(); itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final ProjectFacetVersion fv = (ProjectFacetVersion) entry.getKey();
-            final List actions = (List) entry.getValue();
-            
-            for( Iterator itr2 = actions.iterator(); itr2.hasNext(); )
-            {
-                final IConfigurationElement config 
-                    = (IConfigurationElement) itr2.next();
-                
-                readAction( config, (ProjectFacet) fv.getProjectFacet(), 
-                            fv.getVersionString() );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_ACTION ) )
-            {
-                readAction( config );
-            }
-            else if( config.getName().equals( EL_EVENT_HANDLER ) )
-            {
-                readEventHandler( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                readDefaultVersionInfo( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_PRESET ) )
-            {
-                readPreset( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_TEMPLATE ) )
-            {
-                readTemplate( config );
-            }
-        }
-    }
-    
-    private void readCategory( final IConfigurationElement config )
-    {
-        final Category category = new Category();
-        category.setPluginId( config.getContributor().getName() );
-        
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-
-        category.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_LABEL ) )
-            {
-                category.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( EL_DESCRIPTION ) )
-            {
-                category.setDescription( child.getValue().trim() );
-            }
-        }
-        
-        if( category.getLabel() == null )
-        {
-            category.setLabel( category.getId() );
-        }
-        
-        if( category.getDescription() == null )
-        {
-            category.setDescription( "" ); //$NON-NLS-1$
-        }
-        
-        this.categories.add( id, category );
-    }
-    
-    private void readProjectFacet( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-        
-        final ProjectFacet descriptor = new ProjectFacet();
-        descriptor.setId( id );
-        descriptor.setPluginId( config.getContributor().getName() );
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_LABEL ) )
-            {
-                descriptor.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( EL_DESCRIPTION ) )
-            {
-                descriptor.setDescription( child.getValue().trim() );
-            }
-            else if( childName.equals( EL_VERSION_COMPARATOR ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                
-                descriptor.setVersionComparator( clname );
-            }
-            else if( childName.equals( EL_CATEGORY ) )
-            {
-                final String catname = child.getValue().trim();
-                
-                final Category category 
-                    = (Category) this.categories.get( catname );
-                
-                if( category == null )
-                {
-                    final String msg
-                        = NLS.bind( Resources.categoryNotDefined, catname ) +
-                          NLS.bind( Resources.usedInPlugin, 
-                                    child.getContributor().getName() );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                descriptor.setCategory( category );
-                category.addProjectFacet( descriptor );
-            }
-        }
-        
-        if( descriptor.getLabel() == null )
-        {
-            descriptor.setLabel( id );
-        }
-        
-        if( descriptor.getDescription() == null )
-        {
-            descriptor.setDescription( "" ); //$NON-NLS-1$
-        }
-        
-        
-        this.facets.add( id, descriptor );
-    }
-    
-    private void readProjectFacetVersion( final IConfigurationElement config,
-                                          final Map fvToConstraint,
-                                          final Map fvToActions )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, ATTR_VERSION );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        final ProjectFacetVersion fv
-            = new ProjectFacetVersion();
-        
-        fv.setProjectFacet( f );
-        fv.setVersionString( ver );
-        fv.setPluginId( config.getContributor().getName() );
-        
-        final List actions = new ArrayList();
-        fvToActions.put( fv, actions );
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_CONSTRAINT ) )
-            {
-                fvToConstraint.put( fv, child );
-            }
-            else if( childName.equals( EL_GROUP_MEMBER ) )
-            {
-                final String id = child.getAttribute( ATTR_ID );
-                
-                if( id == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                Group group = (Group) this.groups.get( id );
-                
-                if( group == null )
-                {
-                    group = new Group();
-                    group.setId( id );
-                    
-                    this.groups.add( id, group );
-                }
-                
-                group.addMember( fv );
-            }
-            else if( childName.equals( EL_ACTION ) )
-            {
-                actions.add( child );
-            }
-        }
-        
-        f.addVersion( fv );
-
-        // This has to happen after facet version is registered.
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_EVENT_HANDLER ) )
-            {
-                readEventHandler( child, f, ver );
-            }
-        }
-    }
-    
-    private void readDefaultVersionInfo( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null || ! isProjectFacetDefined( id ) )
-        {
-            // The error should have already been reported, don't need to log
-            // this again.
-            
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) getProjectFacet( id );
-        boolean defaultVersionSpecified = false;
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_DEFAULT_VERSION ) )
-            {
-                final String clname = child.getAttribute( ATTR_PROVIDER );
-                
-                if( clname != null )
-                {
-                    try
-                    {
-                        final Class type = IDefaultVersionProvider.class;
-                        
-                        final IDefaultVersionProvider defaultVersionProvider
-                            = (IDefaultVersionProvider) 
-                                FacetCorePlugin.instantiate( f.getPluginId(),
-                                                             clname, type );
-                        
-                        f.setDefaultVersionProvider( defaultVersionProvider );
-                        defaultVersionSpecified = true;
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-                else
-                {
-                    final String version = child.getAttribute( ATTR_VERSION );
-                    
-                    if( version != null )
-                    {
-                        if( f.hasVersion( version ) )
-                        {
-                            f.setDefaultVersion( f.getVersion( version ) );
-                            defaultVersionSpecified = true;
-                        }
-                        else
-                        {
-                            final String msg 
-                                = f.createVersionNotFoundErrMsg( version );
-                            
-                            FacetCorePlugin.log( msg );
-                        }
-                    }
-                    else
-                    {
-                        reportMissingAttribute( config, ATTR_VERSION );
-                    }
-                }
-            }
-        }
-        
-        if( ! defaultVersionSpecified )
-        {
-            try
-            {
-                f.setDefaultVersion( f.getLatestVersion() );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    private void readAction( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            ver = IVersionExpr.WILDCARD_SYMBOL;
-        }
-        
-        readAction( config, f, ver );
-    }
-
-    private void readAction( final IConfigurationElement config,
-                             final ProjectFacet f,
-                             final String version )
-    {
-        final String pluginId = config.getContributor().getName();
-        final ActionDefinition def = new ActionDefinition();
-        
-        def.setPluginId( pluginId );
-        
-        final String type = config.getAttribute( ATTR_TYPE );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        // Backwards compatibility of deprecated functionality.
-        
-        if( type.equals( "runtime-changed" ) ) //$NON-NLS-1$
-        {
-            final String msg
-                = NLS.bind( Resources.deprecatedRuntimeChangedAction, pluginId );
-            
-            FacetCorePlugin.logWarning( msg, true );
-            
-            readEventHandler( config, f, version );
-            
-            return;
-        }
-        
-        // End of backwards compatibility code.
-        
-        def.setActionType( Action.Type.valueOf( type ) ); 
-
-        if( def.getActionType() == null )
-        {
-            final String msg
-                = NLS.bind( Resources.invalidActionType, type ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        try
-        {
-            def.setVersionExpr( new VersionExpr( f, version, pluginId ) );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_CONFIG_FACTORY ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                
-                def.setConfigFactoryClassName( clname );
-            }
-            else if( childName.equals( EL_DELEGATE ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                def.setDelegateClassName( clname );
-            }
-            else if( childName.equals( EL_PROPERTY ) )
-            {
-                final String name = child.getAttribute( ATTR_NAME );
-
-                if( name == null )
-                {
-                    reportMissingAttribute( config, ATTR_NAME );
-                    return;
-                }
-
-                final String value = child.getAttribute( ATTR_VALUE );
-                
-                if( value == null )
-                {
-                    reportMissingAttribute( config, ATTR_VALUE );
-                    return;
-                }
-                
-                if( name.equals( IActionDefinition.PROP_FROM_VERSIONS ) )
-                {
-                    if( def.getActionType() != Action.Type.VERSION_CHANGE )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.propertyNotApplicable, name,
-                                        def.getActionType().name() );
-                        
-                        FacetCorePlugin.logWarning( msg );
-                    }
-                    
-                    try
-                    {
-                        final VersionExpr vexpr 
-                            = new VersionExpr( f, value, pluginId );
-                        
-                        def.setProperty( name, vexpr );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                        return;
-                    }
-                }
-                else
-                {
-                    final String msg
-                        = NLS.bind( Resources.unknownProperty, name ) +
-                          NLS.bind( Resources.usedInPlugin, pluginId );
-                    
-                    FacetCorePlugin.logWarning( msg );
-                }
-            }
-        }
-        
-        String id = config.getAttribute( ATTR_ID );
-        
-        if( id == null )
-        {
-            final StringBuffer buf = new StringBuffer();
-            
-            buf.append( f.getId() );
-            buf.append( '#' );
-            buf.append( version );
-            buf.append( '#' );
-            buf.append( def.getActionType().name() );
-            
-            for( Iterator itr = def.getProperties().entrySet().iterator(); 
-                 itr.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr.next();
-                
-                buf.append( '#' );
-                buf.append( (String) entry.getKey() );
-                buf.append( '=' );
-                buf.append( entry.getValue().toString() );
-                
-            }
-            
-            id = buf.toString();
-        }
-        
-        def.setId( id );
-        
-        if( isActionDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.actionAlreadyDefined, id, pluginId );
-            
-            FacetCorePlugin.logError( msg );
-        }
-        else
-        {
-            this.actions.add( def.getId(), def );
-            f.addActionDefinition( def );
-        }
-    }
-    
-    private void readEventHandler( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            reportMissingFacet( fid, config.getContributor().getName() );
-            return;
-        }
-        
-        String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            ver = IVersionExpr.WILDCARD_SYMBOL;
-        }
-        
-        readEventHandler( config, f, ver );
-    }
-
-    private void readEventHandler( final IConfigurationElement config,
-                                   final ProjectFacet f,
-                                   final String version )
-    {
-        final EventHandler h = new EventHandler();
-        final String pluginId = config.getContributor().getName();
-        h.setPluginId( pluginId );
-        
-        final String type = config.getAttribute( ATTR_TYPE );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        if( type.equals( "runtime-changed" ) ) //$NON-NLS-1$
-        {
-            // Backwards compatibility of deprecated functionality.
-            
-            h.setType( EventHandler.Type.RUNTIME_CHANGED );
-        }
-        else
-        {
-            h.setType( EventHandler.Type.valueOf( type ) );
-        }
-        
-        if( h.getType() == null )
-        {
-            final String msg
-                = NLS.bind( Resources.invalidEventHandlerType, type ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        try
-        {
-            h.setVersionExpr( new VersionExpr( f, version, pluginId ) );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_DELEGATE ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                h.setDelegate( clname );
-            }
-        }
-        
-        if( ! h.hasDelegate() )
-        {
-            reportMissingElement( config, EL_DELEGATE );
-            return;
-        }
-        
-        f.addEventHandler( h );
-    }
-    
-    private void readConstraint( final IConfigurationElement config,
-                                 final ProjectFacetVersion fv )
-    {
-        final IConfigurationElement[] ops = config.getChildren();
-        final ArrayList parsed = new ArrayList();
-        
-        for( int j = 0; j < ops.length; j++ )
-        {
-            final IConstraint op = readConstraintHelper( ops[ j ], fv );
-            
-            if( op != null )
-            {
-                parsed.add( op );
-            }
-        }
-        
-        if( parsed.size() == 1 )
-        {
-            fv.setConstraint( (IConstraint) parsed.get( 0 ) );
-        }
-        else if( parsed.size() > 1 )
-        {
-            final IConstraint and 
-                = new Constraint( fv, IConstraint.Type.AND, 
-                                  parsed.toArray() );
-            
-            fv.setConstraint( and );
-        }
-    }
-    
-    private IConstraint readConstraintHelper( final IConfigurationElement root,
-                                              final ProjectFacetVersion fv )
-    {
-        final String pluginId = root.getContributor().getName();
-        
-        final IConstraint.Type type
-            = IConstraint.Type.valueOf( root.getName() );
-        
-        final Object[] operands;
-     
-        if( type == IConstraint.Type.AND ||
-            type == IConstraint.Type.OR )
-        {
-            final IConfigurationElement[] children = root.getChildren();
-            operands = new IConstraint[ children.length ];
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                final IConstraint operand 
-                    = readConstraintHelper( children[ i ], fv );
-                
-                if( operand == null )
-                {
-                    return null;
-                }
-                
-                operands[ i ] = operand;
-            }
-        }
-        else if( type == IConstraint.Type.REQUIRES )
-        {
-            final String fid = root.getAttribute( ATTR_FACET );
-            
-            if( fid == null )
-            {
-                reportMissingAttribute( root, ATTR_FACET );
-                return null;
-            }
-
-            final IProjectFacet f = getProjectFacet( fid );
-            
-            String vexprstr = root.getAttribute( ATTR_VERSION );
-            
-            if( vexprstr == null || vexprstr.trim().length() == 0 )
-            {
-                vexprstr = IVersionExpr.WILDCARD_SYMBOL;
-            }
-
-            final VersionExpr vexpr;
-
-            try
-            {
-                vexpr = new VersionExpr( f, vexprstr, pluginId );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-                return null;
-            }
-            
-            final String softStr = root.getAttribute( ATTR_SOFT );
-            Boolean soft = Boolean.FALSE;
-            
-            if( softStr != null && softStr.equals( Boolean.TRUE.toString() ) )
-            {
-                soft = Boolean.TRUE;
-            }
-            
-            operands = new Object[] { f, vexpr, soft };
-        }
-        else if( type == IConstraint.Type.CONFLICTS )
-        {
-            final String gid = root.getAttribute( ATTR_GROUP );
-            final String fid = root.getAttribute( ATTR_FACET );
-            final String vexprstr = root.getAttribute( ATTR_VERSION );
-            
-            if( gid != null && ( fid != null || vexprstr != null ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.invalidConflictsConstraint, pluginId );
-                
-                FacetCorePlugin.logError( msg, true );
-                return null;
-            }
-            else if( gid != null )
-            {
-                if( ! isGroupDefined( gid ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.groupNotDefined, gid ) +
-                          NLS.bind( Resources.usedInPlugin, pluginId );
-                    
-                    FacetCorePlugin.logError( msg, true );
-                    return null;
-                }
-                
-                operands = new Object[] { getGroup( gid ) };
-            }
-            else if( fid != null )
-            {
-                final IProjectFacet f;
-                VersionExpr vexpr = null;
-                
-                try
-                {
-                    f = getProjectFacet( fid );
-                    
-                    if( vexprstr != null )
-                    {
-                        vexpr = new VersionExpr( f, vexprstr, pluginId );
-                    }
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return null;
-                }
-                
-                if( vexpr == null )
-                {
-                    operands = new Object[] { f };
-                }
-                else
-                {
-                    operands = new Object[] { f, vexpr };
-                }
-            }
-            else
-            {
-                final String msg
-                    = Resources.bind( Resources.missingOneOfTwoAttributes,
-                                      pluginId, root.getName(), ATTR_GROUP,
-                                      ATTR_FACET );
-                
-                FacetCorePlugin.logError( msg, true );
-                return null;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return new Constraint( fv, type, operands );
-    }
-    
-    private void readTemplate( final IConfigurationElement config )
-    {
-        final FacetedProjectTemplate template = new FacetedProjectTemplate();
-        
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-
-        template.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_LABEL ) )
-            {
-                template.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( EL_FIXED ) )
-            {
-                final String fid = child.getAttribute( ATTR_FACET );
-                
-                if( fid == null )
-                {
-                    reportMissingAttribute( child, ATTR_FACET );
-                    return;
-                }
-                
-                if( ! isProjectFacetDefined( fid ) )
-                {
-                    reportMissingFacet( fid, child.getContributor().getName() );
-                    return;
-                }
-                
-                template.addFixedProjectFacet( getProjectFacet( fid ) );
-            }
-            else if( childName.equals( EL_PRESET ) )
-            {
-                final String pid = child.getAttribute( ATTR_ID );
-                
-                if( pid == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                if( ! isPresetDefined( pid ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.presetNotDefined, pid ) +
-                          NLS.bind( Resources.usedInPlugin, 
-                                    child.getContributor().getName() );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                template.setInitialPreset( getPreset( pid ) );
-            }
-        }
-        
-        this.templates.add( id, template );
-    }
-    
-    private void readPreset( final IConfigurationElement config )
-    {
-        final Preset preset = new Preset();
-        
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-
-        preset.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_LABEL ) )
-            {
-                preset.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( EL_DESCRIPTION ) )
-            {
-                preset.setDescription( child.getValue().trim() );
-            }
-            else if( childName.equals( ATTR_FACET ) )
-            {
-                final String fid = child.getAttribute( ATTR_ID );
-                
-                if( fid == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                final String fver = child.getAttribute( ATTR_VERSION );
-                
-                if( fver == null )
-                {
-                    reportMissingAttribute( child, ATTR_VERSION );
-                    return;
-                }
-                
-                final IProjectFacetVersion fv
-                    = getProjectFacet( fid ).getVersion( fver );
-                
-                preset.addProjectFacet( fv );
-            }
-        }
-        
-        if( preset.getLabel() == null )
-        {
-            preset.setLabel( preset.getId() );
-        }
-        
-        if( preset.getDescription() == null )
-        {
-            preset.setDescription( "" ); //$NON-NLS-1$
-        }
-        
-        this.presets.add( id, preset );
-    }
-    
-    static void reportMissingAttribute( final IConfigurationElement el,
-                                        final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getContributor().getName(), el.getName(), 
-                             attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-
-    static void reportMissingElement( final IConfigurationElement el,
-                                      final String element )
-    {
-        final String[] params 
-            = new String[] { el.getContributor().getName(), el.getName(), 
-                             element };
-        
-        final String msg = NLS.bind( Resources.missingElement, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-    
-    private void saveUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            
-            final String[] children = root.childrenNames();
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                root.node( children[ i ] ).removeNode();
-            }
-            
-            for( Iterator itr = this.presets.iterator(); itr.hasNext(); )
-            {
-                final IPreset preset = (IPreset) itr.next();
-                
-                if( preset.isUserDefined() )
-                {
-                    final Preferences pnode = root.node( preset.getId() );
-                    pnode.put( EL_LABEL, preset.getLabel() );
-                    pnode.put( EL_DESCRIPTION, preset.getDescription() );
-                    
-                    int counter = 1;
-                    
-                    for( Iterator itr2 = preset.getProjectFacets().iterator(); 
-                         itr2.hasNext(); )
-                    {
-                        final IProjectFacetVersion f
-                            = (IProjectFacetVersion) itr2.next();
-                        
-                        final Preferences fnode 
-                            = pnode.node( String.valueOf( counter ) );
-                        
-                        fnode.put( ATTR_ID, f.getProjectFacet().getId() );
-                        fnode.put( ATTR_VERSION, f.getVersionString() );
-                        
-                        counter++;
-                    }
-                }
-            }
-        
-            root.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private void readUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            final String[] pkeys = root.childrenNames();
-            
-            for( int i = 0; i < pkeys.length; i++ )
-            {
-                final Preferences pnode = root.node( pkeys[ i ] );
-                final String label = pnode.get( EL_LABEL, null );
-                
-                if( label == null )
-                {
-                    break;
-                }
-
-                String description = pnode.get( EL_DESCRIPTION, null );
-                
-                if( description == null )
-                {
-                    description = ""; //$NON-NLS-1$
-                }
-                
-                final String[] fkeys = pnode.childrenNames();
-                HashSet facets = new HashSet();
-                
-                for( int j = 0; j < fkeys.length; j++ )
-                {
-                    final Preferences fnode = pnode.node( fkeys[ j ] );
-                    final String id = fnode.get( ATTR_ID, null );
-                    final String version = fnode.get( ATTR_VERSION, null );
-                    
-                    if( id == null || version == null )
-                    {
-                        facets = null;
-                        break;
-                    }
-                    
-                    if( isProjectFacetDefined( id ) )
-                    {
-                        final IProjectFacet f = getProjectFacet( id );
-                        
-                        if( f.hasVersion( version ) )
-                        {
-                            facets.add( f.getVersion( version ) );
-                        }
-                        else
-                        {
-                            facets = null;
-                            break;
-                        }
-                    }
-                    else
-                    {
-                        facets = null;
-                        break;
-                    }
-                }
-
-                if( facets != null )
-                {
-                    definePreset( label, description, facets, false );
-                }
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private static Preferences getUserPresetsPreferences()
-    {
-        final InstanceScope scope = new InstanceScope();
-        
-        final IEclipsePreferences pluginRoot 
-            = scope.getNode( FacetCorePlugin.PLUGIN_ID );
-        
-        return pluginRoot.node( "user.presets" ); //$NON-NLS-1$
-    }
-    
-    private static String toString( final Collection collection )
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( Iterator itr = collection.iterator(); itr.hasNext(); )
-        {
-            final Object obj = itr.next();
-            
-            if( buf.length() > 0 )
-            {
-                buf.append( ", " ); //$NON-NLS-1$
-            }
-            
-            if( obj instanceof IProjectFacetVersion )
-            {
-                final IProjectFacetVersion fv = (IProjectFacetVersion) obj;
-                
-                buf.append( fv.getProjectFacet().getId() );
-                buf.append( ' ' );
-                buf.append( fv.getVersionString() );
-            }
-            else
-            {
-                buf.append( obj.toString() );
-            }
-        }
-        
-        return buf.toString();
-    }
-    
-    private final class ResourceChangeListener
-    
-        implements IResourceChangeListener
-        
-    {
-        public void resourceChanged( final IResourceChangeEvent event )
-        {
-            final IResourceDelta delta = event.getDelta();
-            
-            synchronized( ProjectFacetsManagerImpl.this.projects )
-            {
-                for( Iterator itr = ProjectFacetsManagerImpl.this.projects.values().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final FacetedProject fproj = (FacetedProject) itr.next();
-                    
-                    final IResourceDelta subdelta 
-                        = delta.findMember( fproj.f.getFullPath() );
-                    
-                    if( subdelta != null )
-                    {
-                        try
-                        {
-                            fproj.refresh();
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-            }
-        }
-        
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String missingOneOfTwoAttributes;
-        public static String missingElement;
-        public static String categoryNotDefined;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String actionNotDefined;
-        public static String actionAlreadyDefined;
-        public static String groupNotDefined;
-        public static String presetNotDefined;
-        public static String templateNotDefined;
-        public static String usedInPlugin;
-        public static String usedInConstraint;
-        public static String invalidActionType;
-        public static String invalidEventHandlerType;
-        public static String invalidConflictsConstraint;
-        public static String deprecatedRuntimeChangedAction;
-        public static String tracingActionSorting;
-        public static String tracingFrameworkActivationStarting;
-        public static String tracingFrameworkActivationFinished;
-        public static String unknownProperty;
-        public static String propertyNotApplicable;
-        
-        static
-        {
-            initializeMessages( ProjectFacetsManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3 } );
-        }
-
-        public static String bind( final String template,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3,
-                                   final Object arg4 )
-        {
-            return NLS.bind( template, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties
deleted file mode 100644
index a4277af..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties
+++ /dev/null
@@ -1,39 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-missingOneOfTwoAttributes = Extension element <{1}> in plugin {0} requires either attribute {2} or attribute {3} to be specified.
-missingElement = An extension element <{1}> in plugin {0} is missing a required child element <{2}>.
-categoryNotDefined = Category {0} has not been defined.
-facetNotDefined = Project facet {0} has not been defined.
-facetVersionNotDefined = Version {1} of project facet {0} has not been defined.
-actionNotDefined = Project facet action {0} has not been defined.
-actionAlreadyDefined = Attempt to redefine project facet action "{0}" in plugin {1}.
-groupNotDefined = Project facet group {0} has not been defined.
-presetNotDefined = Preset {0} has not been defined.
-templateNotDefined = Template {0} has not been defined.
-usedInPlugin = \ It is used in plugin {0}.
-usedInConstraint = \ It is used in the constraint of project facet {0} version {1}.
-invalidActionType = "{0}" is an invalid action type.
-invalidEventHandlerType = "{0}" is an invalid event handler type.
-invalidConflictsConstraint = The conflicts constraint can specify either a "group" attribute or a "facet" attribute and a "version" attribute. The problem was found in plugin {0}.
-
-deprecatedRuntimeChangedAction = \
-The project facet action "runtime-changed" has been deprecated. It is used in \
-plugin {0}. Similar functionality is available via the "RUNTIME_CHANGED" \
-event handler. See extension point org.eclipse.wst.common.project.facet.core.facets \
-for more information. 
-
-tracingActionSorting = \
-Finished sorting faceted project actions.\n\
-\  base = {0}\n\
-\  unsorted = {1}\n\
-\  sorted = {2}\n\
-\  steps = {3} 
-
-tracingFrameworkActivationStarting = \
-Activating Faceted Project Framework...\n\
-{0}
-
-tracingFrameworkActivationFinished = \
-Faceted Project Framework activated successfully in {0} ms.
-
-unknownProperty = "{0}" is not a valid property name.
-propertyNotApplicable = Property "{0}" is not applicable to action type {1}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeChangedEvent.java
deleted file mode 100644
index 8f4c52c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/RuntimeChangedEvent.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * The implementation of the <code>IRuntimeChangedEvent</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeChangedEvent
-
-    implements IRuntimeChangedEvent
-    
-{
-    private final IRuntime oldRuntime;
-    private final IRuntime newRuntime;
-    
-    public RuntimeChangedEvent( final IRuntime oldRuntime,
-                                final IRuntime newRuntime )
-    {
-        this.oldRuntime = oldRuntime;
-        this.newRuntime = newRuntime;
-    }
-    
-    public IRuntime getOldRuntime()
-    {
-        return this.oldRuntime;
-    }
-
-    public IRuntime getNewRuntime()
-    {
-        return this.newRuntime;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
deleted file mode 100644
index 1b5ae79..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.text.MessageFormat;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ValidationProblem 
-
-    extends Status
-    
-{
-    public static final class Type
-    {
-        public static final Type REQUIRES 
-            = new Type( Resources.requires );
-        
-        public static final Type REQUIRES_ONE_OF_TWO
-            = new Type( Resources.requiresOneOfTwo );
-
-        public static final Type CONFLICTS 
-            = new Type( Resources.oneof );
-        
-        public static final Type COMPLEX 
-            = new Type( Resources.complex );
-        
-        public static final Type INSTALL_NOT_SUPPORTED 
-            = new Type( Resources.installNotSupported );
-        
-        public static final Type UNINSTALL_NOT_SUPPORTED 
-            = new Type( Resources.uninstallNotSupported );
-        
-        public static final Type VERSION_CHANGE_NOT_SUPPORTED 
-            = new Type( Resources.versionChangeNotSupported );
-
-        public static final Type MULTIPLE_ACTIONS_NOT_SUPPORTED 
-            = new Type( Resources.multipleActionsNotSupported );
-
-        public static final Type FACET_ALREADY_INSTALLED 
-            = new Type( Resources.facetAlreadyInstalled );
-
-        public static final Type CANNOT_UNINSTALL 
-            = new Type( Resources.cannotUninstall );
-
-        public static final Type CANNOT_CHANGE_VERSION
-            = new Type( Resources.cannotChangeVersion );
-        
-        public final String msg;
-        
-        private Type( final String msg ) 
-        {
-            this.msg = msg;
-        }
-
-        private String getMessageTemplate()
-        {
-            return this.msg;
-        }
-    }
-    
-    private final Type type;
-    private final Object[] params;
-    
-    public ValidationProblem( final Type type,
-                              final Object[] params )
-    {
-        super( ERROR, FacetCorePlugin.PLUGIN_ID, 0, format( type, params ), 
-               null );
-        
-        this.type = type;
-        this.params = params;
-    }
-    
-    public ValidationProblem( final Type type )
-    {
-        this( type, new Object[ 0 ] );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param )
-    {
-        this( type, new Object[] { param } );
-    }
-    
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2 )
-    {
-        this( type, new Object[] { param1, param2 } );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2,
-                              final Object param3 )
-    {
-        this( type, new Object[] { param1, param2, param3 } );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public Object[] getParameters()
-    {
-        return this.params;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( ! ( obj instanceof ValidationProblem ) )
-        {
-            return false;
-        }
-        else
-        {
-            final ValidationProblem prob = (ValidationProblem) obj;
-            
-            return this.type.equals( prob.type ) &&
-                   Arrays.equals( this.params, prob.params );
-        }
-    }
-    
-    public int hashCode()
-    {
-    	int hash = 0;
-        
-    	for( int i = 0; i < this.params.length; i++ ) 
-        {
-			hash = hash ^ this.params[ i ].hashCode();
-		}
-        
-        return this.type.hashCode() ^ hash;
-    }
-    
-    public String toString()
-    {
-        return getMessage();
-    }
-    
-    private static String format( final Type type,
-                                  final Object[] params )
-    {
-        return MessageFormat.format( type.getMessageTemplate(), params );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String requires;
-        public static String requiresOneOfTwo;
-        public static String oneof;
-        public static String complex;
-        public static String installNotSupported;
-        public static String uninstallNotSupported;
-        public static String versionChangeNotSupported;
-        public static String multipleActionsNotSupported;
-        public static String facetAlreadyInstalled;
-        public static String cannotUninstall;
-        public static String cannotChangeVersion;
-        
-        static
-        {
-            initializeMessages( ValidationProblem.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
deleted file mode 100644
index fd61d8d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-requires = {0} requires {1}.
-requiresOneOfTwo = {0} requires {1} or {2}.
-oneof = {0} and {1} cannot both be selected.
-complex = Constraints for {0} have not been met.
-installNotSupported = {0} {1} cannot be installed.
-uninstallNotSupported = {0} {1} cannot be uninstalled.
-versionChangeNotSupported = Cannot change version of project facet {0} to {1}.
-multipleActionsNotSupported = Multiple actions on the same project facet are not supported in the same batch. The only exception is an uninstall of a previosly-installed version followed by an install of a new version.
-facetAlreadyInstalled = Cannot install project facet {0} {1}. Some version of this project facet is already installed.
-cannotUninstall = Cannot uninstall project facet {0} {1} because it has not been installed.
-cannotChangeVersion = Cannot change version of project facet {0} to {1} because no version of this project facet is currently installed.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.java
deleted file mode 100644
index ce21600..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.java
+++ /dev/null
@@ -1,682 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class VersionExpr
-
-    implements IVersionExpr
-    
-{
-    private static final int SM1_START = 0;
-    private static final int SM1_PARSING_START_VERSION = 1;
-    private static final int SM1_PARSING_END_VERSION = 2;
-    private static final int SM1_FINISHED_RANGE_INCLUSIVE = 3;
-    private static final int SM1_FINISHED_RANGE_EXCLUSIVE = 4;
-    private static final int SM1_PARSING_WILDCARD = 5;
-    
-    private static final int SM2_VERSION_START = 0;
-    private static final int SM2_VERSION_CONTINUING = 1;
-    private static final int SM2_ESCAPE = 2;
-    
-    private final Versionable versionable;
-    private final Comparator comparator;
-    private final List subexprs;
-    private final String usedInPlugin;
-    
-    public VersionExpr( final Object versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this( (Versionable) versionable, expr, usedInPlugin );
-    }
-    
-    public VersionExpr( final Versionable versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this.versionable = versionable;
-        this.comparator = versionable.getVersionComparator();
-        this.subexprs = new ArrayList();
-        this.usedInPlugin = usedInPlugin;
-        
-        int state = SM1_START;
-        Range range = null;
-        boolean usingDeprecatedSyntax = false;
-        
-        for( MutableInteger position = new MutableInteger(); 
-             position.value < expr.length(); position.value++ )
-        {
-            final char ch = expr.charAt( position.value );
-            
-            switch( state )
-            {
-                case SM1_START:
-                {
-                    if( ch == '[' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = true;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '(' )
-                    {
-                        range = new Range();
-                        range.includesStartVersion = false;
-                        state = SM1_PARSING_START_VERSION;
-                    }
-                    else if( ch == '*' )
-                    {
-                        this.subexprs.add( new Wildcard() );
-                        state = SM1_PARSING_WILDCARD;
-                    }
-                    else if( ch == ' ' || ch == ',' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        final StringBuffer buf = new StringBuffer();
-                        final int exitState = parseVersion( expr, position, buf );
-                        
-                        if( exitState == SM1_START )
-                        {
-                            final String vstr = buf.toString();
-                            final Range r = new Range();
-                            
-                            if( vstr.startsWith( ">=" ) ) //$NON-NLS-1$
-                            {
-                                r.startVersion = parseVersion( vstr.substring( 2 ) );
-                                r.includesStartVersion = true;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( ">" ) ) //$NON-NLS-1$
-                            {
-                                r.startVersion = parseVersion( vstr.substring( 1 ) );
-                                r.includesStartVersion = false;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( "<=" ) ) //$NON-NLS-1$
-                            {
-                                r.endVersion = parseVersion( vstr.substring( 2 ) );
-                                r.includesEndVersion = true;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else if( vstr.startsWith( "<" ) ) //$NON-NLS-1$
-                            {
-                                r.endVersion = parseVersion( vstr.substring( 1 ) );
-                                r.includesEndVersion = false;
-                                usingDeprecatedSyntax = true;
-                            }
-                            else
-                            {
-                                r.startVersion = parseVersion( vstr );
-                                r.includesStartVersion = true;
-                                r.endVersion = r.startVersion;
-                                r.includesEndVersion = true;
-                            }
-                            
-                            this.subexprs.add( r );
-                        }
-                        else if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                                 exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                        {
-                            range = new Range();
-                            range.endVersion = parseVersion( buf.toString() );
-                            state = exitState;
-                            position.value--;
-                        }
-                        else
-                        {
-                            throw createInvalidVersionExprException( expr );
-                        }
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_START_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-
-                    if( exitState == SM1_START )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        this.subexprs.add( range );
-                        range = null;
-                        state = exitState;
-                    }
-                    else if( exitState == SM1_PARSING_END_VERSION )
-                    {
-                        range.startVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_PARSING_END_VERSION:
-                {
-                    final StringBuffer buf = new StringBuffer();
-                    final int exitState = parseVersion( expr, position, buf );
-                    
-                    if( exitState == SM1_FINISHED_RANGE_INCLUSIVE ||
-                        exitState == SM1_FINISHED_RANGE_EXCLUSIVE )
-                    {
-                        range.endVersion = parseVersion( buf.toString() );
-                        state = exitState;
-                        position.value--;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                    
-                    break;
-                }
-                case SM1_FINISHED_RANGE_INCLUSIVE:
-                case SM1_FINISHED_RANGE_EXCLUSIVE:
-                {
-                    range.includesEndVersion 
-                        = ( state == SM1_FINISHED_RANGE_INCLUSIVE );
-                    
-                    this.subexprs.add( range );
-                    range = null;
-                    
-                    state = SM1_START;
-                    
-                    break;
-                }
-                case SM1_PARSING_WILDCARD:
-                {
-                    if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else if( ch == ',' )
-                    {
-                        state = SM1_START;
-                    }
-                    else
-                    {
-                        throw createInvalidVersionExprException( expr );
-                    }
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        
-        // Report the use of deprecated syntax.
-        
-        if( usingDeprecatedSyntax )
-        {
-            final String msg;
-            
-            if( this.usedInPlugin == null )
-            {
-                msg = Resources.deprecatedSyntaxNoPlugin;
-            }
-            else
-            {
-                msg = NLS.bind( Resources.deprecatedSyntax, this.usedInPlugin );
-            }
-            
-            FacetCorePlugin.logWarning( msg, true );
-        }
-    }
-    
-    private int parseVersion( final String str,
-                              final MutableInteger position,
-                              final StringBuffer version )
-    
-        throws CoreException
-        
-    {
-        int localState = SM2_VERSION_START;
-        int exitState = -1;
-        
-        for( ; exitState == -1 && position.value < str.length(); 
-             position.value++ )
-        {
-            final char ch = str.charAt( position.value );
-            
-            switch( localState )
-            {
-                case SM2_VERSION_START:
-                {
-                    if( ch == '[' || ch == '(' || ch == ']' || ch == ')' ||
-                        ch == '-' || ch == ',' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                        localState = SM2_VERSION_CONTINUING;
-                    }
-                    
-                    break;
-                }
-                case SM2_VERSION_CONTINUING:
-                {
-                    if( ch == '[' || ch == '(' )
-                    {
-                        throw createInvalidVersionExprException( str );
-                    }
-                    else if( ch == '\\' )
-                    {
-                        localState = SM2_ESCAPE;
-                    }
-                    else if( ch == ',' )
-                    {
-                        exitState = SM1_START;
-                    }
-                    else if( ch == '-' )
-                    {
-                        exitState = SM1_PARSING_END_VERSION;
-                    }
-                    else if( ch == ']' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_INCLUSIVE;
-                    }
-                    else if( ch == ')' )
-                    {
-                        exitState = SM1_FINISHED_RANGE_EXCLUSIVE;
-                    }
-                    else if( ch == ' ' )
-                    {
-                        // ignore
-                    }
-                    else
-                    {
-                        version.append( ch );
-                    }
-                    
-                    break;
-                }
-                case SM2_ESCAPE:
-                {
-                    version.append( ch );
-                    break;
-                }
-                default:
-                {
-                    throw new IllegalStateException();
-                }
-            }
-        }
-        
-        position.value--;
-        
-        if( exitState != -1 )
-        {
-            return exitState;
-        }
-        else
-        {
-            if( localState == SM2_VERSION_CONTINUING )
-            {
-                // Expected end of input.
-                
-                return SM1_START;
-            }
-            else
-            {
-                // Unexpected end of input.
-                
-                throw createInvalidVersionExprException( str );
-            }
-        }
-    }
-    
-    private String parseVersion( final String str )
-    
-        throws CoreException
-        
-    {
-        if( ! this.versionable.hasVersion( str ) )
-        {
-            final String msg 
-                = this.versionable.createVersionNotFoundErrMsg( str );
-            
-            final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-            
-            throw new CoreException( st );
-        }
-        else
-        {
-            return this.versionable.getVersionInternal( str ).getVersionString();
-        }
-    }
-    
-    public boolean evaluate( final IVersion ver )
-    
-        throws CoreException
-        
-    {
-        return evaluate( ver.getVersionString() );
-    }
-    
-    public boolean evaluate( final String ver )
-    {
-        for( Iterator itr = this.subexprs.iterator(); itr.hasNext(); )
-        {
-            if( ( (ISubExpr) itr.next() ).evaluate( ver ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isSingleVersionMatch()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = (ISubExpr) this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-                
-                if( range.startVersion == range.endVersion &&
-                    range.includesStartVersion == range.includesEndVersion == true )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-
-    public boolean isSimpleAllowNewer()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = (ISubExpr) this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-            
-                if( range.startVersion != null && range.endVersion == null &&
-                    range.includesStartVersion  )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isWildcard()
-    {
-        return this.subexprs.size() == 1 && 
-               this.subexprs.get( 0 ) instanceof Wildcard;
-    }
-    
-    public String getFirstVersion()
-    {
-        if( isSingleVersionMatch() || isSimpleAllowNewer() )
-        {
-            final Range range = (Range) this.subexprs.get( 0 );
-            return range.startVersion;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public String toString()
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( Iterator itr = this.subexprs.iterator(); itr.hasNext(); )
-        {
-            if( buf.length() > 0 ) buf.append( ',' );
-            buf.append( itr.next().toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    public String toDisplayString()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subexpr = (ISubExpr) this.subexprs.get( 0 );
-            
-            if( subexpr instanceof Range )
-            {
-                final Range r = (Range) subexpr;
-                
-                if( r.isSingleVersion() )
-                {
-                    return r.startVersion;
-                }
-                else if( r.endVersion == null && r.includesStartVersion )
-                {
-                    return NLS.bind( Resources.versionOrNewer, r.startVersion );
-                }
-            }
-        }
-
-        boolean onlySingleVersions = true;
-        
-        for( Iterator itr = this.subexprs.iterator(); itr.hasNext(); )
-        {
-            final ISubExpr subexpr = (ISubExpr) itr.next();
-            
-            if( ! ( subexpr instanceof Range ) || 
-                ! ( (Range) subexpr ).isSingleVersion() )
-            {
-                onlySingleVersions = false;
-                break;
-            }
-        }
-        
-        if( onlySingleVersions )
-        {
-            final StringBuffer buf = new StringBuffer();
-            
-            for( Iterator itr = this.subexprs.iterator(); itr.hasNext(); )
-            {
-                final Range r = (Range) itr.next();
-                
-                if( buf.length() > 0 )
-                {
-                    if( itr.hasNext() )
-                    {
-                        buf.append( ", " ); //$NON-NLS-1$
-                    }
-                    else
-                    {
-                        buf.append( " or " ); //$NON-NLS-1$
-                    }
-                }
-                
-                buf.append( r.startVersion );
-            }
-            
-            return buf.toString();
-        }
-        
-        return toString();
-    }
-    
-    private static CoreException createInvalidVersionExprException( final String str )
-    {
-        final String msg
-            = NLS.bind( Resources.invalidVersionExpr, str );
-    
-        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-    
-        return new CoreException( st );
-    }
-    
-    private static interface ISubExpr
-    {
-        boolean evaluate( String version );
-    }
-    
-    private final class Range
-    
-        implements ISubExpr
-        
-    {
-        public String startVersion = null;
-        public boolean includesStartVersion = false;
-        public String endVersion = null;
-        public boolean includesEndVersion = false;
-        
-        public boolean isSingleVersion()
-        {
-            return this.startVersion.equals( this.endVersion ) &&
-                   this.includesStartVersion == this.includesEndVersion == true;
-        }
-        
-        public boolean evaluate( final String version )
-        {
-            final Comparator comp = VersionExpr.this.comparator;
-        
-            if( this.startVersion != null )
-            {
-                final int res = comp.compare( version, this.startVersion ); 
-                
-                if( ! ( res > 0 || ( res == 0 && this.includesStartVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            if( this.endVersion != null )
-            {
-                final int res = comp.compare( version, this.endVersion );
-                
-                if( ! ( res < 0 || ( res == 0 && this.includesEndVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public String toString()
-        {
-            if( this.startVersion.equals( this.endVersion ) &&
-                this.includesStartVersion == this.includesEndVersion == true )
-            {
-                return this.startVersion;
-            }
-            else
-            {
-                final StringBuffer buf = new StringBuffer();
-                
-                if( this.startVersion != null )
-                {
-                    buf.append( this.includesStartVersion ? '[' : '(' );
-                    buf.append( this.startVersion );
-                }
-                
-                if( this.endVersion != null )
-                {
-                    if( buf.length() != 0 )
-                    {
-                        buf.append( '-' );
-                    }
-                    
-                    buf.append( this.endVersion );
-                    buf.append( this.includesEndVersion ? ']' : ')' );
-                }
-                
-                return buf.toString();
-            }
-        }
-    }
-    
-    private static final class Wildcard
-    
-        implements ISubExpr
-        
-    {
-        public boolean evaluate( final String version )
-        {
-            return true;
-        }
-        
-        public String toString()
-        {
-            return IVersionExpr.WILDCARD_SYMBOL;
-        }
-    }
-    
-    private static final class MutableInteger
-    {
-        public int value = 0;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String invalidVersionExpr;
-        public static String deprecatedSyntax;
-        public static String deprecatedSyntaxNoPlugin;
-        public static String versionOrNewer;
-        
-        static
-        {
-            initializeMessages( VersionExpr.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.properties
deleted file mode 100644
index 978d2fb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionExpr.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-invalidVersionExpr = Version expression "{0}" is invalid.
-
-deprecatedSyntax = \
-The ">", ">=", "<", and "<=" notation in version expressions has been \
-deprecated. It used in plugin {0}. Note that the angle brackets are \
-represented via "&lt;" and "&gt;" in the plugin.xml files. The functionality \
-has been replaced with range notation. For instance "[X-Y)" means all \
-versions greater or equals to X and less than Y. Open ranges such as "(X" or \
-"Y]" are also allowed.
-
-deprecatedSyntaxNoPlugin = \
-The ">", ">=", "<", and "<=" notation in version expressions has been \
-deprecated. Note that the angle brackets are \
-represented via "&lt;" and "&gt;" in the plugin.xml files. The functionality \
-has been replaced with range notation. For instance "[X-Y)" means all \
-versions greater or equals to X and less than Y. Open ranges such as "(X" or \
-"Y]" are also allowed.
-
-versionOrNewer = {0} or newer
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java
deleted file mode 100644
index 6dfc68c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class Versionable
-{
-    private static final Comparator DEFAULT_VERSION_COMPARATOR
-        = new DefaultVersionComparator();
-
-    protected final IndexedSet versions = new IndexedSet();
-    private String versionComparatorClass;
-    private Comparator versionComparator;
-    
-    public abstract String getPluginId();
-    
-    public Set getVersions()
-    {
-        return this.versions.getUnmodifiable();
-    }
-    
-    public Set getVersions( final String expr )
-    
-        throws CoreException
-        
-    {
-        final VersionExpr prepared = new VersionExpr( this, expr, null );
-        final Set result = new HashSet();
-            
-        for( Iterator itr = this.versions.iterator(); itr.hasNext(); )
-        {
-            final IVersion ver = (IVersion) itr.next();
-            
-            if( prepared.evaluate( ver ) )
-            {
-                result.add( ver );
-            }
-        }
-        
-        return result;
-    }
-    
-    public IVersion getVersionInternal( final String version )
-    {
-        return (IVersion) this.versions.get( version );
-    }
-    
-    public boolean hasVersion( final String version )
-    {
-        return this.versions.containsKey( version );
-    }
-
-    public List getSortedVersions( final boolean ascending )
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        final ArrayList list = new ArrayList( this.versions );
-        final IVersionAdapter adapter = getVersionAdapter();
-              
-        Collections.sort( list, getVersionComparator( ascending, adapter ) );
-        
-        return list;
-    }
-    
-    public Comparator getVersionComparator()
-    
-        throws CoreException
-        
-    {
-        return getVersionComparator( true, null );
-    }
-    
-    protected Comparator getVersionComparator( final boolean ascending,
-                                               final IVersionAdapter adapter )
-    
-        throws CoreException
-        
-    {
-        Comparator comp;
-        
-        if( this.versionComparatorClass == null )
-        {
-            comp = DEFAULT_VERSION_COMPARATOR;
-        }
-        else
-        {
-            if( this.versionComparator == null )
-            {
-                final Bundle bundle = Platform.getBundle( getPluginId() );
-                
-                try
-                {
-                    final Class cl 
-                        = bundle.loadClass( this.versionComparatorClass );
-                    
-                    this.versionComparator = (Comparator) cl.newInstance();
-                }
-                catch( Exception e )
-                {
-                    final String msg
-                        = NLS.bind( Resources.failedToCreate, 
-                                    this.versionComparatorClass );
-                    
-                    final IStatus st 
-                        = FacetCorePlugin.createErrorStatus( msg, e );
-                    
-                    throw new CoreException( st );
-                }
-            }
-            
-            comp = this.versionComparator;
-        }
-        
-        if( adapter != null )
-        {
-            final Comparator base = comp;
-            
-            comp = new Comparator()
-            {
-                public int compare( final Object obj1, 
-                                    final Object obj2 ) 
-                {
-                    final String ver1 = adapter.adapt( obj1 );
-                    final String ver2 = adapter.adapt( obj2 );
-                    return base.compare( ver1, ver2 );
-                }
-            };
-        }
-        
-        if( ! ascending )
-        {
-            final Comparator base = comp;
-            
-            comp = new Comparator()
-            {
-                public int compare( final Object obj1,
-                                    final Object obj2 )
-                {
-                    return base.compare( obj1, obj2 ) * -1;
-                }
-            };
-        }
-        
-        return comp;
-    }
-    
-    public void setVersionComparator( final String clname )
-    {
-        this.versionComparatorClass = clname;
-    }
-    
-    public abstract String createVersionNotFoundErrMsg( String verstr );
-    
-    protected abstract IVersionAdapter getVersionAdapter();
-    
-    protected static interface IVersionAdapter
-    {
-        String adapt( Object obj );
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedToCreate;
-        
-        static
-        {
-            initializeMessages( Versionable.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties
deleted file mode 100644
index 94219a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties
+++ /dev/null
@@ -1 +0,0 @@
-failedToCreate = Failed to instantiate class {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
deleted file mode 100644
index e17f09d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Represents a configured instance of a runtime. A runtime instance is composed
- * of multiple runtime components.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntime
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the name of this runtime. The runtime name is unique within the
-     * workspace.
-     * 
-     * @return the name of this runtime
-     */
-    
-    String getName();
-    
-    /**
-     * Returns the runtime components that comprise this runtime. Note that the
-     * order is important since for some operations components are consoluted
-     * in order and the first one capable of performing the opeation wins.
-     *  
-     * @return the runtime components that comprise this runtime (element type: 
-     *   {@see IRuntimeComponent})
-     */
-    
-    List getRuntimeComponents();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on how the runtime was created and what
-     * component types/versions it's comprised of.
-     * 
-     * @return the properties associated with this runtime (key type: 
-     *   {@see String}, value type: {@see String})
-     */
-    
-    Map getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-    /**
-     * Determines whether this runtime supports the specified project facet.
-     * The runtime supports a project facet if any of it's components support
-     * the project facet. The support mappings are specified using the
-     * <code>org.eclipse.wst.common.project.facet.core.runtime</code> extension
-     * point.
-     * 
-     * @param fv the project facet version
-     * @return <code>true</code> if this runtime supports the specified facet,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean supports( IProjectFacetVersion fv );
-    
-    boolean supports( IProjectFacet f );
-    
-    /**
-     * Returns the facets (and the versions) that should be selected by default 
-     * when this runtime is selected. This information is drawn from what's
-     * specified through the <code>org.eclipse.wst.common.project.facet.core.defaultFacets</code>
-     * extension point. The returned list is filtered by removing facets that
-     * would conflict with the specified fixed facets. Note that the returned 
-     * set will always include the fixed facets. If the default version for any 
-     * fixed facet is not explicitly specified through the above extension 
-     * point, the latest version will be used.
-     * 
-     * @param fixed the fixed facets (element type: {@see IProjectFacet})
-     * @return the default facets (element type: {@see IProjectFacetVersion})
-     * @throws CoreException if failed for any reason
-     */
-    
-    Set getDefaultFacets( final Set fixed )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
deleted file mode 100644
index 051173e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * The interface implemented by extensions wishing to expose runtimes defined
- * through other means to the project facets framework.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeBridge
-{
-    /**
-     * Returns the set of names for runtimes that this bridge wants to export.
-     * The system will try to accomodate these name choices, but may have to
-     * disambiguate names due to collisions. However, even if the runtime name
-     * is changed, the name that will be passed into the {@see bridge(String)}
-     * call will be the original name provided by this method call. 
-     * 
-     * @return the set of names for runtimes that this bridge wants to export
-     *   (element type: {@see String})
-     * @throws CoreException if failed while bridging
-     */
-    
-    Set getExportedRuntimeNames()
-        
-        throws CoreException;
-    
-    /**
-     * Returns a stub that represents the bridged runtime. The system will
-     * wrap this stub and expose it to the clients through the {@see IRuntime}
-     * interface.
-     * 
-     * @param name the name of the bridged runtime (as returned by the
-     *   {@see getExportedRuntimeNames()}) method
-     * @return a stub that represents the bridged runtime
-     * @throws CoreException if failed while bridging
-     */
-    
-    IStub bridge( String name )
-    
-        throws CoreException;
-    
-    /**
-     * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@see IRuntime}. All relevant calls will be
-     * delegated to this interface.
-     * 
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-
-    public interface IStub
-    {
-        /**
-         * Returns the runtime components that comprise this runtime. Note that 
-         * the order is important since for some operations components are 
-         * consoluted in order and the first one capable of performing the o
-         * peation wins.
-         *  
-         * @return the runtime components that comprise this runtime (element 
-         *   type: {@see IRuntimeComponent})
-         */
-        
-        List getRuntimeComponents();
-        
-        /**
-         * Returns the properties associated with this runtime component. The
-         * contents will vary dependending on how the runtime was created and 
-         * what component types/versions it's comprised of.
-         * 
-         * @return the properties associated with this runtime (key type: 
-         *   {@see String}, value type: {@see String})
-         */
-        
-        Map getProperties();
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
deleted file mode 100644
index 85eb989..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Represents a configured instance of a runtime component type and version. A
- * runtime insance is composed of multiple runtime components.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponent
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type that this is an instance of.
-     * 
-     * @return the runtime component type that this is an instance of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the runtime component version that this is an instance of.
-     * 
-     * @return the runtime component version that this is an instance of
-     */
-    
-    IRuntimeComponentVersion getRuntimeComponentVersion();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on the component type/version, but 
-     * usually this will at least contain the path to the location on disk where 
-     * the runtime is installed.
-     * 
-     * @return the properties associated with this runtime component (key
-     *   type: {@see String}, value type: {@see String})
-     */
-    
-    Map getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
deleted file mode 100644
index 5c24ad9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-
-/**
- * Represents the type of a runtime component. A runtime instance is composed of
- * multiple runtime components, each of which has a type and a version.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentType
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type id.
-     * 
-     * @return the runtime component type id
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the plugin id of where this runtime component type is defined.
-     * 
-     * @return the plugin id of where this runtime component type is defined
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns all of the versions of this runtime component type.
-     * 
-     * @return all of the versions of this runtime component type (element
-     *   type: {@see IRuntimeComponentVersion})
-     */
-    
-    Set getVersions();
-    
-    Set getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified version of this runtime component type
-     * exists.
-     * 
-     * @param version the version string
-     * @return <code>true</code> if the specified version exists, 
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the {@see IRuntimeComponentVersion} object corresponding to the
-     * provided version string.
-     * 
-     * @param version the version string
-     * @return the {@see IRuntimeComponentVersion} object corresponding to the
-     *   provided version string
-     * @throws IllegalArgumentException if the version does not exist
-     */
-    
-    IRuntimeComponentVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of this runtime component as specified by the 
-     * version comparator.
-     * 
-     * @return returns the latest version of this runtime component
-     */
-
-    IRuntimeComponentVersion getLatestVersion()
-    
-        throws CoreException;
-    
-    /**
-     * Returns a sorted list containing all of the versions of this runtime
-     * component type. The sort order is determined by the version comparator. 
-     * 
-     * @param ascending whether versions should be sorted in ascending order
-     * @return a sorted list containing all of the versions of this runtime 
-     *   component type (element type: {@see IRuntimeComponentVersion})
-     * @throws VersionFormatException if failed while parsing a version string
-     */
-    
-    List getSortedVersions( boolean ascending )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the version comparator specified for this runtime component type.
-     * If no version comparator is specified, this method will return an 
-     * instance of the {@see DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this runtime component type
-     */
-    
-    Comparator getVersionComparator()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
deleted file mode 100644
index f0fced8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-/**
- * Represents a version of a runtime component. A runtime instance is composed 
- * of multiple runtime components, each of which has a type and a version.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentVersion
-{
-    /**
-     * Returns the runtime component type that this is a version of.
-     * 
-     * @return returns the runtime component type that this is a version of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
deleted file mode 100644
index 731d61d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeManagerImpl;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManager 
-{
-    private RuntimeManager() {}
-    
-    /**
-     * Returns all of the available runtime component types.
-     * 
-     * @return all of the available runtime component types (element type: 
-     *   {@link IRuntimeComponentType})
-     */
-    
-    public static Set getRuntimeComponentTypes()
-    {
-        return RuntimeManagerImpl.getRuntimeComponentTypes();
-    }
-    
-    /**
-     * Determines whether the specified runtime component type exists.
-     * 
-     * @param id the runtime component type id
-     * @return <code>true</code> if the specified runtime component type exists,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return RuntimeManagerImpl.isRuntimeComponentTypeDefined( id );
-    }
-    
-    /**
-     * Returns the {@see IRuntimeComponentType} object corresponding to the
-     * specified runtime component type id.
-     * 
-     * @param id the runtime componenet type id
-     * @return the {@see IRuntimeComponentType} object corresponding to the
-     *   specified runtime componenet type id
-     * @throws IllegalArgumentException if the runtime component type id is not
-     *   recognized
-     */
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        return RuntimeManagerImpl.getRuntimeComponentType( id );
-    }
-    
-    /**
-     * Returns all of the defined runtimes.
-     * 
-     * @return all of the defined runtimes (element type: {@link IRuntime})
-     */
-    
-    public static Set getRuntimes()
-    {
-        return RuntimeManagerImpl.getRuntimes();
-    }
-    
-    /**
-     * Returns the runtimes that support all of the specified facets.
-     * 
-     * @param facets the facets that need to be supported (element type: 
-     *   {@link IProjectFacetVersion})
-     * @return the runtimes that support all of the specified facets (element 
-     *   type: {@link IRuntime})
-     */
-    
-    public static Set getRuntimes( final Set facets )
-    {
-        return RuntimeManagerImpl.getRuntimes( facets );
-    }
-    
-    
-    /**
-     * Determines whether the specified runtime has been defined.
-     * 
-     * @param name the runtime name
-     * @return <code>true</code> if the specified runtime is defined, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        return RuntimeManagerImpl.isRuntimeDefined( name );
-    }
-    
-    /**
-     * Returns the runtime corresponding to the specified name.
-     * 
-     * @param name the runtime name
-     * @return the runtime corresponding to the specified name
-     * @throws IllegalArgumentException if the runtime name is not recognized
-     */
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        return RuntimeManagerImpl.getRuntime( name );
-    }
-    
-    /**
-     * Defines a new runtime.
-     * 
-     * @param name the runtime name
-     * @param components the list of runtime componenets (element type: 
-     *   {@see IRuntimeComponent})
-     * @param properties the runtime properties (key type: {@see String}, value
-     *   type: {@see String})
-     * @return the new runtime
-     */
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List components,
-                                          final Map properties )
-    {
-        return RuntimeManagerImpl.defineRuntime( name, components, properties );
-    }
-    
-    /**
-     * Deletes the runtime from the registry.
-     * 
-     * @param runtime the runtime to delete
-     */
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        RuntimeManagerImpl.deleteRuntime( runtime );
-    }
-    
-    /**
-     * Creates a new runtime componenet. This method is intended to be used in
-     * conjunction with the {@see defineRuntime(String,List,Map)} method.
-     * 
-     * @param rcv the runtime component version
-     * @param properties the runtime component properties (key type:
-     *   {@see String}, value type: {@see String})
-     * @return the new runtime component
-     */
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map properties )
-    {
-        return RuntimeManagerImpl.createRuntimeComponent( rcv, properties );
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.addRuntimeListener( listener );
-    }
-
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.removeRuntimeListener( listener );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
deleted file mode 100644
index e6b0ad6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractRuntime
-
-    implements IRuntime
-    
-{
-    private String name;
-    
-    /**
-     * This class should not be subclassed outside this package.
-     */
-    
-    AbstractRuntime() {}
-    
-    public final String getName()
-    {
-        return this.name;
-    }
-    
-    final void setName( final String name )
-    {
-        this.name = name;
-    }
-
-    public final String getProperty( final String key )
-    {
-        return (String) getProperties().get( key );
-    }
-    
-    public final Object getAdapter( final Class adapter )
-    {
-        final String t = adapter.getName();
-        Object res = Platform.getAdapterManager().loadAdapter( this, t );
-        
-        if( res == null )
-        {
-            for( Iterator itr = getRuntimeComponents().iterator(); 
-                 itr.hasNext(); )
-            {
-                res = ( (IRuntimeComponent) itr.next() ).getAdapter( adapter );
-                
-                if( res != null )
-                {
-                    return res;
-                }
-            }
-        }
-        
-        return res;
-    }
-    
-    public boolean supports( final IProjectFacet f )
-    {
-        for( Iterator itr = f.getVersions().iterator(); itr.hasNext(); )
-        {
-            if( supports( (IProjectFacetVersion) itr.next() ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public Set getDefaultFacets( final Set fixed )
-    
-        throws CoreException
-        
-    {
-        // 1. Get the complete list.
-        
-        final Map facets = new HashMap();
-        
-        for( Iterator itr1 = getRuntimeComponents().iterator(); itr1.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr1.next();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            for( Iterator itr2 = RuntimeManagerImpl.getDefaultFacets( rcv ).iterator();
-                 itr2.hasNext(); )
-            {
-                final IProjectFacetVersion fv = (IProjectFacetVersion) itr2.next();
-                
-                if( ! facets.containsKey( fv.getProjectFacet() ) )
-                {
-                    facets.put( fv.getProjectFacet(), fv );
-                }
-            }
-        }
-        
-        // 2. Remove the facets that conflict with fixed facets.
-        
-        for( Iterator itr = facets.values().iterator(); itr.hasNext(); )
-        {
-            if( ! ( (IProjectFacetVersion) itr.next() ).isValidFor( fixed ) )
-            {
-                itr.remove();
-            }
-        }
-        
-        // 3. Make sure that the result includes all of the fixed facets.
-        
-        Map toadd = null;
-        
-        for( Iterator itr = fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            if( ! facets.containsKey( f ) )
-            {
-                if( toadd == null )
-                {
-                    toadd = new HashMap();
-                }
-                
-                toadd.put( f, f.getLatestSupportedVersion( this ) );
-            }
-        }
-        
-        if( toadd != null )
-        {
-            facets.putAll( toadd );
-        }
-        
-        // 4. Return the result.
-        
-        return new HashSet( facets.values() );
-    }
-
-    public final boolean equals( final Object obj )
-    {
-        if( obj instanceof IRuntime )
-        {
-            final IRuntime r = (IRuntime) obj;
-            
-            return getName().equals( r.getName() ) && 
-                   getRuntimeComponents().equals( r.getRuntimeComponents() ) &&
-                   getProperties().equals( r.getProperties() );
-        }
-        
-        return false;
-    }
-    
-    public final int hashCode()
-    {
-        return this.name.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.name;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java
deleted file mode 100644
index 5f23475..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class BridgedRuntime
-
-    extends AbstractRuntime
-    
-{
-    private final String bridgeId;
-    private final String nativeRuntimeId;
-    private final IRuntimeBridge.IStub stub;
-    private Set supported;
-    private List composition;
-    
-    BridgedRuntime( final String bridgeId,
-                    final String nativeRuntimeId,
-                    final IRuntimeBridge.IStub stub )
-    {
-        this.bridgeId = bridgeId;
-        this.nativeRuntimeId = nativeRuntimeId;
-        this.stub = stub;
-    }
-    
-    String getBridgeId()
-    {
-        return this.bridgeId;
-    }
-    
-    String getNativeRuntimeId()
-    {
-        return this.nativeRuntimeId;
-    }
-    
-    public List getRuntimeComponents()
-    {
-        return Collections.unmodifiableList( this.stub.getRuntimeComponents() );
-    }
-    
-    public Map getProperties()
-    {
-        return Collections.unmodifiableMap( this.stub.getProperties() );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( fv.getPluginId() == null )
-        {
-            return true;
-        }
-        
-        final List comp = this.stub.getRuntimeComponents();
-        
-        if( this.supported == null || ! this.composition.equals( comp ) )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( comp );
-            this.composition = comp;
-        }
-        
-        return this.supported.contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
deleted file mode 100644
index 952362b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Runtime
-
-    extends AbstractRuntime
-    
-{
-    private final List components = new ArrayList();
-    
-    private final List componentsReadOnly 
-        = Collections.unmodifiableList( this.components );
-    
-    private final Map properties = new HashMap();
-    
-    private final Map propertiesReadOnly
-        = Collections.unmodifiableMap( this.properties );
-    
-    private Set supported = null;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-    
-    Runtime() {}
-    
-    public List getRuntimeComponents()
-    {
-        return this.componentsReadOnly;
-    }
-    
-    void addRuntimeComponent( final IRuntimeComponent component )
-    {
-        this.components.add( component );
-    }
-
-    public Map getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( fv.getPluginId() == null )
-        {
-            return true;
-        }
-        
-        if( this.supported == null )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( this.components );
-        }
-            
-        return this.supported.contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
deleted file mode 100644
index 07c8bbb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponent
-
-    implements IRuntimeComponent
-    
-{
-    private RuntimeComponentVersion rcv;
-    
-    private final Map properties = new HashMap();
-    
-    private final Map propertiesReadOnly 
-        = Collections.unmodifiableMap( this.properties );
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-
-    RuntimeComponent() {}
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.rcv.getRuntimeComponentType();
-    }
-
-    public IRuntimeComponentVersion getRuntimeComponentVersion()
-    {
-        return this.rcv;
-    }
-    
-    void setRuntimeComponentVersion( final IRuntimeComponentVersion rcv )
-    {
-        this.rcv = (RuntimeComponentVersion) rcv;
-    }
-
-    public Map getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    public String getProperty( final String key )
-    {
-        return (String) this.properties.get( key );
-    }
-    
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public Object getAdapter( final Class type )
-    {
-        final IAdapterManager manager = Platform.getAdapterManager();
-        Object res = manager.loadAdapter( this, type.getName() );
-        
-        if( res == null )
-        {
-            IAdapterFactory factory = null;
-            
-            try
-            {
-                factory = this.rcv.getAdapterFactory( type );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-            
-            if( factory != null )
-            {
-                res = factory.getAdapter( this, type );
-            }
-        }
-        
-        return res;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( obj instanceof RuntimeComponent )
-        {
-            final RuntimeComponent rc = (RuntimeComponent) obj;
-            
-            return this.rcv == rc.rcv && 
-                   this.properties.equals( rc.properties );
-        }
-        
-        return false;
-    }
-    
-    public int hashCode()
-    {
-        return this.rcv.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.rcv.toString();
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java
deleted file mode 100644
index b1d4545..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.internal.Versionable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentType
-
-    extends Versionable
-    implements IRuntimeComponentType
-    
-{
-    private static final IVersionAdapter VERSION_ADAPTER = new IVersionAdapter()
-    {
-        public String adapt( final Object obj )
-        {
-            return ( (IRuntimeComponentVersion) obj ).getVersionString();
-        }
-    };
-
-    private String id;
-    private String plugin;
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    void addVersion( final IRuntimeComponentVersion ver )
-    {
-        this.versions.add( ver.getVersionString(), ver );
-    }
-
-    public IRuntimeComponentVersion getVersion( final String version )
-    {
-        final IRuntimeComponentVersion rcv
-            = (IRuntimeComponentVersion) this.versions.get( version );
-        
-        if( rcv == null )
-        {
-            final String msg
-                = NLS.bind( RuntimeManagerImpl.Resources.runtimeComponentVersionNotDefined,
-                            this.id, version );
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return rcv;
-    }
-
-    public IRuntimeComponentVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        if( this.versions.size() > 0 )
-        {
-            final Comparator comp = getVersionComparator( true, VERSION_ADAPTER );
-            final Object max = Collections.max( this.versions, comp );
-            
-            return (IRuntimeComponentVersion) max;
-        }
-        else
-        {
-            return null;
-        }
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-
-    protected IVersionAdapter getVersionAdapter()
-    {
-        return VERSION_ADAPTER;
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( RuntimeManagerImpl.Resources.runtimeComponentVersionNotDefined,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
deleted file mode 100644
index a35c333..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.Versionable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentVersion
-
-    implements IRuntimeComponentVersion, IVersion
-    
-{
-    private String plugin;
-    private IRuntimeComponentType type;
-    private String version;
-    private final HashMap adapterFactories = new HashMap();
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.type;
-    }
-    
-    void setRuntimeComponentType( final IRuntimeComponentType type )
-    {
-        this.type = type;
-    }
-
-    public String getVersionString()
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable getVersionable()
-    {
-        return (Versionable) this.type;
-    }
-
-    public IAdapterFactory getAdapterFactory( final Class type )
-    
-        throws CoreException
-        
-    {
-        synchronized( this.adapterFactories )
-        {
-            Object factory = this.adapterFactories.get( type.getName() );
-            
-            if( factory == null )
-            {
-                return null;
-            }
-            
-            if( factory instanceof PluginAndClass )
-            {
-                final PluginAndClass ref = (PluginAndClass) factory;
-                
-                factory = FacetCorePlugin.instantiate( ref.plugin, ref.clname,
-                                                       IAdapterFactory.class );
-
-                this.adapterFactories.put( type.getName(), factory );
-            }
-            
-            return (IAdapterFactory) factory;
-        }
-    }
-    
-    public String toString()
-    {
-        return this.type.getId() + " " + this.version; //$NON-NLS-1$
-    }
-
-    void addAdapterFactory( final String type,
-                            final String plugin,
-                            final String factory )
-    {
-        synchronized( this.adapterFactories )
-        {
-            this.adapterFactories.put( type, new PluginAndClass( plugin, factory ) );
-        }
-    }
-    
-    private static final class PluginAndClass
-    {
-        public final String plugin;
-        public final String clname;
-        
-        public PluginAndClass( final String plugin,
-                               final String clname )
-        {
-            this.plugin = plugin;
-            this.clname = clname;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
deleted file mode 100644
index 0f2c3c9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
+++ /dev/null
@@ -1,1132 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetsManagerImpl;
-import org.eclipse.wst.common.project.facet.core.internal.VersionExpr;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManagerImpl
-{
-    private static final String EXTENSION_ID = "runtimes"; //$NON-NLS-1$
-    private static final String BRIDGES_EXTENSION_ID = "runtimeBridges"; //$NON-NLS-1$
-    private static final String DEFAULT_FACETS_EXTENSION_ID = "defaultFacets"; //$NON-NLS-1$
-
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_TYPE = "type"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String EL_ADAPTER = "adapter"; //$NON-NLS-1$
-    private static final String EL_BRIDGE = "bridge"; //$NON-NLS-1$
-    private static final String EL_DEFAULT_FACETS = "default-facets"; //$NON-NLS-1$
-    private static final String EL_FACET = "facet"; //$NON-NLS-1$
-    private static final String EL_FACTORY = "factory"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT = "runtime-component"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT_TYPE = "runtime-component-type"; //$NON-NLS-1$
-    private static final String EL_RUNTIME_COMPONENT_VERSION = "runtime-component-version"; //$NON-NLS-1$
-    private static final String EL_SUPPORTED = "supported"; //$NON-NLS-1$
-    private static final String EL_VERSION_COMPARATOR = "version-comparator"; //$NON-NLS-1$
-
-    private static final String ANY = "any"; //$NON-NLS-1$
-    
-    private static final IndexedSet runtimeComponentTypes;
-    private static final IndexedSet runtimes;
-    private static final List mappings;
-    private static final Map bridges;
-    private static final List defaultFacets;
-    private static final Set listeners;
-    
-    static
-    {
-        runtimeComponentTypes = new IndexedSet();
-        runtimes = new IndexedSet();
-        mappings = new ArrayList();
-        bridges = new HashMap();
-        defaultFacets = new ArrayList();
-        listeners = new HashSet();
-        
-        readMetadata();
-        readBridgesExtensions();
-        readDefaultFacetsExtensions();
-    }
-    
-    private RuntimeManagerImpl() {}
-    
-    public static Set getRuntimeComponentTypes()
-    {
-        return runtimeComponentTypes.getUnmodifiable();
-    }
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return runtimeComponentTypes.containsKey( id );
-    }
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        final IRuntimeComponentType rc 
-            = (IRuntimeComponentType) runtimeComponentTypes.get( id );
-        
-        if( rc == null )
-        {
-            final String msg 
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, id );
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return rc;
-    }
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map properties )
-    {
-        final RuntimeComponent rc = new RuntimeComponent();
-        
-        rc.setRuntimeComponentVersion( rcv );
-        
-        if( properties != null )
-        {
-            for( Iterator itr = properties.entrySet().iterator(); 
-                 itr.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr.next();
-                
-                rc.setProperty( (String) entry.getKey(), 
-                                (String) entry.getValue() );
-            }
-        }
-        
-        return rc;
-    }
-    
-    public static Set getRuntimes()
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return (Set) runtimes.clone();
-        }
-    }
-    
-    public static Set getRuntimes( final Set facets )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final HashSet result = new HashSet();
-            
-            for( Iterator itr1 = runtimes.iterator(); itr1.hasNext(); )
-            {
-                final IRuntime r = (IRuntime) itr1.next();
-                boolean supports = true;
-                
-                for( Iterator itr2 = facets.iterator(); itr2.hasNext(); )
-                {
-                    if( ! r.supports( (IProjectFacetVersion) itr2.next() ) )
-                    {
-                        supports = false;
-                        break;
-                    }
-                }
-                
-                if( supports )
-                {
-                    result.add( r );
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return runtimes.containsKey( name );
-        }
-    }
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final IRuntime runtime = (IRuntime) runtimes.get( name );
-            
-            if( runtime == null )
-            {
-                final String msg = NLS.bind( Resources.runtimeNotDefined, name );
-                throw new IllegalArgumentException( msg );
-            }
-            
-            return runtime;
-        }
-    }
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List components,
-                                          final Map properties )
-    {
-        synchronized( runtimes )
-        {
-            final Runtime r = new Runtime();
-            
-            r.setName( name );
-            
-            for( Iterator itr = components.iterator(); itr.hasNext(); )
-            {
-                r.addRuntimeComponent( (IRuntimeComponent) itr.next() );
-            }
-            
-            if( properties != null )
-            {
-                for( Iterator itr = properties.entrySet().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final Map.Entry entry = (Map.Entry) itr.next();
-                    
-                    r.setProperty( (String) entry.getKey(), 
-                                   (String) entry.getValue() );
-                }
-            }
-            
-            runtimes.add( r.getName(), r );
-            
-            notifyRuntimeListeners();
-            
-            return r;
-        }
-    }
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        synchronized( runtimes )
-        {
-            if( runtimes.delete( runtime.getName() ) )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.add( listener );
-        }
-    }
-    
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    private static void notifyRuntimeListeners()
-    {
-        for( Iterator itr = listeners.iterator(); itr.hasNext(); )
-        {
-            try
-            {
-                ( (IListener) itr.next() ).handle();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    static Set getSupportedFacets( final List composition )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr1 = composition.iterator(); itr1.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr1.next();
-            
-            for( Iterator itr2 = mappings.iterator(); itr2.hasNext(); )
-            {
-                final Mapping m = (Mapping) itr2.next();
-                
-                try
-                {
-                    result.addAll( m.getSupportedFacets( rc ) );                    
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e.getStatus() );
-                }
-                catch( VersionFormatException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    static Set getDefaultFacets( final IRuntimeComponentVersion rcv )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr = defaultFacets.iterator(); itr.hasNext(); )
-        {
-            final DefaultFacetsEntry dfe = (DefaultFacetsEntry) itr.next();
-            
-            try
-            {
-                if( dfe.match( rcv ) )
-                {
-                    result.addAll( dfe.facets );
-                }
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-        
-        return result;
-    }
-    
-    private static void bridge()
-    {
-        boolean modified = false;
-        
-        for( Iterator itr1 = bridges.entrySet().iterator(); itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final String brid = (String) entry.getKey();
-            final IRuntimeBridge br = (IRuntimeBridge) entry.getValue();
-            
-            // Find the runtimes belonging to this bridge that are currently
-            // in the system.
-            
-            final HashMap existing = new HashMap();
-            
-            for( Iterator itr2 = runtimes.iterator(); itr2.hasNext(); )
-            {
-                final Object obj = itr2.next();
-                
-                if( obj instanceof BridgedRuntime )
-                {
-                    final BridgedRuntime bridged = (BridgedRuntime) obj;
-                    
-                    if( bridged.getBridgeId().equals( brid ) )
-                    {
-                        existing.put( bridged.getNativeRuntimeId(), bridged );
-                    }
-                }
-            }
-            
-            // Get the new set of exported runtimes.
-            
-            final Set exported;
-            
-            try
-            {
-                exported = br.getExportedRuntimeNames();
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-                
-                for( Iterator itr2 = existing.values().iterator(); 
-                     itr2.hasNext(); )
-                {
-                    runtimes.remove( ( (IRuntime) itr2 ).getName() );
-                    modified = true;
-                }
-                
-                continue;
-            }
-            
-            // Remove the absolete entries.
-            
-            for( Iterator itr2 = existing.values().iterator(); itr2.hasNext(); )
-            {
-                final BridgedRuntime r = (BridgedRuntime) itr2.next();
-                
-                if( ! exported.contains( r.getNativeRuntimeId() ) )
-                {
-                    runtimes.delete( r.getName() );
-                    modified = true;
-                }
-            }
-            
-            // Create the new entries.
-            
-            for( Iterator itr2 = exported.iterator(); itr2.hasNext(); )
-            {
-                final String id = (String) itr2.next();
-                
-                if( ! existing.containsKey( id ) )
-                {
-                    try
-                    {
-                        final IRuntimeBridge.IStub stub = br.bridge( id );
-                        
-                        final BridgedRuntime r 
-                            = new BridgedRuntime( brid, id, stub );
-                        
-                        r.setName( createUniqueRuntimeName( id ) );
-                        
-                        runtimes.add( r.getName(), r );
-                        modified = true;
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-            
-            if( modified )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    private static String createUniqueRuntimeName( final String suggestion )
-    {
-        String name = suggestion;
-        
-        for( int i = 1; runtimes.contains( name ); i++ )
-        {
-            name = suggestion + " (" + i + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-        
-        return name;
-    }
-    
-    private static void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_TYPE ) )
-            {
-                readRuntimeComponentType( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_VERSION ) )
-            {
-                readRuntimeComponentVersion( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_ADAPTER ) )
-            {
-                readAdapter( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_SUPPORTED ) )
-            {
-                readMapping( config );
-            }
-        }
-    }
-    
-    private static void readRuntimeComponentType( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return;
-        }
-        
-        final RuntimeComponentType rct = new RuntimeComponentType();
-        rct.setId( id );
-        rct.setPluginId( config.getContributor().getName() );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_VERSION_COMPARATOR ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                
-                rct.setVersionComparator( clname );
-            }
-        }
-        
-        runtimeComponentTypes.add( id, rct );
-    }
-    
-    private static void readRuntimeComponentVersion( final IConfigurationElement config )
-    {
-        final String type = config.getAttribute( ATTR_TYPE );
-
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        final String ver = config.getAttribute( ATTR_VERSION );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, ATTR_VERSION );
-            return;
-        }
-        
-        final RuntimeComponentType rct 
-            = (RuntimeComponentType) runtimeComponentTypes.get( type );
-        
-        if( rct == null )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, type ) +
-                  NLS.bind( Resources.usedInPlugin, config.getContributor().getName() );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final RuntimeComponentVersion rcv = new RuntimeComponentVersion();
-        
-        rcv.setRuntimeComponentType( rct );
-        rcv.setVersionString( ver );
-        rcv.setPluginId( config.getContributor().getName() );
-        
-        rct.addVersion( rcv );
-    }
-    
-    private static void readAdapter( final IConfigurationElement config )
-    {
-        IRuntimeComponentType rctype = null;
-        IRuntimeComponentVersion rcversion = null;
-        String factory = null;
-        final List types = new ArrayList();
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                final String id = child.getAttribute( ATTR_ID );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( child, ATTR_ID );
-                    return;
-                }
-                
-                if( ! isRuntimeComponentTypeDefined( id ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.runtimeComponentTypeNotDefined, id ) +
-                          NLS.bind( Resources.usedInPlugin, 
-                                    child.getContributor().getName() );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                rctype = getRuntimeComponentType( id );
-                
-                final String version = child.getAttribute( ATTR_VERSION );
-                
-                if( version != null )
-                {
-                    if( ! rctype.hasVersion( version ) )
-                    {
-                        String msg
-                            = NLS.bind( Resources.runtimeComponentVersionNotDefined,
-                                        id, version );
-                        
-                        msg += NLS.bind( Resources.usedInPlugin, 
-                                         config.getContributor().getName() );
-                        
-                        FacetCorePlugin.log( msg );
-                        
-                        return;
-                    }
-                    
-                    rcversion = rctype.getVersion( version );
-                }
-            }
-            else if( childName.equals( EL_FACTORY ) )
-            {
-                factory = child.getAttribute( ATTR_CLASS );
-
-                if( factory == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-            }
-            else if( childName.equals( ATTR_TYPE ) )
-            {
-                final String type = child.getAttribute( ATTR_CLASS );
-
-                if( type == null )
-                {
-                    reportMissingAttribute( child, ATTR_CLASS );
-                    return;
-                }
-                else
-                {
-                    types.add( type );
-                }
-            }
-        }
-        
-        final Set versions;
-        
-        if( rcversion == null )
-        {
-            versions = rctype.getVersions();
-        }
-        else
-        {
-            versions = Collections.singleton( rcversion );
-        }
-        
-        final String plugin = config.getContributor().getName();
-        
-        for( Iterator itr1 = versions.iterator(); itr1.hasNext(); )
-        {
-            final RuntimeComponentVersion rcv
-                = (RuntimeComponentVersion) itr1.next();
-            
-            for( Iterator itr2 = types.iterator(); itr2.hasNext(); )
-            {
-                rcv.addAdapterFactory( (String) itr2.next(), plugin, factory );
-            }
-        }
-    }
-    
-    private static void readMapping( final IConfigurationElement config )
-    {
-        final Mapping m = new Mapping();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_FACET ) )
-            {
-                final IProjectFacet f = readProjectFacetRef( child );
-                
-                if( f == null )
-                {
-                    return;
-                }
-                
-                final String v = child.getAttribute( ATTR_VERSION );
-                VersionExpr expr = null;
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        expr = new VersionExpr( f, v, config.getContributor().getName() );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e.getStatus() );
-                        return;
-                    }
-                }
-                
-                m.facets.put( f, expr );
-            }
-            else if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                if( child.getAttribute( ANY ) == null )
-                {
-                    final IRuntimeComponentType rct 
-                        = readRuntimeComponentTypeRef( child );
-                    
-                    if( rct == null )
-                    {
-                        return;
-                    }
-                    
-                    final String v = child.getAttribute( ATTR_VERSION );
-                    VersionExpr expr = null;
-                    
-                    if( v != null )
-                    {
-                        try
-                        {
-                            final String pluginId 
-                                = config.getContributor().getName();
-                            
-                            expr = new VersionExpr( rct, v, pluginId );
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e.getStatus() );
-                            return;
-                        }
-                    }
-                    
-                    m.runtimeComponents.put( rct, expr );
-                }
-            }
-        }
-        
-        mappings.add( m );
-    }
-    
-    private static void readBridgesExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          BRIDGES_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_BRIDGE ) )
-            {
-                final String id = config.getAttribute( ATTR_ID );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( config, ATTR_ID );
-                    return;
-                }
-                
-                final String clname = config.getAttribute( ATTR_CLASS );
-
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    return;
-                }
-                
-                final String pluginId = config.getContributor().getName();
-                
-                final Object br;
-                
-                try
-                {
-                    br = FacetCorePlugin.instantiate( pluginId, clname,
-                                                      IRuntimeBridge.class );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    continue;
-                }
-                
-                bridges.put( id, br );
-            }
-        }
-    }
-
-    private static void readDefaultFacetsExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          DEFAULT_FACETS_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( EL_DEFAULT_FACETS ) )
-            {
-                readDefaultFacets( config );
-            }
-        }
-    }
-    
-    private static void readDefaultFacets( final IConfigurationElement config )
-    {
-        final DefaultFacetsEntry dfe = new DefaultFacetsEntry();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_RUNTIME_COMPONENT ) )
-            {
-                dfe.rct = readRuntimeComponentTypeRef( child );
-                
-                if( dfe.rct == null )
-                {
-                    return;
-                }
-                
-                final String v = child.getAttribute( ATTR_VERSION );
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        final String pluginId 
-                            = config.getContributor().getName();
-                        
-                        dfe.rcvexpr = new VersionExpr( dfe.rct, v, pluginId );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e.getStatus() );
-                        return;
-                    }
-                }
-            }
-            else if( childName.equals( EL_FACET ) )
-            {
-                final IProjectFacet f = readProjectFacetRef( child );
-                
-                if( f == null )
-                {
-                    return;
-                }
-                
-                final String ver = child.getAttribute( ATTR_VERSION );
-                
-                if( ver == null )
-                {
-                    reportMissingAttribute( child, ATTR_VERSION );
-                    return;
-                }
-                
-                if( ! f.hasVersion( ver ) )
-                {
-                    String msg
-                        = NLS.bind( ProjectFacetsManagerImpl.Resources.facetVersionNotDefined,
-                                    f.getId(), ver );
-                    
-                    msg += NLS.bind( Resources.usedInPlugin, 
-                                     config.getContributor().getName() );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                dfe.facets.add( f.getVersion( ver ) );
-            }
-        }
-        
-        if( dfe.rct == null )
-        {
-            return;
-        }
-        
-        defaultFacets.add( dfe );
-    }
-    
-    private static IRuntimeComponentType readRuntimeComponentTypeRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-        
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! isRuntimeComponentTypeDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, id ) +
-                  NLS.bind( Resources.usedInPlugin, 
-                            config.getContributor().getName() );
-            
-            FacetCorePlugin.log( msg );
-            
-            return null;
-        }
-        
-        return getRuntimeComponentType( id );
-    }
-    
-    private static IProjectFacet readProjectFacetRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            ProjectFacetsManagerImpl.reportMissingFacet( id, config.getContributor().getName() );
-            return null;
-        }
-        
-        return ProjectFacetsManager.getProjectFacet( id );
-    }
-    
-    private static void reportMissingAttribute( final IConfigurationElement el,
-                                                final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getContributor().getName(), el.getName(), attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-    
-    private static final class Mapping
-    {
-        // IProjectFacet -> VersionMatchExpr
-        public final Map facets = new HashMap();
-        
-        // IRuntimeComponentType -> VersionExpr
-        public final Map runtimeComponents = new HashMap();
-        
-        private Set getSupportedFacets( final IRuntimeComponent rc )
-        
-            throws CoreException
-            
-        {
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            if( this.runtimeComponents.containsKey( rct ) )
-            {
-                final VersionExpr expr 
-                    = (VersionExpr) this.runtimeComponents.get( rct );
-                
-                if( expr != null && ! expr.evaluate( (IVersion) rcv ) )
-                {
-                    return Collections.EMPTY_SET;
-                }
-            }
-            else if( ! this.runtimeComponents.isEmpty() )
-            {
-                return Collections.EMPTY_SET;
-            }
-            
-            final Set result = new HashSet();
-            
-            for( Iterator itr1 = this.facets.entrySet().iterator(); 
-                 itr1.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr1.next();
-                final IProjectFacet f = (IProjectFacet) entry.getKey();
-                final VersionExpr expr = (VersionExpr) entry.getValue();
-                
-                for( Iterator itr2 = f.getVersions().iterator(); 
-                     itr2.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr2.next();
-                    
-                    if( expr == null || expr.evaluate( (IVersion) fv ) )
-                    {
-                        result.add( fv );
-                    }
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    private static final class DefaultFacetsEntry
-    {
-        public IRuntimeComponentType rct;
-        public VersionExpr rcvexpr;
-        public final Set facets = new HashSet();
-        
-        public boolean match( final IRuntimeComponentVersion rcv )
-        
-            throws CoreException
-            
-        {
-            if( rcv.getRuntimeComponentType() != this.rct )
-            {
-                return false;
-            }
-            else
-            {
-                return this.rcvexpr.evaluate( (IVersion) rcv );
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String runtimeComponentTypeNotDefined;
-        public static String runtimeComponentVersionNotDefined;
-        public static String runtimeNotDefined;
-        public static String usedInPlugin;
-        
-        static
-        {
-            initializeMessages( RuntimeManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
deleted file mode 100644
index 23373d3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-runtimeComponentTypeNotDefined = Runtime component type {0} has not been defined.
-runtimeComponentVersionNotDefined = Version {1} of runtime component type {0} has not been defined.
-runtimeNotDefined = Runtime {0} has not been defined.
-usedInPlugin = \ It is used in plugin {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.java
deleted file mode 100644
index c5a07bc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/UnknownRuntime.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Used to represent a runtime that's referenced by a project, but is not
- * defined in the workspace.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class UnknownRuntime
-
-    extends AbstractRuntime
-    
-{
-    public UnknownRuntime( final String name )
-    {
-        setName( name );
-    }
-    
-    public Map getProperties()
-    {
-        return Collections.EMPTY_MAP;
-    }
-
-    public List getRuntimeComponents()
-    {
-        return Collections.EMPTY_LIST;
-    }
-
-    public boolean supports( final IProjectFacetVersion fv )
-    {
-        return true;
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/.classpath b/plugins/org.eclipse.wst.common.project.facet.ui/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/.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.project.facet.ui/.cvsignore b/plugins/org.eclipse.wst.common.project.facet.ui/.cvsignore
deleted file mode 100644
index 0d662e0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-build.xml
-facet-ui.jar
-temp.folder
-@dot
-src.zip
-javaCompiler...args
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/.project b/plugins/org.eclipse.wst.common.project.facet.ui/.project
deleted file mode 100644
index df18711..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.ui</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.project.facet.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.project.facet.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b3ffc51..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Thu Mar 02 08:42:08 PST 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=error
-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=error
-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.project.facet.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 3c2c2b3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.ui; singleton:=true
-Bundle-Version: 1.1.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.wst.common.project.facet.ui.internal.FacetUiPlugin
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.project.facet.ui,
- org.eclipse.wst.common.project.facet.ui.internal;x-internal:=true
-Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0)",
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.100,1.2.0)",
- org.eclipse.draw2d;bundle-version="[3.2.0,4.0)",
- org.eclipse.gef;bundle-version="[3.2.0,4.0)",
- org.eclipse.help;bundle-version="[3.2.0,4.0)"
-Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/about.html b/plugins/org.eclipse.wst.common.project.facet.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/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.project.facet.ui/build.properties b/plugins/org.eclipse.wst.common.project.facet.ui/build.properties
deleted file mode 100644
index b5e9e08..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               plugin.properties,\
-               images/,\
-               schemas/,\
-               META-INF/,\
-               about.html
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/error.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/error.gif
deleted file mode 100644
index 0bc6068..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/error.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/facets-page-wizban.png b/plugins/org.eclipse.wst.common.project.facet.ui/images/facets-page-wizban.png
deleted file mode 100644
index b91c116..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/facets-page-wizban.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/lock.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/lock.gif
deleted file mode 100644
index be6a9ad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/lock.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/primary-runtime-overlay.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/primary-runtime-overlay.gif
deleted file mode 100644
index 7ec574b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/primary-runtime-overlay.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/unknown.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/unknown.gif
deleted file mode 100644
index 7ccc6a7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/unknown.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/images/warning.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/warning.gif
deleted file mode 100644
index 2b2e50f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/warning.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.ui/plugin.properties
deleted file mode 100644
index 3a1ca55..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-pluginName = Project Facet UI
-providerName = Eclipse.org
-project.facets = Project Facets
-runtimesPropertyPageLabel = Targeted Runtimes
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.ui/plugin.xml
deleted file mode 100644
index cb898b8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/plugin.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension-point 
-    id="wizard"
-    name="Project Facet Wizard Pages Extension Point (Deprecated)"
-    schema="schemas/wizard-pages-old.exsd"/>
-
-  <extension-point 
-    id="wizardPages"
-    name="Project Facet Wizard Pages Extension Point"
-    schema="schemas/wizard-pages.exsd"/>
-
-  <extension-point 
-    id="images"
-    name="Project Facet Images Extension Point"
-    schema="schemas/images.exsd"/>
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.ui.internal.DecorationsProvider$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.IProjectFacet">
-      <adapter type="org.eclipse.wst.common.project.facet.ui.IDecorationsProvider"/>
-    </factory>
-  </extension>
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.ui.internal.DecorationsProvider$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.ICategory">
-      <adapter type="org.eclipse.wst.common.project.facet.ui.IDecorationsProvider"/>
-    </factory>
-  </extension>
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.ui.internal.DecorationsProvider$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType">
-      <adapter type="org.eclipse.wst.common.project.facet.ui.IDecorationsProvider"/>
-    </factory>
-  </extension>
-  
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.wst.common.project.facet.ui.internal.FacetedProjectActionFilter$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.IFacetedProject">
-      <adapter type="org.eclipse.ui.IActionFilter"/>
-    </factory>
-  </extension>
-    
-  <extension point="org.eclipse.ui.propertyPages">
-    <page
-      adaptable="true"
-      class="org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage"
-      id="org.eclipse.wst.common.project.facet.ui.internal.FacetsPropertyPage"
-      name="%project.facets"
-      objectClass="org.eclipse.core.resources.IProject">
-      <filter
-        name="nature"
-        value="org.eclipse.wst.common.project.facet.core.nature">
-      </filter>
-    </page>
-    <page
-      adaptable="true"
-      class="org.eclipse.wst.common.project.facet.ui.internal.RuntimesPropertyPage"
-      id="org.eclipse.wst.common.project.facet.ui.internal.RuntimesPropertyPage"
-      name="%runtimesPropertyPageLabel"
-      objectClass="org.eclipse.core.resources.IProject">
-      <filter
-        name="nature"
-        value="org.eclipse.wst.common.project.facet.core.nature">
-      </filter>
-    </page>
-  </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/images.exsd b/plugins/org.eclipse.wst.common.project.facet.ui/schemas/images.exsd
deleted file mode 100644
index f0aadc4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/images.exsd
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.ui" id="images" name="Project Facet Images Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used for specifying the image that should be used with a facet, a category, or a runtime component type.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="image" minOccurs="0" 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="image">
-      <annotation>
-         <documentation>
-            Specifies the image that should be used with the specified facet, category, or runtime component type. Only one of the &lt;i&gt;facet&lt;/i&gt;, &lt;i&gt;category&lt;/i&gt;, and &lt;i&gt;runtime-component-type&lt;/i&gt; attributes should be used.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  The project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  The category id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="runtime-component-type" type="string">
-            <annotation>
-               <documentation>
-                  The runtime component type.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="path" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The relative path to the image within this plugin.
-               </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>
-         &lt;p&gt;The following example associates images with two facets and a category.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.ui.images&quot;&gt;
-  &lt;image facet=&quot;facet1&quot; path=&quot;icons/facet1.gif&quot;/&gt;
-  &lt;image facet=&quot;facet2&quot; path=&quot;icons/facet2.gif&quot;/&gt;
-  &lt;image category=&quot;category1&quot; path=&quot;icons/category1.gif&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) 2005 BEA Systems, Inc. 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.project.facet.ui/schemas/wizard-pages-old.exsd b/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages-old.exsd
deleted file mode 100644
index 7b1aacb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages-old.exsd
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.ui" id="wizard" name="Project Facet Wizard Pages Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="wizard-pages" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true" deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="wizard-pages">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="install" minOccurs="0" maxOccurs="1"/>
-            <element ref="uninstall" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="install">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="uninstall">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="page">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.ui.IFacetWizardPage"/>
-               </appInfo>
-            </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>
-         
-      </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) 2005 BEA Systems, Inc. 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.project.facet.ui/schemas/wizard-pages.exsd b/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages.exsd
deleted file mode 100644
index b6ec9f8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages.exsd
+++ /dev/null
@@ -1,146 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.ui" id="wizardPages" name="Project Facet Wizard Pages Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used for associating wizard pages with a project facet action. For instance, wizard pages can be associated with the action of installing facet Abc or uninstalling facet FooBar.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="wizard-pages" 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="wizard-pages">
-      <annotation>
-         <documentation>
-            Used for associating wizard pages with a project facet action. For instance, wizard pages can be associated with the action of installing facet Abc or uninstalling facet FooBar.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="action" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The action id. If the action does not specify an explicit id, the default id is created using the following format: &quot;[facet-id]#[version-expression]#[action-type]&quot;.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="page">
-      <annotation>
-         <documentation>
-            Specifies one page in a sequence of wizard pages being associated with a project facet action.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The wizard page class name. Has to implement org.eclipse.wst.common.project.facet.ui.IFacetWizardPage interface.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.ui.IFacetWizardPage"/>
-               </appInfo>
-            </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>
-         &lt;p&gt;The following example associates wizard pages with install and uninstall actions of facet1.&lt;/p&gt;
-
-&lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.ui.wizardPages&quot;&gt;
-  &lt;wizard-pages action=&quot;facet1.install&quot;&gt;
-    &lt;page class=&quot;com.mycorp.Facet1InstallPage1&quot;/&gt;
-    &lt;page class=&quot;com.mycorp.Facet1InstallPage2&quot;/&gt;
-  &lt;/wizard-pages&gt;
-  &lt;wizard-pages action=&quot;facet1.uninstall&quot;&gt;
-    &lt;page class=&quot;com.mycorp.Facet1UninstallPage&quot;/&gt;
-  &lt;/wizard-pages&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) 2005 BEA Systems, Inc. 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.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AbstractFacetWizardPage.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AbstractFacetWizardPage.java
deleted file mode 100644
index ff819d0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AbstractFacetWizardPage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.wizard.WizardPage;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractFacetWizardPage
-
-    extends WizardPage
-    implements IFacetWizardPage
-    
-{
-    protected IWizardContext context;
-    
-    public AbstractFacetWizardPage( final String name )
-    {
-        super( name );
-    }
-    
-    public final void setWizardContext( final IWizardContext context )
-    {
-        this.context = context;
-    }
-    
-    public void transferStateToConfig()
-    {
-        
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.java
deleted file mode 100644
index 27e2549..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.java
+++ /dev/null
@@ -1,594 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
-import org.eclipse.wst.common.project.facet.ui.internal.AddRemoveFacetsDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.FacetUiPlugin;
-import org.eclipse.wst.common.project.facet.ui.internal.FacetsSelectionPage;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class AddRemoveFacetsWizard 
-
-    extends Wizard 
-    
-{
-    protected IFacetedProject fproj;
-    
-    private final WizardContext context = new WizardContext(); 
-    protected final FacetsSelectionPage facetsSelectionPage;
-    private FacetPages[] facetPages = new FacetPages[ 0 ];
-    private Composite pageContainer;
-    private final List pagesToDispose = new ArrayList();
-    private final AddRemoveFacetsDataModel model;
-    
-    public AddRemoveFacetsWizard( final IFacetedProject fproj )
-    {
-        this.model = new AddRemoveFacetsDataModel();
-        this.fproj = fproj;
-        
-        Set base = null;
-        
-        if( this.fproj != null )
-        {
-            base = this.fproj.getProjectFacets();
-            
-            final ChangeTargetedRuntimesDataModel rdm
-                = this.model.getTargetedRuntimesDataModel();
-            
-            rdm.setTargetedRuntimes( this.fproj.getTargetedRuntimes() );
-            rdm.setPrimaryRuntime( this.fproj.getPrimaryRuntime() );
-        }
-        
-        this.facetsSelectionPage 
-            = new FacetsSelectionPage( this.context, base, this.model );
-        
-        setNeedsProgressMonitor( true );
-        setForcePreviousAndNextButtons( true );
-        setWindowTitle( Resources.wizardTitle );
-    }
-    
-    public final AddRemoveFacetsDataModel getModel()
-    {
-        return this.model;
-    }
-    
-    public void addPages()
-    {
-        if( this.fproj != null )
-        {
-            this.facetsSelectionPage.setInitialSelection( this.fproj.getProjectFacets() );
-            this.facetsSelectionPage.setFixedProjectFacets( this.fproj.getFixedProjectFacets());
-        }
-        
-        this.facetsSelectionPage.addSelectedFacetsChangedListener
-        (
-            new Listener()
-            {
-                public void handleEvent( final Event event ) 
-                {
-                    handleSelectedFacetsChangedEvent();
-                }
-            }
-        );
-        
-        addPage( this.facetsSelectionPage );
-    }
-    
-    public int getPageCount()
-    {
-        return getPages().length;
-    }
-
-    public IWizardPage[] getPages()
-    {
-        final ArrayList list = new ArrayList();
-        
-        list.add( this.facetsSelectionPage );
-        
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            list.addAll( this.facetPages[ i ].pages );
-        }
-        
-        return (IWizardPage[]) list.toArray( new IWizardPage[ 0 ] );
-    }
-    
-    public IWizardPage getPage( final String pageName )
-    {
-        final IWizardPage[] pages = getPages();
-        
-        for( int i = 0; i < pages.length; i++ )
-        {
-            final IWizardPage page = pages[ i ];
-            
-            if( page.getName().equals( pageName ) )
-            {
-                return page;
-            }
-        }
-        
-        return null;
-    }
-    
-    public IWizardPage getStartingPage()
-    {
-        return getPages()[ 0 ];
-    }
-    
-    public IWizardPage getNextPage( final IWizardPage page )
-    {
-        final IWizardPage[] pages = getPages();
-        
-        int pos = -1;
-        
-        for( int i = 0; i < pages.length; i++ )
-        {
-            if( pages[ i ] == page )
-            {
-                pos = i;
-            }
-        }
-        
-        if( pos == pages.length - 1 )
-        {
-            return null;
-        }
-        else
-        {
-            return pages[ pos + 1 ];
-        }
-    }
-
-    public IWizardPage getPreviousPage( final IWizardPage page )
-    {
-        final IWizardPage[] pages = getPages();
-        
-        int pos = -1;
-        
-        for( int i = 0; i < pages.length; i++ )
-        {
-            if( pages[ i ] == page )
-            {
-                pos = i;
-            }
-        }
-        
-        if( pos == 0 )
-        {
-            return null;
-        }
-        else
-        {
-            return pages[ pos - 1 ];
-        }
-    }
-    
-    public boolean canFinish()
-    {
-        if( ! this.facetsSelectionPage.isPageComplete() )
-        {
-            return false;
-        }
-        
-        final IWizardPage[] pages = getPages();
-        
-        for( int i = 0; i < pages.length; i++ )
-        {
-            if( ! pages[ i ].isPageComplete() )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    public void createPageControls( final Composite container )
-    {
-        super.createPageControls( container );
-        this.pageContainer = container;
-        handleSelectedFacetsChangedEvent();
-    }
-    
-    public boolean performFinish() 
-    {
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            final FacetPages fp = this.facetPages[ i ];
-            
-            for( Iterator itr = fp.pages.iterator(); itr.hasNext(); )
-            {
-                ( (IFacetWizardPage) itr.next() ).transferStateToConfig();
-            }
-        }
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                performFinish( monitor );
-            }
-        };
-        
-        final IRunnableWithProgress op = new IRunnableWithProgress()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws InvocationTargetException, InterruptedException
-                
-            {
-                try
-                {
-                    final IWorkspace ws = ResourcesPlugin.getWorkspace();
-                    ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-                }
-                catch( CoreException e )
-                {
-                    throw new InvocationTargetException( e );
-                }
-            }
-        };
-
-        try 
-        {
-            getContainer().run( true, false, op );
-        }
-        catch( InterruptedException e ) 
-        {
-            return false;
-        } 
-        catch( InvocationTargetException e ) 
-        {
-            final Throwable te = e.getTargetException();
-            
-            if( te instanceof CoreException )
-            {
-                final IStatus st = ( (CoreException) te ).getStatus();
-                
-                ErrorDialog.openError( getShell(), Resources.errDlgTitle,
-                                       st.getMessage(), st );
-                
-                FacetUiPlugin.log( st );
-            }
-            else
-            {
-                throw new RuntimeException( e.getTargetException() );
-            }
-        }
-        
-        return true;
-    }
-
-    protected void performFinish( final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        monitor.beginTask( "", 3 ); //$NON-NLS-1$
-        
-        try
-        {
-            final ChangeTargetedRuntimesDataModel rdm
-                = this.model.getTargetedRuntimesDataModel();
-            
-            this.fproj.setTargetedRuntimes( rdm.getTargetedRuntimes(), 
-                                          submon( monitor, 1 ) );
-            
-            if( rdm.getPrimaryRuntime() != null )
-            {
-                this.fproj.setPrimaryRuntime( rdm.getPrimaryRuntime(), 
-                                              submon( monitor, 1 ) );
-            }
-            
-            this.fproj.modify( this.facetsSelectionPage.getActions(), 
-                               submon( monitor, 1 ) );
-        }
-        finally
-        {
-            monitor.done();
-        }
-    }
-    
-    public String getProjectName()
-    {
-        return this.fproj.getProject().getName();
-    }
-    
-	public Object getConfig(IProjectFacetVersion fv, Type type, String pjname) throws CoreException{
-		return null;
-	}
-    
-    public void syncWithPresetsModel( final Combo combo )
-    {
-        this.facetsSelectionPage.syncWithPresetsModel( combo );
-    }
-    
-    public void dispose()
-    {
-        super.dispose();
-        
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            this.pagesToDispose.addAll( this.facetPages[ i ].pages );
-        }
-        
-        for( Iterator itr = this.pagesToDispose.iterator(); itr.hasNext(); )
-        {
-            ( (IWizardPage) itr.next() ).dispose();
-        }
-        
-        this.model.dispose();
-    }
-    
-    private static IProgressMonitor submon( final IProgressMonitor parent,
-                                            final int ticks )
-    {
-        return new SubProgressMonitor( parent, ticks );
-    }
-    
-    private static final class FacetPages
-    {
-        public Action action;
-        public List pages;
-    }
-    
-    private void handleSelectedFacetsChangedEvent()
-    {
-        // Don't do anything until the facet selection page does not have any
-        // errors.
-        
-        if( ! this.facetsSelectionPage.isPageComplete() )
-        {
-            return;
-        }
-        
-        // Get the set of actions and sort them.
-        
-        final Set base = getBaseFacets();
-        final Set actions = this.facetsSelectionPage.getActions();
-        final ArrayList sortedActions = new ArrayList( actions );
-        ProjectFacetsManager.sort( base, sortedActions );
-        
-        // Recalculate the sequence of wizard pages.
-        
-        final ArrayList newFacetPages = new ArrayList();
-        final boolean[] markers = new boolean[ this.facetPages.length ];
-        boolean changed = false;
-        
-        for( Iterator itr1 = sortedActions.iterator(); itr1.hasNext(); )
-        {
-            final Action action = (Action) itr1.next();
-            final IProjectFacetVersion fv = action.getProjectFacetVersion();
-            FacetPages fp = findFacetPages( action, markers );
-            
-            if( fp == null )
-            {
-                final IActionDefinition actiondef;
-                
-                try
-                {
-                    actiondef = fv.getActionDefinition( base, action.getType() );
-                }
-                catch( CoreException e )
-                {
-                    FacetUiPlugin.log( e );
-                    continue;
-                }
-                
-                final List pages
-                    = ProjectFacetsUiManager.getWizardPages( actiondef.getId() );
-                
-                if( ! pages.isEmpty() )
-                {
-                    fp = new FacetPages();
-                    fp.action = action;
-                    fp.pages = pages;
-                    
-                    for( Iterator itr2 = fp.pages.iterator(); itr2.hasNext(); )
-                    {
-                        final IFacetWizardPage page 
-                            = (IFacetWizardPage) itr2.next();
-                        
-                        page.setWizard( this );
-                        page.setWizardContext( this.context );
-                        page.setConfig( action.getConfig() );
-                        
-                        if( page.getControl() == null ) 
-                        {
-                            page.createControl( this.pageContainer );
-                            page.getControl().setVisible( false );
-                        }
-                    }
-                    
-                    changed = true;
-                }
-            }
-            
-            if( fp != null )
-            {
-                newFacetPages.add( fp );
-            }
-        }
-        
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            if( ! markers[ i ] )
-            {
-                for( Iterator itr = this.facetPages[ i ].pages.iterator();
-                     itr.hasNext(); )
-                {
-                    final IFacetWizardPage page 
-                        = (IFacetWizardPage) itr.next();
-                    
-                    page.setWizard( null );
-                    this.pagesToDispose.add( page );
-                }
-                
-                changed = true;
-            }
-        }
-        
-        if( changed )
-        {
-            this.facetPages = new FacetPages[ newFacetPages.size() ];
-            newFacetPages.toArray( this.facetPages );
-            
-            this.pageContainer.layout( true, true );
-        }
-    }
-    
-    private FacetPages findFacetPages( final Action action,
-                                       final boolean[] markers )
-    {
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            final FacetPages fp = this.facetPages[ i ];
-            
-            if( fp.action == action )
-            {
-                markers[ i ] = true;
-                return fp;
-            }
-        }
-        
-        return null;
-    }
-    
-    private Set getBaseFacets()
-    {
-        if( this.fproj == null )
-        {
-            return Collections.EMPTY_SET;
-        }
-        else
-        {
-            return this.fproj.getProjectFacets();
-        }
-    }
-
-    /**
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-
-    private final class WizardContext
-
-        implements IWizardContext
-        
-    {
-        public String getProjectName()
-        {
-            return AddRemoveFacetsWizard.this.getProjectName();
-        }
-
-        public Set getSelectedProjectFacets()
-        {
-            return AddRemoveFacetsWizard.this.facetsSelectionPage.getSelectedProjectFacets();
-        }
-
-        public boolean isProjectFacetSelected( final IProjectFacetVersion fv )
-        {
-            return getSelectedProjectFacets().contains( fv );
-        }
-
-        public Set getActions()
-        {
-            final FacetsSelectionPage page
-                = AddRemoveFacetsWizard.this.facetsSelectionPage;
-            
-            return page.getActions();
-        }
-
-        public Action getAction( final Action.Type type,
-                                 final IProjectFacetVersion f )
-        {
-            for( Iterator itr = getActions().iterator(); itr.hasNext(); )
-            {
-                final Action action = (Action) itr.next();
-                
-                if( action.getType() == type && action.getProjectFacetVersion() == f )
-                {
-                    return action;
-                }
-            }
-            
-            return null;
-        }
-        
-		public Object getConfig(IProjectFacetVersion fv, Type type, String pjname) throws CoreException {
-			Object config = AddRemoveFacetsWizard.this.getConfig(fv, type, pjname);
-			if (null == config) {
-                final Set base = getBaseFacets();
-                final IActionDefinition def = fv.getActionDefinition( base, type );
-                config = def.createConfigObject( fv, pjname );
-			}
-			return config;
-		}
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String wizardTitle;
-        public static String errDlgTitle;
-        
-        static
-        {
-            initializeMessages( AddRemoveFacetsWizard.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.properties
deleted file mode 100644
index b7c4c81..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-wizardTitle = Add/Remove Project Facets
-errDlgTitle = Error
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetUiHelpContextIds.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetUiHelpContextIds.java
deleted file mode 100644
index 358f769..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetUiHelpContextIds.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.wst.common.project.facet.ui.internal.FacetUiPlugin;
-
-/**
- * Contains the help context ids defined in the facet UI plugin.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetUiHelpContextIds
-{
-    /**
-     * The help context id for the overall facets selection page:  
-     * "org.eclipse.wst.common.project.facet.ui.facetsSelectionPage".
-     */
-    
-    public static final String FACETS_SELECTION_PAGE
-        = FacetUiPlugin.PLUGIN_ID + ".facetsSelectionPage"; //$NON-NLS-1$
-    
-    private FacetUiHelpContextIds() {}
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.java
deleted file mode 100644
index 140df58..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class FacetedProjectWizard 
-
-    extends AddRemoveFacetsWizard 
-    implements INewWizard
-    
-{
-    private final IFacetedProjectTemplate template;
-    private WizardNewProjectCreationPage firstPage;
-    private String projectName;
-    private IPath customPath;
-    
-    public FacetedProjectWizard()
-    {
-        super( null );
-        
-        this.template = getTemplate();
-        
-        this.setWindowTitle( Resources.newPrefix + this.template.getLabel() );
-        this.setDefaultPageImageDescriptor( getDefaultPageImageDescriptor() );
-    }
-    
-    public void init( final IWorkbench workbench, 
-                      final IStructuredSelection selection )
-    {
-        
-    }
-    
-    public void addPages()
-    {
-        this.firstPage = new WizardNewProjectCreationPage( "first.page" ); //$NON-NLS-1$
-        this.firstPage.setTitle( this.template.getLabel() );
-        this.firstPage.setDescription( getPageDescription() );
-    
-        addPage( this.firstPage );
-        
-        super.addPages();
-        
-        this.facetsSelectionPage.setInitialPreset( this.template.getInitialPreset() );
-        
-        final Set fixed = this.template.getFixedProjectFacets();
-        
-        this.facetsSelectionPage.setFixedProjectFacets( fixed );
-    }
-    
-    public boolean canFinish()
-    {
-        return this.firstPage.isPageComplete() && super.canFinish();
-    }
-    
-    public IWizardPage[] getPages()
-    {
-        final IWizardPage[] base = super.getPages();
-        final IWizardPage[] pages = new IWizardPage[ base.length + 1 ];
-        
-        pages[ 0 ] = this.firstPage;
-        System.arraycopy( base, 0, pages, 1, base.length );
-        
-        return pages;
-    }
-    
-    public synchronized boolean performFinish() 
-    {
-        this.projectName = this.firstPage.getProjectName();
-
-        this.customPath
-            = this.firstPage.useDefaults() 
-              ? null : this.firstPage.getLocationPath();
-        
-        return super.performFinish();
-    }
-    
-    protected void performFinish( final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        this.fproj 
-            = ProjectFacetsManager.create( this.projectName,
-                                           this.customPath, monitor );
-        
-        super.performFinish( monitor );
-        
-        final Set fixed = this.template.getFixedProjectFacets();
-        this.fproj.setFixedProjectFacets( fixed );
-    }
-    
-    public synchronized String getProjectName()
-    {
-        if( this.fproj == null )
-        {
-            return this.firstPage.getProjectName();
-        }
-        else
-        {
-            return this.fproj.getProject().getName();
-        }
-    }
-    
-    protected abstract IFacetedProjectTemplate getTemplate();
-    protected abstract String getPageDescription();
-    protected abstract ImageDescriptor getDefaultPageImageDescriptor();
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String newPrefix;
-        
-        static
-        {
-            initializeMessages( FacetedProjectWizard.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.properties
deleted file mode 100644
index 260c699..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetedProjectWizard.properties
+++ /dev/null
@@ -1 +0,0 @@
-newPrefix = New\ 
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IDecorationsProvider.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IDecorationsProvider.java
deleted file mode 100644
index d485873..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IDecorationsProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IDecorationsProvider
-{
-    ImageDescriptor getIcon();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IFacetWizardPage.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IFacetWizardPage.java
deleted file mode 100644
index 76b0913..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IFacetWizardPage.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.wizard.IWizardPage;
-
-/**
- * This interface is implemented by the wizard pages associated with project
- * facet actions.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetWizardPage
-
-    extends IWizardPage
-    
-{
-    /**
-     * The framework will call this method in order to provide the wizard
-     * context to the wizard page. The wizard context can be used to find out
-     * about other actions being configured by the wizard.
-     * 
-     * @param context the wizard context
-     */
-    
-    void setWizardContext( IWizardContext context );
-    
-    /**
-     * The framework will call this method in order to provide the action config
-     * object that the wizard page should save user selection into. The
-     * populated config object will then be passed to the action delegate.
-     * 
-     * @param config the action config object
-     */
-    
-    void setConfig( Object config );
-    
-    /**
-     * This method is called after the user has pressed the <code>Finish</code>
-     * button. It allows the wizard page to transfer user selection into the
-     * config object. Alternative, instead of using this method, the wizard
-     * page could update the model on the fly as the user is making changes.
-     */
-
-    void transferStateToConfig();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IRuntimeComponentLabelProvider.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IRuntimeComponentLabelProvider.java
deleted file mode 100644
index bae1d2f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IRuntimeComponentLabelProvider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentLabelProvider
-{
-    String getLabel();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IWizardContext.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IWizardContext.java
deleted file mode 100644
index 227833d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IWizardContext.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
-
-/**
- * The interface exposed to the facet action wizard pages that allows them
- * to gather information about the wizard state.
- * 
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IWizardContext 
-{
-    /**
-     * Returns the name of the project that the wizard is operating on. If the
-     * wizard is in the project creation mode, the project will not yet exist
-     * in the workspace.
-     * 
-     * @return the name of the project that the wizard is operating on
-     */
-    
-    String getProjectName();
-    
-    /**
-     * Returns the set of facets currently selected in the wizard. If the wizard
-     * is in the add/remove facets mode (vs. project creation), this method will 
-     * return the set of facets currently installed in a project after being 
-     * modified by the current set of actions. 
-     * 
-     * @return the set of facets currently selected in the wizard (element type:
-     *   {@see IProjectFacetVersion})
-     */
-    
-    Set getSelectedProjectFacets();
-    
-    /**
-     * Determines whether the specified facet is currently selected in the
-     * wizard. See {@see getSelectedProjectFacets()} for more information.
-     * 
-     * @param fv the project facet version object
-     * @return <code>true</code> if an only if the provided project facet is
-     *   currently selected in the wizard
-     */
-    
-    boolean isProjectFacetSelected( IProjectFacetVersion fv );
-    
-    /**
-     * Returns the set of actions currently specified by the user.
-     * 
-     * @return the set of actions currently specified by the user
-     */
-    
-    Set getActions();
-    
-    /**
-     * Finds the action of specified type that applies to the specified facet,
-     * if such action exists. If the wizard is in the add/remove facets mode
-     * (vs. project creation), you cannot depend on finding the install action
-     * for a required facet as that facet may have already been installed.
-     * 
-     * @param type the action type
-     * @param fv the project facet version object
-     * @return the action object or <code>null</code>
-     */
-    
-    Action getAction( Action.Type type,
-                      IProjectFacetVersion fv );
-    
-    /**
-     * Do not use! This method is internal and will be removed.
-     */
-    
-	Object getConfig(IProjectFacetVersion fv, Type type, String pjname) throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.java
deleted file mode 100644
index 864962c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.ui.internal.AddRemoveFacetsDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel.IDataModelListener;
-
-public final class PresetSelectionPanel
-
-    extends Composite
-    
-{
-    private final Group group;
-    private final Combo presetsCombo;
-    private final Label descLabel;
-    private final AddRemoveFacetsDataModel model;
-    
-    public PresetSelectionPanel( final Composite parent,
-                                 final int style,
-                                 final AddRemoveFacetsDataModel model )
-    {
-        super( parent, style );
-        
-        this.model = model;
-        
-        GridLayout layout = new GridLayout( 1, false );
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        
-        setLayout( layout );
-        
-        this.group = new Group( this, SWT.NONE );
-        this.group.setLayout( new GridLayout( 1, false ) );
-        this.group.setLayoutData( gdhfill() );
-        this.group.setText( Resources.groupTitle );
-        
-        this.presetsCombo = new Combo( this.group, SWT.BORDER | SWT.READ_ONLY );
-        this.presetsCombo.setLayoutData( gdhfill() );
-        
-        this.descLabel = new Label( this.group, SWT.WRAP );
-   
-        final GridData gd = gdhfill();
-        gd.widthHint = 400;
-        gd.minimumHeight = 30;
-        gd.grabExcessVerticalSpace = true;
-        
-        this.descLabel.setLayoutData( gd );
-        
-        refreshDescription();
-        
-        this.model.addListener
-        ( 
-            AddRemoveFacetsDataModel.EVENT_SELECTED_PRESET_CHANGED,
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    refreshDescription();
-                }
-            }
-        );
-    }
-    
-    public Combo getPresetsCombo()
-    {
-        return this.presetsCombo;
-    }
-    
-    private void refreshDescription()
-    {
-        final IPreset preset = this.model.getSelectedPreset();
-        
-        final String desc;
-        
-        if( preset == null )
-        {
-            desc = Resources.hint;
-        }
-        else
-        {
-            desc = preset.getDescription();
-        }
-        
-        this.descLabel.setText( desc );
-    }
-    
-    private static GridData gdhfill() 
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String groupTitle;
-        public static String hint;
-        
-        static
-        {
-            initializeMessages( PresetSelectionPanel.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.properties
deleted file mode 100644
index 79edf51..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-groupTitle = Configurations
-hint = Hint: Get started quickly by selecting one of the pre-defined project configurations.
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ProjectFacetsUiManager.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ProjectFacetsUiManager.java
deleted file mode 100644
index 7d89841..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ProjectFacetsUiManager.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import java.util.List;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.ui.internal.ProjectFacetsUiManagerImpl;
-
-/**
- * <p><i>This class 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.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsUiManager 
-{
-    private ProjectFacetsUiManager() {}
-    
-    /**
-     * @return (element type: {@see IFacetWizardPage})
-     */
-    
-    public static List getWizardPages( final String actionId )
-    {
-        return ProjectFacetsUiManagerImpl.getWizardPages( actionId );
-    }
-
-    /**
-     * @return (element type: {@see IFacetWizardPage})
-     * @deprecated
-     */
-    
-    public static List getWizardPages( final Action.Type actionType,
-                                       final IProjectFacetVersion f )
-    {
-        return ProjectFacetsUiManagerImpl.getWizardPages( actionType, f );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AbstractDataModel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AbstractDataModel.java
deleted file mode 100644
index f6d2ce0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AbstractDataModel.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-public abstract class AbstractDataModel
-{
-    private final Map listeners = new HashMap();
-    
-    public synchronized void addListener( final String event,
-                                          final IDataModelListener listener )
-    {
-        List list = (List) this.listeners.get( event );
-        
-        if( list == null )
-        {
-            list = new ArrayList();
-            this.listeners.put( event, list );
-        }
-        
-        list.add( listener );
-    }
-    
-    public synchronized void removeListener( final String event,
-                                             final IDataModelListener listener )
-    {
-        final List list = (List) this.listeners.get( event );
-        
-        if( list != null )
-        {
-            list.remove( listener );
-        }
-    }
-    
-    public synchronized void removeListener( final IDataModelListener listener )
-    {
-        for( Iterator itr = this.listeners.keySet().iterator(); itr.hasNext(); )
-        {
-            removeListener( (String) itr.next(), listener );
-        }
-    }
-    
-    protected void notifyListeners( final String event )
-    {
-        final List listeners = (List) this.listeners.get( event );
-        
-        if( listeners != null )
-        {
-            for( Iterator itr = listeners.iterator(); itr.hasNext(); )
-            {
-                ( (IDataModelListener) itr.next() ).handleEvent();
-            }
-        }
-    }
-    
-    public static interface IDataModelListener
-    {
-        void handleEvent();
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AddRemoveFacetsDataModel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AddRemoveFacetsDataModel.java
deleted file mode 100644
index a277699..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AddRemoveFacetsDataModel.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IPreset;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class AddRemoveFacetsDataModel
-
-    extends AbstractDataModel
-    
-{
-    public static String EVENT_SELECTABLE_PRESETS_CHANGED 
-        = "selectablePresetsChanged"; //$NON-NLS-1$
-    
-    public static String EVENT_SELECTED_PRESET_CHANGED 
-        = "selectedPresetChanged"; //$NON-NLS-1$
-    
-    private final Set presets;
-    private final Set presetsReadOnly; 
-    private IPreset selectedPreset;
-    private final ChangeTargetedRuntimesDataModel runtimesDataModel;
-    
-    public AddRemoveFacetsDataModel()
-    {
-        this.presets = new HashSet();
-        this.presetsReadOnly = Collections.unmodifiableSet( this.presets );
-        this.selectedPreset = null;
-        this.runtimesDataModel = new ChangeTargetedRuntimesDataModel();
-    }
-    
-    public synchronized Set getPresets()
-    {
-        return this.presetsReadOnly;
-    }
-    
-    // TODO: Remove this. Presets should be auto-computed by the data-model.
-    // The user should not be allowed to set the list of presets.
-    
-    public synchronized void setPresets( final Set presets )
-    {
-        if( this.selectedPreset != null && 
-            ! presets.contains( this.selectedPreset ) )
-        {
-            setSelectedPreset( null );
-        }
-
-        this.presets.clear();
-        this.presets.addAll( presets );
-        
-        notifyListeners( EVENT_SELECTABLE_PRESETS_CHANGED );
-    }
-    
-    public synchronized IPreset getSelectedPreset()
-    {
-        return this.selectedPreset;
-    }
-    
-    public synchronized void setSelectedPreset( final IPreset preset )
-    {
-        if( preset != null && ! this.presets.contains( preset ) )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        this.selectedPreset = preset;
-        
-        notifyListeners( EVENT_SELECTED_PRESET_CHANGED );
-    }
-    
-    public ChangeTargetedRuntimesDataModel getTargetedRuntimesDataModel()
-    {
-        return this.runtimesDataModel;
-    }
-    
-    public void dispose()
-    {
-        this.runtimesDataModel.dispose();
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ChangeTargetedRuntimesDataModel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ChangeTargetedRuntimesDataModel.java
deleted file mode 100644
index 09604c5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ChangeTargetedRuntimesDataModel.java
+++ /dev/null
@@ -1,280 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.internal.CopyOnWriteSet;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-
-public final class ChangeTargetedRuntimesDataModel
-
-    extends AbstractDataModel
-    
-{
-    public static final String EVENT_AVAILABLE_RUNTIMES_CHANGED 
-        = "availableRuntimesChanged"; //$NON-NLS-1$
-    
-    public static final String EVENT_TARGETABLE_RUNTIMES_CHANGED
-        = "targetableRuntimesChanged"; //$NON-NLS-1$
-    
-    public static final String EVENT_TARGETED_RUNTIMES_CHANGED
-        = "targetedRuntimesChanged"; //$NON-NLS-1$
-    
-    public static final String EVENT_PRIMARY_RUNTIME_CHANGED
-        = "primaryRuntimeChanged"; //$NON-NLS-1$
-    
-    public interface IRuntimeFilter
-    {
-        boolean check( IRuntime runtime );
-    }
-
-    private final List filters;
-    private final CopyOnWriteSet targetableRuntimes;
-    private final CopyOnWriteSet targetedRuntimes;
-    private IRuntime primaryRuntime;
-    private IListener runtimeManagerListener;
-
-    public ChangeTargetedRuntimesDataModel()
-    {
-        this.filters = new ArrayList();
-        
-        this.targetableRuntimes = new CopyOnWriteSet();
-        this.targetableRuntimes.addAll( getAllRuntimes() );
-        
-        this.targetedRuntimes = new CopyOnWriteSet();
-        
-        this.primaryRuntime = null;
-        
-        this.runtimeManagerListener = new IListener()
-        {
-            public void handle()
-            {
-                notifyListeners( EVENT_AVAILABLE_RUNTIMES_CHANGED );
-                refreshTargetableRuntimes();
-            }
-        };
-        
-        RuntimeManager.addRuntimeListener( this.runtimeManagerListener );
-    }
-    
-    public synchronized void addRuntimeFilter( final IRuntimeFilter filter )
-    {
-        this.filters.add( filter );
-        refreshTargetableRuntimes();
-    }
-    
-    public synchronized void removeRuntimeFilter( final IRuntimeFilter filter )
-    {
-        this.filters.remove( filter );
-        refreshTargetableRuntimes();
-    }
-    
-    public synchronized Set getAllRuntimes()
-    {
-        return RuntimeManager.getRuntimes();
-    }
-    
-    public synchronized Set getTargetableRuntimes()
-    {
-        return this.targetableRuntimes;
-    }
-    
-    public synchronized void refreshTargetableRuntimes()
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr1 = getAllRuntimes().iterator(); itr1.hasNext(); )
-        {
-            final IRuntime r = (IRuntime) itr1.next();
-            
-            boolean ok = true;
-            
-            for( Iterator itr2 = this.filters.iterator(); itr2.hasNext(); )
-            {
-                final IRuntimeFilter filter = (IRuntimeFilter) itr2.next();
-                
-                if( ! filter.check( r ) )
-                {
-                    ok = false;
-                    break;
-                }
-            }
-            
-            if( ok )
-            {
-                result.add( r );
-            }
-        }
-        
-        if( ! this.targetableRuntimes.equals( result ) )
-        {
-            this.targetableRuntimes.clear();
-            this.targetableRuntimes.addAll( result );
-            notifyListeners( EVENT_TARGETABLE_RUNTIMES_CHANGED );
-            
-            boolean modified = false;
-            
-            for( Iterator itr = this.targetedRuntimes.iterator(); itr.hasNext(); )
-            {
-                final IRuntime r = (IRuntime) itr.next();
-                
-                if( ! this.targetableRuntimes.contains( r ) )
-                {
-                    itr.remove();
-                    modified = true;
-                }
-            }
-            
-            if( modified )
-            {
-                notifyListeners( EVENT_TARGETED_RUNTIMES_CHANGED );
-                
-                if( this.primaryRuntime != null && 
-                    ! this.targetableRuntimes.contains( this.primaryRuntime ) )
-                {
-                    autoAssignPrimaryRuntime();
-                }
-            }
-        }
-    }
-    
-    public synchronized Set getTargetedRuntimes()
-    {
-        return this.targetedRuntimes;
-    }
-    
-    public synchronized void setTargetedRuntimes( final Set runtimes )
-    {
-        if( ! this.targetedRuntimes.equals( runtimes ) )
-        {
-            this.targetedRuntimes.clear();
-            
-            for( Iterator itr = runtimes.iterator(); itr.hasNext(); )
-            {
-                final IRuntime r = (IRuntime) itr.next();
-                
-                if( this.targetableRuntimes.contains( r ) )
-                {
-                    this.targetedRuntimes.add( r );
-                }
-            }
-            
-            notifyListeners( EVENT_TARGETED_RUNTIMES_CHANGED );
-            
-            if( this.primaryRuntime == null ||
-                ! this.targetedRuntimes.contains( this.primaryRuntime ) )
-            {
-                autoAssignPrimaryRuntime();
-            }
-        }
-    }
-    
-    public synchronized void addTargetedRuntime( final IRuntime runtime )
-    {
-        if( runtime == null )
-        {
-            throw new NullPointerException();
-        }
-        else
-        {
-            this.targetedRuntimes.add( runtime );
-            notifyListeners( EVENT_TARGETED_RUNTIMES_CHANGED );
-            
-            if( this.primaryRuntime == null )
-            {
-                this.primaryRuntime = runtime;
-                notifyListeners( EVENT_PRIMARY_RUNTIME_CHANGED );
-            }
-        }
-    }
-    
-    public synchronized void removeTargetedRuntime( final IRuntime runtime )
-    {
-        if( runtime == null )
-        {
-            throw new NullPointerException();
-        }
-        else
-        {
-            if( this.targetedRuntimes.remove( runtime ) )
-            {
-                notifyListeners( EVENT_TARGETED_RUNTIMES_CHANGED );
-                
-                if( runtime.equals( this.primaryRuntime ) )
-                {
-                    autoAssignPrimaryRuntime();
-                }
-            }
-        }
-    }
-    
-    public synchronized IRuntime getPrimaryRuntime()
-    {
-        return this.primaryRuntime;
-    }
-    
-    public synchronized void setPrimaryRuntime( final IRuntime runtime )
-    {
-        if( ! equals( this.primaryRuntime, runtime ) )
-        {
-            if( runtime == null && this.targetedRuntimes.size() > 0 )
-            {
-                throw new IllegalArgumentException();
-            }
-            
-            if( this.targetedRuntimes.contains( runtime ) )
-            {
-                this.primaryRuntime = runtime;
-            }
-            
-            notifyListeners( EVENT_PRIMARY_RUNTIME_CHANGED );
-        }
-    }
-    
-    private void autoAssignPrimaryRuntime()
-    {
-        if( this.targetedRuntimes.isEmpty() )
-        {
-            this.primaryRuntime = null;
-        }
-        else
-        {
-            // Pick one to be the primary. No special semantics as to which 
-            // one.
-            
-            this.primaryRuntime 
-                = (IRuntime) this.targetedRuntimes.iterator().next();
-        }
-        
-        notifyListeners( EVENT_PRIMARY_RUNTIME_CHANGED );
-    }
-    
-    public void dispose()
-    {
-        RuntimeManager.removeRuntimeListener( this.runtimeManagerListener );
-    }
-    
-    private static boolean equals( final IRuntime r1,
-                                   final IRuntime r2 )
-    {
-        if( r1 == null && r2 == null )
-        {
-            return true;
-        }
-        else if( r1 == null || r2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return r1.equals( r2 );
-        }
-    }
-    
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConflictingFacetsFilter.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConflictingFacetsFilter.java
deleted file mode 100644
index f87a3a3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConflictingFacetsFilter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.Set;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ConflictingFacetsFilter 
-
-    implements FacetsSelectionPanel.IFilter
-    
-{
-    private final Set fixed;
-    
-    public ConflictingFacetsFilter( final Set fixed )
-    {
-        this.fixed = fixed;
-    }
-    
-    public boolean check( final IProjectFacetVersion fv )
-    {
-        return fv.isValidFor( this.fixed );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.java
deleted file mode 100644
index 6b1854a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.java
+++ /dev/null
@@ -1,536 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.draw2d.AbsoluteBendpoint;
-import org.eclipse.draw2d.AbstractBorder;
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.ChopboxAnchor;
-import org.eclipse.draw2d.CompoundBorder;
-import org.eclipse.draw2d.Ellipse;
-import org.eclipse.draw2d.EllipseAnchor;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LightweightSystem;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.draw2d.StackLayout;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.draw2d.graph.DirectedGraph;
-import org.eclipse.draw2d.graph.DirectedGraphLayout;
-import org.eclipse.draw2d.graph.Edge;
-import org.eclipse.draw2d.graph.Node;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-
-public final class ConstraintDisplayDialog
-
-    extends Dialog
-    
-{
-    private static final Font BOLD_FONT;
-    
-    static
-    {
-        final FontData sys 
-            = Display.getCurrent().getSystemFont().getFontData()[ 0 ];
-        
-        final FontData bold
-            = new FontData( sys.getName(), sys.getHeight(), SWT.BOLD );
-        
-        BOLD_FONT = new Font( Display.getCurrent(), bold );
-    }
-    
-    private final IConstraint constraint;
-    private final Point location;
-    private int width;
-    private int height;
-    
-    protected ConstraintDisplayDialog( final Shell parentShell,
-                                       final Point location,
-                                       final IConstraint constraint )
-    {
-        super( parentShell );
-        
-        setShellStyle( SWT.APPLICATION_MODAL | getDefaultOrientation() );
-        
-        this.constraint = constraint;
-        this.location = location;
-    }
-
-    protected Control createDialogArea( final Composite parent ) 
-    {
-        final Canvas canvas = new Canvas( parent, SWT.NONE );
-        canvas.setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
-        canvas.setBackground( new Color( null, 255, 255, 206 ) );
-        
-        final LightweightSystem lws = new LightweightSystem( canvas );
-        final Figure outer = new Figure();
-        outer.setLayoutManager( new ToolbarLayout() );
-        lws.setContents( outer );
-        final Figure contents = new Figure();
-        contents.setBorder( new MarginBorder( 10 ) );
-        outer.add( contents );
-        
-        createConstraintGraph( contents, null, this.constraint );
-        contents.setLayoutManager( new GraphLayoutManager() );
-        
-        final Label escLabel = new Label( Resources.pressEscToClose );
-        escLabel.setLabelAlignment( Label.RIGHT );
-        escLabel.setBorder( new CompoundBorder( new DividerBorder( 2 ), new MarginBorder( 2 ) ) );
-        
-        outer.add( escLabel );
-
-        final Dimension size = outer.getPreferredSize();
-        this.width = ( size.width < 200 ? 200 : size.width );
-        this.height = size.height;
-        
-        return canvas;
-    }
-    
-    protected Control createButtonBar( final Composite parent )
-    {
-        return null;
-    }
-    
-    protected Point getInitialLocation( final Point size )
-    {
-        return this.location;
-    }
-    
-    protected Point getInitialSize()
-    {
-        return new Point( this.width, this.height );
-    }
-    
-    private void createConstraintGraph( final IFigure container,
-                                        final PolylineConnection parentCon,
-                                        final IConstraint constraint )
-    {
-        if( constraint.getType() == IConstraint.Type.AND ||
-            constraint.getType() == IConstraint.Type.OR )
-        {
-            if( constraint.getOperands().size() == 1 )
-            {
-                final IConstraint child
-                    = (IConstraint) constraint.getOperand( 0 );
-                
-                createConstraintGraph( container, parentCon, child ); 
-            }
-            else
-            {
-                final AndOrConstraintFigure node 
-                    = new AndOrConstraintFigure( constraint );
-                
-                container.add( node );
-                
-                if( parentCon != null )
-                {
-                    parentCon.setTargetAnchor( new EllipseAnchor( node ) );
-                }
-                
-                for( Iterator itr = constraint.getOperands().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final IConstraint child = (IConstraint) itr.next();
-                    final PolylineConnection childEdge = new PolylineConnection();
-                    container.add( childEdge );
-                    childEdge.setSourceAnchor( new EllipseAnchor( node ) );
-                    createConstraintGraph( container, childEdge, child );
-                }
-            }
-        }
-        else if( constraint.getType() == IConstraint.Type.REQUIRES )
-        {
-            final RequiresConstraintFigure node 
-                = new RequiresConstraintFigure( constraint );
-            
-            container.add( node );
-
-            if( parentCon != null )
-            {
-                parentCon.setTargetAnchor( new ChopboxAnchor( node ) );
-            }
-        }
-        else if( constraint.getType() == IConstraint.Type.CONFLICTS )
-        {
-            final ConflictsConstraintFigure node 
-                = new ConflictsConstraintFigure( constraint );
-        
-            container.add( node );
-
-            if( parentCon != null )
-            {
-                parentCon.setTargetAnchor( new ChopboxAnchor( node ) );
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private static final class GraphLayoutManager
-    
-        extends AbstractLayout
-        
-    {
-        private int laidout = 0;
-        
-        protected Dimension calculatePreferredSize( final IFigure container, 
-                                                    final int wHint, 
-                                                    final int hHint )
-        {
-            container.validate();
-            List children = container.getChildren();
-            Rectangle result = new Rectangle().setLocation(container.getClientArea().getLocation());
-            for (int i = 0; i < children.size(); i++)
-                result.union(((IFigure) children.get(i)).getBounds());
-            result.resize(container.getInsets().getWidth() + 2, container.getInsets().getHeight() + 2);
-            return result.getSize();        
-        }
-
-        public void layout( final IFigure container )
-        {
-            if( this.laidout > 5 )
-            {
-                return;
-            }
-            
-            // Create the graph.
-            
-            final DirectedGraph graph = new DirectedGraph();
-            final Map nodes = new HashMap();
-            
-            for( Iterator itr = container.getChildren().iterator(); 
-                 itr.hasNext(); )
-            {
-                final IFigure child = (IFigure) itr.next();
-                
-                if( ! ( child instanceof PolylineConnection ) )
-                {
-                    final Node node = new Node( child );
-                    final Dimension size = child.getPreferredSize();
-                    node.height = size.height;
-                    node.width = size.width;
-                    graph.nodes.add( node );
-                    nodes.put( child, node );
-                }
-            }
-            
-            for( Iterator itr = container.getChildren().iterator(); 
-                 itr.hasNext(); )
-            {
-                final Object child = itr.next();
-                
-                if( child instanceof PolylineConnection )
-                {
-                    final PolylineConnection cn = (PolylineConnection) child;
-                    
-                    final IFigure source = cn.getSourceAnchor().getOwner();
-                    final Node sourceNode = (Node) nodes.get( source );
-                    
-                    final IFigure target = cn.getTargetAnchor().getOwner();
-                    final Node targetNode = (Node) nodes.get( target );
-                    
-                    final Edge edge = new Edge( cn, sourceNode, targetNode );
-                    graph.edges.add( edge );
-                }
-            }
-            
-            // Call the graph layout algorith to determine node positions.
-            
-            ( new DirectedGraphLayout() ).visit( graph );
-            
-            // Layout nodes based on the results of the graph layout.
-
-            for( Iterator itr = graph.nodes.iterator(); itr.hasNext(); )
-            {
-                final Node node = (Node) itr.next();
-                final IFigure figure = (IFigure) node.data;
-                
-                final Rectangle bounds 
-                    = new Rectangle( node.x + 10, node.y - 6, 
-                                     figure.getPreferredSize().width,
-                                     figure.getPreferredSize().height );
-                
-                figure.setBounds( bounds );
-            }
-
-            for( Iterator itr = graph.edges.iterator(); itr.hasNext(); )
-            {
-                final Edge edge = (Edge) itr.next();
-                final PolylineConnection cn = (PolylineConnection) edge.data;
-                
-                if( edge.vNodes == null )
-                {
-                    cn.setRoutingConstraint( Collections.EMPTY_LIST );
-                }
-                else
-                {
-                    final List bends = new ArrayList();
-                    
-                    for( Iterator itr2 = edge.vNodes.iterator(); 
-                         itr2.hasNext(); )
-                    {
-                        final Node vn = (Node) itr2.next();
-                        
-                        if( edge.isFeedback() )
-                        {
-                            bends.add( new AbsoluteBendpoint( vn.x, vn.y + vn.height ) );
-                            bends.add( new AbsoluteBendpoint( vn.x, vn.y ) );
-                        }
-                        else
-                        {
-                            bends.add( new AbsoluteBendpoint( vn.x, vn.y ) );
-                            bends.add( new AbsoluteBendpoint( vn.x, vn.y + vn.height ) );
-                        }
-                    }
-                    
-                    cn.setRoutingConstraint( bends );
-                }
-            }
-            
-            this.laidout++;
-        }
-    }
-    
-    private static final class DividerBorder
-        
-        extends AbstractBorder 
-        
-    {
-        private final int lines;
-        private final Insets insets;
-        
-        public DividerBorder( final int lines )
-        {
-            this.lines = lines;
-            this.insets = new Insets( 1 + ( this.lines - 1 ) * 2 );
-        }
-        
-        public Insets getInsets( final IFigure figure ) 
-        {
-            return this.insets;
-        }
-        
-        public void paint( final IFigure figure, 
-                           final Graphics graphics, 
-                           final Insets insets ) 
-        {
-            final Rectangle paintRectangle 
-                = getPaintRectangle( figure, insets );
-            
-            final int xLeft = paintRectangle.getTopLeft().x;
-            final int xRight = paintRectangle.getTopRight().x;
-            
-            int y = paintRectangle.getTopLeft().y;
-            
-            for( int i = 0; i < this.lines; i++, y += 2 )
-            {
-                graphics.drawLine( xLeft, y, xRight, y );
-            }
-        }
-    }
-    
-    private static final class DashedLineBorder
-    
-        extends LineBorder
-        
-    {
-        public DashedLineBorder()
-        {
-            super( 1 );
-        }
-        
-        public void paint(IFigure figure, Graphics graphics, Insets insets) 
-        {
-            graphics.setLineStyle( SWT.LINE_DASH );
-            super.paint( figure, graphics, insets );
-            graphics.setLineStyle( SWT.LINE_SOLID );
-        }
-    }
-    
-    private static final class AndOrConstraintFigure
-    
-        extends Figure
-        
-    {
-        public AndOrConstraintFigure( final IConstraint constraint )
-        {
-            setLayoutManager( new StackLayout() );
-            
-            final String labelText;
-            final Color background;
-            
-            if( constraint.getType() == IConstraint.Type.AND )
-            {
-                labelText = Resources.andOperator;
-                background = new Color( null, 0, 175, 0 );
-            }
-            else if( constraint.getType() == IConstraint.Type.OR )
-            {
-                labelText = Resources.orOperator;
-                background = new Color( null, 255, 128, 0 ); 
-            }
-            else
-            {
-                throw new IllegalStateException();
-            }
-            
-            final Ellipse circle = new Ellipse();
-            circle.setOpaque( true );
-            circle.setBackgroundColor( background );
-            add( circle );
-            
-            final Label label = new Label();
-            label.setFont( BOLD_FONT );
-            label.setText( labelText );
-            add( label );
-        }
-        
-        public Dimension getPreferredSize( final int wHint, 
-                                           final int hHint )
-        {
-            return new Dimension( 35, 35 );
-        }
-    }
-    
-    private static final class RequiresConstraintFigure
-    
-        extends Figure
-        
-    {
-        public RequiresConstraintFigure( final IConstraint constraint )
-        {
-            final IProjectFacet f = (IProjectFacet) constraint.getOperand( 0 );
-            final IVersionExpr vexpr = (IVersionExpr) constraint.getOperand( 1 );
-            final Boolean soft = (Boolean) constraint.getOperand( 2 );
-            
-            setLayoutManager( new ToolbarLayout() );
-            setBackgroundColor( new Color( null, 255, 255, 255 ) );
-            setOpaque( true );
-            
-            setBorder( soft.booleanValue() 
-                       ? new DashedLineBorder() : new LineBorder( 1 )  );
-            
-            final Label headerLabel = new Label();
-            headerLabel.setFont( BOLD_FONT );
-            headerLabel.setText( Resources.requiresOperator );
-            headerLabel.setBorder( new MarginBorder( 2 ) );
-            add( headerLabel );
-            
-            final StringBuffer bodyLabelText = new StringBuffer();
-            
-            bodyLabelText.append( f.getLabel() );
-            
-            if( ! vexpr.toString().equals( IVersionExpr.WILDCARD_SYMBOL ) )
-            {
-                bodyLabelText.append( ' ' );
-                bodyLabelText.append( vexpr.toDisplayString() );
-            }
-            
-            final Label bodyLabel = new Label();
-            bodyLabel.setText( bodyLabelText.toString() );
-            bodyLabel.setBorder( new CompoundBorder( new DividerBorder( 1 ), new MarginBorder( 2 ) ) );
-            add( bodyLabel );
-        }
-    }
-
-    private static final class ConflictsConstraintFigure
-    
-        extends Figure
-        
-    {
-        public ConflictsConstraintFigure( final IConstraint constraint )
-        {
-            setLayoutManager( new ToolbarLayout() );
-            setBorder( new LineBorder( 1 ) );
-            setOpaque( true );
-            setBackgroundColor( new Color( null, 255, 255, 255 ) );
-            
-            final Label headerLabel = new Label();
-            headerLabel.setFont( BOLD_FONT );
-            headerLabel.setBorder( new MarginBorder( 2 ) );
-            add( headerLabel );
-            
-            final StringBuffer bodyLabelText = new StringBuffer();
-            final Object firstOperand = constraint.getOperand( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                headerLabel.setText( Resources.conflictsWithGroupOperator );
-                
-                bodyLabelText.append( ( (IGroup) firstOperand ).getId() );
-            }
-            else
-            {
-                headerLabel.setText( Resources.conflictsWithFacetOperator );
-                
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                
-                bodyLabelText.append( f.getLabel() );
-                
-                if( constraint.getOperands().size() == 2 )
-                {
-                    final IVersionExpr vexpr 
-                        = (IVersionExpr) constraint.getOperand( 1 );
-                    
-                    bodyLabelText.append( ' ' );
-                    bodyLabelText.append( vexpr.toDisplayString() );
-                }
-            }
-
-            final Label bodyLabel = new Label();
-            bodyLabel.setText( bodyLabelText.toString() );
-            bodyLabel.setBorder( new CompoundBorder( new DividerBorder( 1 ), new MarginBorder( 2 ) ) );
-            add( bodyLabel );
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String pressEscToClose;
-        public static String andOperator;
-        public static String orOperator;
-        public static String requiresOperator;
-        public static String conflictsWithGroupOperator;
-        public static String conflictsWithFacetOperator;
-        
-        static
-        {
-            initializeMessages( ConstraintDisplayDialog.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.properties
deleted file mode 100644
index a5322bc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-pressEscToClose = Press 'Esc' to close.
-andOperator = AND
-orOperator = OR
-requiresOperator = \ requires\ 
-conflictsWithGroupOperator = \ conflicts with group\ 
-conflictsWithFacetOperator = \ conflicts with facet\ 
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/DecorationsProvider.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/DecorationsProvider.java
deleted file mode 100644
index ea685d2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/DecorationsProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.common.project.facet.ui.IDecorationsProvider;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class DecorationsProvider
-
-    implements IDecorationsProvider
-    
-{
-    private final Object adaptable;
-    
-    public DecorationsProvider( final Object adaptable )
-    {
-        this.adaptable = adaptable;
-    }
-    
-    public ImageDescriptor getIcon()
-    {
-        return ProjectFacetsUiManagerImpl.getIcon( this.adaptable ); 
-    }
-    
-    public static final class Factory
-    
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES
-            = { IDecorationsProvider.class };
-        
-        public Object getAdapter( final Object adaptable, 
-                                  final Class adapterType )
-        {
-            if( adapterType == IDecorationsProvider.class )
-            {
-                return new DecorationsProvider( adaptable );
-            }
-            else
-            {
-                return null;
-            }
-        }
-    
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetUiPlugin.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetUiPlugin.java
deleted file mode 100644
index bc2957d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetUiPlugin.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetUiPlugin 
-
-    extends AbstractUIPlugin 
-    
-{
-    public static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.ui"; //$NON-NLS-1$
-    
-    private static FacetUiPlugin plugin;
-    private static final Set messagesLogged = new HashSet();
-    
-    public FacetUiPlugin() 
-    {
-        super();
-        plugin = this;
-    }
-    
-    public static FacetUiPlugin getInstance()
-    {
-        return plugin;
-    }
-    
-    public static ImageDescriptor getImageDescriptor( final String path )
-    {
-        return imageDescriptorFromPlugin( PLUGIN_ID, path );
-    }
-    
-    public static void log( final Exception e )
-    {
-        final String msg = e.getMessage();
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-
-    public static void log( final IStatus status )
-    {
-        getInstance().getLog().log( status );
-    }
-    
-    public static void log( final String msg )
-    {
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static void logError( final String msg )
-    {
-        logError( msg, false );
-    }
-    
-    public static void logError( final String msg,
-                                 final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-
-    public static void logWarning( final String msg )
-    {
-        logWarning( msg, false );
-    }
-    
-    public static void logWarning( final String msg,
-                                   final boolean suppressDuplicates )
-    {
-        if( suppressDuplicates && messagesLogged.contains( msg ) )
-        {
-            return;
-        }
-        
-        messagesLogged.add( msg );
-        
-        log( new Status( IStatus.WARNING, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static IStatus createErrorStatus( final String msg,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, FacetUiPlugin.PLUGIN_ID, 0, msg, e );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetedProjectActionFilter.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetedProjectActionFilter.java
deleted file mode 100644
index c1cc0b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetedProjectActionFilter.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.IActionFilter;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectActionFilter
-
-    implements IActionFilter
-    
-{
-    public boolean testAttribute( final Object target, 
-                                  final String name, 
-                                  final String value )
-    {
-        if( name.equals( "facet" ) ) //$NON-NLS-1$
-        {
-            final IFacetedProject fproj = (IFacetedProject) target;
-            
-            final int colon = value.indexOf( ':' );
-            final String fid;
-            final String vexprstr;
-            
-            if( colon == -1 || colon == value.length() - 1 )
-            {
-                fid = value;
-                vexprstr = null;
-            }
-            else
-            {
-                fid = value.substring( 0, colon );
-                vexprstr = value.substring( colon + 1 );
-            }
-            
-            if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-            {
-                return false;
-            }
-            
-            final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-            
-            if( ! fproj.hasProjectFacet( f ) )
-            {
-                return false;
-            }
-            
-            if( vexprstr == null )
-            {
-                return true;
-            }
-            else
-            {
-                final IProjectFacetVersion fv = fproj.getInstalledVersion( f );
-                
-                try
-                {
-                    if( f.getVersions( vexprstr ).contains( fv ) )
-                    {
-                        return true;
-                    }
-                }
-                catch( CoreException e )
-                {
-                    FacetUiPlugin.log( e.getStatus() );
-                }
-            }
-            
-            return false;
-        }
-        else
-        {
-            return false;
-        }
-    }
-    
-    public static final class Factory
-    
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES = { IActionFilter.class };
-        
-        public Object getAdapter( final Object adaptable, 
-                                  final Class adapterType )
-        {
-            if( adapterType == IActionFilter.class )
-            {
-                return new FacetedProjectActionFilter();
-            }
-            else
-            {
-                return null;
-            }
-        }
-    
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.java
deleted file mode 100644
index 729927d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 - 2006 BEA Systems, Inc.
- * 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:
- *    Karl Lum - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.ui.AddRemoveFacetsWizard;
-
-/**
- * @author <a href="mailto:klum@bea.com">Karl Lum</a>
- */
-
-public class FacetsPropertyPage extends PropertyPage 
-{
-    private IFacetedProject project;
-    private IFacetedProjectListener projectListener;
-    private TableViewer viewer;
-	
-	protected Control createContents(Composite parent) 
-	{
-		noDefaultAndApplyButton();
-		final IAdaptable element = getElement();
-
-		if (element instanceof IProject)
-		{
-			final IProject project = (IProject)element;
-			try {
-				this.project = ProjectFacetsManager.create(project);
-			}
-			catch (CoreException ce)
-			{
-				return null;
-			}
-            
-            this.projectListener = new IFacetedProjectListener()
-            {
-                public void projectChanged()
-                {
-                    handleProjectChangedEvent();
-                }
-            };
-            
-            this.project.addListener( this.projectListener );
-            
-	        Composite composite = new Composite(parent, SWT.NONE);
-            
-            final GridLayout layout = new GridLayout();
-            layout.marginHeight = 0;
-            layout.marginWidth = 0;
-            
-	        composite.setLayout( layout );
-	        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-	        createTableGroup(composite);
-            
-            composite.addDisposeListener
-            (
-                new DisposeListener()
-                {
-                    public void widgetDisposed( final DisposeEvent e )
-                    {
-                        handleDisposeEvent();
-                    }
-                }
-            );
-            
-			return composite;
-		}
-		return null;
-	}
-
-	/**
-	 * Create the table viewer and add/remove facet button group.
-	 * @param parent
-	 */
-	private void createTableGroup(Composite parent)
-	{
-        final Composite composite = new Composite(parent, SWT.NONE);
-        final GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-        this.viewer = createTableViewer(composite);
-		this.viewer.setInput(this.project);
-		
-		// add the button for the facets wizard
-		final Button button = new Button(parent, SWT.PUSH);
-		button.setText(Resources.addRemoveLabel);
-		button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-		button.addSelectionListener(new SelectionAdapter()
-				{
-					public void widgetSelected(SelectionEvent event)
-					{
-			            final IWizard wizard = new AddRemoveFacetsWizard( FacetsPropertyPage.this.project );
-			            final WizardDialog dialog = new WizardDialog( getShell(), wizard );
-			            
-			            dialog.open();
-					}
-				});
-	}
-	
-	private TableViewer createTableViewer(Composite parent)
-	{
-		final Table table = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
-		
-		table.setLayout(new GridLayout());
-		table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		table.setLinesVisible(true);
-		table.setHeaderVisible(true);
-
-		final TableColumn labelCol = new TableColumn(table, SWT.NONE);
-		labelCol.setText(Resources.facetLabel);
-		labelCol.setResizable(true);
-		labelCol.setWidth(200);
-		
-		final TableColumn versionCol = new TableColumn(table, SWT.NONE);
-		versionCol.setText(Resources.versionLabel);
-		versionCol.setResizable(true);
-		versionCol.setWidth(100);
-		
-		TableViewer viewer = new TableViewer(table);
-		
-		viewer.setContentProvider(new FacetsContentProvider());
-		viewer.setLabelProvider(new FacetsLabelProvider());
-		
-		return viewer;
-	}
-    
-    private void handleProjectChangedEvent()
-    {
-        final Display display = this.viewer.getTable().getDisplay();
-        
-        if( ! Thread.currentThread().equals( display.getThread() ) )
-        {
-            display.syncExec
-            ( 
-                new Runnable()
-                {
-                    public void run()
-                    {
-                        handleProjectChangedEvent();
-                    }
-                }
-            );
-            
-            return;
-        }
-        
-        this.viewer.refresh();
-    }
-    
-    private void handleDisposeEvent()
-    {
-        this.project.removeListener( this.projectListener );
-    }
-
-	private static class FacetsLabelProvider extends LabelProvider implements ITableLabelProvider
-	{
-		static final int DESCRIPTION_FIELD = 0;
-		static final int VERSION_FIELD = 1;
-
-	    public Image getColumnImage(Object element, int columnIndex) { return null; }
-	    public String getColumnText(Object element, int columnIndex) 
-	    {
-	    	if (element instanceof IProjectFacetVersion)
-	    	{
-	    		final IProjectFacetVersion facet = (IProjectFacetVersion)element;
-	    		switch (columnIndex)
-	    		{
-	    		case DESCRIPTION_FIELD:
-	    			return facet.getProjectFacet().getLabel();
-	    		case VERSION_FIELD:
-	    			return facet.getVersionString();
-	    		}
-	    	}
-	    	return null;
-	    }
-	}
-	
-	private static class FacetsContentProvider implements IStructuredContentProvider
-	{
-	    public Object[] getElements(Object inputElement)
-	    {
-	        if (inputElement instanceof IFacetedProject)
-	        {
-	        	final IFacetedProject project = (IFacetedProject)inputElement;
-	        	final List facets = new ArrayList();
-	        	for (Iterator it = project.getProjectFacets().iterator(); it.hasNext();)
-	        	{
-	        		facets.add(it.next());
-	        	}
-	            Collections.sort(facets, new Comparator()
-	            		{
-	            			public int compare( final Object p1, final Object p2 ) 
-	            			{
-		                        if( p1 == p2 )
-		                        {
-		                            return 0;
-		                        }
-		                        else
-		                        {
-		                            final String label1 = ((IProjectFacetVersion)p1).getProjectFacet().getLabel();
-		                            final String label2 = ((IProjectFacetVersion)p2).getProjectFacet().getLabel();
-		                            
-		                            return label1.compareTo( label2 );
-		                        }
-	            			}
-	            		});
-
-	            return facets.toArray(new IProjectFacetVersion[0]);
-	        }
-	        return new String[0];
-	    }
-
-	    public void dispose(){}
-	    public void inputChanged(Viewer viewer, Object oldInput, Object newInput){}
-	}
-	
-    private static final class Resources extends NLS
-    {
-	    public static String addRemoveLabel;
-	    public static String facetLabel;
-	    public static String versionLabel;
-	    static
-	    {
-	        initializeMessages( FacetsPropertyPage.class.getName(), 
-	        		Resources.class );
-	    }
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.properties
deleted file mode 100644
index 1dc6028..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-addRemoveLabel = Add/Remove Project Facets...
-facetLabel = Project Facet
-versionLabel = Version
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.java
deleted file mode 100644
index e67af86..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.FacetUiHelpContextIds;
-import org.eclipse.wst.common.project.facet.ui.IWizardContext;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetsSelectionPage
-
-    extends WizardPage
-
-{
-    private static final String IMG_PATH_WIZBAN
-        = "images/facets-page-wizban.png"; //$NON-NLS-1$
-    
-    private IWizardContext context;
-    private Set base;
-    private IPreset initialPreset;
-    private Set initialSelection;
-    private final Set fixed;
-    public FacetsSelectionPanel panel;
-    private List listeners;
-    private List initialSyncWithPresetsCombos;
-    private IRuntime initialSetDefaultFacetsForRuntime;
-    private AddRemoveFacetsDataModel model;
-
-    public FacetsSelectionPage( final IWizardContext context,
-                                final Set base,
-                                final AddRemoveFacetsDataModel model )
-    {
-        super( "facets.selection.page" ); //$NON-NLS-1$
-
-        setTitle( Resources.pageTitle );
-        setDescription( Resources.pageDescription );
-        setImageDescriptor( FacetUiPlugin.getImageDescriptor( IMG_PATH_WIZBAN ) );
-
-        this.context = context;
-        this.base = base;
-        this.model = model;
-        this.initialPreset = null;
-        this.initialSelection = null;
-        this.fixed = new HashSet();
-        this.listeners = new ArrayList();
-        this.initialSyncWithPresetsCombos = new ArrayList();
-        this.initialSetDefaultFacetsForRuntime = null;
-    }
-    
-    public void setInitialPreset( final IPreset preset )
-    {
-        this.initialPreset = preset;
-    }
-    
-    public void setInitialSelection( final Set sel )
-    {
-        this.initialSelection = sel;
-    }
-
-    public void setFixedProjectFacets( final Set fixed )
-    {
-        this.fixed.clear();
-        this.fixed.addAll( fixed );
-    }
-
-    public Set getActions()
-    {
-        return this.panel.getActions();
-    }
-
-    public Set getSelectedProjectFacets()
-    {
-        return this.panel.getSelectedProjectFacets();
-    }
-
-    public void addSelectedFacetsChangedListener( final Listener listener )
-    {
-        this.listeners.add( listener );
-    }
-
-    public void removeSelectedFacetsChangedListener( final Listener listener )
-    {
-        this.listeners.remove( listener );
-    }
-    
-    public void setDefaultFacetsForRuntime( final IRuntime runtime )
-    {
-        if( this.panel == null )
-        {
-            this.initialSetDefaultFacetsForRuntime = runtime;
-        }
-        else
-        {
-            this.panel.setDefaultFacetsForRuntime( runtime );
-        }
-    }
-    
-    public void syncWithPresetsModel( final Combo combo )
-    {
-        if( this.initialSyncWithPresetsCombos == null )
-        {
-            this.panel.syncWithPresetsModel( combo );
-        }
-        else
-        {
-            this.initialSyncWithPresetsCombos.add( combo );
-        }
-    }
-
-    public void createControl( final Composite parent )
-    {
-        this.panel 
-            = new FacetsSelectionPanel( parent, SWT.NONE, this.context, 
-                                        this.base, this.model );
-        
-        this.panel.setFixedProjectFacets( this.fixed );
-
-        if( this.initialPreset != null )
-        {
-            this.panel.selectPreset( this.initialPreset );
-        }
-        
-        if( this.initialSelection != null )
-        {
-            this.panel.setSelectedProjectFacets( this.initialSelection );
-        }
-        
-        if( this.initialSetDefaultFacetsForRuntime != null )
-        {
-            this.panel.setDefaultFacetsForRuntime( this.initialSetDefaultFacetsForRuntime );
-        }
-        
-        setPageComplete( this.panel.isSelectionValid() );
-
-        this.panel.addSelectionChangedListener
-        (
-            new ISelectionChangedListener()
-            {
-                public void selectionChanged( final SelectionChangedEvent e )
-                {
-                    handleSelectionChangedEvent( e );
-                }
-            }
-        );
-
-        this.panel.addProjectFacetsListener
-        (
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    handleSelectedFacetsChangedEvent( event );
-                }
-            }
-        );
-
-        for( Iterator itr = this.initialSyncWithPresetsCombos.iterator(); 
-             itr.hasNext(); )
-        {
-            this.panel.syncWithPresetsModel( (Combo) itr.next() );
-        }
-        
-        this.initialSyncWithPresetsCombos = null;
-        
-        final IWorkbenchHelpSystem h = PlatformUI.getWorkbench().getHelpSystem();
-        h.setHelp( this.panel, FacetUiHelpContextIds.FACETS_SELECTION_PAGE );
-        
-        setControl( this.panel );
-    }
-
-    private void handleSelectionChangedEvent( final SelectionChangedEvent e )
-    {
-        final IStructuredSelection ss
-            = (IStructuredSelection) e.getSelection();
-
-        final Object sel = ss.getFirstElement();
-
-        if( sel != null )
-        {
-            final String desc;
-
-            if( sel instanceof IProjectFacet )
-            {
-                desc = ( (IProjectFacet) sel ).getDescription();
-            }
-            else
-            {
-                desc = ( (ICategory) sel ).getDescription();
-            }
-
-            setDescription( desc );
-        }
-    }
-
-    private void handleSelectedFacetsChangedEvent( final Event event )
-    {
-        setPageComplete( this.panel.isSelectionValid() );
-
-        for( int i = 0, n = this.listeners.size(); i < n; i++ )
-        {
-            ( (Listener) this.listeners.get( i ) ).handleEvent( event );
-        }
-        
-        if( getContainer().getCurrentPage() != null )
-        {
-            getContainer().updateButtons();
-        }
-    }
-
-    public void setVisible( final boolean visible )
-    {
-        if( visible )
-        {
-            for( Iterator itr = this.panel.getActions().iterator(); 
-                 itr.hasNext(); )
-            {
-                final Object config = ( (Action) itr.next() ).getConfig();
-                
-                if( config != null )
-                {
-                    IActionConfig c = null;
-                    
-                    if( config instanceof IActionConfig )
-                    {
-                        c = (IActionConfig) config;
-                    }
-                    else
-                    {
-                        final IAdapterManager m 
-                            = Platform.getAdapterManager();
-                        
-                        final String t
-                            = IActionConfig.class.getName();
-                        
-                        c = (IActionConfig) m.loadAdapter( config, t );
-                    }
-                    
-                    if( c != null )
-                    {
-                        c.setProjectName( this.context.getProjectName() );
-                    }
-                }
-            }
-        }
-        
-        super.setVisible( visible );
-        
-        if( visible )
-        {
-            this.panel.setFocus();
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String pageTitle;
-        public static String pageDescription;
-        
-        static
-        {
-            initializeMessages( FacetsSelectionPage.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
-
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.properties
deleted file mode 100644
index a91b135..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pageTitle = Project Facets
-pageDescription = Select the facets that should be enabled for this project.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
deleted file mode 100644
index 37f5bc5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
+++ /dev/null
@@ -1,2337 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.IDecorationsProvider;
-import org.eclipse.wst.common.project.facet.ui.IWizardContext;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel.IDataModelListener;
-import org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel.IRuntimeFilter;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetsSelectionPanel
-
-    extends Composite
-    implements ISelectionProvider
-
-{
-    private static final String FACET_COLUMN = "facet"; //$NON-NLS-1$
-    private static final String VERSION_COLUMN = "version"; //$NON-NLS-1$
-    private static final String WIDTH = "width"; //$NON-NLS-1$
-    private static final String HEIGHT = "height"; //$NON-NLS-1$
-    private static final String CW_FACET = "cw.facet"; //$NON-NLS-1$
-    private static final String CW_VERSION = "cw.version"; //$NON-NLS-1$
-    private static final String SASH1W1 = "sash.1.weight.1"; //$NON-NLS-1$
-    private static final String SASH1W2 = "sash.1.weight.2"; //$NON-NLS-1$
-    private static final String SASH2W1 = "sash.2.weight.1"; //$NON-NLS-1$
-    private static final String SASH2W2 = "sash.2.weight.2"; //$NON-NLS-1$
-    
-    private final IDialogSettings settings;
-    private final Composite topComposite;
-    private final SashForm sform1;
-    private final SashForm sform2;
-    private final Label presetsLabel;
-    private final Combo presetsCombo;
-    private final Button savePresetButton;
-    private final Button deletePresetButton;
-    private final CheckboxTreeViewer tree;
-    private final TreeColumn colFacet;
-    private final TreeColumn colVersion;
-    private final Menu popupMenu;
-    private final MenuItem popupMenuConstraints;
-    private final ComboBoxCellEditor ceditor;
-    private final TableViewer problemsView;
-    private final RuntimesPanel runtimesPanel;
-    private final Button showHideRuntimesButton;
-    
-    private final IWizardContext context;
-
-    /**
-     * Contains the <code>TableRowData</code> objects representing all of the
-     * facets, regardless whether they are displayed or not.
-     */
-
-    private final ArrayList data;
-    private final HashSet fixed;
-    private final Set base;
-    private final HashSet actions;
-    private Object oldSelection;
-
-    private IStatus problems;
-    private final HashSet filters;
-    private final ArrayList listeners;
-    private final ArrayList selectionListeners;
-    private ConflictingFacetsFilter conflictingFilter;
-    
-    private final AddRemoveFacetsDataModel model;
-    
-    public interface IFilter 
-    {
-        boolean check( IProjectFacetVersion fv );
-    }
-
-    public FacetsSelectionPanel( final Composite parent,
-                                 final int style,
-                                 final IWizardContext context,
-                                 final Set base,
-                                 final AddRemoveFacetsDataModel model )
-    {
-        super( parent, style );
-
-        this.context = context;
-        this.data = new ArrayList();
-        this.model = model;
-        this.fixed = new HashSet();
-        this.base = ( base == null ? new HashSet() : base );
-        this.actions = new HashSet();
-        this.oldSelection = null;
-        this.problems = Status.OK_STATUS;
-        this.filters = new HashSet();
-        this.listeners = new ArrayList();
-        this.selectionListeners = new ArrayList();
-        this.conflictingFilter = null;
-        
-        for( Iterator itr = ProjectFacetsManager.getProjectFacets().iterator();
-             itr.hasNext(); )
-        {
-            try
-            {
-                this.data.add( new TableRowData( (IProjectFacet) itr.next() ) );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-
-        // Read the dialog settings.
-
-        final IDialogSettings root
-            = FacetUiPlugin.getInstance().getDialogSettings();
-
-        IDialogSettings temp = root.getSection( getClass().getName() );
-
-        if( temp == null )
-        {
-            temp = root.addNewSection( getClass().getName() );
-        }
-        
-        if( temp.get( WIDTH ) == null ) temp.put( WIDTH, 600 );
-        if( temp.get( HEIGHT ) == null ) temp.put( HEIGHT, 300 );
-        if( temp.get( CW_FACET ) == null ) temp.put( CW_FACET, 200 );
-        if( temp.get( CW_VERSION ) == null ) temp.put( CW_VERSION, 100 );
-        if( temp.get( SASH1W1 ) == null ) temp.put( SASH1W1, 60 );
-        if( temp.get( SASH1W2 ) == null ) temp.put( SASH1W2, 40 );
-        if( temp.get( SASH2W1 ) == null ) temp.put( SASH2W1, 70 );
-        if( temp.get( SASH2W2 ) == null ) temp.put( SASH2W2, 30 );
-        
-        this.settings = temp;
-
-        // Layout the panel.
-
-        final GridLayout layout = new GridLayout( 1, false );
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        
-        setLayout( layout );
-        
-        final GridData topgd = gdfill();
-        topgd.heightHint = this.settings.getInt( HEIGHT );
-        topgd.widthHint = this.settings.getInt( WIDTH );
-        
-        this.topComposite = new Composite( this, SWT.NONE );
-        this.topComposite.setLayout( new GridLayout( 4, false ) );
-        this.topComposite.setLayoutData( topgd );
-        
-        this.topComposite.addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final Point size 
-                        = FacetsSelectionPanel.this.topComposite.getSize();
-                    
-                    FacetsSelectionPanel.this.settings.put( WIDTH, size.x );
-                    FacetsSelectionPanel.this.settings.put( HEIGHT, size.y );
-                }
-            }
-        );
-
-        this.presetsLabel = new Label( this.topComposite, SWT.NONE );
-        this.presetsLabel.setText( Resources.presetsLabel );
-        
-        this.presetsCombo = new Combo( this.topComposite, SWT.READ_ONLY );
-        this.presetsCombo.setLayoutData( gdhfill() );
-        
-        syncWithPresetsModel( this.presetsCombo );
-        
-        this.savePresetButton = new Button( this.topComposite, SWT.PUSH );
-        this.savePresetButton.setText( Resources.saveButtonLabel );
-        
-        this.savePresetButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleSavePreset();
-                }
-            }
-        );
-
-        this.deletePresetButton = new Button( this.topComposite, SWT.PUSH );
-        this.deletePresetButton.setText( Resources.deleteButtonLabel );
-        
-        this.deletePresetButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleDeletePreset();
-                }
-            }
-        );
-        
-        final int width 
-            = Math.max( getPreferredWidth( this.savePresetButton ), 
-                        getPreferredWidth( this.deletePresetButton ) ) + 15;
-                        
-        this.savePresetButton.setLayoutData( whint( new GridData(), width ) );
-        this.deletePresetButton.setLayoutData( whint( new GridData(), width ) );
-        
-        refreshPresetsCombo();
-
-        this.sform1 = new SashForm( this.topComposite, SWT.HORIZONTAL | SWT.SMOOTH );
-        this.sform1.setLayoutData( hspan( gdfill(), 4 ) );
-        
-        this.sform2 = new SashForm( this.sform1, SWT.VERTICAL | SWT.SMOOTH );
-        this.sform2.setLayoutData( hspan( gdfill(), 4 ) );
-        
-        this.tree = new CheckboxTreeViewer( this.sform2, SWT.BORDER );
-        this.tree.getTree().setHeaderVisible( true );
-
-        this.ceditor
-            = new ComboBoxCellEditor( this.tree.getTree(), new String[ 0 ],
-                                      SWT.READ_ONLY );
-
-        this.tree.setColumnProperties( new String[] { FACET_COLUMN, VERSION_COLUMN } );
-        this.tree.setCellModifier( new CellModifier() );
-        this.tree.setCellEditors( new CellEditor[] { null, this.ceditor } );
-
-        this.tree.setContentProvider( new ContentProvider() );
-        this.tree.setLabelProvider( new LabelProvider() );
-        this.tree.setSorter( new Sorter() );
-        
-        this.colFacet = new TreeColumn( this.tree.getTree(), SWT.NONE );
-        this.colFacet.setText( Resources.facetColumnLabel );
-        this.colFacet.setWidth( this.settings.getInt( CW_FACET ) );
-        this.colFacet.setResizable( true );
-        
-        this.colFacet.addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    FacetsSelectionPanel.this.settings.put( CW_FACET, FacetsSelectionPanel.this.colFacet.getWidth() );
-                }
-            }
-        );
-
-        this.colVersion = new TreeColumn( this.tree.getTree(), SWT.NONE );
-        this.colVersion.setText( Resources.versionColumnLabel );
-        this.colVersion.setWidth( this.settings.getInt( CW_VERSION ) );
-        this.colVersion.setResizable( true );
-
-        this.colVersion.addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    FacetsSelectionPanel.this.settings.put( CW_VERSION, FacetsSelectionPanel.this.colVersion.getWidth() );
-                }
-            }
-        );
-
-        this.popupMenu = new Menu( getShell(), SWT.POP_UP );
-        this.popupMenuConstraints = new MenuItem( this.popupMenu, SWT.PUSH );
-        this.popupMenuConstraints.setText( Resources.showConstraints );
-        
-        this.popupMenuConstraints.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( SelectionEvent e )
-                {
-                    handleShowConstraints();
-                }
-            }
-        );
-
-        this.tree.setInput( new Object() );
-
-        this.tree.addSelectionChangedListener
-        (
-            new ISelectionChangedListener()
-            {
-                public void selectionChanged( final SelectionChangedEvent e )
-                {
-                    FacetsSelectionPanel.this.selectionChanged( e );
-                }
-            }
-        );
-
-        this.tree.addCheckStateListener
-        (
-            new ICheckStateListener()
-            {
-                public void checkStateChanged( final CheckStateChangedEvent e )
-                {
-                    FacetsSelectionPanel.this.checkStateChanged( e );
-                }
-            }
-        );
-
-        this.tree.getTree().addListener
-        (
-            SWT.MouseDown,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    handleMouseDownEvent( event );
-                }
-            }
-        );
-
-        this.problemsView = new TableViewer( this.sform2, SWT.BORDER );
-        this.problemsView.setContentProvider( new ProblemsContentProvider() );
-        this.problemsView.setLabelProvider( new ProblemsLabelProvider() );
-        this.problemsView.setInput( new Object() );
-
-        this.problemsView.getTable().addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final int[] weights = FacetsSelectionPanel.this.sform2.getWeights();
-                    FacetsSelectionPanel.this.settings.put( SASH2W1, weights[ 0 ] );
-                    FacetsSelectionPanel.this.settings.put( SASH2W2, weights[ 1 ] );
-                }
-            }
-        );
-
-        final int[] weights2
-            = new int[] { this.settings.getInt( SASH2W1 ),
-                          this.settings.getInt( SASH2W2 ) };
-
-        this.sform2.setWeights( weights2 );
-        
-        this.runtimesPanel 
-            = new RuntimesPanel( this.sform1, SWT.NONE, 
-                                 this.model.getTargetedRuntimesDataModel() );
-        
-        this.runtimesPanel.setLayoutData( hhint( gdhfill(), 80 ) );
-        
-        this.model.getTargetedRuntimesDataModel().addRuntimeFilter
-        ( 
-            new IRuntimeFilter()
-            {
-                public boolean check( final IRuntime runtime )
-                {
-                    for( Iterator itr = getSelectedProjectFacets().iterator();
-                         itr.hasNext(); )
-                    {
-                        final IProjectFacetVersion fv
-                            = (IProjectFacetVersion) itr.next();
-                        
-                        if( ! runtime.supports( fv ) )
-                        {
-                            return false;
-                        }
-                    }
-                    
-                    return true;
-                }
-            }
-        );
-        
-        addFilter
-        (
-            new IFilter()
-            {
-                public boolean check( final IProjectFacetVersion fv )
-                {
-                    final ChangeTargetedRuntimesDataModel dm
-                        = getDataModel().getTargetedRuntimesDataModel();
-                    
-                    for( Iterator itr = dm.getTargetedRuntimes().iterator();
-                         itr.hasNext(); )
-                    {
-                        final IRuntime r = (IRuntime) itr.next();
-                        
-                        if( ! r.supports( fv ) )
-                        {
-                            return false;
-                        }
-                    }
-                    
-                    return true;
-                }
-            }
-        );
-        
-        addProjectFacetsListener
-        (
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final ChangeTargetedRuntimesDataModel rdm
-                        = getDataModel().getTargetedRuntimesDataModel();
-                    
-                    rdm.refreshTargetableRuntimes();
-                }
-            }
-        );
-        
-        this.model.getTargetedRuntimesDataModel().addListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED,
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    refresh();                    
-                }
-            }
-        );
-        
-        this.runtimesPanel.addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final int[] weights = FacetsSelectionPanel.this.sform1.getWeights();
-                    FacetsSelectionPanel.this.settings.put( SASH1W1, weights[ 0 ] );
-                    FacetsSelectionPanel.this.settings.put( SASH1W2, weights[ 1 ] );
-                }
-            }
-        );
-
-        final int[] weights1
-            = new int[] { this.settings.getInt( SASH1W1 ),
-                          this.settings.getInt( SASH1W2 ) };
-    
-        this.sform1.setWeights( weights1 );
-        this.sform1.setMaximizedControl( this.sform2 );
-        
-        this.showHideRuntimesButton = new Button( this.topComposite, SWT.PUSH );
-        this.showHideRuntimesButton.setText( Resources.showRuntimes );
-        GridData gd = halign( hspan( new GridData(), 4 ), GridData.END );
-        gd = whint( gd, getPreferredWidth( this.showHideRuntimesButton ) + 15 );
-        this.showHideRuntimesButton.setLayoutData( gd );
-        
-        this.showHideRuntimesButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleShowHideRuntimes();
-                }
-            }
-        );
-        
-        updateValidationDisplay();
-    }
-    
-    public AddRemoveFacetsDataModel getDataModel()
-    {
-        return this.model;
-    }
-    
-    public boolean isSelectionValid()
-    {
-        return ( this.problems.getSeverity() != IStatus.ERROR );
-    }
-    
-    public Set getActions()
-    {
-        return this.actions;
-    }
-    
-    public Action getAction( final Action.Type type,
-                             final IProjectFacetVersion f )
-    {
-        return getAction( this.actions, type, f );
-    }
-    
-    private static Action getAction( final Set actions,
-                                     final Action.Type type,
-                                     final IProjectFacetVersion fv )
-    {
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() == type && action.getProjectFacetVersion() == fv )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private static Action getAction( final Set actions,
-                                     final Action.Type type,
-                                     final IProjectFacet f )
-    {
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() == type && 
-                action.getProjectFacetVersion().getProjectFacet() == f )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private Action createAction( final Set actions,
-                                 final Action.Type type,
-                                 final IProjectFacetVersion fv )
-    {
-        Action action = getAction( actions, type, fv );
-        
-        if( action == null )
-        {
-            Object config = null;
-            
-            if( fv.supports( this.base, type ) )
-            {
-                try
-                {
-                    final IProjectFacet f = fv.getProjectFacet();
-                    
-                    action = getAction( actions, type, f );
-                    
-                    if( action != null )
-                    {
-                        final IProjectFacetVersion current
-                            = action.getProjectFacetVersion();
-                        
-                        if( fv.supports( this.base, type ) &&
-                            current.supports( this.base, type ) &&
-                            fv.getActionDefinition( this.base, type )
-                              == current.getActionDefinition( this.base, type ) )
-                        {
-                            config = action.getConfig();
-                            
-                            IActionConfig c = null;
-                            
-                            if( config instanceof IActionConfig )
-                            {
-                                c = (IActionConfig) config;
-                            }
-                            else if( config != null )
-                            {
-                                final IAdapterManager m 
-                                    = Platform.getAdapterManager();
-                                
-                                final String t
-                                    = IActionConfig.class.getName();
-                                
-                                c = (IActionConfig) m.loadAdapter( config, t );
-                            }
-                            
-                            if( c != null )
-                            {
-                                c.setVersion( fv );
-                            }
-                        }
-                    }
-                    
-                    if( config == null )
-                    {
-                    	final String pjname = this.context.getProjectName();
-                        config = this.context.getConfig(fv, type, pjname);
-                    }
-                }
-                catch( CoreException e )
-                {
-                    FacetUiPlugin.log( e );
-                }
-            }
-
-            action = new Action( type, fv, config );
-        }
-        
-        return action;
-    }
-    
-    public void setDefaultFacetsForRuntime( final IRuntime runtime )
-    {
-        final Set defaultFacets;
-        
-        if( runtime != null )
-        {
-            try
-            {
-                defaultFacets = runtime.getDefaultFacets( this.fixed );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-                return;
-            }
-        }
-        else
-        {
-            defaultFacets = new HashSet();
-            
-            for( Iterator itr = this.fixed.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacet f = (IProjectFacet) itr.next();
-                defaultFacets.add( f.getDefaultVersion() );
-            }
-        }
-            
-        IPreset presetToUse = null;
-        
-        for( Iterator itr = this.model.getPresets().iterator(); itr.hasNext(); )
-        {
-            final IPreset preset = (IPreset) itr.next();
-            
-            if( preset.getProjectFacets().equals( defaultFacets ) )
-            {
-                presetToUse = preset;
-                break;
-            }
-        }
-        
-        if( presetToUse == null )
-        {
-            setSelectedProjectFacets( defaultFacets );
-            this.model.setSelectedPreset( null );
-        }
-        else
-        {
-            selectPreset( presetToUse );
-        }
-    }
-    
-    public Set getSelectedProjectFacets()
-    {
-        final HashSet set = new HashSet();
-
-        for( int i = 0, n = this.data.size(); i < n; i++ )
-        {
-            final TableRowData trd = (TableRowData) this.data.get( i );
-
-            if( trd.isSelected() )
-            {
-                set.add( trd.getCurrentVersion() );
-            }
-        }
-
-        return set;
-    }
-
-    public void setSelectedProjectFacets( final Set sel )
-    {
-        final List toCheck = new ArrayList();
-        final List needsCategoryRefresh = new ArrayList();
-        
-        for( Iterator itr = sel.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv 
-                = (IProjectFacetVersion) itr.next();
-            
-            final IProjectFacet f = fv.getProjectFacet();
-            final TableRowData trd = findTableRowData( f, true );
-
-            if( fv.getPluginId() == null )
-            {
-                trd.addUnknownVersion( fv );
-            }
-            
-            trd.setSelected( true );
-            trd.setCurrentVersion( fv );
-            
-            toCheck.add( trd );
-            needsCategoryRefresh.add( trd );
-        }
-        
-        for( Iterator itr = this.data.iterator(); itr.hasNext(); )
-        {
-            final TableRowData trd = (TableRowData) itr.next();
-
-            if( trd.isSelected() && ! sel.contains( trd.getCurrentVersion() ) )
-            {
-                trd.setSelected( false );
-                needsCategoryRefresh.add( trd );
-            }
-        }
-
-        refresh();
-        
-        this.tree.setCheckedElements( toCheck.toArray() );
-        
-        for( Iterator itr = needsCategoryRefresh.iterator(); itr.hasNext(); )
-        {
-            refreshCategoryState( (TableRowData) itr.next() );
-        }
-        
-        updateValidationDisplay();
-    }
-    
-    public void selectPreset( final IPreset preset )
-    {
-        if( preset != null )
-        {
-            if( ! this.model.getPresets().contains( preset ) )
-            {
-                IProjectFacetVersion problemFacet = null;
-                
-                for( Iterator itr = preset.getProjectFacets().iterator();
-                     itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fv
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( isFilteredOut( fv ) )
-                    {
-                        problemFacet = fv;
-                        break;
-                    }
-                }
-                
-                final String msg
-                    = Resources.bind( Resources.couldNotSelectPreset, 
-                                      preset.getLabel(), 
-                                      problemFacet.getProjectFacet().getLabel(),
-                                      problemFacet.getVersionString() );
-                
-                FacetUiPlugin.log( msg );
-            }
-            else
-            {
-                this.model.setSelectedPreset( preset );
-            }
-        }
-    }
-
-    public void setFixedProjectFacets( final Set fixed )
-    {
-        this.fixed.clear();
-        
-        for( int i = 0, n = this.data.size(); i < n; i++ )
-        {
-            ( (TableRowData) this.data.get( i ) ).setFixed( false );
-        }
-
-        for( Iterator itr = fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            final TableRowData trd = findTableRowData( f, true );
-            
-            this.fixed.add( f );
-            trd.setFixed( true );
-            trd.setSelected( true );
-            this.tree.setChecked( trd, true );
-        }
-        
-        if( this.conflictingFilter != null )
-        {
-            this.filters.remove( this.conflictingFilter );
-        }
-        
-        this.conflictingFilter = new ConflictingFacetsFilter( fixed );
-        this.filters.add( this.conflictingFilter );
-
-        refresh();
-        updateValidationDisplay();
-    }
-    
-    public void addFilter( final IFilter filter )
-    {
-        this.filters.add( filter );
-        
-        refresh();
-    }
-
-    public void removeFilter( final IFilter filter )
-    {
-        this.filters.remove( filter );
-        
-        refresh();
-    }
-    
-    public boolean setFocus()
-    {
-        return this.tree.getTree().setFocus();
-    }
-    
-    public void addProjectFacetsListener( final Listener listener )
-    {
-        this.listeners.add( listener );
-    }
-
-    public void removeProjectFacetsListener( final Listener listener )
-    {
-        this.listeners.remove( listener );
-    }
-
-    private void notifyProjectFacetsListeners()
-    {
-        for( int i = 0, n = this.listeners.size(); i < n; i++ )
-        {
-            ( (Listener) this.listeners.get( i ) ).handleEvent( null );
-        }
-    }
-    
-    public void addSelectionChangedListener( final ISelectionChangedListener listener )
-    {
-        this.selectionListeners.add( listener );
-    }
-
-    public void removeSelectionChangedListener( final ISelectionChangedListener listener )
-    {
-        this.selectionListeners.remove( listener );
-    }
-
-    public ISelection getSelection()
-    {
-        final IStructuredSelection ss
-            = (IStructuredSelection) this.tree.getSelection();
-
-        Object sel = ss.getFirstElement();
-
-        if( sel instanceof TableRowData )
-        {
-            sel = ( (TableRowData) sel ).getProjectFacet();
-        }
-
-        if( sel == null )
-        {
-            return new StructuredSelection( new Object[ 0 ] );
-        }
-        else
-        {
-            return new StructuredSelection( sel );
-        }
-    }
-
-    public void setSelection( final ISelection selection )
-    {
-        final IStructuredSelection ss = (IStructuredSelection) selection;
-        final Object sel = ss.getFirstElement();
-        final ISelection ts;
-
-        if( sel == null )
-        {
-            ts = new StructuredSelection( new Object[ 0 ] );
-        }
-        else
-        {
-            if( sel instanceof IProjectFacet )
-            {
-                final TableRowData trd
-                    = findTableRowData( (IProjectFacet) sel );
-
-                ts = new StructuredSelection( trd );
-            }
-            else
-            {
-                ts = selection;
-            }
-        }
-
-        this.tree.setSelection( ts );
-    }
-
-    public void notifySelectionChangedListeners()
-    {
-        final SelectionChangedEvent event
-            = new SelectionChangedEvent( this, getSelection() );
-
-        for( int i = 0, n = this.selectionListeners.size(); i < n; i++ )
-        {
-            final ISelectionChangedListener listener
-                = (ISelectionChangedListener) this.selectionListeners.get( i );
-
-            listener.selectionChanged( event );
-        }
-    }
-
-    private void selectionChanged( final SelectionChangedEvent event )
-    {
-        final Object selection
-            = ( (IStructuredSelection) event.getSelection() ).getFirstElement();
-
-        if( selection != this.oldSelection )
-        {
-            this.oldSelection = selection;
-            refreshVersionsDropDown();
-            notifySelectionChangedListeners();
-        }
-    }
-    
-    private void checkStateChanged( final CheckStateChangedEvent event )
-    {
-        final Object el = event.getElement();
-        final boolean checked = event.getChecked();
-
-        if( el instanceof TableRowData )
-        {
-            final TableRowData trd = (TableRowData) el;
-            
-            if( trd.isFixed() )
-            {
-                if( ! checked )
-                {
-                    this.tree.setChecked( el, true );
-                    
-                    final String msg 
-                        = NLS.bind( Resources.couldNotDeselectFixedFacetMessage,
-                                    trd.getProjectFacet().getLabel() );
-                    
-                    final MessageBox msgbox = new MessageBox( getShell() );
-                    msgbox.setText( Resources.couldNotDeselectFixedFacetTitle );
-                    msgbox.setMessage( msg );
-                    msgbox.open();
-                }
-                
-                return;
-            }
-            
-            trd.setSelected( checked );
-            refreshCategoryState( trd );
-        }
-        else
-        {
-            final ContentProvider cp
-                = (ContentProvider) this.tree.getContentProvider();
-
-            final Object[] children = cp.getChildren( el );
-            int selected = 0;
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                final TableRowData trd = (TableRowData) children[ i ];
-                
-                if( ! trd.isFixed() )
-                {
-                    trd.setSelected( checked );
-                    this.tree.setChecked( trd, checked );
-                }
-                
-                if( trd.isSelected() )
-                {
-                    selected++;
-                }
-            }
-            
-            if( selected == 0 || selected == children.length )
-            {
-                this.tree.setGrayed( el, false );
-            }
-            else
-            {
-                this.tree.setGrayChecked( el, true );
-            }
-        }
-
-        updateValidationDisplay();
-        
-        this.model.setSelectedPreset( null );
-    }
-
-    private void updateValidationDisplay()
-    {
-        final Set sel = getSelectedProjectFacets();
-        final Set old = new HashSet( this.actions );
-        this.actions.clear();
-        
-        // What has been removed?
-        
-        for( Iterator itr = this.base.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion f
-                = (IProjectFacetVersion) itr.next();
-            
-            if( ! sel.contains( f ) )
-            {
-                this.actions.add( createAction( old, Action.Type.UNINSTALL, f ) );
-            }
-        }
-
-        // What has been added?
-        
-        for( Iterator itr = sel.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion f 
-                = (IProjectFacetVersion) itr.next();
-            
-            if( ! this.base.contains( f ) )
-            {
-                this.actions.add( createAction( old, Action.Type.INSTALL, f ) );
-            }
-        }
-        
-        // Coalesce uninstall/install pairs into version change actions, if
-        // possible.
-        
-        final HashSet toadd = new HashSet();
-        final HashSet toremove = new HashSet();
-        
-        for( Iterator itr1 = this.actions.iterator(); itr1.hasNext(); )
-        {
-            final Action action1 = (Action) itr1.next();
-            
-            for( Iterator itr2 = this.actions.iterator(); itr2.hasNext(); )
-            {
-                final Action action2 = (Action) itr2.next();
-                
-                if( action1.getType() == Action.Type.UNINSTALL &&
-                    action2.getType() == Action.Type.INSTALL )
-                {
-                    final IProjectFacetVersion f1 = action1.getProjectFacetVersion();
-                    final IProjectFacetVersion f2 = action2.getProjectFacetVersion();
-                    
-                    if( f1.getProjectFacet() == f2.getProjectFacet() )
-                    {
-                        toremove.add( action1 );
-                        toremove.add( action2 );
-                        toadd.add( createAction( old, Action.Type.VERSION_CHANGE, f2 ) );
-                    }
-                }
-            }
-        }
-        
-        this.actions.removeAll( toremove );
-        this.actions.addAll( toadd );
-        
-        this.problems = calculateProblems();
-        this.problemsView.refresh();
-
-        if( this.problems.isOK() )
-        {
-            if( this.sform2.getMaximizedControl() == null )
-            {
-                this.sform2.setMaximizedControl( this.tree.getTree() );
-            }
-        }
-        else
-        {
-            if( this.sform2.getMaximizedControl() != null )
-            {
-                this.sform2.setMaximizedControl( null );
-            }
-        }
-
-        notifyProjectFacetsListeners();
-    }
-    
-    private IStatus calculateProblems()
-    {
-        IStatus st = ProjectFacetsManager.check( this.base, this.actions );
-        
-        for( Iterator itr = this.base.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-            final IProjectFacet f = fv.getProjectFacet();
-            
-            String msg = null; 
-            
-            if( f.getPluginId() == null )
-            {
-                msg = NLS.bind( Resources.facetNotFound, f.getId() );
-            }
-            else if( fv.getPluginId() == null )
-            {
-                msg = NLS.bind( Resources.facetVersionNotFound, f.getId(), 
-                                fv.getVersionString() );
-            }
-            
-            if( msg != null )
-            {
-                final IStatus sub
-                    = new Status( IStatus.WARNING, FacetUiPlugin.PLUGIN_ID, 0,
-                                  msg, null );
-                
-                final IStatus[] existing = st.getChildren();
-                final IStatus[] modified = new IStatus[ existing.length + 1 ];
-                System.arraycopy( existing, 0, modified, 0, existing.length );
-                modified[ existing.length ] = sub;
-                
-                st = new MultiStatus( FacetUiPlugin.PLUGIN_ID, 0, modified, 
-                                      "", null ); //$NON-NLS-1$
-            }
-        }
-        
-        return st;
-    }
-    
-    private void refresh()
-    {
-        // Somehow the checked state of nested items gets lost when a refresh
-        // is performed, so we have to do this workaround.
-        
-        final Object[] checked = this.tree.getCheckedElements();
-        this.tree.refresh();
-        this.tree.setCheckedElements( checked );
-        refreshPresetsCombo();
-        refreshVersionsDropDown();
-    }
-    
-    public void syncWithPresetsModel( final Combo combo )
-    {
-        final List sortedPresets = new ArrayList();
-        
-        // Contents : model -> view
-
-        final IDataModelListener modelToViewContentsListener = new IDataModelListener()
-        {
-            public void handleEvent()
-            {
-                synchronized( sortedPresets )
-                {
-                    sortedPresets.clear();
-                    sortedPresets.addAll( FacetsSelectionPanel.this.model.getPresets() );
-                    
-                    Collections.sort
-                    (
-                        sortedPresets,
-                        new Comparator()
-                        {
-                            public int compare( final Object p1, 
-                                                final Object p2 ) 
-                            {
-                                if( p1 == p2 )
-                                {
-                                    return 0;
-                                }
-                                else
-                                {
-                                    final String label1 = ( (IPreset) p1 ).getLabel();
-                                    final String label2 = ( (IPreset) p2 ).getLabel();
-                                    
-                                    return label1.compareTo( label2 );
-                                }
-                            }
-                        }
-                    );
-                    
-                    final IPreset selectedPreset 
-                        = FacetsSelectionPanel.this.model.getSelectedPreset();
-                    
-                    combo.removeAll();
-                    combo.add( Resources.customPreset );
-                    
-                    if( selectedPreset == null )
-                    {
-                        combo.select( 0 );
-                    }
-                    
-                    for( Iterator itr = sortedPresets.iterator(); itr.hasNext(); )
-                    {
-                        final IPreset preset = (IPreset) itr.next();
-
-                        combo.add( preset.getLabel() );
-                        
-                        if( preset == selectedPreset )
-                        {
-                            combo.select( combo.getItemCount() - 1 );
-                        }
-                    }
-                }
-            }
-        };
-
-        this.model.addListener( AddRemoveFacetsDataModel.EVENT_SELECTABLE_PRESETS_CHANGED,
-                                modelToViewContentsListener );
-        
-        // Selection : model -> view
-        
-        this.model.addListener
-        ( 
-            AddRemoveFacetsDataModel.EVENT_SELECTED_PRESET_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    synchronized( sortedPresets )
-                    {
-                        final IPreset preset
-                            = FacetsSelectionPanel.this.model.getSelectedPreset();
-                        
-                        final int index;
-                        
-                        if( preset == null )
-                        {
-                            index = -1;
-                        }
-                        else
-                        {
-                            index = sortedPresets.indexOf( preset );
-                        }
-                        
-                        combo.select( index + 1 );
-                        
-                        handlePresetSelected();
-                    }
-                }
-            }
-        );
-        
-        // Selection : view -> model
-        
-        combo.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    synchronized( sortedPresets )
-                    {
-                        final int selection = combo.getSelectionIndex();
-                        final IPreset preset;
-                        
-                        if( selection == 0 )
-                        {
-                            preset = null;
-                        }
-                        else
-                        {
-                            preset = (IPreset) sortedPresets.get( selection - 1 );
-                        }
-                        
-                        FacetsSelectionPanel.this.model.setSelectedPreset( preset );
-                    }
-                }
-            }
-        );
-        
-        // Trigger initial UI population.
-        
-        modelToViewContentsListener.handleEvent();
-    }
-    
-    private void refreshPresetsCombo()
-    {
-        final Set presets = new HashSet();
-        
-        for( Iterator itr1 = ProjectFacetsManager.getPresets().iterator(); 
-             itr1.hasNext(); )
-        {
-            final IPreset preset = (IPreset) itr1.next();
-            final Set facets = preset.getProjectFacets();
-            boolean applicable = true;
-            
-            // All of the facets listed in the preset and their versions
-            // must be selectable.
-            
-            for( Iterator itr2 = facets.iterator(); itr2.hasNext(); )
-            {
-                final IProjectFacetVersion fv
-                    = (IProjectFacetVersion) itr2.next();
-                
-                final IProjectFacet f = fv.getProjectFacet();
-                final TableRowData trd = findTableRowData( f );
-                
-                if( ! trd.getVersions().contains( fv ) )
-                {
-                    applicable = false;
-                    break;
-                }
-            }
-            
-            // The preset must span across all of the fixed facets.
-            
-            for( Iterator itr2 = this.fixed.iterator(); itr2.hasNext(); )
-            {
-                final IProjectFacet f = (IProjectFacet) itr2.next();
-                boolean found = false;
-                
-                for( Iterator itr3 = f.getVersions().iterator(); itr3.hasNext(); )
-                {
-                    if( facets.contains( itr3.next() ) )
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-                
-                if( ! found )
-                {
-                    applicable = false;
-                    break;
-                }
-            }
-            
-            if( applicable )
-            {
-                presets.add( preset );
-            }
-        }
-        
-        this.model.setPresets( presets );
-        
-        refreshPresetsButtons();
-    }
-    
-    private void refreshPresetsButtons()
-    {
-        final IPreset preset = this.model.getSelectedPreset();
-        
-        if( preset == null )
-        {
-            this.savePresetButton.setEnabled( true );
-            this.deletePresetButton.setEnabled( false );
-        }
-        else
-        {
-            this.savePresetButton.setEnabled( false );
-            this.deletePresetButton.setEnabled( preset.isUserDefined() );
-        }
-    }
-    
-    private void refreshCategoryState( final TableRowData trd )
-    {
-        final ICategory category = trd.getProjectFacet().getCategory();
-        
-        if( category != null )
-        {
-            int selected = 0;
-    
-            for( Iterator itr = category.getProjectFacets().iterator(); 
-                 itr.hasNext(); )
-            {
-                final TableRowData ctrd 
-                    = findTableRowData( (IProjectFacet) itr.next() );
-    
-                if( ctrd.isSelected() )
-                {
-                    selected++;
-                }
-            }
-    
-            if( selected == 0 )
-            {
-                this.tree.setChecked( category, false );
-                this.tree.setGrayed( category, false );
-            }
-            else if( selected == category.getProjectFacets().size() )
-            {
-                this.tree.setChecked( category, true );
-                this.tree.setGrayed( category, false );
-            }
-            else
-            {
-                this.tree.setGrayChecked( category, true );
-            }
-        }
-    }
-    
-    private void refreshVersionsDropDown()
-    {
-        final TableRowData trd = getSelectedTableRowData();
-        
-        if( trd == null )
-        {
-            return;
-        }
-        
-        final List versions = trd.getVersions();
-        final String[] verstrs = new String[ versions.size() ];
-
-        for( int i = 0, n = versions.size(); i < n; i++ )
-        {
-            final IProjectFacetVersion fv
-                = (IProjectFacetVersion) versions.get( i );
-            
-            verstrs[ i ] = fv.getVersionString(); 
-        }
-
-        this.ceditor.setItems( verstrs );
-
-        for( int i = 0, n = versions.size(); i < n; i++ )
-        {
-            if( versions.get( i ) == trd.getCurrentVersion() )
-            {
-                this.ceditor.setValue( new Integer( i ) );
-                break;
-            }
-        }
-    }
-
-    private TableRowData getSelectedTableRowData()
-    {
-        final IStructuredSelection ssel 
-            = (IStructuredSelection) this.tree.getSelection();
-        
-        if( ssel != null && ! ssel.isEmpty() )
-        {
-            final Object obj = ssel.getFirstElement();
-            
-            if( obj instanceof TableRowData )
-            {
-                return (TableRowData) obj;
-            }
-        }
-
-        return null;
-    }
-    
-    private boolean isFilteredOut( final IProjectFacetVersion fv )
-    {
-        for( Iterator itr = FacetsSelectionPanel.this.filters.iterator();
-             itr.hasNext(); )
-        {
-            if( ! ( (IFilter) itr.next() ).check( fv ) )
-            {
-                return true;
-            }
-        }
-
-        return false;
-    }
-    
-    private TableRowData findTableRowData( final IProjectFacet f )
-    {
-        return findTableRowData( f, false );
-    }
-
-    private TableRowData findTableRowData( final IProjectFacet f,
-                                           final boolean createIfNecessary )
-    {
-        for( int i = 0, n = this.data.size(); i < n; i++ )
-        {
-            final TableRowData trd = (TableRowData) this.data.get( i );
-
-            if( trd.getProjectFacet() == f )
-            {
-                return trd;
-            }
-        }
-        
-        if( createIfNecessary )
-        {
-            try
-            {
-                final TableRowData trd = new TableRowData( f );
-                this.data.add( trd );
-                return trd;
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-
-        throw new IllegalStateException();
-    }
-
-    private void handleMouseDownEvent( final Event event )
-    {
-        final ArrayList items = getAllTreeItems();
-        
-        TreeItem onItem = null;
-
-        for( int i = 0, n = items.size(); i < n; i++ )
-        {
-            final TreeItem item = (TreeItem) items.get( i );
-            
-            if( item.getBounds( 0 ).contains( event.x, event.y ) )
-            {
-                onItem = item;
-                break;
-            }
-
-            if( item.getBounds( 1 ).contains( event.x, event.y ) )
-            {
-                this.tree.getTree().setSelection( new TreeItem[] { item } );
-                this.tree.editElement( item.getData(), 1 );
-                break;
-            }
-        }
-        
-        if( onItem != null && onItem.getData() instanceof TableRowData )
-        {
-            final TableRowData trd = (TableRowData) onItem.getData();
-            final IProjectFacetVersion fv = trd.getCurrentVersion();
-            final IConstraint c = fv.getConstraint();
-            
-            if( c.getType() == IConstraint.Type.AND && 
-                c.getOperands().size() == 0 )
-            {
-                this.popupMenuConstraints.setEnabled( false );
-            }
-            else
-            {
-                this.popupMenuConstraints.setEnabled( true );
-            }
-            
-            this.tree.getTree().setMenu( this.popupMenu );
-        }
-        else
-        {
-            this.tree.getTree().setMenu( null );
-        }
-    }
-    
-    private void handleShowConstraints()
-    {
-        final TreeItem[] items = this.tree.getTree().getSelection();
-        if( items.length != 1 ) throw new IllegalStateException();
-        final TreeItem item = items[ 0 ];
-        final TableRowData trd = (TableRowData) item.getData();
-        final IProjectFacetVersion fv = trd.getCurrentVersion();
-        
-        final Rectangle bounds = item.getBounds();
-        
-        Point location = new Point( bounds.x, bounds.y + bounds.height );
-        location = this.tree.getTree().toDisplay( location );
-        
-        final ConstraintDisplayDialog dialog 
-            = new ConstraintDisplayDialog( getShell(), location,
-                                           fv.getConstraint() );
-
-        dialog.open();
-    }
-    
-    private void handlePresetSelected()
-    {
-        final IPreset preset = this.model.getSelectedPreset();
-        
-        if( preset != null )
-        {
-            final Set selected = new HashSet();
-            
-            for( Iterator itr = preset.getProjectFacets().iterator(); 
-                 itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                final TableRowData trd 
-                    = findTableRowData( fv.getProjectFacet() );
-                
-                if( ! trd.isSelected() )
-                {
-                    this.tree.setChecked( trd, true );
-                    trd.setSelected( true );
-                    refreshCategoryState( trd );
-                }
-                
-                if( trd.getCurrentVersion() != fv )
-                {
-                    trd.setCurrentVersion( fv );
-                    this.tree.update( trd, null );
-                }
-                
-                selected.add( trd );
-            }
-
-            for( Iterator itr = this.data.iterator(); itr.hasNext(); )
-            {
-                final TableRowData trd = (TableRowData) itr.next();
-                
-                if( ! selected.contains( trd ) )
-                {
-                    this.tree.setChecked( trd, false );
-                    trd.setSelected( false );
-                    refreshCategoryState( trd );
-                }
-            }
-
-            updateValidationDisplay();
-        }
-        
-        refreshPresetsButtons();
-    }
-    
-    private void handleSavePreset()
-    {
-        final Set facets = getSelectedProjectFacets();
-        
-        final IPreset preset
-            = SavePresetDialog.showDialog( getShell(), facets );
-        
-        if( preset != null )
-        {
-            refreshPresetsCombo();
-            this.model.setSelectedPreset( preset );
-        }
-    }
-    
-    private void handleDeletePreset()
-    {
-        final IPreset preset = this.model.getSelectedPreset();
-        ProjectFacetsManager.deletePreset( preset );
-        refreshPresetsCombo();
-    }
-    
-    private void handleShowHideRuntimes()
-    {
-        if( this.sform1.getMaximizedControl() == null )
-        {
-            this.sform1.setMaximizedControl( this.sform2 );
-            this.showHideRuntimesButton.setText( Resources.showRuntimes );
-        }
-        else
-        {
-            this.sform1.setMaximizedControl( null );
-            this.showHideRuntimesButton.setText( Resources.hideRuntimes );
-        }
-    }
-    
-    private ArrayList getAllTreeItems()
-    {
-        final ArrayList result = new ArrayList();
-        getAllTreeItems( this.tree.getTree().getItems(), result );
-        return result;
-    }
-
-    private static void getAllTreeItems( final TreeItem[] items,
-                                         final ArrayList result)
-    {
-        for( int i = 0; i < items.length; i++ )
-        {
-            final TreeItem item = items[ i ];
-            result.add( item );
-
-            getAllTreeItems( item.getItems(), result );
-        }
-    }
-    
-    private final class TableRowData
-    {
-        private IProjectFacet f;
-        private List versions;
-        private IProjectFacetVersion current;
-        private boolean isSelected;
-        private boolean isFixed;
-
-        public TableRowData( final IProjectFacet f )
-        
-            throws CoreException
-            
-        {
-            this.f = f;
-            this.versions = f.getSortedVersions( false );
-            this.current = f.getDefaultVersion();
-            this.isSelected = false;
-            this.isFixed = false;
-        }
-
-        public IProjectFacet getProjectFacet()
-        {
-            return this.f;
-        }
-
-        public List getVersions()
-        {
-            final ArrayList list = new ArrayList();
-
-            for( Iterator itr = this.versions.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-
-                if( ! isFilteredOut( fv ) )
-                {
-                    list.add( fv );
-                }
-            }
-
-            return list;
-        }
-        
-        public void addUnknownVersion( final IProjectFacetVersion fv )
-        {
-            try
-            {
-                final Comparator c = this.f.getVersionComparator();
-                boolean added = false;
-                
-                for( int i = 0, n = this.versions.size(); i < n; i++ )
-                {
-                    final IProjectFacetVersion x 
-                        = (IProjectFacetVersion) this.versions.get( i );
-                    
-                    if( c.compare( x.getVersionString(), fv.getVersionString() ) < 0 )
-                    {
-                        this.versions.add( i, fv );
-                        added = true;
-                        break;
-                    }
-                }
-                
-                if( ! added )
-                {
-                    this.versions.add( fv );
-                }
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-
-        public IProjectFacetVersion getCurrentVersion()
-        {
-            if( isFilteredOut( this.current ) )
-            {
-                this.current = (IProjectFacetVersion) getVersions().get( 0 );
-            }
-
-            return this.current;
-        }
-
-        public void setCurrentVersion( final IProjectFacetVersion fv )
-        {
-            this.current = fv;
-        }
-
-        public boolean isSelected()
-        {
-            if( getVersions().isEmpty() )
-            {
-                this.isSelected = false;
-            }
-
-            return this.isSelected;
-        }
-
-        public void setSelected( final boolean isSelected )
-        {
-            this.isSelected = isSelected;
-        }
-
-        public boolean isFixed()
-        {
-            return this.isFixed;
-        }
-
-        public void setFixed( final boolean isFixed )
-        {
-            this.isFixed = isFixed;
-        }
-
-        public boolean isVisible()
-        {
-            return ! getVersions().isEmpty();
-        }
-        
-        public String toString()
-        {
-            return this.current.toString();
-        }
-    }
-
-    private final class ContentProvider
-
-        implements ITreeContentProvider
-
-    {
-        public Object[] getElements( final Object element )
-        {
-            final ArrayList list = new ArrayList();
-            final Set categories = ProjectFacetsManager.getCategories();
-
-            for( Iterator itr1 = categories.iterator(); itr1.hasNext(); )
-            {
-                boolean visible = false;
-                
-                final ICategory cat = (ICategory) itr1.next();
-
-                for( Iterator itr2 = cat.getProjectFacets().iterator(); 
-                     itr2.hasNext(); )
-                {
-                    final IProjectFacet f 
-                        = (IProjectFacet) itr2.next();
-                    
-                    if( findTableRowData( f ).isVisible() )
-                    {
-                        visible = true;
-                        break;
-                    }
-                }
-
-                if( visible )
-                {
-                    list.add( cat );
-                }
-            }
-
-            for( int i = 0; i < FacetsSelectionPanel.this.data.size(); i++ )
-            {
-                final TableRowData trd
-                    = (TableRowData) FacetsSelectionPanel.this.data.get( i );
-
-                if( trd.getProjectFacet().getCategory() == null && trd.isVisible() )
-                {
-                    list.add( trd );
-                }
-            }
-
-            return list.toArray();
-        }
-
-        public Object[] getChildren( final Object parent )
-        {
-            if( parent instanceof ICategory )
-            {
-                final ICategory category = (ICategory) parent;
-                
-                final ArrayList trds = new ArrayList();
-
-                for( Iterator itr = category.getProjectFacets().iterator();
-                     itr.hasNext(); )
-                {
-                    final TableRowData trd 
-                        = findTableRowData( (IProjectFacet) itr.next() );
-
-                    if( trd.isVisible() )
-                    {
-                        trds.add( trd );
-                    }
-                }
-
-                return trds.toArray();
-            }
-            else
-            {
-                return new Object[ 0 ];
-            }
-        }
-
-        public Object getParent( final Object element )
-        {
-            if( element instanceof TableRowData )
-            {
-                final IProjectFacet f 
-                    = ( (TableRowData) element ).getProjectFacet();
-
-                return f.getCategory();
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        public boolean hasChildren( final Object element )
-        {
-            return ( element instanceof ICategory ) &&
-                   ! ( (ICategory) element ).getProjectFacets().isEmpty();
-        }
-
-        public void dispose() { }
-
-        public void inputChanged( final Viewer viewer,
-                                  final Object oldObject,
-                                  final Object newObject ) {}
-    }
-
-    private final class LabelProvider
-
-        implements ITableLabelProvider
-
-    {
-        private ImageRegistry imageRegistry = new ImageRegistry();
-        
-        public String getColumnText( final Object element,
-                                     final int column )
-        {
-            if( element instanceof ICategory )
-            {
-                if( column == 0 )
-                {
-                    return ( (ICategory) element ).getLabel();
-                }
-                else
-                {
-                    return ""; //$NON-NLS-1$
-                }
-            }
-            else
-            {
-                final TableRowData trd = (TableRowData) element;
-
-                switch( column )
-                {
-                    case 0:
-                    {
-                        return trd.getProjectFacet().getLabel();
-                    }
-                    case 1:
-                    {
-                        final String vstr
-                            = trd.getCurrentVersion().getVersionString();
-                        
-                        return trd.getVersions().size() == 1 
-                               ? vstr : vstr + " ..."; //$NON-NLS-1$
-                    }
-                    default:
-                    {
-                        throw new IllegalStateException();
-                    }
-                }
-            }
-        }
-
-        public Image getColumnImage( final Object element,
-                                     final int column )
-        {
-            if( column != 0 )
-            {
-                return null;
-            }
-            
-            String id;
-            IAdaptable obj;
-            boolean isFixed = false;
-
-            if( element instanceof TableRowData )
-            {
-                final TableRowData trd = (TableRowData) element;
-                final IProjectFacet f = trd.getProjectFacet();
-
-                isFixed = trd.isFixed;
-                id = ( isFixed ? "F:" : "f:" ) + f.getId(); //$NON-NLS-1$ //$NON-NLS-2$
-                obj = f;
-            }
-            else
-            {
-                id = "c:" + ( (ICategory) element ).getId(); //$NON-NLS-1$
-                obj = (IAdaptable) element;
-            }
-            
-            Image image = this.imageRegistry.get( id );
-            
-            if( image == null )
-            {
-                final IDecorationsProvider decprov
-                    = (IDecorationsProvider) obj.getAdapter( IDecorationsProvider.class );
-                
-                ImageDescriptor imgdesc = decprov.getIcon();
-                
-                if( isFixed )
-                {
-                    imgdesc = new FixedFacetImageDescriptor( imgdesc );
-                }
-                
-                this.imageRegistry.put( id, imgdesc );
-                image = this.imageRegistry.get( id );
-            }
-
-            return image;
-        }
-
-        public void dispose()
-        {
-            this.imageRegistry.dispose();
-        }
-
-        public boolean isLabelProperty( final Object obj,
-                                        final String s )
-        {
-            return false;
-        }
-        
-        public void addListener( final ILabelProviderListener listener ) {}
-        public void removeListener( ILabelProviderListener listener ) {}
-    }
-
-    private static final class FixedFacetImageDescriptor 
-    
-        extends CompositeImageDescriptor 
-        
-    {
-        private static final String OVERLAY_IMG_LOCATION
-            = "images/lock.gif"; //$NON-NLS-1$
-        
-        private static final ImageData OVERLAY
-            = FacetUiPlugin.getImageDescriptor( OVERLAY_IMG_LOCATION ).getImageData();
-        
-        private final ImageData base;
-        private final Point size;
-        
-        public FixedFacetImageDescriptor( final ImageDescriptor base ) 
-        {
-            this.base = base.getImageData();
-            this.size = new Point( this.base.width, this.base.height ); 
-        }
-
-        protected void drawCompositeImage( final int width, 
-                                           final int height ) 
-        {
-            drawImage( this.base, 0, 0 );
-            drawImage( OVERLAY, 0, height - OVERLAY.height );
-        }
-
-        protected Point getSize()
-        {
-            return this.size;
-        }
-    }
-    
-    private final class CellModifier
-
-        implements ICellModifier
-
-    {
-        public Object getValue( final Object element,
-                                final String property )
-        {
-            final TableRowData trd = (TableRowData) element;
-
-            if( property.equals( VERSION_COLUMN ) )
-            {
-                final List versions = trd.getVersions();
-
-                for( int i = 0, n = versions.size(); i < n; i++ )
-                {
-                    if( versions.get( i ) == trd.getCurrentVersion() )
-                    {
-                        return new Integer( i );
-                    }
-                }
-
-                return new IllegalStateException();
-            }
-            else
-            {
-                throw new IllegalStateException();
-            }
-        }
-
-        public boolean canModify( final Object element,
-                                  final String property )
-        {
-            return property.equals( VERSION_COLUMN ) &&
-                   element instanceof TableRowData &&
-                   ( (TableRowData) element ).getVersions().size() > 1;
-        }
-
-        public void modify( final Object element,
-                            final String property,
-                            final Object value )
-        {
-            final TreeItem item = (TreeItem) element;
-            final TableRowData trd = (TableRowData) item.getData();
-
-            if( property.equals( VERSION_COLUMN ) )
-            {
-                final int index = ( (Integer) value ).intValue();
-
-                if( index != -1 )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) trd.getVersions().get( index );
-                    
-                    if( trd.getCurrentVersion() != fv )
-                    {
-                        trd.setCurrentVersion( fv );
-                        FacetsSelectionPanel.this.tree.update( trd, null );
-                        
-                        if( trd.isSelected() )
-                        {
-                            FacetsSelectionPanel.this.model.setSelectedPreset( null );
-                        }
-    
-                        updateValidationDisplay();
-                    }
-                }
-            }
-            else
-            {
-                throw new IllegalStateException();
-            }
-        }
-    }
-
-    private static final class Sorter
-
-        extends ViewerSorter
-
-    {
-        public int compare( final Viewer viewer,
-                            final Object a,
-                            final Object b )
-        {
-            return getLabel( a ).compareToIgnoreCase( getLabel( b ) );
-        }
-
-        private static String getLabel( final Object obj )
-        {
-            if( obj instanceof TableRowData )
-            {
-                return ( (TableRowData) obj ).getProjectFacet().getLabel();
-            }
-            else
-            {
-                return ( (ICategory) obj ).getLabel();
-            }
-        }
-    }
-
-    private final class ProblemsContentProvider
-
-        implements IStructuredContentProvider
-
-    {
-        public Object[] getElements( final Object element )
-        {
-            return FacetsSelectionPanel.this.problems.getChildren();
-        }
-
-        public void dispose() { }
-
-        public void inputChanged( final Viewer viewer,
-                                  final Object oldObject,
-                                  final Object newObject ) {}
-    }
-
-    private final class ProblemsLabelProvider
-
-        implements ITableLabelProvider
-
-    {
-        private Image errorImage;
-        private Image warningImage;
-
-        public ProblemsLabelProvider()
-        {
-            final Bundle bundle = Platform.getBundle( FacetUiPlugin.PLUGIN_ID );
-            
-            URL url = bundle.getEntry( "images/error.gif" ); //$NON-NLS-1$
-
-            this.errorImage
-                = ImageDescriptor.createFromURL( url ).createImage();
-
-            url = bundle.getEntry( "images/warning.gif" ); //$NON-NLS-1$
-
-            this.warningImage
-                = ImageDescriptor.createFromURL( url ).createImage();
-        }
-
-        public String getColumnText( final Object element,
-                                     final int column )
-        {
-            return ( (IStatus) element ).getMessage();
-        }
-
-        public Image getColumnImage( final Object element,
-                                     final int column )
-        {
-            final IStatus st = (IStatus) element;
-            
-            if( st.getSeverity() == IStatus.ERROR )
-            {
-                return this.errorImage;
-            }
-            else
-            {
-                return this.warningImage;
-            }
-        }
-
-        public boolean isLabelProperty( final Object obj,
-                                        final String s )
-        {
-            return false;
-        }
-
-        public void dispose()
-        {
-            this.errorImage.dispose();
-            this.warningImage.dispose();
-        }
-
-        public void addListener( final ILabelProviderListener listener ) {}
-        public void removeListener( ILabelProviderListener listener ) {}
-    }
-    
-    private static final GridData gdfill()
-    {
-        return new GridData( SWT.FILL, SWT.FILL, true, true );
-    }
-
-    private static final GridData gdhfill()
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-    
-    private static final GridData whint( final GridData gd,
-                                         final int width )
-    {
-        gd.widthHint = width;
-        return gd;
-    }
-    
-    private static final GridData hhint( final GridData gd,
-                                         final int height )
-    {
-        gd.heightHint = height;
-        return gd;
-    }
-    
-    private static final GridData hspan( final GridData gd,
-                                         final int span )
-    {
-        gd.horizontalSpan = span;
-        return gd;
-    }
-    
-    private static final GridData halign( final GridData gd,
-                                          final int alignment )
-    {
-        gd.horizontalAlignment = alignment;
-        return gd;
-    }
-    
-    private static final int getPreferredWidth( final Control control )
-    {
-        return control.computeSize( SWT.DEFAULT, SWT.DEFAULT ).x;
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetsLabel;
-        public static String customPreset;
-        public static String saveButtonLabel;
-        public static String deleteButtonLabel;
-        public static String savePresetDialogTitle;
-        public static String savePresetDialogMessage;
-        public static String facetColumnLabel;
-        public static String versionColumnLabel;
-        public static String showConstraints;
-        public static String showRuntimes;
-        public static String hideRuntimes;
-        public static String couldNotSelectPreset;
-        public static String couldNotDeselectFixedFacetTitle;
-        public static String couldNotDeselectFixedFacetMessage;
-        public static String facetNotFound;
-        public static String facetVersionNotFound;
-        
-        static
-        {
-            initializeMessages( FacetsSelectionPanel.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static String bind( final String msg,
-                                   final Object arg1,
-                                   final Object arg2,
-                                   final Object arg3 )
-        {
-            return NLS.bind( msg, new Object[] { arg1, arg2, arg3 } );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.properties
deleted file mode 100644
index 5415199..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-presetsLabel = Configurations:\ 
-customPreset = <custom>
-saveButtonLabel = &Save
-deleteButtonLabel = &Delete
-savePresetDialogTitle = Save Configuration
-savePresetDialogMessage = Enter the name for the configuration.
-facetColumnLabel = Project Facet
-versionColumnLabel = Version
-showConstraints = Show Constraints...
-showRuntimes = << Show &Runtimes
-hideRuntimes = Hide &Runtimes >>
-couldNotSelectPreset = Could not select configuration {0}. Required facet {1} {2} is not visible.
-couldNotDeselectFixedFacetTitle = Fixed Project Facet
-couldNotDeselectFixedFacetMessage = Project facet {0} cannot be deselected. It is critical to the proper function of this project.
-facetNotFound = Implementation of project facet {0} could not be found. Functionality will be limited.
-facetVersionNotFound = Implementation of version {1} of project facet {0} could not be found. Functionality will be limited.
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.java
deleted file mode 100644
index 4b07b9b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionDefinition;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsUiManagerImpl 
-{
-    private static final String WIZARD_PAGES_EXTENSION_ID = "wizardPages"; //$NON-NLS-1$
-    private static final String WIZARD_PAGES_EXTENSION_ID_OLD = "wizard"; //$NON-NLS-1$
-    private static final String IMAGES_EXTENSION_ID = "images"; //$NON-NLS-1$
-    
-    private static final String EL_WIZARD_PAGES = "wizard-pages"; //$NON-NLS-1$
-    private static final String EL_PAGE = "page"; //$NON-NLS-1$
-    private static final String EL_IMAGE = "image"; //$NON-NLS-1$
-    private static final String ATTR_PATH = "path"; //$NON-NLS-1$
-    private static final String ATTR_RUNTIME_COMPONENT_TYPE = "runtime-component-type"; //$NON-NLS-1$
-    private static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_ACTION = "action"; //$NON-NLS-1$
-
-    private static final HashMap wizardPages;
-    
-    /**
-     * Maps either IProjectFacet or IRuntimeComponentType to an ImageDescriptor.
-     */
-    
-    private static final HashMap icons = new HashMap();
-    private static ImageDescriptor defaultIcon;
-    
-    static
-    {
-        // Make sure that the core extensions are loaded first.
-        
-        ProjectFacetsManager.getProjectFacets();
-        RuntimeManager.getRuntimeComponentTypes();
-        
-        wizardPages = new HashMap();
-        
-        final Bundle bundle = Platform.getBundle( FacetUiPlugin.PLUGIN_ID );
-        final URL url = bundle.getEntry( "images/unknown.gif" ); //$NON-NLS-1$
-        defaultIcon = ImageDescriptor.createFromURL( url );
-        
-        readWizardPagesExtensions();
-        readWizardPagesExtensionsOld();
-        readImagesExtensions();
-    }
-    
-    private ProjectFacetsUiManagerImpl() {}
-    
-    public static ImageDescriptor getIcon( final Object obj )
-    {
-        final ImageDescriptor imgdesc = (ImageDescriptor) icons.get( obj );
-        return imgdesc != null ? imgdesc : defaultIcon;
-    }
-    
-    /**
-     * @return (element type: {@see IFacetWizardPage})
-     */
-    
-    public static List getWizardPages( final String actionId )
-    {
-        final WizardPagesInfo info = (WizardPagesInfo) wizardPages.get( actionId );
-        
-        if( info != null )
-        {
-            return getWizardPages( info.plugin, info.pages );
-        }
-        
-        return Collections.EMPTY_LIST;
-    }
-
-    /**
-     * @return (element type: {@see IFacetWizardPage})
-     * @deprecated
-     */
-    
-    public static List getWizardPages( final Action.Type actionType,
-                                       final IProjectFacetVersion fv )
-    {
-        if( fv.supports( actionType ) )
-        {
-            try
-            {
-                final IActionDefinition def = ( (ProjectFacetVersion) fv ).getActionDefinition( actionType );
-                return getWizardPages( def.getId() );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-
-        return Collections.EMPTY_LIST;
-    }
-
-    private static List getWizardPages( final String plugin,
-                                        final List clnames )
-    {
-        final List pages = new ArrayList();
-        
-        for( Iterator itr = clnames.iterator(); itr.hasNext(); )
-        {
-            try
-            {
-                pages.add( create( plugin, (String) itr.next() ) );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-        
-        return pages;
-    }
-    
-    private static Object create( final String plugin,
-                                  final String clname )
-    
-        throws CoreException
-        
-    {
-        final Bundle bundle = Platform.getBundle( plugin );
-        
-        try
-        {
-            final Class cl = bundle.loadClass( clname );
-            return cl.newInstance();
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = NLS.bind( Resources.failedToCreate, clname );
-            
-            final IStatus st = FacetUiPlugin.createErrorStatus( msg, e );
-            
-            throw new CoreException( st );
-        }
-    }
-    
-    private static void readWizardPagesExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetUiPlugin.PLUGIN_ID, 
-                                          WIZARD_PAGES_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                final IConfigurationElement config = elements[ j ];
-                final String ename = config.getName();
-                
-                if( ename.equals( EL_WIZARD_PAGES ) )
-                {
-                    final String action = config.getAttribute( ATTR_ACTION );
-
-                    if( action == null )
-                    {
-                        reportMissingAttribute( config, ATTR_ACTION );
-                        return;
-                    }
-                    
-                    final String pluginId = config.getContributor().getName();
-                    
-                    if( ProjectFacetsManager.isActionDefined( action ) )
-                    {
-                        final WizardPagesInfo pagesInfo = new WizardPagesInfo();
-                        
-                        pagesInfo.plugin = pluginId;
-                        pagesInfo.pages = readPageList( config );
-                        
-                        wizardPages.put( action, pagesInfo );
-                    }
-                    else
-                    {
-                        final String msg
-                            = NLS.bind( Resources.actionNotDefined, pluginId,
-                                        action );
-                        
-                        FacetUiPlugin.logError( msg );
-                    }
-                }
-            }
-        }
-    }
-    
-    private static void readWizardPagesExtensionsOld()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetUiPlugin.PLUGIN_ID, 
-                                          WIZARD_PAGES_EXTENSION_ID_OLD );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                final IConfigurationElement config = elements[ j ];
-                final String ename = config.getName();
-                
-                if( ename.equals( EL_WIZARD_PAGES ) )
-                {
-                    readWizardPagesOld( config );
-                }
-            }
-        }
-    }
-    
-    private static void readWizardPagesOld( final IConfigurationElement config )
-    {
-        final String pluginId = config.getContributor().getName();
-
-        final String depMsg 
-            = NLS.bind( Resources.wizardExtensionPointDeprecated, pluginId );
-        
-        FacetUiPlugin.logWarning( depMsg, true );
-        
-        final String id = config.getAttribute( ATTR_FACET );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.facetNotDefined, 
-                            config.getContributor().getName(), id );
-            
-            FacetUiPlugin.log( msg );
-            
-            return;
-        }
-        
-        final IProjectFacet f = ProjectFacetsManager.getProjectFacet( id );
-
-        final String version = config.getAttribute( ATTR_VERSION );
-
-        if( version == null )
-        {
-            reportMissingAttribute( config, ATTR_VERSION );
-            return;
-        }
-        
-        if( ! f.hasVersion( version ) )
-        {
-            final String[] params
-                = new String[] { config.getContributor().getName(), id, 
-                                 version };
-            
-            final String msg
-                = NLS.bind( Resources.facetVersionNotDefined, 
-                            params ); 
-            
-            FacetUiPlugin.log( msg );
-            
-            return;
-        }
-        
-        final IProjectFacetVersion fv = f.getVersion( version );
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            final Action.Type actionType = Action.Type.valueOf( childName );
-            
-            if( actionType == null )
-            {
-                final String msg
-                    = NLS.bind( Resources.invalidActionType, 
-                                config.getContributor().getName(), childName );
-                
-                FacetUiPlugin.log( msg );
-                
-                return;
-            }
-            
-            if( fv.supports( actionType ) )
-            {
-                final IActionDefinition def;
-                
-                try
-                {
-                    def = ( (ProjectFacetVersion) fv ).getActionDefinition( actionType );
-                }
-                catch( CoreException e )
-                {
-                    FacetUiPlugin.log( e );
-                    return;
-                }
-                
-                final WizardPagesInfo pagesInfo = new WizardPagesInfo();
-                
-                pagesInfo.plugin = pluginId;
-                pagesInfo.pages = readPageList( child );
-                
-                wizardPages.put( def.getId(), pagesInfo );
-            }
-        }
-    }
-
-    private static List readPageList( final IConfigurationElement config )
-    {
-        final ArrayList list = new ArrayList();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_PAGE ) )
-            {
-                final String clname = child.getAttribute( ATTR_CLASS );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, ATTR_CLASS );
-                    continue;
-                }
-                
-                list.add( clname );
-            }
-        }
-        
-        return list;
-    }
-    
-    private static void readImagesExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetUiPlugin.PLUGIN_ID, 
-                                          IMAGES_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" ); //$NON-NLS-1$
-        }
-        
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                final IConfigurationElement config = elements[ j ];
-                final String ename = config.getName();
-                
-                if( ename.equals( EL_IMAGE ) )
-                {
-                    readImage( config );
-                }
-            }
-        }
-    }
-    
-    private static void readImage( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( ATTR_FACET );
-        final String cid = config.getAttribute( ATTR_CATEGORY );
-        final String rct = config.getAttribute( ATTR_RUNTIME_COMPONENT_TYPE );
-        
-        final Object target;
-        
-        if( fid != null )
-        {
-            if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.facetNotDefined, 
-                                config.getContributor().getName(), fid );
-                
-                FacetUiPlugin.log( msg );
-                
-                return;
-            }
-            
-            target = ProjectFacetsManager.getProjectFacet( fid );
-        }
-        else if( cid != null )
-        {
-            if( ! ProjectFacetsManager.isCategoryDefined( cid ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.categoryNotDefined, 
-                                config.getContributor().getName(), fid );
-                
-                FacetUiPlugin.log( msg );
-                
-                return;
-            }
-            
-            target = ProjectFacetsManager.getCategory( cid );
-        }
-        else if( rct != null )
-        {
-            if( ! RuntimeManager.isRuntimeComponentTypeDefined( rct ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.runtimeComponentTypeNotDefined, 
-                                config.getContributor().getName(), rct );
-                
-                FacetUiPlugin.log( msg );
-                
-                return;
-            }
-            
-            target = RuntimeManager.getRuntimeComponentType( rct );
-        }
-        else
-        {
-            reportMissingAttribute( config, ATTR_FACET );
-            return;
-        }
-        
-        final String path = config.getAttribute( ATTR_PATH );
-        
-        if( path == null )
-        {
-            reportMissingAttribute( config, ATTR_PATH );
-        }
-                
-        final String plugin = config.getContributor().getName();
-        final Bundle bundle = Platform.getBundle( plugin );
-        final URL url = FileLocator.find( bundle, new Path( path ), null );
-        
-        if( url == null )
-        {
-            final String msg
-                = NLS.bind( Resources.iconNotFound, plugin, path );
-            
-            FacetUiPlugin.log( msg );
-        }
-        else
-        {
-            final ImageDescriptor imgdesc
-                = ImageDescriptor.createFromURL( url );
-            
-            icons.put( target, imgdesc );
-        }
-    }
-    
-    private static void reportMissingAttribute( final IConfigurationElement el,
-                                                final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getContributor().getName(), el.getName(), 
-                             attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetUiPlugin.log( msg );
-    }
-    
-    private static class WizardPagesInfo
-    {
-        public String plugin;
-        public List pages;
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String categoryNotDefined;
-        public static String runtimeComponentTypeNotDefined;
-        public static String failedToCreate;
-        public static String invalidActionType;
-        public static String iconNotFound;
-        public static String wizardExtensionPointDeprecated;
-        public static String actionNotDefined;
-        
-        static
-        {
-            initializeMessages( ProjectFacetsUiManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.properties
deleted file mode 100644
index 3186453..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-facetNotDefined = Project facet {1} has not been defined. It is used in plugin {0}.
-facetVersionNotDefined = Version {2} of project facet {1} has not been defined. It is used in plugin {0}.
-categoryNotDefined = Category {1} has not been defined. It is used in plugin {0}.
-runtimeComponentTypeNotDefined = Runtime component type {1} has not been defined. It is used in plugin {0}.
-failedToCreate = Failed to instantiate class {0}.
-invalidActionType = "{1}" is an invalid action type. It is used in plugin {0}.
-iconNotFound = Could not load icon "{1}" from plugin {0}.
-
-wizardExtensionPointDeprecated = \
-Extension point org.eclipse.wst.common.project.facet.ui.wizard is deprecated. \
-It is used in plugin {0}. \
-Extension point org.eclipse.wst.common.project.facet.ui.wizardPages provides \
-analogous functionality.
-
-actionNotDefined = Project facet action "{1}" has not been defined. It is used in plugin {0}.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.java
deleted file mode 100644
index ac97475..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.java
+++ /dev/null
@@ -1,834 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-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.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.ui.IDecorationsProvider;
-import org.eclipse.wst.common.project.facet.ui.IRuntimeComponentLabelProvider;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel.IDataModelListener;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimesPanel
-
-    extends Composite
-
-{
-    private static final Object NO_RUNTIME_SELECTED_PLACEHOLDER = new Object();
-    
-    private final ChangeTargetedRuntimesDataModel model;
-    private boolean showAllRuntimesSetting;
-    private final Label runtimesLabel;
-    private final CheckboxTableViewer runtimes;
-    private final Button showAllRuntimesCheckbox;
-    private final Button makePrimaryButton;
-    private final Label runtimeComponentsLabel;
-    private final TableViewer runtimeComponents;
-    private IRuntime currentPrimaryRuntime;
-    private final List listeners;
-    private Color colorGray;
-    private Color colorManila;
-    
-    public RuntimesPanel( final Composite parent,
-                          final int style,
-                          final ChangeTargetedRuntimesDataModel model )
-    {
-        super( parent, style );
-        
-        this.listeners = new ArrayList();
-        
-        addDisposeListener
-        ( 
-            new DisposeListener()
-            {
-                public void widgetDisposed( final DisposeEvent e )
-                {
-                    handleWidgetDisposed();
-                }
-            }
-        );
-        
-        // Bind to the data model.
-        
-        this.model = model;
-        
-        addDataModelListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_AVAILABLE_RUNTIMES_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleAvailableRuntimesChanged();
-                }
-            }
-        );
-        
-        addDataModelListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_TARGETABLE_RUNTIMES_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleTargetableRuntimesChanged();
-                }
-            }
-        );
-        
-        addDataModelListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleTargetedRuntimesChanged();
-                }
-            }
-        );
-        
-        addDataModelListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_PRIMARY_RUNTIME_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handlePrimaryRuntimeChanged();
-                }
-            }
-        );
-        
-        this.showAllRuntimesSetting = false;
-
-        // Initialize the colors.
-        
-        this.colorGray = new Color( null, 160, 160, 164 );
-        this.colorManila = new Color( null, 255, 255, 206 );
-
-        // Layout the panel.
-        
-        final GridLayout layout = new GridLayout( 1, false );
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-
-        setLayout( layout );
-
-        this.runtimesLabel = new Label( this, SWT.NONE );
-        this.runtimesLabel.setText( Resources.runtimesLabel );
-        this.runtimesLabel.setLayoutData( gdhfill() );
-        
-        this.runtimes = CheckboxTableViewer.newCheckList( this, SWT.BORDER );
-        this.runtimes.getTable().setLayoutData( gdfill() );
-        this.runtimes.setContentProvider( new ContentProvider() );
-        this.runtimes.setLabelProvider( new LabelProvider() );
-        this.runtimes.setSorter( new Sorter() );
-        this.runtimes.setInput( new Object() );
-        
-        this.runtimes.addSelectionChangedListener
-        (
-            new ISelectionChangedListener()
-            {
-                public void selectionChanged( final SelectionChangedEvent e )
-                {
-                    handleRuntimeSelectionChanged();
-                }
-            }
-        );
-        
-        this.runtimes.addCheckStateListener
-        (
-            new ICheckStateListener()
-            {
-                public void checkStateChanged( final CheckStateChangedEvent e )
-                {
-                    handleCheckStateChanged( e );
-                }
-            }
-        );
-        
-        this.showAllRuntimesCheckbox = new Button( this, SWT.CHECK );
-        this.showAllRuntimesCheckbox.setText( Resources.showAllRuntimes );
-        this.showAllRuntimesCheckbox.setSelection( this.showAllRuntimesSetting );
-        
-        this.showAllRuntimesCheckbox.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleShowAllRuntimesSelected();
-                }
-            }
-        );
-        
-        this.makePrimaryButton = new Button( this, SWT.PUSH );
-        this.makePrimaryButton.setText( Resources.makePrimaryLabel );
-        GridData gd = halign( new GridData(), GridData.END );
-        gd = whint( gd, getPreferredWidth( this.makePrimaryButton ) + 15 );
-        this.makePrimaryButton.setLayoutData( gd );
-        
-        this.makePrimaryButton.setEnabled( false );
-        
-        this.makePrimaryButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleMakePrimarySelected();
-                }
-            }
-        );
-        
-        this.runtimeComponentsLabel = new Label( this, SWT.NONE );
-        this.runtimeComponentsLabel.setText( Resources.runtimeCompositionLabel );
-        this.runtimeComponentsLabel.setLayoutData( gdhfill() );
-        
-        this.runtimeComponents = new TableViewer( this, SWT.BORDER );
-        this.runtimeComponents.getTable().setLayoutData( hhint( gdhfill(), 50 ) );
-        this.runtimeComponents.getTable().setBackground( this.colorManila );
-        this.runtimeComponents.setContentProvider( new RuntimeComponentsContentProvider() );
-        this.runtimeComponents.setLabelProvider( new RuntimeComponentsLabelProvider() );
-        
-        this.runtimeComponents.setInput( NO_RUNTIME_SELECTED_PLACEHOLDER );
-        this.runtimeComponents.getTable().setEnabled( false );
-        this.runtimeComponentsLabel.setEnabled( false );
-        
-        refresh();
-        this.currentPrimaryRuntime = this.model.getPrimaryRuntime();
-    }
-    
-    public ChangeTargetedRuntimesDataModel getDataModel()
-    {
-        return this.model;
-    }
-    
-    private void handleAvailableRuntimesChanged()
-    {
-        if( ! Thread.currentThread().equals( getDisplay().getThread() ) )
-        {
-            getDisplay().asyncExec
-            ( 
-                new Runnable()
-                {
-                    public void run()
-                    {
-                        handleAvailableRuntimesChanged();
-                    }
-                }
-            );
-            
-            return;
-        }
-        
-        if( this.showAllRuntimesSetting )
-        {
-            refresh();
-        }
-    }
-    
-    private void handleTargetableRuntimesChanged()
-    {
-        if( ! Thread.currentThread().equals( getDisplay().getThread() ) )
-        {
-            getDisplay().asyncExec
-            ( 
-                new Runnable()
-                {
-                    public void run()
-                    {
-                        handleTargetableRuntimesChanged();
-                    }
-                }
-            );
-            
-            return;
-        }
-        
-        refresh();
-    }
-    
-    private void handleTargetedRuntimesChanged()
-    {
-        if( ! Thread.currentThread().equals( getDisplay().getThread() ) )
-        {
-            getDisplay().asyncExec
-            ( 
-                new Runnable()
-                {
-                    public void run()
-                    {
-                        handleTargetedRuntimesChanged();
-                    }
-                }
-            );
-            
-            return;
-        }
-        
-        final Set targeted = this.model.getTargetedRuntimes();
-        
-        for( Iterator itr = this.model.getTargetableRuntimes().iterator(); 
-             itr.hasNext(); )
-        {
-            final IRuntime r = (IRuntime) itr.next();
-            
-            if( targeted.contains( r ) )
-            {
-                if( ! this.runtimes.getChecked( r ) )
-                {
-                    this.runtimes.setChecked( r, true );
-                }
-            }
-            else
-            {
-                if( this.runtimes.getChecked( r ) )
-                {
-                    this.runtimes.setChecked( r, false );
-                }
-            }
-        }
-    }
-    
-    private void handlePrimaryRuntimeChanged()
-    {
-        if( ! Thread.currentThread().equals( getDisplay().getThread() ) )
-        {
-            getDisplay().asyncExec
-            ( 
-                new Runnable()
-                {
-                    public void run()
-                    {
-                        handlePrimaryRuntimeChanged();
-                    }
-                }
-            );
-            
-            return;
-        }
-        
-        if( this.currentPrimaryRuntime != null )
-        {
-            this.runtimes.update( this.currentPrimaryRuntime, null );
-        }
-        
-        this.currentPrimaryRuntime = this.model.getPrimaryRuntime();
-        
-        if( this.currentPrimaryRuntime != null )
-        {
-            this.runtimes.update( this.currentPrimaryRuntime, null );
-        }
-    }
-    
-    private void handleCheckStateChanged( final CheckStateChangedEvent e )
-    {
-        final IRuntime runtime = (IRuntime) e.getElement();
-        
-        if( ! this.model.getTargetableRuntimes().contains( runtime ) &&
-            e.getChecked() )
-        {
-            this.runtimes.setChecked( runtime, false );
-            return;
-        }
-        
-        if( e.getChecked() )
-        {
-            this.model.addTargetedRuntime( runtime );
-        }
-        else
-        {
-            this.model.removeTargetedRuntime( runtime );
-        }
-    }
-    
-    private void handleRuntimeSelectionChanged()
-    {
-        final IRuntime r = getSelection();
-        
-        if( r == null )
-        {
-            if( this.runtimeComponents.getInput() != null )
-            {
-                this.runtimeComponentsLabel.setEnabled( false );
-                this.runtimeComponents.getTable().setEnabled( false );
-                this.runtimeComponents.setInput( NO_RUNTIME_SELECTED_PLACEHOLDER );
-            }
-        }
-        else
-        {
-            if( this.runtimeComponents.getInput() == null ||
-                ! this.runtimeComponents.getInput().equals( r ) )
-            {
-                this.runtimeComponentsLabel.setEnabled( true );
-                this.runtimeComponents.getTable().setEnabled( true );
-                this.runtimeComponents.setInput( r );
-            }
-            
-            if( this.runtimes.getChecked( r ) && 
-                this.model.getPrimaryRuntime() != null && 
-                ! this.model.getPrimaryRuntime().equals( r ) &&
-                this.model.getTargetableRuntimes().contains( r ) )
-            {
-                this.makePrimaryButton.setEnabled( true );
-            }
-            else
-            {
-                this.makePrimaryButton.setEnabled( false );
-            }
-        }
-    }
-    
-    private void handleShowAllRuntimesSelected()
-    {
-        this.showAllRuntimesSetting 
-            = this.showAllRuntimesCheckbox.getSelection();
-        
-        refresh();
-    }
-    
-    private void handleMakePrimarySelected()
-    {
-        this.model.setPrimaryRuntime( getSelection() );
-    }
-
-    private void handleWidgetDisposed()
-    {
-        removeDataModelListeners();
-        
-        this.colorGray.dispose();
-        this.colorManila.dispose();
-    }
-    
-    private void refresh()
-    {
-        this.runtimes.refresh();
-
-        final Set untargetable = new HashSet( this.model.getAllRuntimes() );
-        untargetable.removeAll( this.model.getTargetableRuntimes() );
-        
-        this.runtimes.setCheckedElements( this.model.getTargetedRuntimes().toArray() );
-    }
-    
-    private IRuntime getSelection()
-    {
-        final IStructuredSelection ssel 
-            = (IStructuredSelection) this.runtimes.getSelection();
-        
-        if( ssel.isEmpty() )
-        {
-            return null;
-        }
-        else
-        {
-            return (IRuntime) ssel.getFirstElement();
-        }
-    }
-    
-    private void addDataModelListener( final String event,
-                                       final IDataModelListener listener )
-    {
-        this.model.addListener( event, listener );
-        this.listeners.add( listener );
-    }
-    
-    private void removeDataModelListeners()
-    {
-        for( Iterator itr = this.listeners.iterator(); itr.hasNext(); )
-        {
-            this.model.removeListener( (IDataModelListener) itr.next() );
-        }
-    }
-    
-    private final class ContentProvider
-
-        implements IStructuredContentProvider
-    
-    {
-        public Object[] getElements( final Object element )
-        {
-            if( RuntimesPanel.this.showAllRuntimesSetting )
-            {
-                return getDataModel().getAllRuntimes().toArray();
-            }
-            else
-            {
-                return getDataModel().getTargetableRuntimes().toArray();
-            }
-        }
-    
-        public void dispose() { }
-    
-        public void inputChanged( final Viewer viewer,
-                                  final Object oldObject,
-                                  final Object newObject ) {}
-    }
-    
-    private final class LabelProvider
-
-        implements ILabelProvider, IColorProvider
-    
-    {
-        private final ImageRegistry imageRegistry;
-        
-        public LabelProvider()
-        {
-            this.imageRegistry = new ImageRegistry();
-        }
-        
-        public String getText( final Object element )
-        {
-            return ( (IRuntime) element ).getName();
-        }
-
-        public Image getImage( final Object element )
-        {
-            final IRuntime r = (IRuntime) element;
-            
-            final IRuntimeComponent rc 
-                = (IRuntimeComponent) r.getRuntimeComponents().get( 0 );
-            
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            
-            final IRuntime primary = getDataModel().getPrimaryRuntime();
-            final boolean isPrimary = primary != null && primary.equals( r );
-            
-            final String imgid
-                = ( isPrimary ? "p:" : "s" ) //$NON-NLS-1$ //$NON-NLS-2$
-                  + rct.getId();
-            
-            Image image = this.imageRegistry.get( imgid );
-            
-            if( image == null )
-            {
-                final IDecorationsProvider decprov
-                    = (IDecorationsProvider) rct.getAdapter( IDecorationsProvider.class );
-                
-                ImageDescriptor imgdesc = decprov.getIcon();
-                
-                if( isPrimary )
-                {
-                    imgdesc = new PrimaryRuntimeImageDescriptor( imgdesc );
-                }
-                
-                this.imageRegistry.put( imgid, imgdesc );
-                image = this.imageRegistry.get( imgid );
-            }
-
-            if( getDataModel().getTargetableRuntimes().contains( r ) )
-            {
-                if( RuntimesPanel.this.model.getTargetedRuntimes().contains( r ) )
-                {
-                    RuntimesPanel.this.runtimes.setChecked( r, true );
-                }
-                else
-                {
-                    RuntimesPanel.this.runtimes.setChecked( r, false );
-                }
-                
-                return image;
-            }
-            else
-            {
-                RuntimesPanel.this.runtimes.setChecked( r, false );
-                
-                final String greyedId = rct.getId() + "##greyed##"; //$NON-NLS-1$
-                Image greyed = this.imageRegistry.get( greyedId );
-                
-                if( greyed == null )
-                {
-                    greyed = new Image( null, image, SWT.IMAGE_GRAY );
-                    this.imageRegistry.put( greyedId, greyed );
-                }
-                
-                return greyed;
-            }
-        }
-        
-        public Color getForeground( final Object element )
-        {
-            if( ! getDataModel().getTargetableRuntimes().contains( element ) )
-            {
-                return RuntimesPanel.this.colorGray;
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        public Color getBackground( final Object element )
-        {
-            return null;
-        }
-
-        public void dispose()
-        {
-            this.imageRegistry.dispose();
-        }
-
-        public boolean isLabelProperty( final Object element, 
-                                        final String property )
-        {
-            return false;
-        }
-
-        public void addListener( final ILabelProviderListener listener ) {}
-        public void removeListener( final ILabelProviderListener listener ) {}
-    }
-
-    private final class Sorter
-
-        extends ViewerSorter
-    
-    {
-        public int compare( final Viewer viewer,
-                            final Object a,
-                            final Object b )
-        {
-            final IRuntime r1 = (IRuntime) a;
-            final IRuntime r2 = (IRuntime) b;
-            
-            return r1.getName().compareToIgnoreCase( r2.getName() );
-        }
-    }
-    
-    private final class RuntimeComponentsContentProvider
-
-        implements IStructuredContentProvider
-    
-    {
-        public Object[] getElements( final Object element )
-        {
-            if( element == NO_RUNTIME_SELECTED_PLACEHOLDER )
-            {
-                return new Object[] { NO_RUNTIME_SELECTED_PLACEHOLDER };
-            }
-            else
-            {
-                final IRuntime r = (IRuntime) element;
-                return r.getRuntimeComponents().toArray();
-            }
-        }
-    
-        public void dispose() { }
-    
-        public void inputChanged( final Viewer viewer,
-                                  final Object oldObject,
-                                  final Object newObject ) {}
-    }
-    
-    private final class RuntimeComponentsLabelProvider
-
-        implements ILabelProvider
-    
-    {
-        private final ImageRegistry imageRegistry = new ImageRegistry();
-        
-        public String getText( final Object element )
-        {
-            if( element == NO_RUNTIME_SELECTED_PLACEHOLDER )
-            {
-                return Resources.noRuntimeSelectedLabel;
-            }
-            
-            final IRuntimeComponent comp = (IRuntimeComponent) element;
-            
-            final IRuntimeComponentLabelProvider provider
-                = (IRuntimeComponentLabelProvider) comp.getAdapter( IRuntimeComponentLabelProvider.class );
-            
-            if( provider == null )
-            {
-                final StringBuffer label = new StringBuffer();
-                label.append( comp.getRuntimeComponentType().getId() );
-                label.append( ' ' );
-                label.append( comp.getRuntimeComponentVersion().getVersionString() );
-                
-                return label.toString();
-            }
-            else
-            {
-                return provider.getLabel();
-            }
-        }
-
-        public Image getImage( final Object element )
-        {
-            if( element == NO_RUNTIME_SELECTED_PLACEHOLDER )
-            {
-                return null;
-            }
-
-            final IRuntimeComponent rc = (IRuntimeComponent) element;
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            
-            Image image = this.imageRegistry.get( rct.getId() );
-            
-            if( image == null )
-            {
-                final IDecorationsProvider decprov
-                    = (IDecorationsProvider) rct.getAdapter( IDecorationsProvider.class );
-                
-                this.imageRegistry.put( rct.getId(), decprov.getIcon() );
-                image = this.imageRegistry.get( rct.getId() );
-            }
-
-            return image;
-        }
-        
-        public void dispose()
-        {
-            this.imageRegistry.dispose();
-        }
-
-        public boolean isLabelProperty( final Object element, 
-                                        final String property )
-        {
-            return false;
-        }
-
-        public void addListener( final ILabelProviderListener listener ) {}
-        public void removeListener( final ILabelProviderListener listener ) {}
-    }
-    
-    private static final class PrimaryRuntimeImageDescriptor 
-    
-        extends CompositeImageDescriptor 
-        
-    {
-        private static final String OVERLAY_IMG_LOCATION
-            = "images/primary-runtime-overlay.gif"; //$NON-NLS-1$
-        
-        private static final ImageData OVERLAY
-            = FacetUiPlugin.getImageDescriptor( OVERLAY_IMG_LOCATION ).getImageData();
-        
-        private final ImageData base;
-        private final Point size;
-        
-        public PrimaryRuntimeImageDescriptor( final ImageDescriptor base ) 
-        {
-            this.base = base.getImageData();
-            this.size = new Point( this.base.width, this.base.height ); 
-        }
-    
-        protected void drawCompositeImage( final int width, 
-                                           final int height ) 
-        {
-            drawImage( this.base, 0, 0 );
-            drawImage( OVERLAY, 0, height - OVERLAY.height );
-        }
-    
-        protected Point getSize()
-        {
-            return this.size;
-        }
-    }
-
-    private static final GridData gdfill()
-    {
-        return new GridData( SWT.FILL, SWT.FILL, true, true );
-    }
-    
-    private static final GridData gdhfill()
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-    
-    private static final GridData whint( final GridData gd,
-                                         final int width )
-    {
-        gd.widthHint = width;
-        return gd;
-    }
-
-    private static final GridData hhint( final GridData gd,
-                                         final int height )
-    {
-        gd.heightHint = height;
-        return gd;
-    }
-    
-    private static final GridData halign( final GridData gd,
-                                          final int alignment )
-    {
-        gd.horizontalAlignment = alignment;
-        return gd;
-    }
-
-    private static final int getPreferredWidth( final Control control )
-    {
-        return control.computeSize( SWT.DEFAULT, SWT.DEFAULT ).x;
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String runtimesLabel;
-        public static String runtimeCompositionLabel;
-        public static String makePrimaryLabel;
-        public static String showAllRuntimes;
-        public static String noRuntimeSelectedLabel;
-        
-        static
-        {
-            initializeMessages( RuntimesPanel.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.properties
deleted file mode 100644
index 434b7b9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-runtimesLabel = Runtimes:
-runtimeCompositionLabel = Runtime Composition:
-makePrimaryLabel = Make Primary
-showAllRuntimes = Show all runtimes
-noRuntimeSelectedLabel = <no runtime selected>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.java
deleted file mode 100644
index 89c8831..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.forms.events.HyperlinkAdapter;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.ui.AddRemoveFacetsWizard;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class RuntimesPropertyPage extends PropertyPage 
-{
-    private IFacetedProject project;
-    private IFacetedProjectListener projectListener;
-    private ChangeTargetedRuntimesDataModel model;
-    private RuntimesPanel panel;
-    
-    protected Control createContents( final Composite parent ) 
-    {
-        final IAdaptable element = getElement();
-
-        if( element instanceof IProject )
-        {
-            final IProject project = (IProject) element;
-            
-            try 
-            {
-                this.project = ProjectFacetsManager.create( project );
-            }
-            catch( CoreException e ) {}
-            
-            if( this.project == null )
-            {
-                return null;
-            }
-            
-            this.model = new ChangeTargetedRuntimesDataModel();
-            
-            this.model.setTargetedRuntimes( this.project.getTargetedRuntimes() );
-            this.model.setPrimaryRuntime( this.project.getPrimaryRuntime() );
-            
-            this.model.addRuntimeFilter
-            (
-                new ChangeTargetedRuntimesDataModel.IRuntimeFilter()
-                {
-                    public boolean check( final IRuntime runtime )
-                    {
-                        final IFacetedProject fpj 
-                            = RuntimesPropertyPage.this.project;
-                        
-                        for( Iterator itr = fpj.getProjectFacets().iterator();
-                             itr.hasNext(); )
-                        {
-                            final IProjectFacetVersion fv
-                                = (IProjectFacetVersion) itr.next();
-                            
-                            if( ! runtime.supports( fv ) )
-                            {
-                                return false;
-                            }
-                        }
-                        
-                        return true;
-                    }
-                }
-            );
-            
-            this.projectListener = new IFacetedProjectListener()
-            {
-                public void projectChanged()
-                {
-                    handleProjectChangedEvent();
-                }
-            };
-            
-            this.project.addListener( this.projectListener );
-            
-            final Composite composite = new Composite( parent, SWT.NONE );
-            composite.setLayoutData( gdfill() );
-            
-            final GridLayout layout = new GridLayout( 1, false );
-            layout.marginHeight = 0;
-            layout.marginWidth = 0;
-            layout.marginBottom = 5;
-            
-            composite.setLayout( layout );
-            
-            this.panel = new RuntimesPanel( composite, SWT.NONE, this.model );
-            this.panel.setLayoutData( gdfill() );
-
-            final Label hint = new Label( composite, SWT.WRAP );
-            hint.setText( Resources.hint );
-            
-            final GridData gd = gdhfill();
-            gd.grabExcessHorizontalSpace = true;
-            gd.widthHint = 300;
-            gd.verticalIndent = 5;
-            
-            hint.setLayoutData( gd );
-            
-            final Hyperlink addRemoveLink = new Hyperlink( composite, SWT.NONE );
-            addRemoveLink.setForeground( parent.getDisplay().getSystemColor( SWT.COLOR_DARK_BLUE ) );
-            addRemoveLink.setUnderlined( true );
-            addRemoveLink.setText( Resources.addRemoveLinkLabel );
-            
-            addRemoveLink.addHyperlinkListener
-            (
-                new HyperlinkAdapter() 
-                {
-                    public void linkActivated( final HyperlinkEvent evt ) 
-                    {
-                        performAddRemoveFacets();
-                    }
-                }
-            );
-            
-            composite.addDisposeListener
-            (
-                new DisposeListener()
-                {
-                    public void widgetDisposed( final DisposeEvent e )
-                    {
-                        handleDisposeEvent();
-                    }
-                }
-            );
-            
-            return composite;
-        }
-        return null;
-    }
-    
-    public boolean performOk() 
-    {
-        final Set targeted = this.model.getTargetedRuntimes();
-        final IRuntime primary = this.model.getPrimaryRuntime();
-        
-        if( ! this.project.getTargetedRuntimes().equals( primary ) ||
-            ! equals( this.project.getPrimaryRuntime(), primary ) )
-        {
-            final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-            {
-                public void run( final IProgressMonitor monitor )
-                
-                    throws CoreException
-                    
-                {
-                    final IFacetedProject fpj 
-                        = RuntimesPropertyPage.this.project;
-                    
-                    fpj.setTargetedRuntimes( targeted, null );
-                    
-                    if( primary != null )
-                    {
-                        fpj.setPrimaryRuntime( primary, null );
-                    }
-                }
-            };
-            
-            final Runnable op = new Runnable()
-            {
-                public void run()
-                {
-                    final IWorkspace ws = ResourcesPlugin.getWorkspace();
-                    
-                    try
-                    {
-                        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-                    }
-                    catch( CoreException e )
-                    {
-                        final IStatus st = e.getStatus();
-                        
-                        ErrorDialog.openError( getShell(), Resources.errDlgTitle,
-                                               st.getMessage(), st );
-                        
-                        FacetUiPlugin.log( st );
-                    }
-                }
-            };
-            
-            BusyIndicator.showWhile( null, op );
-        }
-        
-        return true;
-    }
-    
-    protected void performDefaults() 
-    {
-        super.performDefaults();
-        
-        this.model.setTargetedRuntimes( this.project.getTargetedRuntimes() );
-        this.model.setPrimaryRuntime( this.project.getPrimaryRuntime() );
-    }
-    
-    private void performAddRemoveFacets()
-    {
-        final IWizard wizard = new AddRemoveFacetsWizard( this.project );
-        final WizardDialog dialog = new WizardDialog( getShell(), wizard );
-        
-        dialog.open();     
-    }
-    
-    private void handleProjectChangedEvent()
-    {
-        this.model.refreshTargetableRuntimes();
-        
-        final Set targetedRuntimes = this.project.getTargetedRuntimes();
-        this.model.setTargetedRuntimes( targetedRuntimes );
-        
-        final IRuntime primaryRuntime = this.project.getPrimaryRuntime();
-        this.model.setPrimaryRuntime( primaryRuntime );
-    }
-    
-    private void handleDisposeEvent()
-    {
-        this.project.removeListener( this.projectListener );
-        this.model.dispose();
-    }
-    
-    private static boolean equals( final IRuntime r1,
-                                   final IRuntime r2 )
-    {
-        if( r1 == null && r2 == null )
-        {
-            return true;
-        }
-        else if( r1 == null || r2 == null )
-        {
-            return false;
-        }
-        else
-        {
-            return r1.equals( r2 );
-        }
-    }
-
-    private static GridData gdfill()
-    {
-        return new GridData( SWT.FILL, SWT.FILL, true, true );
-    }
-
-    private static GridData gdhfill()
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-    
-    
-    private static final class Resources extends NLS
-    {
-        public static String errDlgTitle;
-        public static String hint;
-        public static String addRemoveLinkLabel;
-        
-        static
-        {
-            initializeMessages( RuntimesPropertyPage.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.properties
deleted file mode 100644
index 160587b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-errDlgTitle = Error
-
-hint = \
-If a runtime that you want to select is not displayed or is disabled you may \
-need to uninstall one or more of the currently installed project facets.
-
-addRemoveLinkLabel = Add/Remove Project Facets...
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.java
deleted file mode 100644
index 814a961..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2006 BEA Systems, Inc.
- * 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:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Point;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class SavePresetDialog
-
-    extends Dialog
-    
-{
-    private static final String WIDTH = "width"; //$NON-NLS-1$
-    private static final String HEIGHT = "height"; //$NON-NLS-1$
-
-    private IDialogSettings settings;
-    private Text nameTextField;
-    private Text descTextField;
-    private Label msgLabel;
-    private String name;
-    private String description;
-    
-    protected SavePresetDialog( final Shell shell )
-    {
-        super( shell );
-        
-        setShellStyle( getShellStyle() | SWT.RESIZE );
-    }
-    
-    public static IPreset showDialog( final Shell shell,
-                                      final Set facets )
-    {
-        final SavePresetDialog dialog = new SavePresetDialog( shell );
-        
-        IPreset preset = null;
-
-        if( dialog.open() == IDialogConstants.OK_ID )
-        {
-            final String name = dialog.name;
-            final String desc = dialog.description;
-            
-            preset = ProjectFacetsManager.definePreset( name, desc, facets );
-        }
-        
-        return preset;
-    }
-
-    protected void configureShell( final Shell shell )
-    {
-        super.configureShell( shell );
-        shell.setText( Resources.dialogTitle );
-    }
-
-    protected Control createDialogArea( final Composite parent ) 
-    {
-        final IDialogSettings root
-            = FacetUiPlugin.getInstance().getDialogSettings();
-    
-        IDialogSettings temp = root.getSection( getClass().getName() );
-    
-        if( temp == null )
-        {
-            temp = root.addNewSection( getClass().getName() );
-        }
-        
-        if( temp.get( WIDTH ) == null ) temp.put( WIDTH, 300 );
-        if( temp.get( HEIGHT ) == null ) temp.put( HEIGHT, 160 );
-
-        this.settings = temp;
-        
-        final Composite composite = new Composite( parent, SWT.NONE );
-        composite.setLayout( new GridLayout( 1, false ) );
-        
-        final GridData gd = gdfill();
-        gd.widthHint = this.settings.getInt( WIDTH );
-        gd.heightHint = this.settings.getInt( HEIGHT );
-        
-        composite.setLayoutData( gd );
-        
-        composite.addListener
-        (
-            SWT.Resize,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final Point size = composite.getSize();
-                    
-                    SavePresetDialog.this.settings.put( WIDTH, size.x );
-                    SavePresetDialog.this.settings.put( HEIGHT, size.y );
-                }
-            }
-        );
-        
-        final Label nameLabel = new Label( composite, SWT.NONE );
-        nameLabel.setLayoutData( gdhfill() );
-        nameLabel.setText( Resources.nameLabel );
-        
-        this.nameTextField = new Text( composite, SWT.NONE | SWT.BORDER );
-        this.nameTextField.setLayoutData( gdhfill() );
-        
-        this.nameTextField.addModifyListener
-        (
-            new ModifyListener()
-            {
-                public void modifyText( final ModifyEvent e )
-                {
-                    handleNameChange();
-                }
-            }
-        );
-        
-        final Label descLabel = new Label( composite, SWT.NONE );
-        descLabel.setLayoutData( gdhfill() );
-        descLabel.setText( Resources.descLabel );
-        
-        this.descTextField 
-            = new Text( composite, SWT.NONE | SWT.V_SCROLL | SWT.BORDER | SWT.WRAP );
-        
-        this.descTextField.setLayoutData( gdfill() );
-        
-        this.descTextField.addModifyListener
-        (
-            new ModifyListener()
-            {
-                public void modifyText( final ModifyEvent e )
-                {
-                    handleDescriptionChange();
-                }
-            }
-        );
-        
-        this.msgLabel = new Label( composite, SWT.NONE );
-        this.msgLabel.setLayoutData( gdhfill() );
-        this.msgLabel.setForeground( color( SWT.COLOR_RED ) );
-        
-        handleNameChange();
-        
-        return composite;
-    }
-    
-    private void handleNameChange()
-    {
-        this.name = this.nameTextField.getText().trim();
-        
-        boolean okButtonEnabled = false;
-        boolean conflictDetected = false;
-        
-        if( this.name.length() > 0 )
-        {
-            for( Iterator itr = ProjectFacetsManager.getPresets().iterator();
-                 itr.hasNext(); )
-            {
-                final IPreset preset = (IPreset) itr.next();
-                
-                if( preset.getLabel().equals( this.name ) )
-                {
-                    conflictDetected = true;
-                    break;
-                }
-            }
-            
-            if( ! conflictDetected )
-            {
-                okButtonEnabled = true;
-            }
-        }
-        
-        if( conflictDetected )
-        {
-            this.msgLabel.setText( Resources.nameInUseMessage );
-        }
-        else
-        {
-            this.msgLabel.setText( "" ); //$NON-NLS-1$
-        }
-        
-        setOkButtonEnabled( okButtonEnabled );
-    }
-    
-    private void handleDescriptionChange()
-    {
-        this.description = this.descTextField.getText().trim();
-    }
-    
-    private void setOkButtonEnabled( final boolean enabled )
-    {
-        Button button = getButton( IDialogConstants.OK_ID );
-        
-        if( button != null )
-        {
-            button.setEnabled( enabled );
-        }
-        else
-        {
-            // If the button has not been created yet (this happens during the
-            // execution of the createDialogArea method), spin off a thread to
-            // wait for it's creation.
-            
-            final Display display = Display.getCurrent();
-            
-            final Thread t = new Thread()
-            {
-                public void run()
-                {
-                    Button b = getButton( IDialogConstants.OK_ID );
-                    
-                    while( b == null )
-                    {
-                        try
-                        {
-                            Thread.sleep( 50 );
-                        }
-                        catch( InterruptedException e ) {}
-                        
-                        b = getButton( IDialogConstants.OK_ID );
-                    }
-                    
-                    final Button finalButton = b;
-                    
-                    display.asyncExec( new Runnable()
-                    {
-                        public void run()
-                        {
-                            finalButton.setEnabled( enabled );
-                        }
-                    } );
-                }
-            };
-            
-            t.start();
-        }
-    }
-    
-    private static GridData gdfill()
-    {
-        return new GridData( SWT.FILL, SWT.FILL, true, true );
-    }
-
-    private static GridData gdhfill()
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-    
-    public static Color color( final int id )
-    {
-        return Display.getCurrent().getSystemColor( id );       
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String dialogTitle;
-        public static String nameLabel;
-        public static String descLabel;
-        public static String nameInUseMessage;
-        
-        static
-        {
-            initializeMessages( SavePresetDialog.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.properties
deleted file mode 100644
index f4b006c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-dialogTitle = Save Preset
-nameLabel = Name:
-descLabel = Description:
-nameInUseMessage = Selected name already in use.
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/.classpath b/tests/org.eclipse.wst.common.project.facet.core.tests/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.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/tests/org.eclipse.wst.common.project.facet.core.tests/.project b/tests/org.eclipse.wst.common.project.facet.core.tests/.project
deleted file mode 100644
index 34d80fc..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.core.tests</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/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 6e5b537..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Facet Core Tests Plug-in
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core.tests;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Localization: plugin
-Require-Bundle: org.junit,
- org.eclipse.wst.common.project.facet.core,
- org.eclipse.core.runtime,
- org.eclipse.core.resources
-Export-Package: org.eclipse.wst.common.project.facet.core.tests,
- org.eclipse.wst.common.project.facet.core.tests.support
-Bundle-ClassPath: tests.jar
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties
deleted file mode 100644
index 205ce4b..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               test.xml,\
-               tests.jar
-jars.compile.order = tests.jar
-source.tests.jar = src/
-output.tests.jar = bin/
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml b/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
deleted file mode 100644
index 882dea0..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
+++ /dev/null
@@ -1,301 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-
-<plugin>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-    
-    <category id="cat1">
-      <label>Category 1</label>
-      <description>This is the category description.</description>
-    </category>
-
-    <project-facet id="facet1">
-      <label>Facet 1</label>
-      <description>This is the description of facet1.</description>
-    </project-facet>
-    
-    <project-facet-version facet="facet1" version="1.0">
-      <action type="install">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-      </action>
-      <action type="uninstall">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-      </action>
-      <action type="version-change">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet1" version="1.2">
-      <action type="install">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-      </action>
-      <action type="uninstall">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-      </action>
-      <action type="version-change">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet1" version="1.2.1"/>
-    <project-facet-version facet="facet1" version="1.3"/>
-    <project-facet-version facet="facet1" version="2.0"/>
-
-    <action facet="facet1" version="[1.2.1-2.0]" type="install">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1InstallDelegate"/>
-    </action>
-    
-    <action facet="facet1" version="[1.2.1-2.0]" type="uninstall">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1UninstallDelegate"/>
-    </action>
-    
-    <action facet="facet1" version="[1.2.1-2.0]" type="version-change">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet1VersionChangeDelegate"/>
-    </action>
-    
-    <project-facet id="facet2">
-      <version-comparator class="org.eclipse.wst.common.project.facet.core.tests.support.CustomVersionComparator"/>
-      <category>cat1</category>
-    </project-facet>
-    
-    <project-facet-version facet="facet2" version="3.5">
-      <constraint>
-        <requires facet="facet1" version="1.0"/>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="3.5#a">
-      <constraint>
-        <and>
-          <requires facet="facet1" version="[1.2-1.3)"/>
-        </and>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="4.7">
-      <constraint>
-        <or>
-          <requires facet="facet1" version="[1.3"/>
-        </or>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet-version facet="facet2" version="4.7#b">
-      <constraint>
-        <or>
-          <requires facet="facet1" version="1.3"/>
-          <requires facet="facet1" version="2.0"/>
-        </or>
-      </constraint>
-    </project-facet-version>
-        
-    <project-facet-version facet="facet2" version="4.7#c">
-      <constraint>
-        <and>
-          <or>
-            <requires facet="facet1" version="1.2.1"/>
-            <requires facet="facet1" version="1.3"/>
-            <requires facet="facet1" version="2.0"/>
-          </or>
-          <conflicts facet="facet3a"/>
-          <conflicts facet="facet3b" version="1.0"/>
-          <conflicts group="group1"/>
-        </and>
-      </constraint>
-      <group-member id="group1"/>
-    </project-facet-version>
-    
-    <project-facet id="facet2ext">
-      <category>cat1</category>
-    </project-facet>
-    
-    <project-facet-version facet="facet2ext" version="1.0"/>
-
-    <category id="cat2"/>
-    
-    <project-facet id="facet3a">
-      <category>cat2</category>
-    </project-facet>
-    
-    <project-facet-version facet="facet3a" version="1.0"/>
-    <project-facet-version facet="facet3a" version="2.0"/>
-    
-    <action facet="facet3a" version="[1.0-2.0]" type="install">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aInstallDelegate"/>
-    </action>
-
-    <action facet="facet3a" version="[1.0-2.0]" type="uninstall">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aUninstallDelegate"/>
-    </action>
-    
-    <action facet="facet3a" version="[1.0-2.0]" type="version-change">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.Facet3aVersionChangeDelegate"/>
-    </action>
-
-    <project-facet id="facet3b">
-      <category>cat2</category>
-    </project-facet>
-    
-    <project-facet-version facet="facet3b" version="1.0"/>
-    <project-facet-version facet="facet3b" version="2.0"/>
-    
-    <project-facet id="facet3c">
-      <category>cat2</category>
-    </project-facet>
-    
-    <project-facet-version facet="facet3c" version="1.0">
-      <group-member id="group1"/>
-    </project-facet-version>
-
-    <project-facet-version facet="facet3c" version="2.0">
-      <group-member id="group1"/>
-    </project-facet-version>
-
-    <preset id="preset1">
-      <label>Preset 1</label>
-      <description>This is the description for the first preset.</description>
-      <facet id="facet1" version="2.0"/>
-      <facet id="facet2" version="3.5#a"/>
-      <facet id="facet2ext" version="1.0"/>
-    </preset>
-
-    <preset id="preset2">
-      <facet id="facet3a" version="1.0"/>
-      <facet id="facet3b" version="1.0"/>
-      <facet id="facet3c" version="1.0"/>
-    </preset>
-    
-  </extension>
-
-  <!-- Facet Constraint Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="fct_f1"/>
-    
-    <project-facet-version facet="fct_f1" version="1.0">
-      <constraint>
-        <conflicts facet="fct_f2"/>
-      </constraint>
-    </project-facet-version>
-    
-    <project-facet id="fct_f2"/>
-    
-    <project-facet-version facet="fct_f2" version="1.0">
-      <constraint>
-        <conflicts facet="fct_f4"/>
-      </constraint>
-    </project-facet-version>
-  
-    <project-facet id="fct_f3"/>
-    
-    <project-facet-version facet="fct_f3" version="1.0">
-      <constraint>
-        <requires facet="fct_f2" version="1.0"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet id="fct_f4"/>
-    
-    <project-facet-version facet="fct_f4" version="1.0">
-    </project-facet-version>
-  
-    <project-facet id="fct_f5"/>
-    
-    <project-facet-version facet="fct_f5" version="1.0">
-      <constraint>
-        <requires facet="fct_f2" version="1.0" soft="true"/>
-      </constraint>
-    </project-facet-version>
-
-    <project-facet id="fct_f6"/>
-    
-    <project-facet-version facet="fct_f6" version="1.0"/>
-    <project-facet-version facet="fct_f6" version="2.3"/>
-    <project-facet-version facet="fct_f6" version="3.7"/>
-    <project-facet-version facet="fct_f6" version="4.0"/>
-    <project-facet-version facet="fct_f6" version="4.5"/>
-    
-    <project-facet id="fct_f7"/>
-    
-    <project-facet-version facet="fct_f7" version="1.0">
-      <constraint>
-        <requires facet="fct_f6"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-  </extension>
-
-  <!-- Default Version Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="dvt_f1"/>
-    
-    <project-facet-version facet="dvt_f1" version="1.0"/>
-    <project-facet-version facet="dvt_f1" version="2.0"/>
-    <project-facet-version facet="dvt_f1" version="3.0"/>
-    <project-facet-version facet="dvt_f1" version="4.0"/>
-
-    <project-facet id="dvt_f2">
-      <default-version version="2.0"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f2" version="1.0"/>
-    <project-facet-version facet="dvt_f2" version="2.0"/>
-    <project-facet-version facet="dvt_f2" version="3.0"/>
-    <project-facet-version facet="dvt_f2" version="4.0"/>
-
-    <project-facet id="dvt_f3">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF3DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f3" version="1.0"/>
-    <project-facet-version facet="dvt_f3" version="2.0"/>
-    <project-facet-version facet="dvt_f3" version="3.0"/>
-    <project-facet-version facet="dvt_f3" version="4.0"/>
-
-    <project-facet id="dvt_f4">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF3DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f4" version="1.0"/>
-    <project-facet-version facet="dvt_f4" version="2.0"/>
-    <project-facet-version facet="dvt_f4" version="3.0"/>
-    <project-facet-version facet="dvt_f4" version="4.0"/>
-
-    <project-facet id="dvt_f5">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF5DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f5" version="1.0"/>
-    <project-facet-version facet="dvt_f5" version="2.0"/>
-    <project-facet-version facet="dvt_f5" version="3.0"/>
-    <project-facet-version facet="dvt_f5" version="4.0"/>
-
-    <project-facet id="dvt_f6">
-      <default-version provider="org.eclipse.wst.common.project.facet.core.tests.DefaultVersionTests$FacetDvtF6DefaultVersionProvider"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f6" version="1.0"/>
-    <project-facet-version facet="dvt_f6" version="2.0"/>
-    <project-facet-version facet="dvt_f6" version="3.0"/>
-    <project-facet-version facet="dvt_f6" version="4.0"/>
-
-    <project-facet id="dvt_f7">
-      <default-version version="5.0"/>
-    </project-facet>
-    
-    <project-facet-version facet="dvt_f7" version="1.0"/>
-    <project-facet-version facet="dvt_f7" version="2.0"/>
-    <project-facet-version facet="dvt_f7" version="3.0"/>
-    <project-facet-version facet="dvt_f7" version="4.0"/>
-
-  </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java
deleted file mode 100644
index 7e6bf00..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AbstractTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-import junit.framework.TestCase;
-
-public abstract class AbstractTests
-
-    extends TestCase
-    
-{
-    protected static final IWorkspace ws = ResourcesPlugin.getWorkspace();
-    protected final Set resourcesToCleanup = new HashSet();
-    
-    protected AbstractTests( final String name )
-    {
-        super( name );
-    }
-    
-    protected void tearDown()
-        
-        throws CoreException
-        
-    {
-        for( Iterator itr = this.resourcesToCleanup.iterator(); itr.hasNext(); )
-        {
-            final IResource r = (IResource) itr.next();
-            r.delete( true, null );
-        }
-    }
-    
-    protected void addResourceToCleanup( final IResource resource )
-    {
-        this.resourcesToCleanup.add( resource );
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java
deleted file mode 100644
index b78c972..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AllTests.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-public class AllTests
-
-    extends TestCase
-    
-{
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "All Faceted Project Framework Tests" );
-        
-        suite.addTest( BasicTests.suite() );
-        suite.addTest( ProjectCreationTests.suite() );
-        suite.addTest( BasicFacetActionTests.suite() );
-        suite.addTest( FacetActionSortTests.suite() );
-        suite.addTest( ProjectChangeReactionTests.suite() );
-        suite.addTest( FacetConstraintsTests.suite() );
-        suite.addTest( DefaultVersionTests.suite() );
-        
-        return suite;
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java
deleted file mode 100644
index c4a0066..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicFacetActionTests.java
+++ /dev/null
@@ -1,236 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.IOException;
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-
-public class BasicFacetActionTests
-
-    extends TestCase
-    
-{
-    private static final String TEST_PROJECT_NAME = "testProject";
-    private static final IWorkspace ws = ResourcesPlugin.getWorkspace();
-    
-    private static final IFile facet1ArtifactFile
-        = ws.getRoot().getProject( TEST_PROJECT_NAME ).getFile( "facet1.txt" );
-    
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private IFacetedProject fpj;
-    
-    private BasicFacetActionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Basic Facet Action Tests" );
-
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall2" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetInstall3" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall2" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetUninstall3" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetVersionChange1" ) );
-        suite.addTest( new BasicFacetActionTests( "testFacetVersionChange2" ) );
-        suite.addTest( new BasicFacetActionTests( "testActionSeries" ) );
-        
-        return suite;
-    }
-    
-    protected void setUp()
-    
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( TEST_PROJECT_NAME ).exists() );
-        this.fpj = ProjectFacetsManager.create( TEST_PROJECT_NAME, null, null );
-        assertTrue( fpj.getProject().exists() );
-    }
-    
-    protected void tearDown()
-    
-        throws CoreException
-        
-    {
-        this.fpj.getProject().delete( true, null );
-    }
-    
-    public void testFacetInstall1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-    }
-    
-    public void testFacetInstall2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v121, null, null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-    }
-    
-    public void testFacetInstall3()
-    
-        throws CoreException, IOException
-        
-    {
-        final Action action = new Action( Action.Type.INSTALL, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-    }
-    
-    public void testFacetUninstall1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        this.fpj.uninstallProjectFacet( f1v10, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-
-    public void testFacetUninstall2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v121, null, null );
-        this.fpj.uninstallProjectFacet( f1v121, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-
-    public void testFacetUninstall3()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v20, null, null );
-        this.fpj.uninstallProjectFacet( f1v20, null, null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-    
-    public void testFacetVersionChange1()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v10, null, null );
-        final Action action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-    }
-
-    public void testFacetVersionChange2()
-    
-        throws CoreException, IOException
-        
-    {
-        this.fpj.installProjectFacet( f1v13, null, null );
-        final Action action = new Action( Action.Type.VERSION_CHANGE, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-    }
-    
-    public void testActionSeries()
-    
-        throws CoreException, IOException
-    
-    {
-        Action action;
-        
-        action = new Action( Action.Type.INSTALL, f1v10, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-
-        action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-
-        action = new Action( Action.Type.VERSION_CHANGE, f1v13, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v13.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-        
-        action = new Action( Action.Type.UNINSTALL, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        assertFalse( facet1ArtifactFile.exists() );
-
-        action = new Action( Action.Type.INSTALL, f1v12, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v12.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v13, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v13.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v10, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v10.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v20, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v20.getVersionString() );
-        
-        action = new Action( Action.Type.VERSION_CHANGE, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        TestUtils.assertEquals( facet1ArtifactFile, f1v121.getVersionString() );
-        
-        action = new Action( Action.Type.UNINSTALL, f1v121, null );
-        this.fpj.modify( Collections.singleton( action ), null );
-        assertFalse( facet1ArtifactFile.exists() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java
deleted file mode 100644
index 2ea3076..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/BasicTests.java
+++ /dev/null
@@ -1,715 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public final class BasicTests
-
-    extends TestCase
-    
-{
-    private static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core.tests";
-    
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v35;
-    private static IProjectFacetVersion f2v35a;
-    private static IProjectFacetVersion f2v47;
-    private static IProjectFacetVersion f2v47b;
-    private static IProjectFacetVersion f2v47c;
-    
-    private static IProjectFacet f2ext;
-    private static IProjectFacetVersion f2extv10;
-
-    private static IProjectFacet f3a;
-    private static IProjectFacetVersion f3av10;
-    private static IProjectFacetVersion f3av20;
-
-    private static IProjectFacet f3b;
-    private static IProjectFacetVersion f3bv10;
-    private static IProjectFacetVersion f3bv20;
-
-    private static IProjectFacet f3c;
-    private static IProjectFacetVersion f3cv10;
-    private static IProjectFacetVersion f3cv20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-            
-            f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-            f2v35 = f2.getVersion( "3.5" );
-            f2v35a = f2.getVersion( "3.5#a" );
-            f2v47 = f2.getVersion( "4.7" );
-            f2v47b = f2.getVersion( "4.7#b" );
-            f2v47c = f2.getVersion( "4.7#c" );
-            
-            f2ext = ProjectFacetsManager.getProjectFacet( "facet2ext" );
-            f2extv10 = f2ext.getVersion( "1.0" );
-
-            f3a = ProjectFacetsManager.getProjectFacet( "facet3a" );
-            f3av10 = f3a.getVersion( "1.0" );
-            f3av20 = f3a.getVersion( "2.0" );
-
-            f3b = ProjectFacetsManager.getProjectFacet( "facet3b" );
-            f3bv10 = f3b.getVersion( "1.0" );
-            f3bv20 = f3b.getVersion( "2.0" );
-
-            f3c = ProjectFacetsManager.getProjectFacet( "facet3c" );
-            f3cv10 = f3c.getVersion( "1.0" );
-            f3cv20 = f3c.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private BasicTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Basic Tests" );
-
-        suite.addTest( new BasicTests( "testProjectFacetExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testProjectFacetVersionExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testCategoryExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testPresetExtensionPoint" ) );
-        suite.addTest( new BasicTests( "testDefaultVersionComparator" ) );
-        suite.addTest( new BasicTests( "testCustomVersionComparator" ) );
-        suite.addTest( new BasicTests( "testVersionExpressions" ) );
-        suite.addTest( new BasicTests( "testConstraints" ) );
-        suite.addTest( new BasicTests( "testConstraintApi" ) );
-        
-        return suite;
-    }
-    
-    public void testProjectFacetExtensionPoint()
-    {
-        assertTrue( ProjectFacetsManager.isProjectFacetDefined( "facet1" ) );
-        final IProjectFacet f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-        assertTrue( ProjectFacetsManager.getProjectFacets().contains( f1 ) );
-        
-        assertEquals( f1.getId(), "facet1" );
-        assertEquals( f1.getLabel(), "Facet 1" );
-        assertEquals( f1.getDescription(), "This is the description of facet1." );
-        assertEquals( f1.getPluginId(), PLUGIN_ID );
-        
-        assertTrue( ProjectFacetsManager.isProjectFacetDefined( "facet2" ) );
-        final IProjectFacet f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-        assertTrue( ProjectFacetsManager.getProjectFacets().contains( f2 ) );
-        
-        assertEquals( f2.getId(), "facet2" );
-        assertEquals( f2.getLabel(), "facet2" );
-        assertEquals( f2.getDescription(), "" );
-        assertEquals( f2.getPluginId(), PLUGIN_ID );
-    }
-    
-    public void testProjectFacetVersionExtensionPoint()
-    {
-        assertTrue( f1.hasVersion( "1.0" ) );
-        final IProjectFacetVersion f1v10 = f1.getVersion( "1.0" );
-        assertEquals( f1v10.getVersionString(), "1.0" );
-        assertEquals( f1v10.getProjectFacet(), f1 );
-        assertEquals( f1v10.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.2" ) );
-        final IProjectFacetVersion f1v12 = f1.getVersion( "1.2" );
-        assertEquals( f1v12.getVersionString(), "1.2" );
-        assertEquals( f1v12.getProjectFacet(), f1 );
-        assertEquals( f1v12.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.2.1" ) );
-        final IProjectFacetVersion f1v121 = f1.getVersion( "1.2.1" );
-        assertEquals( f1v121.getVersionString(), "1.2.1" );
-        assertEquals( f1v121.getProjectFacet(), f1 );
-        assertEquals( f1v121.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "1.3" ) );
-        final IProjectFacetVersion f1v13 = f1.getVersion( "1.3" );
-        assertEquals( f1v13.getVersionString(), "1.3" );
-        assertEquals( f1v13.getProjectFacet(), f1 );
-        assertEquals( f1v13.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f1.hasVersion( "2.0" ) );
-        final IProjectFacetVersion f1v20 = f1.getVersion( "2.0" );
-        assertEquals( f1v20.getVersionString(), "2.0" );
-        assertEquals( f1v20.getProjectFacet(), f1 );
-        assertEquals( f1v20.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( f1.getVersions(),
-                      asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-
-        assertTrue( f2.hasVersion( "3.5" ) );
-        final IProjectFacetVersion f2v35 = f2.getVersion( "3.5" );
-        assertEquals( f2v35.getVersionString(), "3.5" );
-        assertEquals( f2v35.getProjectFacet(), f2 );
-        assertEquals( f2v35.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "3.5#a" ) );
-        final IProjectFacetVersion f2v35a = f2.getVersion( "3.5#a" );
-        assertEquals( f2v35a.getVersionString(), "3.5#a" );
-        assertEquals( f2v35a.getProjectFacet(), f2 );
-        assertEquals( f2v35a.getPluginId(), PLUGIN_ID );
-        
-        assertTrue( f2.hasVersion( "4.7" ) );
-        final IProjectFacetVersion f2v47 = f2.getVersion( "4.7" );
-        assertEquals( f2v47.getVersionString(), "4.7" );
-        assertEquals( f2v47.getProjectFacet(), f2 );
-        assertEquals( f2v47.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "4.7#b" ) );
-        final IProjectFacetVersion f2v47b = f2.getVersion( "4.7#b" );
-        assertEquals( f2v47b.getVersionString(), "4.7#b" );
-        assertEquals( f2v47b.getProjectFacet(), f2 );
-        assertEquals( f2v47b.getPluginId(), PLUGIN_ID );
-
-        assertTrue( f2.hasVersion( "4.7#c" ) );
-        final IProjectFacetVersion f2v47c = f2.getVersion( "4.7#c" );
-        assertEquals( f2v47c.getVersionString(), "4.7#c" );
-        assertEquals( f2v47c.getProjectFacet(), f2 );
-        assertEquals( f2v47c.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( f2.getVersions(), 
-                      asSet( f2v35, f2v35a, f2v47, f2v47b, f2v47c ) );
-        
-        // Check for version that doesn't exist.
-        
-        assertFalse( f2.hasVersion( "6.9" ) );
-        
-        try
-        {
-            f2.getVersion( "6.9" );
-            fail();
-        }
-        catch( IllegalArgumentException e ) {}
-    }
-    
-    public void testCategoryExtensionPoint()
-    {
-        assertTrue( ProjectFacetsManager.isCategoryDefined( "cat1" ) );
-        final ICategory cat1 = ProjectFacetsManager.getCategory( "cat1" );
-        assertTrue( ProjectFacetsManager.getCategories().contains( cat1 ) );
-        
-        assertEquals( cat1.getId(), "cat1" );
-        assertEquals( cat1.getLabel(), "Category 1" );
-        assertEquals( cat1.getDescription(), "This is the category description." );
-        assertEquals( cat1.getPluginId(), PLUGIN_ID );
-
-        assertEquals( cat1.getProjectFacets(), asSet( f2, f2ext ) );
-        assertEquals( f2.getCategory(), cat1 );
-        assertEquals( f2ext.getCategory(), cat1 );
-        
-        assertTrue( ProjectFacetsManager.isCategoryDefined( "cat2" ) );
-        final ICategory cat2 = ProjectFacetsManager.getCategory( "cat2" );
-        assertTrue( ProjectFacetsManager.getCategories().contains( cat2 ) );
-        
-        assertEquals( cat2.getId(), "cat2" );
-        assertEquals( cat2.getLabel(), "cat2" );
-        assertEquals( cat2.getDescription(), "" );
-        assertEquals( cat2.getPluginId(), PLUGIN_ID );
-        
-        assertEquals( cat2.getProjectFacets(), asSet( f3a, f3b, f3c ) );
-        assertEquals( f3a.getCategory(), cat2 );
-        assertEquals( f3b.getCategory(), cat2 );
-        assertEquals( f3c.getCategory(), cat2 );
-    }
-    
-    public void testPresetExtensionPoint()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "preset1" ) );
-        final IPreset preset1 = ProjectFacetsManager.getPreset( "preset1" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset1 ) );        
-        
-        assertEquals( preset1.getId(), "preset1" );
-        assertEquals( preset1.getLabel(), "Preset 1" );
-        assertEquals( preset1.getDescription(), "This is the description for the first preset." );
-        assertEquals( preset1.getProjectFacets(), asSet( f1v20, f2v35a, f2extv10 ) );
-        assertFalse( preset1.isUserDefined() );
-        
-        assertTrue( ProjectFacetsManager.isPresetDefined( "preset2" ) );
-        final IPreset preset2 = ProjectFacetsManager.getPreset( "preset2" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset2 ) );        
-        
-        assertEquals( preset2.getId(), "preset2" );
-        assertEquals( preset2.getLabel(), "preset2" );
-        assertEquals( preset2.getDescription(), "" );
-        assertEquals( preset2.getProjectFacets(), asSet( f3av10, f3bv10, f3cv10 ) );
-        assertFalse( preset2.isUserDefined() );
-    }
-    
-    public void testDefaultVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator comp = f1.getVersionComparator();
-        
-        assertEquals( comp.getClass().getName(), 
-                      "org.eclipse.wst.common.project.facet.core.DefaultVersionComparator" );
-        
-        assertTrue( comp.compare( "1.0", "1.2" ) < 0 );
-        assertTrue( comp.compare( "1.2", "1.2.1" ) < 0 );
-        assertTrue( comp.compare( "1.2.1", "2.0" ) < 0 );
-        
-        assertTrue( comp.compare( "1.2", "1.0" ) > 0 );
-        assertTrue( comp.compare( "1.2.1", "1.2" ) > 0 );
-        assertTrue( comp.compare( "2.0", "1.2.1" ) > 0 );
-        
-        assertTrue( comp.compare( "1.0", "1.0" ) == 0 );
-        assertTrue( comp.compare( "1.2", "1.2" ) == 0 );
-        assertTrue( comp.compare( "1.2.1", "1.2.1" ) == 0 );
-        assertTrue( comp.compare( "2.0", "2.0" ) == 0 );
-        
-        assertEquals( f1.getLatestVersion(), f1v20 );
-        
-        final List asc = f1.getSortedVersions( true );
-        
-        assertEquals( asc.size(), 5 );
-        assertEquals( asc.get( 0 ), f1v10 );
-        assertEquals( asc.get( 1 ), f1v12 );
-        assertEquals( asc.get( 2 ), f1v121 );
-        assertEquals( asc.get( 3 ), f1v13 );
-        assertEquals( asc.get( 4 ), f1v20 );
-        
-        final List desc = f1.getSortedVersions( false );
-        
-        assertEquals( desc.size(), 5 );
-        assertEquals( desc.get( 0 ), f1v20 );
-        assertEquals( desc.get( 1 ), f1v13 );
-        assertEquals( desc.get( 2 ), f1v121 );
-        assertEquals( desc.get( 3 ), f1v12 );
-        assertEquals( desc.get( 4 ), f1v10 );
-    }
-
-    public void testCustomVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator comp = f2.getVersionComparator();
-        
-        assertEquals( comp.getClass().getName(), 
-                      "org.eclipse.wst.common.project.facet.core.tests.support.CustomVersionComparator" );
-        
-        assertTrue( comp.compare( "3.5", "4.7" ) < 0 );
-        assertTrue( comp.compare( "3.5", "3.5#a" ) < 0 );
-        assertTrue( comp.compare( "4.7#c", "4.7#b" ) < 0 );
-        
-        assertTrue( comp.compare( "4.7", "3.5" ) > 0 );
-        assertTrue( comp.compare( "3.5#a", "3.5" ) > 0 );
-        assertTrue( comp.compare( "4.7#b", "4.7#c" ) > 0 );
-        
-        assertTrue( comp.compare( "3.5", "3.5" ) == 0 );
-        assertTrue( comp.compare( "3.5#a", "3.5#a" ) == 0 );
-        assertTrue( comp.compare( "4.7", "4.7" ) == 0 );
-        assertTrue( comp.compare( "4.7#b", "4.7#b" ) == 0 );
-        
-        assertEquals( f2.getLatestVersion(), f2v47b );
-        
-        final List asc = f2.getSortedVersions( true );
-        
-        assertEquals( asc.size(), 5 );
-        assertEquals( asc.get( 0 ), f2v35 );
-        assertEquals( asc.get( 1 ), f2v35a );
-        assertEquals( asc.get( 2 ), f2v47 );
-        assertEquals( asc.get( 3 ), f2v47c );
-        assertEquals( asc.get( 4 ), f2v47b );
-        
-        final List desc = f2.getSortedVersions( false );
-        
-        assertEquals( desc.size(), 5 );
-        assertEquals( desc.get( 0 ), f2v47b );
-        assertEquals( desc.get( 1 ), f2v47c );
-        assertEquals( desc.get( 2 ), f2v47 );
-        assertEquals( desc.get( 3 ), f2v35a );
-        assertEquals( desc.get( 4 ), f2v35 );
-    }
-    
-    public void testVersionExpressions()
-    
-        throws CoreException
-        
-    {
-        assertEquals( f1.getVersions( "1.2" ), 
-                      asSet( f1v12 ) );
-        
-        assertEquals( f1.getVersions( "1.2,1.3" ), 
-                      asSet( f1v12, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.0,1.2,1.2.1,1.3,2.0" ), 
-                      asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "[1.2" ),
-                      asSet( f1v12, f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "(1.2" ),
-                      asSet( f1v121, f1v13, f1v20 ) );
-        
-        assertEquals( f1.getVersions( "1.3]" ),
-                      asSet( f1v10, f1v12, f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.3)" ),
-                      asSet( f1v10, f1v12, f1v121 ) );
-        
-        assertEquals( f1.getVersions( "[1.2-1.3]" ),
-                      asSet( f1v12, f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "[1.2-1.3)" ),
-                      asSet( f1v12, f1v121 ) );
-        
-        assertEquals( f1.getVersions( "(1.2-1.3]" ),
-                      asSet( f1v121, f1v13 ) );
-        
-        assertEquals( f1.getVersions( "1.0,(1.2-1.3],2.0" ),
-                      asSet( f1v10, f1v121, f1v13, f1v20 ) );
-    }
-    
-    public void testConstraints()
-    {
-        /*
-         * Version: 3.5
-         * 
-         * <requires facet="facet1" version="1.0"/>
-         */ 
-
-        assertFalse( f2v35.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertTrue( f2v35.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertFalse( f2v35.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 3.5#a
-         * 
-         * <and>
-         *   <requires facet="facet1" version="[1.2-1.3)"/>
-         * </and>
-         */
-        
-        assertFalse( f2v35a.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertTrue( f2v35a.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertTrue( f2v35a.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertFalse( f2v35a.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7
-         * 
-         * <or>
-         *   <requires facet="facet1" version="[1.3"/>
-         * </or>
-         */
-        
-        assertFalse( f2v47.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v47.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7#b
-         * 
-         * <or>
-         *   <requires facet="facet1" version="1.3"/>
-         *   <requires facet="facet1" version="2.0"/>
-         * </or>
-         */
-        
-        assertFalse( f2v47b.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertFalse( f2v47b.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47b.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47b.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        /*
-         * Version: 4.7#c
-         * 
-         * <and>
-         *   <or>
-         *     <requires facet="facet1" version="1.2.1"/>
-         *     <requires facet="facet1" version="1.3"/>
-         *     <requires facet="facet1" version="2.0"/>
-         *   </or>
-         *   <conflicts facet="facet3a"/>
-         *   <conflicts facet="facet3b" version="1.0"/>
-         *   <conflicts group="group1"/>
-         * </and>
-         */
-        
-        assertFalse( f2v47c.getConstraint().check( Collections.EMPTY_SET  ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v12 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v121 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v13 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v20 ) ).isOK() );
-        
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3av10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3av20 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3bv10 ) ).isOK() );
-        assertTrue( f2v47c.getConstraint().check( asSet( f1v20, f3bv20 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3cv10 ) ).isOK() );
-        assertFalse( f2v47c.getConstraint().check( asSet( f1v20, f3cv20 ) ).isOK() );
-    }
-    
-    public void testConstraintApi()
-    {
-        assertEquals( IConstraint.Type.AND.name(), "and" );
-        assertTrue( IConstraint.Type.valueOf( "and" ) == IConstraint.Type.AND );
-        assertTrue( IConstraint.Type.valueOf( "aNd" ) == IConstraint.Type.AND );
-        
-        assertEquals( IConstraint.Type.OR.name(), "or" );
-        assertTrue( IConstraint.Type.valueOf( "or" ) == IConstraint.Type.OR );
-        assertTrue( IConstraint.Type.valueOf( "oR" ) == IConstraint.Type.OR );
-        
-        assertEquals( IConstraint.Type.REQUIRES.name(), "requires" );
-        assertTrue( IConstraint.Type.valueOf( "requires" ) == IConstraint.Type.REQUIRES );
-        assertTrue( IConstraint.Type.valueOf( "rEqUiRes" ) == IConstraint.Type.REQUIRES );
-        
-        assertEquals( IConstraint.Type.CONFLICTS.name(), "conflicts" );
-        assertTrue( IConstraint.Type.valueOf( "conflicts" ) == IConstraint.Type.CONFLICTS );
-        assertTrue( IConstraint.Type.valueOf( "cOnFlIcTs" ) == IConstraint.Type.CONFLICTS );
-        
-        /*
-         * <and>
-         *   <or>
-         *     <requires facet="facet1" version="1.2.1"/>
-         *     <requires facet="facet1" version="1.3"/>
-         *     <requires facet="facet1" version="2.0"/>
-         *   </or>
-         *   <conflicts facet="facet3a"/>
-         *   <conflicts facet="facet3b" version="1.0"/>
-         *   <conflicts group="group1"/>
-         * </and>
-         */
-        
-        assertTrue( ProjectFacetsManager.isGroupDefined( "group1" ) );
-        final IGroup g = ProjectFacetsManager.getGroup( "group1" );
-        assertEquals( g.getId(), "group1" );
-        assertEquals( g.getMembers(), asSet( f2v47c, f3cv10, f3cv20 ) );
-        
-        final IConstraint root = f2v47c.getConstraint();
-        checkConstraint( root, IConstraint.Type.AND, null, null, null, null );
-        
-        IConstraint c1, c2;
-        
-        c1 = (IConstraint) root.getOperand( 0 );
-        checkConstraint( c1, IConstraint.Type.OR, null, null, null );
-        
-        c2 = (IConstraint) c1.getOperand( 0 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "1.2.1", Boolean.FALSE );
-        
-        c2 = (IConstraint) c1.getOperand( 1 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "1.3", Boolean.FALSE );
-        
-        c2 = (IConstraint) c1.getOperand( 2 );
-        checkConstraint( c2, IConstraint.Type.REQUIRES, f1, "2.0", Boolean.FALSE );
-        
-        c1 = (IConstraint) root.getOperand( 1 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, f3a );
-        
-        c1 = (IConstraint) root.getOperand( 2 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, f3b, "1.0" );
-        
-        c1 = (IConstraint) root.getOperand( 3 );
-        checkConstraint( c1, IConstraint.Type.CONFLICTS, g );
-    }
-    
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand )
-    {
-        checkConstraint( c, expectedType, new Object[] { expectedOperand } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2 } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2,
-                                         final Object expectedOperand3 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2,
-                                        expectedOperand3 } );
-    }
-
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object expectedOperand1,
-                                         final Object expectedOperand2,
-                                         final Object expectedOperand3,
-                                         final Object expectedOperand4 )
-    {
-        checkConstraint( c, expectedType, 
-                         new Object[] { expectedOperand1, expectedOperand2,
-                                        expectedOperand3, expectedOperand4 } );
-    }
-    
-    private static void checkConstraint( final IConstraint c,
-                                         final IConstraint.Type expectedType,
-                                         final Object[] expectedOperands )
-    {
-        assertEquals( c.getType(), expectedType );
-
-        final int count = c.getOperands().size();
-        assertEquals( count, expectedOperands.length );
-        
-        final List list = new ArrayList();
-        
-        for( int i = 0; i < count; i++ )
-        {
-            final Object operand = c.getOperand( i );
-            final Object expected = expectedOperands[ i ];
-            
-            if( expected != null )
-            {
-                if( ( expected instanceof String ) &&
-                    ! ( operand instanceof String ) )
-                {
-                    assertEquals( operand.toString(), expected );
-                }
-                else
-                {
-                    assertEquals( operand, expected );
-                }
-            }
-            
-            list.add( c.getOperand( i ) );
-        }
-        
-        assertEquals( c.getOperands(), list );
-    }
-    
-    private static Set asSet( final Object obj )
-    {
-        return asSet( new Object[] { obj } );
-    }
-
-    private static Set asSet( final Object obj1,
-                              final Object obj2 )
-    {
-        return asSet( new Object[] { obj1, obj2 } );
-    }
-
-    private static Set asSet( final Object obj1,
-                              final Object obj2,
-                              final Object obj3 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3 } );
-    }
-
-    private static Set asSet( final Object obj1,
-                              final Object obj2,
-                              final Object obj3,
-                              final Object obj4 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3, obj4 } );
-    }
-
-    private static Set asSet( final Object obj1,
-                              final Object obj2,
-                              final Object obj3,
-                              final Object obj4,
-                              final Object obj5 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3, obj4, obj5 } );
-    }
-    
-    private static Set asSet( final Object[] array )
-    {
-        final HashSet set = new HashSet();
-        set.addAll( Arrays.asList( array ) );
-        return set;
-    }
-
-    private static List asList( final Object obj )
-    {
-        return asList( new Object[] { obj } );
-    }
-
-    private static List asList( final Object obj1,
-                                final Object obj2 )
-    {
-        return asList( new Object[] { obj1, obj2 } );
-    }
-
-    private static List asList( final Object obj1,
-                                final Object obj2,
-                                final Object obj3 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3 } );
-    }
-
-    private static List asList( final Object obj1,
-                                final Object obj2,
-                                final Object obj3,
-                                final Object obj4 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3, obj4 } );
-    }
-
-    private static List asList( final Object obj1,
-                                final Object obj2,
-                                final Object obj3,
-                                final Object obj4,
-                                final Object obj5 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3, obj4, obj5 } );
-    }
-    
-    private static List asList( final Object[] array )
-    {
-        return Arrays.asList( array );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java
deleted file mode 100644
index fd0b3cb..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/DefaultVersionTests.java
+++ /dev/null
@@ -1,174 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public class DefaultVersionTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v4;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v2;
-    
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v3;
-    
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v4;
-
-    private static IProjectFacet f5;
-    private static IProjectFacetVersion f5v4;
-    
-    private static IProjectFacet f6;
-    private static IProjectFacetVersion f6v4;
-
-    private static IProjectFacet f7;
-    private static IProjectFacetVersion f7v4;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "dvt_f1" );
-        f1v4 = f1.getVersion( "4.0" );
-
-        f2 = ProjectFacetsManager.getProjectFacet( "dvt_f2" );
-        f2v2 = f2.getVersion( "2.0" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "dvt_f3" );
-        f3v3 = f3.getVersion( "3.0" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "dvt_f4" );
-        f4v4 = f4.getVersion( "4.0" );
-
-        f5 = ProjectFacetsManager.getProjectFacet( "dvt_f5" );
-        f5v4 = f5.getVersion( "4.0" );
-
-        f6 = ProjectFacetsManager.getProjectFacet( "dvt_f6" );
-        f6v4 = f6.getVersion( "4.0" );
-
-        f7 = ProjectFacetsManager.getProjectFacet( "dvt_f7" );
-        f7v4 = f7.getVersion( "4.0" );
-    }
-    
-    private DefaultVersionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Default Version Tests" );
-
-        suite.addTest( new DefaultVersionTests( "testUnspecifiedDefaultVersion" ) );
-        suite.addTest( new DefaultVersionTests( "testStaticDefaultVersion" ) );
-        suite.addTest( new DefaultVersionTests( "testDefaultVersionProvider" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider1" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider2" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersionProvider3" ) );
-        suite.addTest( new DefaultVersionTests( "testBadDefaultVersion" ) );
-        
-        return suite;
-    }
-    
-    public void testUnspecifiedDefaultVersion()
-    {
-        assertEquals( f1.getDefaultVersion(), f1v4 );
-    }
-    
-    public void testStaticDefaultVersion()
-    {
-        assertEquals( f2.getDefaultVersion(), f2v2 );
-    }
-    
-    public void testDefaultVersionProvider()
-    {
-        assertEquals( f3.getDefaultVersion(), f3v3 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider returns a version that doesn't belong to the facet that the
-     * version provider is associated with.
-     */
-
-    public void testBadDefaultVersionProvider1()
-    {
-        assertEquals( f4.getDefaultVersion(), f4v4 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider throws an exception when invoked.
-     */
-
-    public void testBadDefaultVersionProvider2()
-    {
-        assertEquals( f5.getDefaultVersion(), f5v4 );
-    }
-    
-    /**
-     * Tests the handling of the case where the associated default version
-     * provider returns null.
-     */
-    
-    public void testBadDefaultVersionProvider3()
-    {
-        assertEquals( f6.getDefaultVersion(), f6v4 );
-    }
-
-    /**
-     * Tests the handling of the case where the specified static default version
-     * is not defined for the facet.
-     */
-
-    public void testBadDefaultVersion()
-    {
-        assertEquals( f7.getDefaultVersion(), f7v4 );
-    }
-    
-    public static final class FacetDvtF3DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-    
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            return ProjectFacetsManager.getProjectFacet( "dvt_f3" ).getVersion( "3.0" );
-        }
-    }
-    
-    public static final class FacetDvtF5DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            throw new RuntimeException();
-        }
-    }
-    
-    public static final class FacetDvtF6DefaultVersionProvider
-
-        implements IDefaultVersionProvider
-        
-    {
-        public IProjectFacetVersion getDefaultVersion()
-        {
-            return null;
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java
deleted file mode 100644
index 9007273..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionSortTests.java
+++ /dev/null
@@ -1,187 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-
-public class FacetActionSortTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v35;
-    private static IProjectFacetVersion f2v35a;
-    private static IProjectFacetVersion f2v47;
-    private static IProjectFacetVersion f2v47b;
-    private static IProjectFacetVersion f2v47c;
-    
-    private static IProjectFacet f2ext;
-    private static IProjectFacetVersion f2extv10;
-
-    private static IProjectFacet f3a;
-    private static IProjectFacetVersion f3av10;
-    private static IProjectFacetVersion f3av20;
-
-    private static IProjectFacet f3b;
-    private static IProjectFacetVersion f3bv10;
-    private static IProjectFacetVersion f3bv20;
-
-    private static IProjectFacet f3c;
-    private static IProjectFacetVersion f3cv10;
-    private static IProjectFacetVersion f3cv20;
-
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-            
-            f2 = ProjectFacetsManager.getProjectFacet( "facet2" );
-            f2v35 = f2.getVersion( "3.5" );
-            f2v35a = f2.getVersion( "3.5#a" );
-            f2v47 = f2.getVersion( "4.7" );
-            f2v47b = f2.getVersion( "4.7#b" );
-            f2v47c = f2.getVersion( "4.7#c" );
-            
-            f2ext = ProjectFacetsManager.getProjectFacet( "facet2ext" );
-            f2extv10 = f2ext.getVersion( "1.0" );
-
-            f3a = ProjectFacetsManager.getProjectFacet( "facet3a" );
-            f3av10 = f3a.getVersion( "1.0" );
-            f3av20 = f3a.getVersion( "2.0" );
-
-            f3b = ProjectFacetsManager.getProjectFacet( "facet3b" );
-            f3bv10 = f3b.getVersion( "1.0" );
-            f3bv20 = f3b.getVersion( "2.0" );
-
-            f3c = ProjectFacetsManager.getProjectFacet( "facet3c" );
-            f3cv10 = f3c.getVersion( "1.0" );
-            f3cv20 = f3c.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private FacetActionSortTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Action Sort Tests" );
-
-        suite.addTest( new FacetActionSortTests( "testUninstallComesFirst1" ) );
-        suite.addTest( new FacetActionSortTests( "testUninstallComesFirst2" ) );
-        suite.addTest( new FacetActionSortTests( "testSortStability1" ) );
-        suite.addTest( new FacetActionSortTests( "testSortStability2" ) );
-        
-        return suite;
-    }
-    
-    /**
-     * Tests whether the sort places uninstall actions first. This is the 
-     * control test case. The input already places uninstall first.
-     */
-    
-    public void testUninstallComesFirst1()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.UNINSTALL, f3av10, null );
-        
-        final ArrayList actions = new ArrayList();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( TestUtils.asSet( f3av10 ), actions );
-        assertEquals( actions, TestUtils.asList( a2, a1 ) );
-    }
-    
-    /**
-     * Tests whether the sort places uninstall actions first. The test case 
-     * places an install action in front of the uninstall action and checks
-     * whether the sort algorithm reverses the order. 
-     */
-    
-    public void testUninstallComesFirst2()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.UNINSTALL, f3av10, null );
-        
-        final ArrayList actions = new ArrayList();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( TestUtils.asSet( f3av10 ), actions );
-        assertEquals( actions, TestUtils.asList( a2, a1 ) );
-    }
-
-    /**
-     * Tests whether the sort produces "stable" results given unrelated facets.
-     * This is the control test case. The input is already in the correct order. 
-     */
-    
-    public void testSortStability1()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final ArrayList actions = new ArrayList();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, TestUtils.asList( a1, a2 ) );
-    }
-
-    /**
-     * Tests whether the sort produces "stable" results given unrelated facets.
-     * The input facets are in the reverse order.
-     */
-    
-    public void testSortStability2()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final ArrayList actions = new ArrayList();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, TestUtils.asList( a1, a2 ) );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java
deleted file mode 100644
index 7d576de..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetConstraintsTests.java
+++ /dev/null
@@ -1,195 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-public class FacetConstraintsTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v10;
-    
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v10;
-
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v10;
-
-    private static IProjectFacet f5;
-    private static IProjectFacetVersion f5v10;
-    
-    private static IProjectFacet f6;
-    private static IProjectFacetVersion f6v10;
-    private static IProjectFacetVersion f6v23;
-    private static IProjectFacetVersion f6v37;
-    private static IProjectFacetVersion f6v40;
-    private static IProjectFacetVersion f6v45;
-
-    private static IProjectFacet f7;
-    private static IProjectFacetVersion f7v10;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "fct_f1" );
-        f1v10 = f1.getVersion( "1.0" );
-
-        f2 = ProjectFacetsManager.getProjectFacet( "fct_f2" );
-        f2v10 = f2.getVersion( "1.0" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "fct_f3" );
-        f3v10 = f3.getVersion( "1.0" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "fct_f4" );
-        f4v10 = f4.getVersion( "1.0" );
-
-        f5 = ProjectFacetsManager.getProjectFacet( "fct_f5" );
-        f5v10 = f5.getVersion( "1.0" );
-
-        f6 = ProjectFacetsManager.getProjectFacet( "fct_f6" );
-        f6v10 = f6.getVersion( "1.0" );
-        f6v23 = f6.getVersion( "2.3" );
-        f6v37 = f6.getVersion( "3.7" );
-        f6v40 = f6.getVersion( "4.0" );
-        f6v45 = f6.getVersion( "4.5" );
-
-        f7 = ProjectFacetsManager.getProjectFacet( "fct_f7" );
-        f7v10 = f7.getVersion( "1.0" );
-    }
-    
-    private FacetConstraintsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Constraint Tests" );
-
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict1" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict2" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict3" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict4" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict5" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict6" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict7" ) );
-        suite.addTest( new FacetConstraintsTests( "testIndirectConflict8" ) );
-        suite.addTest( new FacetConstraintsTests( "testRequiresWithNoVersion" ) );
-        
-        return suite;
-    }
-    
-    /*
-     * Tests whether the conflict detection code picks up on an indirect
-     * conflict. Also tests that a soft constraint is not used to flag a
-     * conflict.
-     * 
-     * Here is the relationship diagram between the five facets involved in 
-     * this test: 
-     * 
-     *           conflicts            requires
-     *   f1 ----------------> f2 <---------------- f3
-     *   f4 <----------------    <---------------- f5
-     *           conflicts         soft requires
-     * 
-     * These case should come back positive for conflict:
-     * 
-     *   f1 with f3
-     *   f3 with f1
-     *   f4 with f3
-     *   f3 with f4
-     *   
-     * These case should come back negative for conflict:
-     * 
-     *   f1 with f5
-     *   f5 with f1
-     *   f4 with f5
-     *   f5 with f4
-     */
-    
-    public void testIndirectConflict1()
-    {
-        assertTrue( f1v10.conflictsWith( f3v10 ) );
-    }
-    
-    public void testIndirectConflict2()
-    {
-        assertTrue( f3v10.conflictsWith( f1v10 ) );
-    }
-
-    public void testIndirectConflict3()
-    {
-        assertTrue( f4v10.conflictsWith( f3v10 ) );
-    }
-
-    public void testIndirectConflict4()
-    {
-        assertTrue( f3v10.conflictsWith( f4v10 ) );
-    }
-    
-    public void testIndirectConflict5()
-    {
-        assertFalse( f1v10.conflictsWith( f5v10 ) );
-    }
-    
-    public void testIndirectConflict6()
-    {
-        assertFalse( f5v10.conflictsWith( f1v10 ) );
-    }
-
-    public void testIndirectConflict7()
-    {
-        assertFalse( f4v10.conflictsWith( f5v10 ) );
-    }
-
-    public void testIndirectConflict8()
-    {
-        assertFalse( f5v10.conflictsWith( f4v10 ) );
-    }
-    
-    /**
-     * Tests the following constraint:
-     * 
-     * <pre>
-     *   &lt;requires facet="fct_f6"/&gt;
-     * </pre>
-     */
-    
-    public void testRequiresWithNoVersion()
-    {
-        assertFalse( f7v10.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v10 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v23 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v37 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v40 ) ).isOK() );
-        assertTrue( f7v10.getConstraint().check( asSet( f6v45 ) ).isOK() );
-    }
-    
-    private static Set asSet( final Object obj )
-    {
-        return asSet( new Object[] { obj } );
-    }
-
-    private static Set asSet( final Object[] array )
-    {
-        final HashSet set = new HashSet();
-        set.addAll( Arrays.asList( array ) );
-        return set;
-    }
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java
deleted file mode 100644
index cc9606f..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectChangeReactionTests.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.ICondition;
-
-public final class ProjectChangeReactionTests
-
-    extends AbstractTests
-    
-{
-    private static final String METADATA_FILE 
-        = ".settings/org.eclipse.wst.common.project.facet.core.xml";
-    
-    private static final String TEST_PROJECT_NAME = "testProject";
-
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v12;
-    private static IProjectFacetVersion f1v121;
-    private static IProjectFacetVersion f1v13;
-    private static IProjectFacetVersion f1v20;
-    
-    static
-    {
-        try
-        {
-            f1 = ProjectFacetsManager.getProjectFacet( "facet1" );
-            f1v10 = f1.getVersion( "1.0" );
-            f1v12 = f1.getVersion( "1.2" );
-            f1v121 = f1.getVersion( "1.2.1" );
-            f1v13 = f1.getVersion( "1.3" );
-            f1v20 = f1.getVersion( "2.0" );
-        }
-        catch( Exception e )
-        {
-            // Ignore failures. This api is tested explicitly.
-        }
-    }
-    
-    private IProject pj;
-    private IFacetedProject fpj;
-    private IFile mdfile;
-
-    private ProjectChangeReactionTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Project Change Reaction Tests" );
-
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToProjectDelete" ) );
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToMetadataFileDelete" ) );
-        suite.addTest( new ProjectChangeReactionTests( "testReactionToMetadataFileChange" ) );
-        
-        return suite;
-    }
-    
-    protected void setUp()
-    
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( TEST_PROJECT_NAME ).exists() );
-        
-        this.fpj = ProjectFacetsManager.create( TEST_PROJECT_NAME, null, null );
-        
-        this.pj = this.fpj.getProject();
-        addResourceToCleanup( this.pj );
-        assertTrue( this.fpj.getProject().exists() );
-        
-        this.fpj.installProjectFacet( f1v12, null, null );
-        assertEquals( this.fpj.getProjectFacets(), TestUtils.asSet( f1v12 ) );
-        
-        this.mdfile = this.pj.getFile( METADATA_FILE );
-    }
-    
-    public void testReactionToProjectDelete()
-    
-        throws CoreException
-        
-    {
-        this.pj.delete( true, null );
-        
-        TestUtils.waitForCondition( createNoFacetsCondition( this.fpj ) );
-        assertNull( ProjectFacetsManager.create( this.pj ) );
-    }
-
-    public void testReactionToMetadataFileDelete()
-    
-        throws CoreException
-        
-    {
-        this.mdfile.delete( true, null );
-
-        TestUtils.waitForCondition( createNoFacetsCondition( this.fpj ) );
-    }
-
-    public void testReactionToMetadataFileChange()
-    
-        throws CoreException, IOException
-        
-    {
-        String contents;
-        
-        contents = TestUtils.readFromFile( this.mdfile );
-        contents = contents.replaceFirst( "1.2", "2.0" );
-        TestUtils.writeToFile( this.mdfile, contents );
-        
-        TestUtils.waitForCondition( createFacetCondition( this.fpj, f1v20 ) );
-        
-        contents = contents.replaceFirst( "2.0", "1.2.1" );
-        TestUtils.writeToFile( this.mdfile, contents );
-        
-        TestUtils.waitForCondition( createFacetCondition( this.fpj, f1v121 ) );
-        
-        contents = contents.replaceFirst( "<installed facet=\"facet1\" version=\"1.2.1\"/>", "" );
-        TestUtils.writeToFile( this.mdfile, contents );
-        
-        TestUtils.waitForCondition( createNoFacetsCondition( this.fpj ) );
-    }
-    
-    private static ICondition createNoFacetsCondition( final IFacetedProject fpj )
-    {
-        return new ICondition()
-        {
-            public boolean check()
-            {
-                return fpj.getProjectFacets().size() == 0;
-            }
-        };
-    }
-    
-    private static ICondition createFacetCondition( final IFacetedProject fpj,
-                                                    final IProjectFacetVersion fv )
-    {
-        return new ICondition()
-        {
-            public boolean check()
-            {
-                return fpj.hasProjectFacet( fv );
-            }
-        };
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java
deleted file mode 100644
index 94e4788..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/ProjectCreationTests.java
+++ /dev/null
@@ -1,329 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.IOException;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.tests.support.TestUtils;
-
-public final class ProjectCreationTests
-
-    extends AbstractTests
-    
-{
-    private static final String FACETED_PROJECT_NATURE
-        = "org.eclipse.wst.common.project.facet.core.nature";
-    
-    private ProjectCreationTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Project Creation Tests" );
-
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch1" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch2" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromScratch3" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject1" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject2" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject3" ) );
-        suite.addTest( new ProjectCreationTests( "testCreationFromNonFacetedProject4" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation1" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation2" ) );
-        suite.addTest( new ProjectCreationTests( "testWrapperCreation3" ) );
-        
-        return suite;
-    }
-
-    /**
-     * Tests {@see ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is no project with the same name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromScratch1()
-    
-        throws CoreException, IOException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        
-        assertNotNull( proj );
-        assertTrue( proj.exists() );
-        
-        this.resourcesToCleanup.add( proj );
-        
-        TestUtils.assertFileContains( proj.getFile( ".project" ), FACETED_PROJECT_NATURE );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@see ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is a faceted project with the same name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-
-    public void testCreationFromScratch2()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        this.resourcesToCleanup.add( fproj.getProject() );
-        
-        try
-        {
-            ProjectFacetsManager.create( "abc", null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            // expected
-        }
-    }
-
-    /**
-     * Tests {@see ProjectFacetsManager.create(String,IPath,IProgressMonitor)}
-     * method. In this scenario, there is a non-faceted project with the same
-     * name.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromScratch3()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( IResource.BACKGROUND_REFRESH, null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        try
-        {
-            ProjectFacetsManager.create( "abc", null, null );
-            fail();
-        }
-        catch( CoreException e )
-        {
-            // expected
-        }
-    }
-    
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is not faceted and convertIfNecessary
-     * is set to true.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject1()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-    
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( IResource.BACKGROUND_REFRESH, null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, true, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is faceted and convertIfNecessary
-     * is set to true.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject2()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject prior 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject project = prior.getProject();
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, true, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is faceted and convertIfNecessary
-     * is set to false.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject3()
-    
-        throws CoreException, IOException
-    
-    {
-        final IFacetedProject prior 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject project = prior.getProject();
-        
-        this.resourcesToCleanup.add( project );
-        
-        final IFacetedProject fproj
-            = ProjectFacetsManager.create( project, false, null );
-        
-        assertEquals( fproj.getFixedProjectFacets().size(), 0 );
-        assertEquals( fproj.getProjectFacets().size(), 0 );
-        assertEquals( fproj.getTargetedRuntimes().size(), 0 );
-        assertNull( fproj.getPrimaryRuntime() );
-    }
-    
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject,boolean,IProgressMonitor)}
-     * method. In this scenario project is not faceted and convertIfNecessary
-     * is set to false.
-     * 
-     * @throws CoreException
-     * @throws IOException
-     */
-    
-    public void testCreationFromNonFacetedProject4()
-    
-        throws CoreException, IOException
-    
-    {
-        final IProject project = ws.getRoot().getProject( "abc" );
-        final IProjectDescription desc = ws.newProjectDescription( "abc" );
-    
-        desc.setLocation( null );
-                
-        project.create( desc, null );
-        project.open( IResource.BACKGROUND_REFRESH, null );
-        
-        this.resourcesToCleanup.add( project );
-        
-        assertNull( ProjectFacetsManager.create( project, false, null ) );
-    }
-    
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject)} method. This scenario
-     * validates that the wrapper cache is working and the same instance is
-     * returned when the create method is called multiple times.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation1()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-        assertTrue( fproj == ProjectFacetsManager.create( proj ) );
-    }
-
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject)} method. In this
-     * scenario, the input project does not exist.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation2()
-    
-        throws CoreException
-        
-    {
-        final IProject proj = ws.getRoot().getProject( "abc" );
-        assertNull( ProjectFacetsManager.create( proj ) );
-    }
-
-    /**
-     * Tests {@see ProjectFacetsManager.create(IProject)} method. In this
-     * scenario, the input project is closed.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testWrapperCreation3()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( "abc", null, null );
-        
-        final IProject proj = fproj.getProject();
-        this.resourcesToCleanup.add( proj );
-        
-        proj.close( null );
-        
-        assertNull( ProjectFacetsManager.create( proj ) );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java
deleted file mode 100644
index 470ce14..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/CustomVersionComparator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-
-public final class CustomVersionComparator
-
-    extends DefaultVersionComparator
-    
-{
-    protected String getSeparators()
-    {
-        return ".#";
-    }
-    
-    protected Comparable parse( final String version,
-                                final String segment,
-                                final int position )
-    
-        throws VersionFormatException
-        
-    {
-        if( position == 2 )
-        {
-            return new Inverter( segment );
-        }
-        else
-        {
-            return super.parse( version, segment, position );
-        }
-    }
-    
-    public static class Inverter
-    
-        implements Comparable
-        
-    {
-        private final Comparable base;
-        
-        public Inverter( final Comparable base )
-        {
-            this.base = base;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof Inverter ) )
-            {
-                return false;
-            }
-            else
-            {
-                return this.base.equals( ( (Inverter) obj ).base );
-            }
-        }
-        
-        public int compareTo( final Object obj )
-        {
-            return -1 * this.base.compareTo( ( (Inverter) obj ).base );
-        }
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java
deleted file mode 100644
index 4590e3e..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1InstallDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet1InstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java
deleted file mode 100644
index baaafec..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1UninstallDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet1UninstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        file.delete( true, null );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java
deleted file mode 100644
index 48650c5..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet1VersionChangeDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet1VersionChangeDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet1.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java
deleted file mode 100644
index ece8270..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aInstallDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet3aInstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java
deleted file mode 100644
index eca1812..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aUninstallDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet3aUninstallDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        file.delete( true, null );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java
deleted file mode 100644
index 060a839..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/Facet3aVersionChangeDelegate.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class Facet3aVersionChangeDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        final IFile file = project.getFile( "facet3a.txt" );
-        TestUtils.writeToFile( file, fv.getVersionString() );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java
deleted file mode 100644
index 70f9850..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/NoOpDelegate.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-public final class NoOpDelegate
-
-    implements IDelegate
-    
-{
-    public void execute( final IProject project, 
-                         final IProjectFacetVersion fv, 
-                         final Object config, 
-                         final IProgressMonitor monitor ) 
-    {
-        // do nothing
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java
deleted file mode 100644
index ae35782..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/support/TestUtils.java
+++ /dev/null
@@ -1,203 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.tests.support;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-public class TestUtils
-{
-    public static void writeToFile( final IFile file,
-                                    final String contents )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            final byte[] bytes = contents.getBytes( "UTF-8" );
-            
-            if( file.exists() )
-            {
-                file.setContents( new ByteArrayInputStream( bytes ),
-                                  false, false, null );
-            }
-            else
-            {
-                file.create( new ByteArrayInputStream( bytes ), false, null );
-            }
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-    
-    public static String readFromFile( final IFile file )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertTrue( file.exists() );
-        
-        final StringBuffer buf = new StringBuffer();
-        final Reader r = new InputStreamReader( file.getContents() );
-        
-        try
-        {
-            char[] chars = new char[ 1024 ];
-            
-            for( int count; ( count = r.read( chars ) ) != -1; )
-            {
-                buf.append( chars, 0, count );
-            }
-        }
-        finally
-        {
-            try
-            {
-                r.close();
-            }
-            catch( IOException e ) {}
-        }
-        
-        return buf.toString();
-    }
-    
-    
-    public static void assertEquals( final IFile file,
-                                     final String expectedContents )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertEquals( readFromFile( file ), expectedContents );
-    }
-    
-    public static void assertFileContains( final IFile file,
-                                           final String str )
-    
-        throws CoreException, IOException
-        
-    {
-        TestCase.assertTrue( readFromFile( file ).indexOf( str ) != -1 );
-    }
-    
-    public static void waitForCondition( final ICondition condition )
-    {
-        waitForCondition( condition, 10 );
-    }
-    
-    public static void waitForCondition( final ICondition condition,
-                                         final int seconds )
-    {
-        for( int i = 0; i < seconds && ! condition.check(); i++ )
-        {
-            try
-            {
-                Thread.sleep( 1000 );
-            }
-            catch( InterruptedException e ) {}
-        }
-        
-        TestCase.assertTrue( condition.check() );
-    }
-    
-    public static interface ICondition
-    {
-        boolean check();
-    }
-    
-    public static Set asSet( final Object obj )
-    {
-        return asSet( new Object[] { obj } );
-    }
-
-    public static Set asSet( final Object obj1,
-                             final Object obj2 )
-    {
-        return asSet( new Object[] { obj1, obj2 } );
-    }
-
-    public static Set asSet( final Object obj1,
-                             final Object obj2,
-                             final Object obj3 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3 } );
-    }
-
-    public static Set asSet( final Object obj1,
-                             final Object obj2,
-                             final Object obj3,
-                             final Object obj4 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3, obj4 } );
-    }
-
-    public static Set asSet( final Object obj1,
-                             final Object obj2,
-                             final Object obj3,
-                             final Object obj4,
-                             final Object obj5 )
-    {
-        return asSet( new Object[] { obj1, obj2, obj3, obj4, obj5 } );
-    }
-    
-    public static Set asSet( final Object[] array )
-    {
-        final HashSet set = new HashSet();
-        set.addAll( Arrays.asList( array ) );
-        return set;
-    }
-
-    public static List asList( final Object obj )
-    {
-        return asList( new Object[] { obj } );
-    }
-
-    public static List asList( final Object obj1,
-                               final Object obj2 )
-    {
-        return asList( new Object[] { obj1, obj2 } );
-    }
-
-    public static List asList( final Object obj1,
-                               final Object obj2,
-                               final Object obj3 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3 } );
-    }
-
-    public static List asList( final Object obj1,
-                               final Object obj2,
-                               final Object obj3,
-                               final Object obj4 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3, obj4 } );
-    }
-
-    public static List asList( final Object obj1,
-                               final Object obj2,
-                               final Object obj3,
-                               final Object obj4,
-                               final Object obj5 )
-    {
-        return asList( new Object[] { obj1, obj2, obj3, obj4, obj5 } );
-    }
-    
-    public static List asList( final Object[] array )
-    {
-        return Arrays.asList( array );
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml b/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml
deleted file mode 100644
index f1b343d..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/test.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-
-  <echo message="basedir ${basedir}" />
-  <echo message="eclipse place ${eclipse-home}" />
-  
-  <property name="plugin-name" value="org.eclipse.wst.common.project.facet.core.tests"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="${plugin-name}*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  
-  <target name="suite">
-    <property name="wst-folder" value="${eclipse-home}/wst_folder"/>
-    <delete dir="${wst-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${wst-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.wst.common.project.facet.core.tests.AllTests" />
-      <property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="${plugin-name}*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-  
-</project>
\ No newline at end of file