This commit was manufactured by cvs2svn to create tag 'v200706030435'.
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 304e861..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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<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 bcc26d6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Wed Jan 31 15:32:12 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-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=error
-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=error
-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.5
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 3a3661c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +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.2.0.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.core.events,
- org.eclipse.wst.common.project.facet.core.internal;x-friends:="org.eclipse.wst.common.project.facet.ui",
- org.eclipse.wst.common.project.facet.core.internal.util;x-friends:="org.eclipse.wst.common.project.facet.ui",
- org.eclipse.wst.common.project.facet.core.runtime
-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
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
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 73db36e..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>June 06, 2007</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 b5c7f40..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-pluginName = Project Facet Core
-providerName = Eclipse.org
-builderName = Faceted Project Validation Builder
-validationMarkerName = Faceted Project Problem
-extPointListeners = Faceted Project Listeners Extension Point
-extPointPresets = Faceted Project Presets
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 2857ac1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,91 +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-point 
-    id="listeners" 
-    name="%extPointListeners" 
-    schema="schemas/listeners.exsd"/>
-    
-  <extension-point 
-    id="presets" 
-    name="%extPointPresets" 
-    schema="schemas/presets.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.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>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.presets">
-    <dynamic-preset id="default.configuration">
-      <factory class="org.eclipse.wst.common.project.facet.core.internal.DefaultConfigurationPresetFactory"/>
-    </dynamic-preset>
-  </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 1ffb08f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
+++ /dev/null
@@ -1,179 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <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>
-         
-      </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 4be458c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ /dev/null
@@ -1,765 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice minOccurs="1" maxOccurs="unbounded">
-            <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"/>
-            <element ref="group"/>
-         </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. If not specified, the id will be used for a label.
-         </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="1" 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="1" 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 facet or any member of a group of facets. This operator will return true if the dependency is satisfied. 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 is declaring a dependency on. Any member of the group will satisfy the dependency. 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.
-               </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" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-            <element ref="default-version" minOccurs="0" maxOccurs="1"/>
-            <element ref="member" 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" minOccurs="0" maxOccurs="1"/>
-            <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>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <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>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <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>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </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>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </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>
-               <appInfo>
-                  <meta.attribute deprecated="true"/>
-               </appInfo>
-            </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>
-
-   <element name="group">
-      <annotation>
-         <documentation>
-            Describes a project facet group. A group is a named collection of project facet versions. It is used primarily as a parameter to the &quot;requires&quot; and &quot;conflicts&quot; constraints and allows a level of indirection where a facet does not need to know about all the members of the group. A given project facet version can belong to several groups. Groups are created automatically when used in the &quot;group-member&quot; element, so an explicit group declaration is optional. However, it does allow a label and a description to be associated with the group.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Group identifier.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="member">
-      <annotation>
-         <documentation>
-            Adds the project facet as a member of a category.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="category" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The category id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </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-2007 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
-&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/listeners.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/listeners.exsd
deleted file mode 100644
index d2789cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/listeners.exsd
+++ /dev/null
@@ -1,147 +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="listeners" name="Faceted Project Listeners Extension Point"/>
-      </appInfo>
-      <documentation>
-         This extension point allows for registration of listeners that will be notified of changes to the metadata of faceted projects. The following event types are supported: 
-
-&lt;p&gt;
-&lt;code&gt;
-PROJECT_MODIFIED&lt;br/&gt;
-PRE_INSTALL&lt;br/&gt;
-POST_INSTALL&lt;br/&gt;
-PRE_UNINSTALL&lt;br/&gt;
-POST_UNINSTALL&lt;br/&gt;
-PRE_VERSION_CHANGE&lt;br/&gt;
-POST_VERSION_CHANGE&lt;br/&gt;
-FIXED_FACETS_CHANGED&lt;br/&gt;
-TARGETED_RUNTIMES_CHANGED&lt;br/&gt;
-PRIMARY_RUNTIME_CHANGED
-&lt;/code&gt;
-&lt;/p&gt;
-
-&lt;p&gt;See the documentation for &lt;code&gt;org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent.Type&lt;/code&gt; enum for more details about each event type.&lt;/p&gt;
-
-&lt;p&gt;It is also possible to register listeners in code using either &lt;code&gt;FacetedProjectFramework.addListener()&lt;/code&gt; or &lt;code&gt;IFacetedProject.addListener()&lt;/code&gt; methods.&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="listener" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="listener">
-      <annotation>
-         <documentation>
-            Registers one listener.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The listener class.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="eventTypes" type="string">
-            <annotation>
-               <documentation>
-                  A comma-separated list of event types that the listener should be notified about.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.listeners&quot;&gt;
-  &lt;!-- Listen to all events. --&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener1&quot;/&gt;
-  &lt;!-- Listen to specific events. --&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener2&quot; eventTypes=&quot;PROJECT_MODIFIED&quot;/&gt;
-  &lt;listener class=&quot;com.mycompany.myproduct.MyListener2&quot; eventTypes=&quot;PRE_INSTALL,FIXED_FACETS_CHANGED&quot;/&gt;
-&lt;/extension&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-2007 BEA Systems, Inc.&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/presets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
deleted file mode 100644
index 75cf7d6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
+++ /dev/null
@@ -1,229 +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="presets" name="Faceted Project Presets"/>
-      </appInfo>
-      <documentation>
-         A preset represents a common configuration of facets and their versions that give a user a starting point when configuring a project. Presets can either be static or dynamic. Static presets are fully specified in this extension point. Dynamic presets are created using an extender-supplied factory that can take into account the context in which the preset will be used in. Static presets can also extend other presets.
-
-&lt;p&gt;To programmatically define a preset, use the &lt;code&gt;ProjectFacetsManager.definePreset()&lt;/code&gt; methods.&lt;/code&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="static-preset" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="dynamic-preset" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="static-preset">
-      <annotation>
-         <documentation>
-            Defines a static preset. A static preset is fully specified in the extension point.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="label" minOccurs="0" maxOccurs="1"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="facet" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="extends" type="string">
-            <annotation>
-               <documentation>
-                  The id of the preset that this preset is extending. If the base preset includes a facet that&apos;s also specified by this preset (derived), the version of the facet specified in the derived preset wins.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="label" type="string">
-      <annotation>
-         <documentation>
-            The localizable name that is presented to the user. If not specified, the id will be used for a label.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="description" type="string">
-      <annotation>
-         <documentation>
-            The description text.
-         </documentation>
-      </annotation>
-   </element>
-
-   <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>
-
-   <element name="dynamic-preset">
-      <annotation>
-         <documentation>
-            Defines a dynamic preset. A dynamic preset uses a factory to synthesize the preset definition on the fly based on the context in which it will be used.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="factory"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  The preset id.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <annotation>
-         <documentation>
-            Specifies the factory.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of the factory class.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IPresetFactory"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         2.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.presets&quot;&gt;
-
-  &lt;!-- Defines a dynamic preset which will be synthesized by the provided factory. This particular preset
-       is actually supplied by the Faceted Project Framework. What it resolves to depends on the context.
-       If project does not target a runtime, it will contain only the fixed facets with their default
-       versions. If project targets one or more runtime, this preset will contain facets that are specified
-       to be the default for the primary runtime. --&gt;
-       
-  &lt;preset id=&quot;default.configuration&quot;&gt;
-    &lt;factory class=&quot;org.eclipse.wst.common.project.facet.core.internal.DefaultConfigurationPresetFactory&quot;/&gt;
-  &lt;/preset&gt;
-
-  &lt;!-- Creates a preset which extends the &quot;default.configuration&quot; preset and adds two facets. --&gt; 
-       
-  &lt;preset id=&quot;my.favorite.preset&quot; extends=&quot;default.configuration&quot;&gt;
-    &lt;label&gt;My Favorite Configuration&lt;/label&gt;
-    &lt;description&gt;Here is the description of my favorite configuration.&lt;/description&gt;
-    &lt;facet id=&quot;facet_a&quot; version=&quot;1.2&quot;/&gt;
-    &lt;facet id=&quot;facet_b&quot; version=&quot;2.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-2007 BEA Systems, Inc.&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 fa10445..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
+++ /dev/null
@@ -1,123 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <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>
-         
-      </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 6f745df..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
+++ /dev/null
@@ -1,290 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <choice>
-            <element ref="runtime-component-type" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="runtime-component-version" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="adapter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="supported" minOccurs="0" maxOccurs="unbounded"/>
-         </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>
-         
-      </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 4d449cd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/validators.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.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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <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>
-         
-      </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 8a11d1b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-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.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultVersionComparator
-
-    implements Comparator<String>
-    
-{
-    public final int compare( final String obj1,
-                              final String obj2 )
-    
-        throws VersionFormatException
-        
-    {
-        final Comparable<Object>[] parsed1 = parse( obj1 );
-        final Comparable<Object>[] parsed2 = parse( 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<? extends Object> 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
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    private Comparable<Object>[] parse( final String ver )
-    {
-        final List<String> segments = new ArrayList<String>();
-        
-        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, 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 f5f06ab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectFramework
-{
-    public static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core"; //$NON-NLS-1$
-    
-    /**
-     * The id of a built-in preset that provides default configuration. The contents of this preset
-     * are calculated as follows:
-     * 
-     * <ol>
-     *   <li>If a runtime is selected, this preset will contain default facets as specified by
-     *     {@see IRuntime.getDefaultFacets(Set)}.</li>
-     *   <li>If no runtime is selected, this preset will contain default versions for all of the 
-     *     fixed facets as specified by {@see IProjectFacet.getDefaultVersion()}.
-     * </ol>
-     * 
-     * @since 2.0
-     */
-    
-    public static final String DEFAULT_CONFIGURATION_PRESET_ID 
-        = "default.configuration"; //$NON-NLS-1$
-    
-    private static FacetedProjectFrameworkImpl 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;
-    }
-    
-    /**
-     * Adds a faceted project listener that will be notified when the selected events in the faceted
-     * project life cycle occur. The listener will apply to all faceted projects that exist in the
-     * workspace now and in the future (until the listener is removed or the workspace is closed).
-     * 
-     * @param listener the faceted project listener
-     * @param types the types of the events to listen for
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
-     *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see removeListener(IFacetedProjectListener)
-     * @see IFacetedProject.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.removeListener(IFacetedProjectListener)
-     */
-    
-    public static void addListener( final IFacetedProjectListener listener,
-                                    final IFacetedProjectEvent.Type... types )
-    {
-        initialize();
-        impl.addListener( listener, types );
-    }
-    
-    /**
-     * Removes the faceted project listener that was previously registered using the
-     * {@see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
-     * specified listener is not present in the listener registry, this call will be ignored.
-     * 
-     * @param listener the faceted project listener
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.removeListener(IFacetedProjectListener)
-     */
-    
-    public static void removeListener( final IFacetedProjectListener listener )
-    {
-        initialize();
-        impl.removeListener( listener );
-    }
-    
-    private static synchronized void initialize()
-    {
-        if( impl == null )
-        {
-            impl = FacetedProjectFrameworkImpl.getInstance();
-        }
-    }
-    
-}
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 230f0c4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @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 6301ac5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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 27577e4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionDefinition.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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
-     */
-    
-    Map<String,Object> 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 91ac318..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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
-     */
-    
-    Set<IProjectFacet> 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 ea2147a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IConstraint 
-{
-    /**
-     * The enumeration of operator types.
-     */
-    
-    static final class Type
-    {
-        private static final Map<String,Type> items = new HashMap<String,Type>();
-        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 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
-     */
-    
-    List<Object> 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
-     * @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<IProjectFacetVersion> facets );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets
-     * @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<IProjectFacetVersion> 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 e3d381f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDefaultVersionProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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. 
- * 
- * @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 10fe795..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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/IDynamicPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
deleted file mode 100644
index d57a2ae..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-/**
- * A dynamic preset is type of preset that needs to be resolved before it can be used. The resolve
- * operation relies the {@see IPresetFactory} specified when the dynamic preset is registered via
- * the <code>presets</code> extension point and can take into account the context in which the 
- * preset will be used. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public interface IDynamicPreset
-
-    extends IPreset
-    
-{
-    /**
-     * The key of the context map entry whose value is a set of {@see IProjectFacet} objects
-     * representing the fixed facets.
-     */
-    
-    static final String CONTEXT_KEY_FIXED_FACETS = "CONTEXT_KEY_FIXED_FACETS"; //$NON-NLS-1$
-    
-    /**
-     * The key of the context map entry whose value is the primary runtime ({@see IRuntime}) or
-     * <code>null</code> if no runtime has been selected.
-     */
-    
-    static final String CONTEXT_KEY_PRIMARY_RUNTIME = "CONTEXT_KEY_PRIMARY_RUNTIME";  //$NON-NLS-1$
-    
-    /**
-     * Resolves the dynamic preset using the provided context information. If this preset is not
-     * applicable to the provided context, this method will return <code>null</code>.
-     * 
-     * @param context the information about context that this preset will be used in
-     * @return the resolved preset or <code>null</code>
-     */
-   
-    IPreset resolve( Map<String,Object> context );
-    
-}
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 2689f7b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ /dev/null
@@ -1,547 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-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.
- * 
- * @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.
-     */
-    
-    static final class Action
-    {
-        /**
-         * The action type enumeration.
-         */
-        
-        public static final class Type
-        {
-            private static final Map<String,Type> items = new HashMap<String,Type>();
-            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 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 
-     */
-    
-    Set<IProjectFacetVersion> 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<Action> 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
-     */
-    
-    Set<IProjectFacet> 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
-     * @throws CoreException if failed while updating the set of fixed project
-     *   facets
-     */
-
-    void setFixedProjectFacets( Set<IProjectFacet> 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;
-    
-    /**
-     * Determines whether this project (in it's current state) can be targeted to the provided
-     * runtime. This determination is made by looking at the facets that are currently installed
-     * and checking them against the set of facets known to be supported by the provided runtime.
-     * 
-     * @param runtime the runtime to check
-     * @return <code>true</code> if this project can target the provided runtime and
-     *   <code>false</code> otherwise
-     * @since WTP 2.0
-     */
-    
-    boolean isTargetable( IRuntime runtime );
-    
-    /**
-     * Checks whether this project currently targets the specified runtime. 
-     * 
-     * @param runtime the runtime to check
-     * @return <code>true</code> if this project currently targets the specified runtime and
-     *   <code>false</code> otherwise
-     * @since WTP 2.0
-     */
-    
-    boolean isTargeted( IRuntime runtime );
-    
-    /**
-     * <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
-     */
-    
-    Set<IRuntime> 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
-     * @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<IRuntime> 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;
-    
-    /**
-     * Peforms a variety of consistency checks over the faceted project. The
-     * result of the validation is returned as a status object. 
-     *
-     * @param monitor a progress monitor, or <code>null</code> if progress
-     *    reporting and cancellation are not desired
-     * @return a status object with code <code>IStatus.OK</code> if this
-     *   faceted project is valid, otherwise a status object indicating what is 
-     *   wrong with it
-     */
-    
-    IStatus validate( IProgressMonitor monitor );
-    
-    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;
-    
-    /**
-     * Adds a faceted project listener that will be notified when the selected events in the faceted
-     * project life cycle occur. The listener will apply only to this project.
-     * 
-     * @param listener the faceted project listener
-     * @param types the types of the events to listen for
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
-     *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see removeListener(IFacetedProjectListener)
-     * @see FacetedProjectFramework.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.removeListener(IFacetedProjectListener)
-     */
-    
-    void addListener( IFacetedProjectListener listener,
-                      IFacetedProjectEvent.Type... types );
-    
-    /**
-     * Removes the faceted project listener that was previously registered using the
-     * {@see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
-     * specified listener is not present in the listener registry, this call will be ignored.
-     * 
-     * @param listener the faceted project listener
-     * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.removeListener(IFacetedProjectListener)
-     */
-    
-    void removeListener( IFacetedProjectListener listener );
-    
-    /**
-     * @deprecated
-     */
-    
-    void addListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener );
-    
-    /**
-     * @deprecated
-     */
-    
-    void removeListener( org.eclipse.wst.common.project.facet.core.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 c687eda..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @deprecated use the IFacetedProjectListener class from the facet.core.events package
- */
-
-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 4399595..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectTemplate
-{
-    String getId();
-    String getLabel();
-    
-    /**
-     * @return the set of fixed project facets
-     */
-    
-    Set<IProjectFacet> 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 f80cdc7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectValidator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @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 84711da..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A group is a named collection of {@see IProjectFacetVersion}  objects. It is 
- * used primarily as a parameter to the "requires" and "conflicts" constraints 
- * and allows a level of indirection where a facet does not need to know about 
- * all the members of the group. A given project facet version can belong to 
- * several groups.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IGroup 
-{
-    /**
-     * Returns the id of this group.
-     * 
-     * @return the id of this group
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the group label. The label should be used when presenting the
-     * group to the user.
-     * 
-     * @return the group label
-     */
-
-    String getLabel();
-    
-    /**
-     * Returns the group description.
-     * 
-     * @return the group description
-     */
-
-    String getDescription();
-    
-    /**
-     * Returns the set of member project facets.
-     * 
-     * @return the set of member project facets
-     */
-    
-    Set<IProjectFacetVersion> 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 f451d92..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * @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 4f8c11c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 <code>presets</code> 
- * extension point as well as by end users. User-defined presets are stored in the workspace.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IPreset
-{
-    /**
-     * The enumberation of preset types.
-     * 
-     * @since 2.0
-     */
-    
-    enum Type
-    {
-        /**
-         * Static presets are created using the <code>presets</code> extension point and are fully
-         * specified in the extension point. 
-         */
-        
-        STATIC,
-        
-        /**
-         * Dynamic presets are created by registering a factory in the <code>presets</code>
-         * extension point and are not fully specified until they are resolved within the context
-         * of use. To resolve a dynamic preset, cast the preset object to {@see IDynamicPreset} and
-         * then use the {@see IDynamicPreset.resolve(java.util.Map)} method. 
-         */
-        
-        DYNAMIC,
-        
-        /**
-         * User presets are created using the <code>ProjectFacetsManager.definePreset()</code>
-         * methods and are stored in the workspace.
-         */
-        
-        USER_DEFINED
-    }
-    
-    /**
-     * Returns the id of the preset.
-     * 
-     * @return the id of the preset
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the type of the preset. If the preset type is {@see Type.DYNAMIC}, then the preset
-     * object can be cast to {@see IDynamicPreset}.
-     * 
-     * @return the type of the preset
-     * @since 2.0
-     */
-    
-    Type getType();
-
-    /**
-     * Returns the label that 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
-     */
-
-    Set<IProjectFacetVersion> 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
-     * @deprecated use the {@see getType()} method instead
-     */
-    
-    boolean isUserDefined();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
deleted file mode 100644
index 33b4e92..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A preset factory is used for creating a dynamic preset. Unlike a static preset, which is fully
- * specified from the start, a dynamic preset uses a factory to synthesize the preset definition on 
- * the fly based on the context in which it will be used. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public interface IPresetFactory
-{
-    /**
-     * The factory method for creating a preset definition. The definition contains all of the 
-     * information necessary for the system to create a preset. The factory can take into account 
-     * the context that the preset will be used in when creating a preset definition. See
-     * {@see IDynamicPreset} for documentation on what type of information the context can contain.
-     *
-     * @param presetId the id of the preset
-     * @param context the information about context that this preset will be used in
-     * @return the created preset definition or <code>null</code> if this factory is not applicable 
-     *   to the provided context
-     * @throws CoreException if failed while creating the preset definition
-     */
-    
-    PresetDefinition createPreset( String presetId,
-                                   Map<String,Object> context )
-    
-        throws CoreException;
-    
-}
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 b41f2c1..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-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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
-     */
-    
-    Set<IProjectFacetVersion> getVersions();
-    
-    Set<IProjectFacetVersion> 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 that exists.
-     * 
-     * @return returns the latest version of the project facet
-     */
-    
-    IProjectFacetVersion getLatestVersion()
-    
-    	throws VersionFormatException, CoreException;
-
-    /**
-     * Returns the latest version of the project facet that is supported by the
-     * given runtime.
-     * 
-     * @param runtime the runtime
-     * @return returns the latest version of the project facet that is supported
-     *   by the given runtime
-     */
-    
-    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
-     */
-    
-    List<IProjectFacetVersion> 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<String> 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 6470925..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetVersion
-
-    extends Comparable, IVersion
-    
-{
-    /**
-     * 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
-     * @param type action type
-     * @return <code>true</code> if and only if this project facet supports the 
-     *   provided action type
-     */
-    
-    boolean supports( Set<IProjectFacetVersion> 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
-     */
-    
-    Set<IActionDefinition> 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 
-     */
-    
-    Set<IActionDefinition> 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
-     * @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<IProjectFacetVersion> 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
-     * @return <code>true</code> if this facet version is valid for the projects
-     *   that have the provided set of fixed facets
-     */
-    
-    boolean isValidFor( Set<IProjectFacet> 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 85fb1e1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IRuntimeChangedEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @deprecated use the IFacetedProjectListener class from the facet.core.events package instead
- *   of the event handler extension point
- */
-
-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/IVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersion.java
deleted file mode 100644
index c068f6d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersion.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * This interface should not be referenced directly by clients. Client code should only
- * reference <code>IProjectFacetVersion</code> and <code>IRuntimeComponentVersion</code>,
- * which extend this interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract interface IVersion
-
-    extends Comparable
-    
-{
-    String getVersionString();
-}
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 4cc158d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IVersionExpr.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 object to check against the version expression
-     * @return <code>true</code> if and only if the version expression matches
-     *   the specified version
-     */
-    
-    boolean check( IVersion version );
-    
-    /**
-     * @deprecated use the check method instead
-     */
-     
-    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/PresetDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
deleted file mode 100644
index cb41be7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * The preset definition is used in several contexts as a means of describing a preset. It is
- * different from {@see IPreset} in that the preset definition is not an actual preset that's
- * registered with the system. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @since 2.0
- */
-
-public final class PresetDefinition
-{
-    private final String label;
-    private final String description;
-    private final Set<IProjectFacetVersion> facets;
-    
-    /**
-     * Creates a new preset definition.
-     * 
-     * @param label the label that should be used when presenting the preset to the user
-     * @param description the description of the preset
-     * @param facets the facets that comprise the preset
-     */
-    
-    public PresetDefinition( final String label,
-                             final String description,
-                             final Set<IProjectFacetVersion> facets )
-    {
-        this.label = label;
-        this.description = description;
-        this.facets = Collections.unmodifiableSet( new HashSet<IProjectFacetVersion>( facets ) );
-    }
-    
-    /**
-     * Returns the label that should be used when presenting the preset to the user.
-     * 
-     * @return the preset label
-     */
-    
-    public String getLabel()
-    {
-        return this.label;
-    }
-
-    /**
-     * Returns the description of the preset.
-     * 
-     * @return the description of the preset
-     */
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    /**
-     * Returns the project facets that are part of this preset.
-     * 
-     * @return project facets that are part of this preset
-     */
-
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        return this.facets;
-    }
-
-}
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 dc85b2b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ /dev/null
@@ -1,434 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.FacetedProjectFrameworkImpl;
-
-/**
- * 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}.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManager 
-{
-    private static FacetedProjectFrameworkImpl impl = FacetedProjectFrameworkImpl.getInstance();
-    
-    private ProjectFacetsManager() {}
-    
-    /**
-     * Returns all of the available project facets.
-     * 
-     * @return a set containing all of the available project facets
-     */
-    
-    public static Set<IProjectFacet> 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
-     */
-    
-    public static Set<IActionDefinition> 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
-     */
-    
-    public static Set<ICategory> 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
-     */
-    
-    public static Set<IPreset> 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
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final Set<IProjectFacetVersion> 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
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final String description,
-                                        final Set<IProjectFacetVersion> 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
-     */
-    
-    public static Set<IFacetedProjectTemplate> 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
-     */
-    
-    public static Set<IGroup> 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<IFacetedProject> getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects();
-    }
-
-    public static Set<IFacetedProject> getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return impl.getFacetedProjects( f );
-    }
-
-    public static Set<IFacetedProject> 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
-     * @param actions the set of actions to evaluate
-     * @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<IProjectFacetVersion> base,
-                                 final Set<Action> 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
-     * @param actions the list of actions to sort; this list will be modified
-     */
-    
-    public static void sort( final Set<IProjectFacetVersion> base,
-                             final List<IFacetedProject.Action> 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 ea07449..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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/events/IFacetedProjectEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
deleted file mode 100644
index fc4b888..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * The root interface of all faceted project events. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectEvent
-{
-    enum Type
-    {
-        /**
-         * Type of the event that gets triggered when faceted project metadata is modified in
-         * any way. No detailed information about the change is provided. Note that while listening
-         * for PROJECT_MODIFIED events is guaranteed to catch all other events, the inverse is not
-         * true. Listing on all the other events is not guaranteed to catch all PROJECT_MODIFIED
-         * events. This is because there are circumstances when the system does not have the details
-         * about the type of the change (such as when the faceted project metadata file is modified
-         * on disk).
-         */
-        
-        PROJECT_MODIFIED,
-        
-        /**
-         * Type of the event that gets triggered right before a facet is installed. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        PRE_INSTALL,
-        
-        /**
-         * Type of the event that gets triggered right after a facet is installed. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        POST_INSTALL,
-        
-        /**
-         * Type of the event that gets triggered right before a facet is uninstalled. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        PRE_UNINSTALL,
-        
-        /**
-         * Type of the event that gets triggered right after a facet is uninstalled. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
-         * about the change. 
-         */
-        
-        POST_UNINSTALL,
-        
-        /**
-         * Type of the event that gets triggered right before a facet version is changed. Events of 
-         * this type can be cast to {@see IProjectFacetActionEvent} interface to get additional 
-         * details about the change. 
-         */
-        
-        PRE_VERSION_CHANGE,
-        
-        /**
-         * Type of the event that gets triggered right after a facet version is changed. Events of 
-         * this type can be cast to {@see IProjectFacetActionEvent} interface to get additional 
-         * details about the change. 
-         */
-        
-        POST_VERSION_CHANGE,
-        
-        /**
-         * Type of the event that gets triggered when project's fixed facets are changed. Events
-         * of this type can be cast to {@see IFixedFacetsChangedEvent} interface to get additional
-         * details about the change.
-         */
-        
-        FIXED_FACETS_CHANGED,
-        
-        /**
-         * Type of the event that gets triggered when the set of runtimes that the project targets
-         * is changed. Events of this type can be cast to {@see ITargetedRuntimesChangedEvent} 
-         * interface to get additional details about the change.
-         */
-        
-        TARGETED_RUNTIMES_CHANGED,
-        
-        /**
-         * Type of the event that gets triggered when the primary targeted runtime of the project
-         * is changed. Events of this type can be cast to {@see IPrimaryRuntimeChangedEvent}
-         * interface to get additional details about the change. 
-         */
-        
-        PRIMARY_RUNTIME_CHANGED
-    }
-    
-    /**
-     * Returns the type of this event.
-     * 
-     * @return the type of this event
-     */
-    
-    Type getType();
-    
-    /**
-     * The affected faceted project.
-     * 
-     * @return the affected faceted project
-     */
-    
-    IFacetedProject getProject();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
deleted file mode 100644
index 0fe976f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-/**
- * This interface is implemented by those who wish to receive events when a faceted project is
- * changed. There are three ways to register a listener: (a) using methods on {@see 
- * IFacetedProject}, (b) using methods on {@see FacetedProjectFramework}, or (c) using the provided
- * extension point. Method (a) catches only events for a specific faceted project while methods
- * (b) and (c) catch events for all faceted projects in the workspace.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectListener
-{
-    /**
-     * This method is called by the framework to notify the listener that an event has occurred.
-     * 
-     * <p>All events except for <code>PROJECT_MODIFIED</code> of this type are triggered in the 
-     * lock context of the operation that caused the original change. This guarantees that the 
-     * project has not changed further from the state it was in after the change was complete, 
-     * however the listener is unable to call any modifier methods on the {@see IFacetedProject} 
-     * interface. To do so, the listener must spin off a thread.</p>
-     * 
-     * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
-     * that can be performed in the background (such as updating UI) do so asynchronously by
-     * spinning off a thread, scheduling a job, etc. This allows the original modification to
-     * complete faster resulting in better perceived responsiveness.</p>
-     * 
-     * @param event the object describing the event
-     */
-    
-    void handleEvent( IFacetedProjectEvent event );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.java
deleted file mode 100644
index bbc2e90..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFixedFacetsChangedEvent.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * This interface is implemented by the event object that is used for the FIXED_FACETS_CHANGED 
- * event. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFixedFacetsChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * The set of facets that were fixed for the project prior to the change.
-     * 
-     * @return the set of old fixed facets
-     */
-    
-    Set<IProjectFacet> getOldFixedFacets();
-    
-    /**
-     * The set of facets that are fixed for the project after the change.
-     * 
-     * @return the set of new fixed facets
-     */
-    
-    Set<IProjectFacet> getNewFixedFacets();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.java
deleted file mode 100644
index 27f6526..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IPrimaryRuntimeChangedEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is implemented by the event object that is used for the PRIMARY_RUNTIME_CHANGED 
- * event. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IPrimaryRuntimeChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * Returns the old primary runtime for the project.
-     * 
-     * @return the old primary runtime for the project, or <code>null</code>
-     */
-    
-    IRuntime getOldPrimaryRuntime();
-    
-    /**
-     * Returns the new primary runtime for the project.
-     * 
-     * @return the new primary runtime for the project, or <code>null</code>
-     */
-    
-    IRuntime getNewPrimaryRuntime();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.java
deleted file mode 100644
index 56d84cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IProjectFacetActionEvent.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * This interface is implemented by the event object that is used for the PRE_INSTALL, POST_INSTALL, 
- * PRE_UNINSTALL, POST_UNINSTALL, PRE_VERSION_CHANGE, and POST_VERSION_CHANGE events.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetActionEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * The project facet that this event is about.
-     * 
-     * @return the project facet that this event is about.
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * The version of the project facet that this event is about. In the case of the
-     * PRE_VERSION_CHANGE and POST_VERSION_CHANGE events, this will be the new version.
-     * 
-     * @return the version of the project facet that this event is about
-     */
-    
-    IProjectFacetVersion getProjectFacetVersion();
-    
-    /**
-     * The config object that will be (or was) used for configuring the facet action.
-     * 
-     * @return the config object of the facet action
-     */
-    
-    Object getActionConfig();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.java
deleted file mode 100644
index caa29fb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/ITargetedRuntimesChangedEvent.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events;
-
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is implemented by the event object that is used for the TARGETED_RUNTIMES_CHANGED 
- * event. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface ITargetedRuntimesChangedEvent
-
-    extends IFacetedProjectEvent
-    
-{
-    /**
-     * Returns the set runtimes that the project previously targeted.
-     * 
-     * @return the set runtimes that the project previously targeted
-     */
-    
-    Set<IRuntime> getOldTargetedRuntimes();
-
-    /**
-     * Returns the set runtimes that the project now targets.
-     * 
-     * @return the set runtimes that the project now targets
-     */
-    
-    Set<IRuntime> getNewTargetedRuntimes();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.java
deleted file mode 100644
index 84a5202..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/DelayedClassLoadingListener.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * This listener implementation is used to delay class loading of listeners registered via the
- * <code>listener</code> extension point until the listener is actually invoked. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class DelayedClassLoadingListener
-
-    implements IFacetedProjectListener
-    
-{
-    private final String pluginId;
-    private final String listenerClassName;
-    private IFacetedProjectListener listener;
-    
-    public DelayedClassLoadingListener( final String pluginId,
-                                        final String listenerClassName )
-    {
-        this.pluginId = pluginId;
-        this.listenerClassName = listenerClassName;
-        this.listener = null;
-    }
-    
-    public void handleEvent( IFacetedProjectEvent event )
-    {
-        synchronized( this )
-        {
-            if( this.listener == null )
-            {
-                try
-                {
-                    this.listener 
-                        = instantiate( this.pluginId, this.listenerClassName, 
-                                       IFacetedProjectListener.class );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    FacetedProjectFramework.removeListener( this );
-                    return;
-                }
-            }
-        }
-        
-        this.listener.handleEvent( event );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java
deleted file mode 100644
index bb66e05..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getTopLevelElements;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>listeners</code> extension point.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class EventsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "listeners"; //$NON-NLS-1$
-    
-    private static final String EL_LISTENER = "listener"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_EVENT_TYPES = "eventTypes"; //$NON-NLS-1$
-    
-    public static void processExtensions( final FacetedProjectFrameworkImpl framework )
-    {
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            final String pluginId = element.getContributor().getName();
-            
-            if( element.getName().equals( EL_LISTENER ) )
-            {
-                try
-                {
-                    final String className = findRequiredAttribute( element, ATTR_CLASS );
-                    final String eventTypes = element.getAttribute( ATTR_EVENT_TYPES );
-                    
-                    final List<IFacetedProjectEvent.Type> types 
-                        = new ArrayList<IFacetedProjectEvent.Type>();
-                    
-                    if( eventTypes != null )
-                    {
-                        for( String segment : eventTypes.split( "," ) ) //$NON-NLS-1$
-                        {
-                            segment = segment.trim();
-                            
-                            try
-                            {
-                                final String uppercased = segment.toUpperCase();
-                                types.add( IFacetedProjectEvent.Type.valueOf( uppercased ) );
-                            }
-                            catch( IllegalArgumentException e )
-                            {
-                                final String msg 
-                                    = Resources.bind( Resources.invalidEventType, segment, 
-                                                      pluginId );
-                                
-                                FacetCorePlugin.log( msg );
-                            }
-                        }
-                    }
-                    
-                    final IFacetedProjectEvent.Type[] typesArray 
-                        = new IFacetedProjectEvent.Type[ types.size() ];
-                    
-                    types.toArray( typesArray );
-                    
-                    final IFacetedProjectListener listener 
-                        = new DelayedClassLoadingListener( pluginId, className );
-                    
-                    framework.addListener( listener, typesArray );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String invalidEventType;
-        
-        static
-        {
-            initializeMessages( EventsExtensionPoint.class.getName(), Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties
deleted file mode 100644
index b2ba34e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/EventsExtensionPoint.properties
+++ /dev/null
@@ -1 +0,0 @@
-invalidEventType = "{0}" is not a valid faceted project event type. It is used in {1} plugin.
\ 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/events/internal/FacetedProjectEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectEvent.java
deleted file mode 100644
index be594d8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FacetedProjectEvent.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class FacetedProjectEvent
-
-    implements IFacetedProjectEvent
-    
-{
-    private final IFacetedProject project;
-    private final Type eventType;
-    
-    public FacetedProjectEvent( final IFacetedProject project,
-                                final Type eventType )
-    {
-        this.project = project;
-        this.eventType = eventType;
-    }
-    
-    public final IFacetedProject getProject()
-    {
-        return this.project;
-    }
-
-    public final Type getType()
-    {
-        return this.eventType;
-    }
-    
-    public String toString()
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        buf.append( "<event project=\"" ); //$NON-NLS-1$
-        buf.append( this.project.getProject().getName() );
-        buf.append( "\" type=\"" ); //$NON-NLS-1$
-        buf.append( this.eventType.name() );
-        buf.append( "\">\n" ); //$NON-NLS-1$
-        
-        toStringInternal( buf );
-        
-        buf.append( "</event>" ); //$NON-NLS-1$
-        
-        return buf.toString();
-    }
-    
-    protected void toStringInternal( final StringBuilder buf )
-    {
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java
deleted file mode 100644
index e3f3369..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/FixedFacetsChangedEvent.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-
-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.events.IFixedFacetsChangedEvent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FixedFacetsChangedEvent
-
-    extends FacetedProjectEvent
-    implements IFixedFacetsChangedEvent
-    
-{
-    private final Set<IProjectFacet> oldFixedFacets;
-    private final Set<IProjectFacet> newFixedFacets;
-    
-    public FixedFacetsChangedEvent( final IFacetedProject project,
-                                    final Set<IProjectFacet> oldFixedFacets,
-                                    final Set<IProjectFacet> newFixedFacets )
-    {
-        super( project, Type.FIXED_FACETS_CHANGED );
-        
-        this.oldFixedFacets = Collections.unmodifiableSet( oldFixedFacets );
-        this.newFixedFacets = Collections.unmodifiableSet( newFixedFacets );
-    }
-
-    public Set<IProjectFacet> getOldFixedFacets()
-    {
-        return this.oldFixedFacets;
-    }
-
-    public Set<IProjectFacet> getNewFixedFacets()
-    {
-        return this.newFixedFacets;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-fixed-facets>\n" ); //$NON-NLS-1$
-        
-        for( IProjectFacet f : sort( this.oldFixedFacets ) )
-        {
-            buf.append( "    <facet id=\"" ); //$NON-NLS-1$
-            buf.append( f.getId() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </old-fixed-facets>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-fixed-facets>\n" ); //$NON-NLS-1$
-        
-        for( IProjectFacet f : sort( this.newFixedFacets ) )
-        {
-            buf.append( "    <facet id=\"" ); //$NON-NLS-1$
-            buf.append( f.getId() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </new-fixed-facets>\n" ); //$NON-NLS-1$
-    }
-    
-    private static Collection<IProjectFacet> sort( final Collection<IProjectFacet> input )
-    {
-        final Set<IProjectFacet> result = new TreeSet<IProjectFacet>( new FacetComparator() );
-        result.addAll( input );
-        return result;
-    }
-    
-    private static final class FacetComparator 
-    
-        implements Comparator<IProjectFacet>
-    
-    {
-        public int compare( final IProjectFacet f1, 
-                            final IProjectFacet f2 )
-        {
-            return f1.getId().compareTo( f2.getId() );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java
deleted file mode 100644
index 982ec35..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyEventHandlerAdapter.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-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.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.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyEventHandlerAdapter
-
-    implements IFacetedProjectListener
-    
-{
-    private final IProjectFacet facet;
-    private final IVersionExpr vexpr;
-    private final String pluginId;
-    private Object delegate;
-    
-    public LegacyEventHandlerAdapter( final IProjectFacet facet,
-                                      final IVersionExpr vexpr,
-                                      final String delegatePluginId,
-                                      final String delegateClassName )
-    {
-        this.facet = facet;
-        this.vexpr = vexpr;
-        this.pluginId = delegatePluginId;
-        this.delegate = delegateClassName;
-    }
-    
-    public void handleEvent( final IFacetedProjectEvent event )
-    {
-        if( event instanceof IProjectFacetActionEvent )
-        {
-            final IProjectFacetActionEvent ev = (IProjectFacetActionEvent) event;
-            
-            if( this.facet == ev.getProjectFacet() && 
-                this.vexpr.check( ev.getProjectFacetVersion() ) )
-            {
-                final IDelegate delegate = getDelegate();
-                
-                if( delegate != null )
-                {
-                    try
-                    {
-                        delegate.execute( ev.getProject().getProject(), ev.getProjectFacetVersion(), 
-                                          ev.getActionConfig(), null );
-                    }
-                    catch( Exception e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-        }
-        else if( event instanceof IPrimaryRuntimeChangedEvent )
-        {
-            final IPrimaryRuntimeChangedEvent ev = (IPrimaryRuntimeChangedEvent) event;
-            final IFacetedProject project = ev.getProject();
-            
-            if( project.hasProjectFacet( this.facet ) )
-            {
-                final IProjectFacetVersion fv = project.getInstalledVersion( this.facet );
-                
-                if( this.vexpr.check( fv ) )
-                {
-                    final RuntimeChangedEvent legacyEvent
-                        = new RuntimeChangedEvent( ev.getOldPrimaryRuntime(), 
-                                                   ev.getNewPrimaryRuntime() );
-                    
-                    final IDelegate delegate = getDelegate();
-                    
-                    if( delegate != null )
-                    {
-                        try
-                        {
-                            delegate.execute( ev.getProject().getProject(), fv, legacyEvent, null );
-                        }
-                        catch( Exception e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private synchronized IDelegate getDelegate()
-    {
-        try
-        {
-            if( this.delegate instanceof String )
-            {
-                this.delegate 
-                    = instantiate( this.pluginId, (String) this.delegate, IDelegate.class );
-            }
-            
-            return (IDelegate) this.delegate;
-        }
-        catch( Exception e )
-        {
-            FacetCorePlugin.log( e );
-        }
-        
-        return null;
-    }
-    
-    private static 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/events/internal/LegacyListenerAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyListenerAdapter.java
deleted file mode 100644
index 69e2fbf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/LegacyListenerAdapter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class LegacyListenerAdapter
-
-    implements IFacetedProjectListener
-    
-{
-    private final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener base;
-    
-    public LegacyListenerAdapter( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener base )
-    {
-        this.base = base;
-    }
-    
-    public void handleEvent( final IFacetedProjectEvent event )
-    {
-        this.base.projectChanged();
-    }
-    
-    public org.eclipse.wst.common.project.facet.core.IFacetedProjectListener getLegacyListener()
-    {
-        return this.base;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ListenerRegistry.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ListenerRegistry.java
deleted file mode 100644
index 849c13e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ListenerRegistry.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.EnumMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ListenerRegistry
-{
-    private final Map<IFacetedProjectEvent.Type,Set<IFacetedProjectListener>> listeners;
-    
-    public ListenerRegistry()
-    {
-        this.listeners
-            = new EnumMap<IFacetedProjectEvent.Type,Set<IFacetedProjectListener>>( IFacetedProjectEvent.Type.class );
-        
-        for( IFacetedProjectEvent.Type t : IFacetedProjectEvent.Type.values() )
-        {
-            this.listeners.put( t, new CopyOnWriteArraySet<IFacetedProjectListener>() );
-        }
-    }
-    
-    public void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        if( listener == null || types == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( IFacetedProjectEvent.Type type 
-             : ( types.length > 0 ? types : IFacetedProjectEvent.Type.values() ) )
-        {
-            this.listeners.get( type ).add( listener );
-        }
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        if( listener == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        for( Set<IFacetedProjectListener> listeners : this.listeners.values() )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    public void notifyListeners( final IFacetedProjectEvent event )
-    {
-        for( IFacetedProjectListener listener : this.listeners.get( event.getType() ) )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    public Set<IFacetedProjectListener> getListeners( final IFacetedProjectEvent.Type eventType )
-    {
-        return this.listeners.get( eventType );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.java
deleted file mode 100644
index 2126ffe..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/PrimaryRuntimeChangedEvent.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PrimaryRuntimeChangedEvent
-
-    extends FacetedProjectEvent
-    implements IPrimaryRuntimeChangedEvent
-    
-{
-    private final IRuntime oldPrimaryRuntime;
-    private final IRuntime newPrimaryRuntime;
-    
-    public PrimaryRuntimeChangedEvent( final IFacetedProject project,
-                                       final IRuntime oldPrimaryRuntime,
-                                       final IRuntime newPrimaryRuntime )
-    {
-        super( project, Type.PRIMARY_RUNTIME_CHANGED );
-        
-        this.oldPrimaryRuntime = oldPrimaryRuntime;
-        this.newPrimaryRuntime = newPrimaryRuntime;
-    }
-    
-    public IRuntime getOldPrimaryRuntime()
-    {
-        return this.oldPrimaryRuntime;
-    }
-
-    public IRuntime getNewPrimaryRuntime()
-    {
-        return this.newPrimaryRuntime;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-primary-runtime name=\"" ); //$NON-NLS-1$
-        buf.append( this.oldPrimaryRuntime == null ? "<null>" : this.oldPrimaryRuntime.getName() ); //$NON-NLS-1$
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-primary-runtime name=\"" ); //$NON-NLS-1$
-        buf.append( this.newPrimaryRuntime == null ? "<null>" : this.newPrimaryRuntime.getName() ); //$NON-NLS-1$
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.java
deleted file mode 100644
index 21c99ec..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectFacetActionEvent.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-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.events.IProjectFacetActionEvent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetActionEvent
-
-    extends FacetedProjectEvent
-    implements IProjectFacetActionEvent
-    
-{
-    private final IProjectFacetVersion fv;
-    private final Object config;
-    
-    public ProjectFacetActionEvent( final IFacetedProject project,
-                                    final Type eventType,
-                                    final IProjectFacetVersion fv,
-                                    final Object config )
-    {
-        super( project, eventType );
-        
-        this.fv = fv;
-        this.config = config;
-    }
-    
-    public IProjectFacet getProjectFacet()
-    {
-        return this.fv.getProjectFacet();
-    }
-
-    public IProjectFacetVersion getProjectFacetVersion()
-    {
-        return this.fv;
-    }
-
-    public Object getActionConfig()
-    {
-        return this.config;
-    }
-    
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <facet id=\"" ); //$NON-NLS-1$
-        buf.append( this.fv.getProjectFacet().getId() );
-        buf.append( "\" version=\"" ); //$NON-NLS-1$
-        buf.append( this.fv.getVersionString() );
-        buf.append( "\"/>\n" ); //$NON-NLS-1$
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.java
deleted file mode 100644
index 9908c6d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/ProjectModifiedEvent.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectModifiedEvent
-
-    extends FacetedProjectEvent
-    
-{
-    public ProjectModifiedEvent( IFacetedProject project )
-    {
-        super( project, Type.PROJECT_MODIFIED );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java
deleted file mode 100644
index 702121d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/internal/TargetedRuntimesChangedEvent.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.events.internal;
-
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class TargetedRuntimesChangedEvent
-
-    extends FacetedProjectEvent
-    implements ITargetedRuntimesChangedEvent
-    
-{
-    private final Set<IRuntime> oldTargetedRuntimes;
-    private final Set<IRuntime> newTargetedRuntimes;
-    
-    public TargetedRuntimesChangedEvent( final IFacetedProject project,
-                                         final Set<IRuntime> oldTargetedRuntimes,
-                                         final Set<IRuntime> newTargetedRuntimes )
-    {
-        super( project, Type.TARGETED_RUNTIMES_CHANGED );
-        
-        this.oldTargetedRuntimes = oldTargetedRuntimes;
-        this.newTargetedRuntimes = newTargetedRuntimes;
-    }
-
-    public Set<IRuntime> getOldTargetedRuntimes()
-    {
-        return this.oldTargetedRuntimes;
-    }
-
-    public Set<IRuntime> getNewTargetedRuntimes()
-    {
-        return this.newTargetedRuntimes;
-    }
-
-    @Override
-    protected void toStringInternal( final StringBuilder buf )
-    {
-        buf.append( "  <old-targeted-runtimes>\n" ); //$NON-NLS-1$
-        
-        for( IRuntime r : sort( this.oldTargetedRuntimes ) )
-        {
-            buf.append( "    <runtime name=\"" ); //$NON-NLS-1$
-            buf.append( r.getName() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </old-targeted-runtimes>\n" ); //$NON-NLS-1$
-
-        buf.append( "  <new-targeted-runtimes>\n" ); //$NON-NLS-1$
-        
-        for( IRuntime r : sort( this.newTargetedRuntimes ) )
-        {
-            buf.append( "    <runtime id=\"" ); //$NON-NLS-1$
-            buf.append( r.getName() );
-            buf.append( "\"/>\n" ); //$NON-NLS-1$
-        }
-        
-        buf.append( "  </new-targeted-runtimes>\n" ); //$NON-NLS-1$
-    }
-    
-    private static Collection<IRuntime> sort( final Collection<IRuntime> input )
-    {
-        final Set<IRuntime> result = new TreeSet<IRuntime>( new RuntimeComparator() );
-        result.addAll( input );
-        return result;
-    }
-    
-    private static final class RuntimeComparator 
-    
-        implements Comparator<IRuntime>
-    
-    {
-        public int compare( final IRuntime r1, 
-                            final IRuntime r2 )
-        {
-            return r1.getName().compareTo( r2.getName() );
-        }
-    }
-    
-}
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 ebc58cf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ActionDefinition.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-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<String,Object> properties;
-    private final Map<String,Object> propertiesReadOnly;
-    private String delegateClassName;
-    private IDelegate delegate;
-    private String configFactoryClassName;
-    
-    ActionDefinition()
-    {
-        this.properties = new HashMap<String,Object>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-    
-    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;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    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<String,Object> 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 
-                = 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 
-                = 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/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 a28e4e0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-    private String plugin;
-    private String label;
-    private String description;
-    private Set<IProjectFacet> facets;
-    private Set<IProjectFacet> facetsReadOnly;
-    
-    Category() 
-    {
-        this.facets = new HashSet<IProjectFacet>();
-        this.facetsReadOnly = Collections.unmodifiableSet( this.facets );
-    }
-    
-    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<IProjectFacet> getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacet f )
-    {
-        this.facets.add( f );
-    }
-    
-    void removeProjectFacet( final IProjectFacet f )
-    {
-        this.facets.remove( 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 7b9c42c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-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;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-
-/**
- * @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<Object> operands;
-    
-    Constraint( final IProjectFacetVersion fv,
-                final Type type,
-                final Object[] operands )
-    {
-        this.fv = fv;
-        this.type = type;
-        
-        final List<Object> temp = new ArrayList<Object>();
-        
-        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<Object> getOperands()
-    {
-        return this.operands;
-    }
-    
-    public Object getOperand( final int index )
-    {
-        return this.operands.get( index );
-    }
-    
-    public IStatus check( final Collection<IProjectFacetVersion> facets )
-    {
-        return check( facets, false );
-    }
-    
-    public IStatus check( final Collection<IProjectFacetVersion> facets,
-                          final boolean validateSoftDeps )
-    {
-        final MultiStatus result = createMultiStatus(); 
-        
-        if( this.type == Type.AND )
-        {
-            for( Object operand : this.operands )
-            {
-                final IConstraint childConstraint = (IConstraint) operand;
-                final IStatus st = childConstraint.check( facets, validateSoftDeps );
-                
-                if( st.getSeverity() != IStatus.OK )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        else if( this.type == Type.OR )
-        {
-            boolean someBranchWorks = false;
-            
-            for( Object operand : this.operands )
-            {
-                final IConstraint childConstraint = (IConstraint) operand;
-                
-                if( childConstraint.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 IVersionExpr vexpr = (IVersionExpr) 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 Boolean soft
-                = ( (Boolean) this.operands.get( this.operands.size() - 1 ) );
-        
-            if( ! soft.equals( Boolean.TRUE ) || validateSoftDeps )
-            {
-                final Object firstOperand = this.operands.get( 0 );
-                
-                if( firstOperand instanceof IGroup )
-                {
-                    final IGroup group = (IGroup) firstOperand;
-                    
-                    if( ! containsAny( facets, group.getMembers() ) )
-                    {
-                        final ValidationProblem.Type ptype
-                            = ValidationProblem.Type.REQUIRES_GROUP;
-                        
-                        final ValidationProblem problem
-                            = new ValidationProblem( ptype, this.fv, group );
-                        
-                        result.add( problem );
-                    }
-                }
-                else
-                {
-                    final IProjectFacet rf = (IProjectFacet) firstOperand;
-                    final IVersionExpr vexpr = (IVersionExpr) this.operands.get( 1 );
-                    
-                    boolean found = false;
-                    
-                    for( IProjectFacetVersion fv : facets )
-                    {
-                        if( fv.getProjectFacet() == rf )
-                        {
-                            if( vexpr.check( fv ) )
-                            {
-                                found = true;
-                            }
-                            
-                            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( IProjectFacetVersion member : group.getMembers() )
-                {
-                    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 IVersionExpr vexpr
-                    = this.operands.size() == 2 ? (IVersionExpr) this.operands.get( 1 ) : null;
-                
-                for( IProjectFacetVersion fver : facets )
-                {
-                    if( fver.getProjectFacet() == f )
-                    {
-                        if( vexpr == null || vexpr.check( fver ) )
-                        {
-                            final ValidationProblem.Type t 
-                                = ValidationProblem.Type.CONFLICTS;
-                                    
-                            final ValidationProblem problem
-                                = new ValidationProblem( t, this.fv, fver );
-                            
-                            result.add( problem );
-                            
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return result;
-    }
-    
-    private boolean containsOnlyRequires()
-    {
-        for( Object operand : this.operands )
-        {
-            if( ( (IConstraint) operand ).getType() != Type.REQUIRES )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-    
-    private static boolean containsAny( final Collection<? extends Object> a,
-                                        final Collection<? extends Object> b )
-    {
-        for( Object x : a )
-        {
-            if( b.contains( x ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    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/DefaultConfigurationPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultConfigurationPresetFactory.java
deleted file mode 100644
index fada4e1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultConfigurationPresetFactory.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IPresetFactory;
-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.PresetDefinition;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Preset factory for the <code>default.configuration</code> preset. The contents of this preset
- * are calculated as follows:
- * 
- * <ol>
- *   <li>If a runtime is selected, this preset will contain default facets as specified by
- *     {@see IRuntime.getDefaultFacets(Set)}.</li>
- *   <li>If no runtime is selected, this preset will contain default versions for all of the 
- *     fixed facets as specified by {@see IProjectFacet.getDefaultVersion()}.
- * </ol>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class DefaultConfigurationPresetFactory
-
-    implements IPresetFactory
-    
-{
-    @SuppressWarnings( "unchecked" )
-    public PresetDefinition createPreset( final String presetId,
-                                          final Map<String,Object> context ) 
-    
-        throws CoreException
-        
-    {
-        final Set<IProjectFacet> fixed
-            = (Set<IProjectFacet>) context.get( IDynamicPreset.CONTEXT_KEY_FIXED_FACETS );
-        
-        if( fixed == null )
-        {
-            return null;
-        }
-    
-        final IRuntime runtime 
-            = (IRuntime) context.get( IDynamicPreset.CONTEXT_KEY_PRIMARY_RUNTIME );
-        
-        final String label;
-        final String description;
-        final Set<IProjectFacetVersion> facets;
-        
-        if( runtime != null )
-        {
-            label = Resources.bind( Resources.presetLabel, runtime.getLocalizedName() );
-            description = Resources.bind( Resources.presetDescription, runtime.getLocalizedName() );
-            facets = runtime.getDefaultFacets( fixed );
-        }
-        else
-        {
-            label = Resources.presetLabelNoRuntime;
-            description = Resources.presetDescriptionNoRuntime;
-            
-            facets = new HashSet<IProjectFacetVersion>();
-            
-            for( IProjectFacet f : fixed )
-            {
-                facets.add( f.getDefaultVersion() );
-            }
-        }
-        
-        return new PresetDefinition( label, description, facets );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetLabel;
-        public static String presetDescription;
-        public static String presetLabelNoRuntime;
-        public static String presetDescriptionNoRuntime;
-        
-        static
-        {
-            initializeMessages( DefaultConfigurationPresetFactory.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultConfigurationPresetFactory.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultConfigurationPresetFactory.properties
deleted file mode 100644
index 5c7a5a4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/DefaultConfigurationPresetFactory.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-presetLabel = Default Configuration for {0}
-presetDescription = A good starting for working with {0} runtime. Additional facets can later be installed to add new functionality to the project.
-presetLabelNoRuntime = Default Configuration
-presetDescriptionNoRuntime = The default configuration provides a good starting point. Additional facets can later be installed to add new functionality to the project.
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 ee20f86..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashSet;
-import java.util.Set;
-
-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.wst.common.project.facet.core.FacetedProjectFramework;
-
-/**
- * @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<String> messagesLogged = new HashSet<String>();
-    
-    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 );
-    }
-    
-}
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 26a645c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
+++ /dev/null
@@ -1,1644 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.FileUtil.validateEdit;
-import static org.eclipse.wst.common.project.facet.core.internal.util.XmlUtil.*;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.submon;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.worked;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-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.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-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.MultiStatus;
-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.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.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.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.FixedFacetsChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.LegacyListenerAdapter;
-import org.eclipse.wst.common.project.facet.core.events.internal.ListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.events.internal.PrimaryRuntimeChangedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectFacetActionEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.ProjectModifiedEvent;
-import org.eclipse.wst.common.project.facet.core.events.internal.TargetedRuntimesChangedEvent;
-import org.eclipse.wst.common.project.facet.core.internal.util.ObjectReference;
-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;
-import org.xml.sax.SAXException;
-
-/**
- * @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 Set<IProjectFacetVersion> facets;
-    private final Set<IProjectFacetVersion> facetsReadOnly;
-    private final Set<IProjectFacet> fixed;
-    private final Set<IProjectFacet> fixedReadOnly;
-    private final Map<String,ProjectFacet> unknownFacets;
-    private final Set<String> targetedRuntimes;
-    private String primaryRuntime;
-    IFile f;
-    private long fModificationStamp = -1;
-    private final ListenerRegistry listeners;
-    private final Object lock = new Object();
-    private boolean isBeingModified = false;
-    private Thread modifierThread = null;
-    private Exception parsingException;
-    
-    FacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        this.project = project;
-        this.facets = new CopyOnWriteArraySet<IProjectFacetVersion>();
-        this.facetsReadOnly = Collections.unmodifiableSet( this.facets );
-        this.fixed = new CopyOnWriteArraySet<IProjectFacet>();
-        this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-        this.unknownFacets = new HashMap<String,ProjectFacet>();
-        this.targetedRuntimes = new CopyOnWriteArraySet<String>();
-        this.listeners = new ListenerRegistry();
-        this.parsingException = null;
-        
-        this.f = project.getFile( FACETS_METADATA_FILE );
-        
-        refresh();
-    }
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.facetsReadOnly;
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( IProjectFacetVersion fv : this.facets )
-            {
-                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( IProjectFacetVersion fv : this.facets )
-            {
-                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<Action> actions,
-                        final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( modifyInternal( actions, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-        
-    private boolean modifyInternal( final Set<Action> actions,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 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<Action> copy = new ArrayList<Action>( actions );
-            ProjectFacetsManager.sort( this.facets, copy );
-            
-            // Execute the actions.
-            
-            for( Action action : copy )
-            {
-                final Action.Type type = action.getType();
-                final ProjectFacetVersion fv = (ProjectFacetVersion) action.getProjectFacetVersion();
-                final IActionDefinition def = fv.getActionDefinition( this.facets, type );
-                
-                Object config = action.getConfig();
-                
-                if( config == null )
-                {
-                    config = def.createConfigObject( fv, this.project.getName() );
-                }
-                
-                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 );
-                        }
-                    }
-                }
-                
-                if( monitor != null )
-                {
-                    final String subTaskDescriptionTemplate;
-                    
-                    if( type == Action.Type.INSTALL )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskInstallingFacet; 
-                    }
-                    else if( type == Action.Type.UNINSTALL )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskUninstallingFacet;
-                    }
-                    else if( type == Action.Type.VERSION_CHANGE )
-                    {
-                        subTaskDescriptionTemplate = Resources.taskChangingFacetVersion;
-                    }
-                    else
-                    {
-                        throw new IllegalStateException();
-                    }
-                    
-                    final String subTaskDescription
-                        = NLS.bind( subTaskDescriptionTemplate, fv.getProjectFacet().getLabel() );
-                    
-                    monitor.subTask( subTaskDescription );
-                }
-                
-                final IFacetedProjectEvent preEvent
-                    = new ProjectFacetActionEvent( this, getPreEventType( type ), fv, config );
-                                                  
-                notifyListeners( preEvent );
-                worked( monitor, 10 );
-                
-                final IDelegate delegate = ( (ActionDefinition) def ).getDelegate();
-                
-                if( delegate == null )
-                {
-                    worked( monitor, 80 );
-                }
-                else
-                {
-                    callDelegate( fv, delegate, config, type, submon( monitor, 80 ) );
-                }
-        
-                synchronized( this.lock )
-                {
-                    apply( action );
-                }
-                
-                save();
-
-                final IFacetedProjectEvent postEvent
-                    = new ProjectFacetActionEvent( this, getPostEventType( type ), fv, config );
-                
-                notifyListeners( postEvent );
-                worked( monitor, 10 );
-            }
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    public Set<IProjectFacet> getFixedProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.fixedReadOnly;
-        }
-    }
-    
-    public void setFixedProjectFacets( final Set<IProjectFacet> facets )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setFixedProjectFacetsInternal( facets, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setFixedProjectFacetsInternal( final Set<IProjectFacet> facets,
-                                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            Set<IProjectFacet> oldFixedFacets = null;
-            
-            synchronized( FacetedProject.this.lock )
-            {
-                if( equals( this.fixed, facets ) )
-                {
-                    return false;
-                }
-                
-                oldFixedFacets = new HashSet<IProjectFacet>( this.fixed );
-                
-                this.fixed.clear();
-                this.fixed.addAll( facets );
-            }
-                
-            save();
-            worked( monitor, 1 );
-
-            notifyListeners( new FixedFacetsChangedEvent( this, oldFixedFacets, facets ) );
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public IRuntime getRuntime()
-    {
-        return getPrimaryRuntime();
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    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 boolean isTargetable( final IRuntime runtime )
-    {
-        for( IProjectFacetVersion fv : getProjectFacets() )
-        {
-            if( ! runtime.supports( fv ) )
-            {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-
-    public boolean isTargeted( final IRuntime runtime )
-    {
-        for( IRuntime r : getTargetedRuntimes() )
-        {
-            if( r.getName().equals( runtime.getName() ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-
-    public Set<IRuntime> getTargetedRuntimes()
-    {
-        synchronized( this.lock )
-        {
-            final Set<IRuntime> result = new HashSet<IRuntime>();
-            
-            for( String rname : this.targetedRuntimes )
-            {
-                result.add( getRuntimeFromName( rname ) );
-            }
-            
-            return Collections.unmodifiableSet( result );
-        }
-    }
-    
-    public void setTargetedRuntimes( final Set<IRuntime> runtimes,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setTargetedRuntimesInternal( runtimes, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setTargetedRuntimesInternal( final Set<IRuntime> runtimes,
-                                                 final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            final Set<IRuntime> oldRuntimes;
-            final Set<IRuntime> newRuntimes;
-            final IRuntime oldPrimary;
-            final IRuntime newPrimary;
-            
-            synchronized( this.lock )
-            {
-                if( this.targetedRuntimes.size() == runtimes.size() )
-                {
-                    boolean different = false;
-                    
-                    for( IRuntime r : runtimes )
-                    {
-                        if( ! this.targetedRuntimes.contains( r.getName() ) )
-                        {
-                            different = true;
-                            break;
-                        }
-                    }
-                    
-                    if( ! different )
-                    {
-                        return false;
-                    }
-                }
-                
-                for( IRuntime runtime : runtimes )
-                {
-                    for( IProjectFacetVersion fv : this.facets )
-                    {
-                        if( ! runtime.supports( fv ) )
-                        {
-                            final String msg 
-                                = NLS.bind( Resources.facetNotSupported, runtime.getLocalizedName(), 
-                                            fv.toString() );
-                            
-                            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-                        }
-                    }
-                }
-                
-                oldRuntimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-                
-                this.targetedRuntimes.clear();
-                
-                for( IRuntime runtime : runtimes )
-                {
-                    this.targetedRuntimes.add( runtime.getName() );
-                }
-                
-                newRuntimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-                
-                oldPrimary = getPrimaryRuntime();
-                assignPrimaryRuntimeIfNecessary();
-                newPrimary = getPrimaryRuntime();
-            }
-            
-            save();
-            worked( monitor, 1 );
-            
-            final ITargetedRuntimesChangedEvent targetedRuntimesChangedEvent
-                = new TargetedRuntimesChangedEvent( this, oldRuntimes, newRuntimes );
-            
-            notifyListeners( targetedRuntimesChangedEvent );
-            
-            if( ! equals( oldPrimary, newPrimary ) )
-            {
-                notifyListeners( new PrimaryRuntimeChangedEvent( this, oldPrimary, newPrimary ) );
-            }
-            
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    public void addTargetedRuntime( final IRuntime runtime,
-                                    final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set<IRuntime> runtimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-        runtimes.add( runtime );
-        setTargetedRuntimes( runtimes, monitor );
-    }
-    
-    public void removeTargetedRuntime( final IRuntime runtime,
-                                       final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Set<IRuntime> runtimes = new HashSet<IRuntime>( getTargetedRuntimes() );
-        runtimes.remove( runtime );
-        setTargetedRuntimes( runtimes, monitor );
-    }
-
-    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 ObjectReference<Boolean> result = new ObjectReference<Boolean>( true );
-        
-        final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-        {
-            public void run( final IProgressMonitor monitor ) 
-            
-                throws CoreException
-                
-            {
-                beginModification();
-                
-                try
-                {
-                    result.set( setPrimaryRuntimeInternal( runtime, monitor ) );
-                }
-                finally
-                {
-                    endModification();
-                }
-            }
-        };
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        
-        if( result.get() )
-        {
-            notifyListeners( new ProjectModifiedEvent( this ) );
-        }
-    }
-    
-    private boolean setPrimaryRuntimeInternal( final IRuntime runtime,
-                                               final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginTask( monitor, "", 2 ); //$NON-NLS-1$
-        
-        try
-        {
-            if( runtime == null )
-            {
-                throw new NullPointerException();
-            }
-            
-            if( equals( this.primaryRuntime, runtime.getName() ) )
-            {
-                return false;
-            }
-
-            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();
-            worked( monitor, 1 );
-            
-            notifyListeners( new PrimaryRuntimeChangedEvent( this, oldPrimary, runtime ) );
-            worked( monitor, 1 );
-            
-            return true;
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    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 = this.targetedRuntimes.iterator().next();
-            }
-        }
-    }
-    
-    public IStatus validate( final IProgressMonitor monitor )
-    {
-        synchronized( this.lock )
-        {
-            beginTask( monitor, Resources.taskValidatingFacetedProject, 5 );
-            
-            try
-            {
-                final List<String> errors = new ArrayList<String>();
-                final List<String> warnings = new ArrayList<String>(); 
-                
-                // Check for parsing problems.
-                
-                if( this.parsingException != null )
-                {
-                    if( this.parsingException instanceof SAXException )
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.metadataFileCorrupted, 
-                                        this.f.getFullPath().toString() );
-                        
-                        errors.add( msg );
-                    }
-                    else
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.couldNotReadMetadataFile, 
-                                        this.f.getFullPath().toString() );
-                        
-                        errors.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Are any of the target runtimes not defined?
-                
-                for( IRuntime r : getTargetedRuntimes() )
-                {
-                    if( r instanceof UnknownRuntime )
-                    {
-                        final String msg = NLS.bind( Resources.runtimeNotDefined, r.getName() );
-                        errors.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Is an installed facet not supported by the runtime?
-                
-                for( IRuntime r : getTargetedRuntimes() )
-                {
-                    for( IProjectFacetVersion fv : getProjectFacets() )
-                    {
-                        if( ! r.supports( fv ) )
-                        {
-                            final String msg
-                                = NLS.bind( Resources.facetNotSupportedByTarget, fv.toString(), 
-                                            r.getLocalizedName() );
-                            
-                            errors.add( msg );
-                        }
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Does the project contain any unknown facets or versions?
-                
-                for( IProjectFacetVersion fv : getProjectFacets() )
-                {
-                    final IProjectFacet f = fv.getProjectFacet();
-                    
-                    if( f.getPluginId() == null )
-                    {
-                        final String msg 
-                            = NLS.bind( Resources.installedFacetNotFound, f.getId() );
-                        
-                        warnings.add( msg );
-                    }
-                    else if( fv.getPluginId() == null )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.installedFacetVersionNotFound, 
-                                        f.getId(), fv.getVersionString() );
-
-                        warnings.add( msg );
-                    }
-                }
-                
-                worked( monitor, 1 );
-                
-                // Compile the result.
-                
-                if( errors.isEmpty() && warnings.isEmpty() )
-                {
-                    return Status.OK_STATUS;
-                }
-                else
-                {
-                    final String msg 
-                        = NLS.bind( Resources.projectValidationFailed, 
-                                    this.project.getName() );
-                    
-                    final IStatus[] starray 
-                        = new IStatus[ errors.size() + warnings.size() ];
-                    
-                    for( int i = 0, n = errors.size(); i < n; i++ )
-                    {
-                        starray[ i ] 
-                            = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID,
-                                          errors.get( i ) );
-                    }
-                    
-                    for( int i = 0, n = warnings.size(), offset = errors.size(); 
-                         i < n; i++ )
-                    {
-                        starray[ i ] 
-                            = new Status( IStatus.WARNING, FacetCorePlugin.PLUGIN_ID,
-                                          warnings.get( i + offset ) );
-                    }
-                    
-                    return new MultiStatus( FacetCorePlugin.PLUGIN_ID, -1,
-                                            starray, msg, null );
-                }
-            }
-            finally
-            {
-                done( monitor );
-            }
-        }
-    }
-    
-    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,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        this.listeners.addListener( listener, types );
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        this.listeners.removeListener( listener );
-    }
-    
-    private void notifyListeners( final IFacetedProjectEvent event )
-    {
-        this.listeners.notifyListeners( event );
-        FacetedProjectFrameworkImpl.getInstance().getListenerRegistry().notifyListeners( event );
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void addListener( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener )
-    {
-        this.listeners.addListener( new LegacyListenerAdapter( listener ), 
-                                    IFacetedProjectEvent.Type.PROJECT_MODIFIED );
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void removeListener( final org.eclipse.wst.common.project.facet.core.IFacetedProjectListener listener )
-    {
-        for( IFacetedProjectListener x 
-             : this.listeners.getListeners( IFacetedProjectEvent.Type.PROJECT_MODIFIED ) )
-        {
-            if( x instanceof LegacyListenerAdapter &&
-                ( (LegacyListenerAdapter) x ).getLegacyListener() == listener )
-            {
-                removeListener( x );
-            }
-        }
-    }
-
-    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 static IFacetedProjectEvent.Type getPreEventType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return IFacetedProjectEvent.Type.PRE_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return IFacetedProjectEvent.Type.PRE_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return IFacetedProjectEvent.Type.PRE_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    private static IFacetedProjectEvent.Type getPostEventType( final Action.Type t )
-    {
-        if( t == Action.Type.INSTALL )
-        {
-            return IFacetedProjectEvent.Type.POST_INSTALL;
-        }
-        else if( t == Action.Type.UNINSTALL )
-        {
-            return IFacetedProjectEvent.Type.POST_UNINSTALL;
-        }
-        else if( t == Action.Type.VERSION_CHANGE )
-        {
-            return IFacetedProjectEvent.Type.POST_VERSION_CHANGE;
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-
-    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 )
-            {
-                msg = NLS.bind( Resources.failedOnInstall, fv );
-            }
-            else if( context == Action.Type.UNINSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnUninstall, fv );
-            }
-            else if( context == Action.Type.VERSION_CHANGE )
-            {
-                msg = NLS.bind( Resources.failedOnVersionChange, 
-                                fv.getProjectFacet().getLabel(), 
-                                fv.getVersionString() );
-            }
-            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( IProjectFacetVersion x : this.facets )
-            {
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    this.facets.remove( x );
-                    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( escape( this.primaryRuntime ) );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( String name : this.targetedRuntimes )
-        {
-            if( ! name.equals( this.primaryRuntime ) )
-            {
-                out.print( "  <secondary-runtime name=\"" ); //$NON-NLS-1$
-                out.print( escape( name ) );
-                out.print( "\"/>" ); //$NON-NLS-1$
-                out.print( nl );
-            }
-        }
-        
-        for( IProjectFacet f : this.fixed )
-        {
-            out.print( "  <fixed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( f.getId() ) );
-            out.print( "\"/>" ); //$NON-NLS-1$
-            out.print( nl );
-        }
-        
-        for( IProjectFacetVersion fv : this.facets )
-        {
-            out.print( "  <installed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( fv.getProjectFacet().getId() ) );
-            out.print( "\" version=\"" ); //$NON-NLS-1$
-            out.print( escape( 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() )
-        {
-            validateEdit( this.f );
-            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();
-        this.parsingException = null;
-    }
-
-    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;
-                }
-                else
-                {
-                    this.fModificationStamp = this.f.getModificationStamp();
-                    
-                    Element root = null;
-                    
-                    try
-                    {
-                        root = parse( this.f.getLocation().toFile() );
-                        this.parsingException = null;
-                    }
-                    catch( Exception e )
-                    {
-                        this.parsingException = e;
-                    }
-                    
-                    if( this.parsingException == null )
-                    {
-                        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 );
-                            }
-                        }
-                    }
-                }
-            }
-            finally
-            {
-                endModification();
-            }
-        }
-
-        // If we got here, the project was changed. All of the no-op checks return early.
-        
-        notifyListeners( new ProjectModifiedEvent( this ) );
-    }
-    
-    private ProjectFacet createUnknownFacet( final String id )
-    {
-        ProjectFacet f = 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 )
-    
-        throws IOException, SAXException
-        
-    {
-        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 );
-        }
-
-        return docbuilder.parse( f ).getDocumentElement();
-    }
-    
-    private Element[] children( final Element element )
-    {
-        final List<Element> list = new ArrayList<Element>();
-        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( (Element) node );
-            }
-        }
-        
-        return list.toArray( new Element[ list.size() ] );
-    }
-    
-    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 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;
-        
-        // Task Descriptions
-        
-        public static String taskValidatingFacetedProject;
-        public static String taskInstallingFacet;
-        public static String taskUninstallingFacet;
-        public static String taskChangingFacetVersion;
-        
-        // Validation Messages
-        
-        public static String projectValidationFailed;
-        public static String metadataFileCorrupted;
-        public static String couldNotReadMetadataFile;
-        public static String runtimeNotDefined;
-        public static String facetNotSupportedByTarget;
-        public static String installedFacetNotFound;
-        public static String installedFacetVersionNotFound;
-        
-        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 980f056..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-failedOnInstall = Failed while installing {0}.
-failedOnUninstall = Failed while uninstalling {0}.
-failedOnVersionChange = Failed while changing version of {0} to {1}.
-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.
-
-# Task Descriptions
-
-taskValidatingFacetedProject = Validating faceted project...
-taskInstallingFacet = Installing {0} facet...
-taskUninstallingFacet = Uninstalling {0} facet...
-taskChangingFacetVersion = Changing version of {0} facet...
-
-# Validation Messages
-
-projectValidationFailed = Encountered problems while validating faceted project "{0}".
-metadataFileCorrupted = Faceted project metadata file "{0}" is corrupted and could not be parsed.
-couldNotReadMetadataFile = Faceted project metadata file "{0}" could not be read.
-runtimeNotDefined = Target runtime {0} is not defined.
-facetNotSupportedByTarget = Project facet {0} is not supported by target runtime {1}.
-installedFacetNotFound = Implementation of project facet {0} could not be found. Functionality will be limited.
-installedFacetVersionNotFound = 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/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 1ece096..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-2007 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
- ******************************************************************************/
-
-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/FacetedProjectFrameworkImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
deleted file mode 100644
index f88f0d0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.java
+++ /dev/null
@@ -1,2362 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.FileUtil.FILE_DOT_PROJECT;
-import static org.eclipse.wst.common.project.facet.core.internal.util.FileUtil.validateEdit;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-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.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.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.events.internal.EventsExtensionPoint;
-import org.eclipse.wst.common.project.facet.core.events.internal.LegacyEventHandlerAdapter;
-import org.eclipse.wst.common.project.facet.core.events.internal.ListenerRegistry;
-import org.eclipse.wst.common.project.facet.core.internal.util.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.util.VersionExpr;
-import org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.InvalidExtensionException;
-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 FacetedProjectFrameworkImpl
-{
-    private static final String EXTENSION_ID = "facets"; //$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_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_GROUP = "group"; //$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_MEMBER = "member"; //$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_VERSION_COMPARATOR = "version-comparator"; //$NON-NLS-1$
-    
-    private static final String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$
-    
-    private static FacetedProjectFrameworkImpl instance = null;
-    private static final Set<String> facetsReportedMissing = new HashSet<String>();
-    
-    private final IndexedSet<String,IProjectFacet> facets;
-    private final IndexedSet<String,IActionDefinition> actions;
-    private final IndexedSet<String,ICategory> categories;
-    private final IndexedSet<String,IPreset> presets;
-    private boolean presetsInitialized = false;
-    private final IndexedSet<String,IGroup> groups;
-    private final Map<String,FacetedProject> projects;
-    private final ListenerRegistry listeners;
-    
-    private FacetedProjectFrameworkImpl()
-    {
-        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<String,IProjectFacet>();
-        this.actions = new IndexedSet<String,IActionDefinition>();
-        this.categories = new IndexedSet<String,ICategory>();
-        this.presets = new IndexedSet<String,IPreset>();
-        this.presetsInitialized = false;
-        this.groups = new IndexedSet<String,IGroup>();
-        this.projects = new HashMap<String,FacetedProject>();
-        this.listeners = new ListenerRegistry();
-        
-        readMetadata();
-        
-        EventsExtensionPoint.processExtensions( this );
-        
-        ( new ResourceChangeListener() ).register();
-        
-        if( FacetCorePlugin.isTracingFrameworkActivation() )
-        {
-            final long duration 
-                = System.currentTimeMillis() - activationStart;
-            
-            final String msg
-                = NLS.bind( Resources.tracingFrameworkActivationFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    public synchronized static FacetedProjectFrameworkImpl getInstance()
-    {
-        if( instance == null )
-        {
-            instance = new FacetedProjectFrameworkImpl();
-        }
-        
-        return instance;
-    }
-    
-    public Set<IProjectFacet> 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 = this.facets.get( id );
-        
-        if( f == null )
-        {
-            final String msg = NLS.bind( Resources.facetNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return f;
-    }
-    
-    public Set<IActionDefinition> 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 = this.actions.get( id );
-        
-        if( adef == null )
-        {
-            final String msg = NLS.bind( Resources.actionNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return adef;
-    }
-    
-    public Set<ICategory> 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 = this.categories.get( id );
-        
-        if( category == null )
-        {
-            final String msg = NLS.bind( Resources.categoryNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return category;
-    }
-    
-    public Set<IPreset> getPresets()
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            return this.presets.getUnmodifiable();
-        }
-    }
-    
-    public boolean isPresetDefined( final String id )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            return this.presets.containsKey( id );
-        }
-    }
-    
-    public IPreset getPreset( final String id )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            
-            final IPreset preset = 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<IProjectFacetVersion> facets )
-    {
-        return definePreset( name, "", facets, true ); //$NON-NLS-1$
-    }
-
-    public IPreset definePreset( final String name,
-                                 final String description,
-                                 final Set<IProjectFacetVersion> facets )
-    {
-        return definePreset( name, description, facets, true );
-    }
-    
-    private IPreset definePreset( final String name,
-                                  final String description,
-                                  final Set<IProjectFacetVersion> facets,
-                                  final boolean save )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            
-            String id;
-            int i = 0;
-            
-            do
-            {
-                id = ".usr." + i; //$NON-NLS-1$
-                i++;
-            }
-            while( this.presets.containsKey( id ) );
-            
-            final UserPreset preset 
-                = new UserPreset( id, name, description == null ? "" : description,  //$NON-NLS-1$
-                                  facets );
-            
-            this.presets.add( id, preset );
-            
-            if( save )
-            {
-                saveUserPresets();
-            }
-            
-            return preset;
-        }
-    }
-    
-    public boolean deletePreset( final IPreset preset )
-    {
-        synchronized( this.presets )
-        {
-            initializePresets();
-            
-            if( preset.getType() != IPreset.Type.USER_DEFINED )
-            {
-                return false;
-            }
-            
-            final boolean res = this.presets.delete( preset.getId() );
-            
-            if( res )
-            {
-                saveUserPresets();
-            }
-            
-            return res;
-        }
-    }
-    
-    private void initializePresets()
-    {
-        if( ! this.presetsInitialized )
-        {
-            for( IPreset preset : PresetsExtensionPoint.getPresets() )
-            {
-                this.presets.add( preset.getId(), preset );
-            }
-            
-            readUserPresets();
-            
-            this.presetsInitialized = true;
-        }
-    }
-    
-    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( IPreset preset : this.presets )
-            {
-                if( preset.getType() == IPreset.Type.USER_DEFINED )
-                {
-                    final Preferences pnode = root.node( preset.getId() );
-                    pnode.put( EL_LABEL, preset.getLabel() );
-                    pnode.put( EL_DESCRIPTION, preset.getDescription() );
-                    
-                    int counter = 1;
-                    
-                    for( IProjectFacetVersion fv : preset.getProjectFacets() )
-                    {
-                        final Preferences fnode = pnode.node( String.valueOf( counter ) );
-                        
-                        fnode.put( ATTR_ID, fv.getProjectFacet().getId() );
-                        fnode.put( ATTR_VERSION, fv.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();
-                Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-                
-                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$
-    }
-    
-    public Set<IFacetedProjectTemplate> getTemplates()
-    {
-        return FacetedProjectTemplatesExtensionPoint.getTemplates();
-    }
-    
-    public boolean isTemplateDefined( final String id )
-    {
-        return ( FacetedProjectTemplatesExtensionPoint.getTemplate( id ) != null );
-    }
-    
-    public IFacetedProjectTemplate getTemplate( final String id )
-    {
-        final IFacetedProjectTemplate template 
-            = FacetedProjectTemplatesExtensionPoint.getTemplate( id );
-        
-        if( template == null )
-        {
-            final String msg = NLS.bind( Resources.templateNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return template;
-    }
-    
-    public Set<IGroup> 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 = this.groups.get( id );
-        
-        if( group == null )
-        {
-            final String msg = NLS.bind( Resources.groupNotDefined, id );
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return group;
-    }
-
-    public Set<IFacetedProject> getFacetedProjects()
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, null );
-    }
-
-    public Set<IFacetedProject> getFacetedProjects( final IProjectFacet f )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( f, null );
-    }
-
-    public Set<IFacetedProject> getFacetedProjects( final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        return getFacetedProjects( null, fv );
-    }
-
-    private Set<IFacetedProject> getFacetedProjects( final IProjectFacet f,
-                                                     final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IProject[] all 
-            = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-        
-        final Set<IFacetedProject> result = new HashSet<IFacetedProject>();
-        
-        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 = 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 )
-            {
-                final IProjectDescription description = project.getDescription();
-                final String[] prevNatures = description.getNatureIds();
-                final String[] newNatures = new String[ prevNatures.length + 1 ];
-                System.arraycopy( prevNatures, 0, newNatures, 0, prevNatures.length );
-                newNatures[ prevNatures.length ] = FacetedProjectNature.NATURE_ID;
-                description.setNatureIds( newNatures );
-                
-                validateEdit( project.getFile( FILE_DOT_PROJECT ) );
-                
-                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 void addListener( final IFacetedProjectListener listener,
-                             final IFacetedProjectEvent.Type... types )
-    {
-        this.listeners.addListener( listener, types );
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        this.listeners.removeListener( listener );
-    }
-    
-    ListenerRegistry getListenerRegistry()
-    {
-        return this.listeners;
-    }
-    
-    public IStatus check( final Set<IProjectFacetVersion> base,
-                          final Set<Action> actions )
-    {
-        MultiStatus result = Constraint.createMultiStatus();
-        
-        // Verify that all of the actions are supported.
-        
-        for( Action action : actions )
-        {
-            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<IProjectFacet,Set<Action>> facetToActionsMap 
-            = new HashMap<IProjectFacet,Set<Action>>();
-        
-        for( Action action : actions )
-        {
-            final IProjectFacet f = action.getProjectFacetVersion().getProjectFacet();
-            Set<Action> group = facetToActionsMap.get( f );
-            
-            if( group == null )
-            {
-                group = new HashSet<Action>();
-                facetToActionsMap.put( f, group );
-            }
-            
-            group.add( action );
-        }
-        
-        for( Set<Action> group : facetToActionsMap.values() )
-        {
-            if( group.size() > 1 )
-            {
-                boolean bad = true;
-                
-                if( group.size() == 2 )
-                {
-                    Action install = null;
-                    Action uninstall = null;
-                    
-                    for( Action action : group )
-                    {
-                        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( Action action : actions )
-        {
-            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( IProjectFacetVersion temp : base )
-                {
-                    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<IProjectFacetVersion> all = new HashSet<IProjectFacetVersion>( base );
-        
-        for( Action action : actions )
-        {
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Apply all the install and version change actions.
-        
-        for( Action action : actions )
-        {
-            if( action.getType() != Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Check the contrains on all of the facets.
-        
-        for( IProjectFacetVersion fv : all )
-        {
-            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<IStatus> problems = new HashSet<IStatus>();
-        IStatus[] children = result.getChildren();
-        
-        for( IStatus child : children )
-        {
-            problems.add( child );
-        }
-        
-        final Set<IStatus> toremove = new HashSet<IStatus>();
-
-        for( IStatus problem : problems )
-        {
-            if( ! toremove.contains( problem ) )
-            {
-                final ValidationProblem valprob = (ValidationProblem) problem;
-                
-                if( valprob.getType() == ValidationProblem.Type.CONFLICTS )
-                {
-                    final Object[] p = valprob.getParameters();
-                    
-                    final ValidationProblem reverse
-                        = new ValidationProblem( ValidationProblem.Type.CONFLICTS,
-                                                 new Object[] { p[ 1 ], p[ 0 ] } );
-                    
-                    toremove.add( reverse );
-                }
-            }
-        }
-        
-        if( toremove.size() > 0 )
-        {
-            problems.removeAll( toremove );
-            children = problems.toArray( new IStatus[ problems.size() ] );
-            result = Constraint.createMultiStatus( children );
-        }
-        
-        // Return the problems to the caller.
-        
-        return result;
-    }
-    
-    public void sort( final Set<IProjectFacetVersion> base,
-                      final List<Action> 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<Action>( actions ) );
-        
-        if( ! st.isOK() )
-        {
-            FacetCorePlugin.log( st );
-            return;
-        }
-        
-        // Initialize tracing.
-        
-        List<Action> unsorted = null;
-        int steps = 0;
-        
-        if( FacetCorePlugin.isTracingActionSorting() )
-        {
-            unsorted = new ArrayList<Action>( 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<Action> comp = new Comparator<Action>()
-        {
-            public int compare( final Action a1, 
-                                final Action a2 )
-            {
-                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 Set<IProjectFacetVersion> fnl = new HashSet<IProjectFacetVersion>( base );
-        
-        for( Action action : actions )
-        {
-            apply( fnl, action );
-        }
-        
-        boolean makeAnotherPass = true;
-        
-        while( makeAnotherPass )
-        {
-            makeAnotherPass = false;
-            
-            Set<IProjectFacetVersion> state = new HashSet<IProjectFacetVersion>( base );
-            
-            for( int i = 0; i < count; )
-            {
-                final 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<IProjectFacetVersion> 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( IProjectFacetVersion x : facets )
-            {
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    facets.remove( x );
-                    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<Action> actions,
-                                     final int index )
-    {
-        final 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<Action> actions,
-                                   final int index )
-    {
-        final 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 List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_CATEGORY ) )
-            {
-                try
-                {
-                    readCategory( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                try
-                {
-                    readProjectFacet( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-        
-        final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint 
-            = new HashMap<ProjectFacetVersion,IConfigurationElement>();
-        
-        final Map<ProjectFacetVersion,List<IConfigurationElement>> fvToActions 
-            = new HashMap<ProjectFacetVersion,List<IConfigurationElement>>();
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET_VERSION ) )
-            {
-                readProjectFacetVersion( config, fvToConstraint, fvToActions );
-            }
-        }
-        
-        calculateVersionComparisonTables( fvToConstraint, fvToActions );
-        
-        for( Map.Entry<ProjectFacetVersion,IConfigurationElement> x : fvToConstraint.entrySet() )
-        {
-            readConstraint( x.getValue(), x.getKey() );
-        }
-        
-        for( Map.Entry<ProjectFacetVersion,List<IConfigurationElement>> x : fvToActions.entrySet() )
-        {
-            final ProjectFacetVersion fv = x.getKey();
-            final List<IConfigurationElement> actions = x.getValue();
-            
-            for( IConfigurationElement config : actions )
-            {
-                readAction( config, (ProjectFacet) fv.getProjectFacet(), fv.getVersionString() );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_ACTION ) )
-            {
-                readAction( config );
-            }
-            else if( config.getName().equals( EL_EVENT_HANDLER ) )
-            {
-                readEventHandler( config );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_PROJECT_FACET ) )
-            {
-                readDefaultVersionInfo( config );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_GROUP ) )
-            {
-                try
-                {
-                    readGroup( config );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported in the log.
-                }
-            }
-        }
-    }
-    
-    private void readCategory( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final Category category = new Category();
-        category.setId( findRequiredAttribute( config, ATTR_ID ) );
-        category.setPluginId( config.getContributor().getName() );
-
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        category.setLabel( getElementValue( elLabel, category.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        category.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-        
-        this.categories.add( category.getId(), category );
-    }
-    
-    private void readProjectFacet( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final ProjectFacet f = new ProjectFacet();
-        f.setId( findRequiredAttribute( config, ATTR_ID ) );
-        f.setPluginId( config.getContributor().getName() );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        f.setLabel( getElementValue( elLabel, f.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        f.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-
-        final IConfigurationElement elComp = findOptionalElement( config, EL_VERSION_COMPARATOR );
-        
-        if( elComp != null )
-        {
-            f.setVersionComparator( findRequiredAttribute( elComp, ATTR_CLASS ) );
-        }
-        
-        String catname = null;
-        
-        final IConfigurationElement elMember = findOptionalElement( config, EL_MEMBER );
-        
-        if( elMember != null )
-        {
-            catname = findRequiredAttribute( elMember, ATTR_CATEGORY );
-        }
-        
-        // ## DEPRECATED : 2.0 ##
-        {
-            final IConfigurationElement elCategory = findOptionalElement( config, EL_CATEGORY );
-            
-            if( elCategory != null )
-            {
-                catname = getElementValue( elCategory, null );
-            }
-        }
-        
-        if( catname != null )
-        {
-            if( isCategoryDefined( catname ) )
-            {
-                final Category category = (Category) getCategory( catname );
-                
-                f.setCategory( category );
-                category.addProjectFacet( f );
-            }
-            else
-            {
-                final String msg
-                    = NLS.bind( Resources.categoryNotDefined, catname ) +
-                      NLS.bind( Resources.usedInPlugin, config.getContributor().getName() );
-                
-                FacetCorePlugin.log( msg );
-            }
-        }
-        
-        this.facets.add( f.getId(), f );
-    }
-    
-    private void readProjectFacetVersion( final IConfigurationElement config,
-                                          final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint,
-                                          final Map<ProjectFacetVersion,List<IConfigurationElement>> 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<IConfigurationElement> actions = new ArrayList<IConfigurationElement>();
-        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 );
-            }
-        }
-    }
-    
-    /**
-     * Pre-computes the tables that describe how versions of a facet compare
-     * to each other. This allows the IProjectFacetVersion.compareTo() operation,
-     * which is called rather frequently, to be reduced to a hash table lookup
-     * instead of having to do a parse and comparison of two version strings.
-     */
-    
-    private void calculateVersionComparisonTables( final Map<ProjectFacetVersion,IConfigurationElement> fvToConstraint,
-                                                   final Map<ProjectFacetVersion,List<IConfigurationElement>> fvToActions )
-    {
-        final List<IProjectFacet> badFacets = new ArrayList<IProjectFacet>();
-        
-        for( IProjectFacet f : this.facets )
-        {
-            try
-            {
-                final Comparator<String> comp = f.getVersionComparator();
-                
-                final List<IProjectFacetVersion> versions 
-                    = new ArrayList<IProjectFacetVersion>( f.getVersions() );
-                
-                final Map<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>> compTables
-                    = new HashMap<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>>();
-                
-                for( IProjectFacetVersion fv : versions )
-                {
-                    compTables.put( fv, new HashMap<IProjectFacetVersion,Integer>() );
-                }
-                
-                for( int i = 0, n = versions.size(); i < n; i++ )
-                {
-                    final IProjectFacetVersion iVer = versions.get( i );
-                    final String iVerStr = iVer.getVersionString();
-                    final Map<IProjectFacetVersion,Integer> iCompTable = compTables.get( iVer );
-                    
-                    for( int j = i + 1; j < n; j++ )
-                    {
-                        final IProjectFacetVersion jVer = versions.get( j );
-                        final String jVerStr = jVer.getVersionString();
-                        final Map<IProjectFacetVersion,Integer> jCompTable = compTables.get( jVer );
-                        
-                        final int result = comp.compare( iVerStr, jVerStr );
-                        
-                        iCompTable.put( jVer, new Integer( result ) );
-                        jCompTable.put( iVer, new Integer( result * -1 ) );
-                    }
-                }
-                
-                for( Map.Entry<IProjectFacetVersion,Map<IProjectFacetVersion,Integer>> entry
-                     : compTables.entrySet() )
-                {
-                    final ProjectFacetVersion fv = (ProjectFacetVersion) entry.getKey();
-                    fv.setComparisonTable( entry.getValue() );
-                }
-            }
-            catch( Exception e )
-            {
-                // The failure here is due to the problem loading the provided
-                // version comparator or due to the problem comparing the
-                // version string. In either case, we log the exception and
-                // remove all traces of this facet from the system to keep a
-                // faulty facet from dragging down the entire framework.
-                
-                FacetCorePlugin.log( e );
-                badFacets.add( f );
-            }
-        }
-        
-        for( IProjectFacet f : badFacets )
-        {
-            this.facets.remove( f );
-            
-            final Category category = (Category) f.getCategory();
-            
-            if( category != null )
-            {
-                category.removeProjectFacet( f );
-            }
-            
-            for( IProjectFacetVersion fv : f.getVersions() )
-            {
-                fvToConstraint.remove( fv );
-                fvToActions.remove( fv );
-            }
-        }
-    }
-    
-    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 IDefaultVersionProvider defaultVersionProvider
-                            = instantiate( f.getPluginId(), clname, IDefaultVersionProvider.class );
-                        
-                        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
-                        {
-                            FacetCorePlugin.log( f.createVersionNotFoundErrMsg( version ) );
-                        }
-                    }
-                    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<ProjectFacetVersion>( 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<ProjectFacetVersion>( 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( Map.Entry<String,Object> entry : def.getProperties().entrySet() )
-            {
-                buf.append( '#' );
-                buf.append( 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 );
-    }
-    
-    /**
-     * Support for a deprecated extension point.
-     */
-
-    private void readEventHandler( final IConfigurationElement config,
-                                   final ProjectFacet f,
-                                   final String version )
-    {
-        final String pluginId = config.getContributor().getName();
-        
-        final String type = config.getAttribute( ATTR_TYPE );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, ATTR_TYPE );
-            return;
-        }
-        
-        final IFacetedProjectEvent.Type t;
-        
-        if( type.equals( "runtime-changed" ) || type.equals( "RUNTIME_CHANGED" )) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-            t = IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED;
-        }
-        else
-        {
-            t = IFacetedProjectEvent.Type.valueOf( type );
-        }
-        
-        if( t == null )
-        {
-            final String msg
-                = NLS.bind( Resources.invalidEventHandlerType, type ) +
-                  NLS.bind( Resources.usedInPlugin, pluginId );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final IVersionExpr vexpr;
-        
-        try
-        {
-            vexpr = new VersionExpr<ProjectFacetVersion>( f, version, pluginId );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-        
-        String delegateClassName = null;
-
-        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;
-                }
-                
-                delegateClassName = clname;
-            }
-        }
-        
-        if( delegateClassName == null )
-        {
-            reportMissingElement( config, EL_DELEGATE );
-            return;
-        }
-        
-        final LegacyEventHandlerAdapter adapter
-            = new LegacyEventHandlerAdapter( f, vexpr, pluginId, delegateClassName );
-        
-        addListener( adapter, t );
-    }
-    
-    private void readConstraint( final IConfigurationElement config,
-                                 final ProjectFacetVersion fv )
-    {
-        final IConfigurationElement[] ops = config.getChildren();
-        final List<IConstraint> parsed = new ArrayList<IConstraint>();
-        
-        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( 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 ||
-                 type == IConstraint.Type.CONFLICTS )
-        {
-            final String gid = root.getAttribute( ATTR_GROUP );
-            final String fid = root.getAttribute( ATTR_FACET );
-            String vexprstr = root.getAttribute( ATTR_VERSION );
-            
-            final String softStr = root.getAttribute( ATTR_SOFT );
-            Boolean soft = Boolean.FALSE;
-            
-            if( softStr != null && softStr.equals( Boolean.TRUE.toString() ) )
-            {
-                soft = Boolean.TRUE;
-            }
-            
-            if( gid != null && ( fid != null || vexprstr != null ) )
-            {
-                final String template
-                    = type == IConstraint.Type.REQUIRES
-                      ? Resources.invalidRequiresConstraint
-                      : Resources.invalidConflictsConstraint;
-                
-                final String msg = NLS.bind( template, 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;
-                }
-                
-                final IGroup group = getGroup( gid );
-                
-                if( type == IConstraint.Type.REQUIRES )
-                {
-                    operands = new Object[] { group, soft };
-                }
-                else
-                {
-                    operands = new Object[] { group };
-                }
-            }
-            else if( fid != null )
-            {
-                final IProjectFacet f;
-                VersionExpr vexpr = null;
-                
-                try
-                {
-                    f = getProjectFacet( fid );
-                    
-                    if( vexprstr == null || vexprstr.trim().length() == 0 )
-                    {
-                        vexprstr = IVersionExpr.WILDCARD_SYMBOL;
-                    }
-                    
-                    vexpr = new VersionExpr( f, vexprstr, pluginId );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return null;
-                }
-                
-                if( type == IConstraint.Type.REQUIRES )
-                {
-                    operands = new Object[] { f, vexpr, soft };
-                }
-                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 readGroup( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String id = findRequiredAttribute( config, ATTR_ID );
-        
-        if( ! isGroupDefined( id ) )
-        {
-            return;
-        }
-        
-        final Group group = (Group) getGroup( id );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        group.setLabel( getElementValue( elLabel, group.getId() ) );
-        
-        final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
-        group.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
-    }
-    
-    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 static String toString( final Collection<? extends Object> collection )
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( Object obj : collection )
-        {
-            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 register()
-        {
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            ws.addResourceChangeListener( this, IResourceChangeEvent.POST_CHANGE );
-        }
-        
-        public void resourceChanged( final IResourceChangeEvent event )
-        {
-            final IResourceDelta delta = event.getDelta();
-            
-            synchronized( FacetedProjectFrameworkImpl.this.projects )
-            {
-                for( FacetedProject fproj : FacetedProjectFrameworkImpl.this.projects.values() )
-                {
-                    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 invalidRequiresConstraint;
-        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( FacetedProjectFrameworkImpl.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/FacetedProjectFrameworkImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.properties
deleted file mode 100644
index f533c0a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectFrameworkImpl.properties
+++ /dev/null
@@ -1,40 +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} does not exist.
-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.
-invalidRequiresConstraint = The requires constraint can specify either a "group" attribute or a "facet" attribute and a "version" attribute. The problem was found in plugin {0}.
-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/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 eb81a9c..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-2007 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
- ******************************************************************************/
-
-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 70936c3..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-2007 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
- ******************************************************************************/
-
-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 826d4d1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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<IProjectFacet> fixed;
-    private final Set<IProjectFacet> fixedReadOnly;
-    private IPreset preset;
-    
-    FacetedProjectTemplate() 
-    {
-        this.fixed = new HashSet<IProjectFacet>();
-        this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-    }
-    
-    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<IProjectFacet> 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/FacetedProjectTemplatesExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.java
deleted file mode 100644
index 56cdb12..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl.reportMissingFacet;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getTopLevelElements;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.util.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>template</code> element of the <code>facets</code> 
- * extension point.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectTemplatesExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "facets"; //$NON-NLS-1$
-    
-    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String EL_FIXED = "fixed"; //$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_TEMPLATE = "template"; //$NON-NLS-1$
-    
-    private static IndexedSet<String,IFacetedProjectTemplate> templates = null;
-    
-    public static Set<IFacetedProjectTemplate> getTemplates()
-    {
-        readExtensions();
-        return templates.getUnmodifiable();
-    }
-    
-    public static IFacetedProjectTemplate getTemplate( final String id )
-    {
-        readExtensions();
-        return templates.get( id );
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( templates != null )
-        {
-            return;
-        }
-        
-        templates = new IndexedSet<String,IFacetedProjectTemplate>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_TEMPLATE ) )
-            {
-                try
-                {
-                    readTemplate( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-    }
-
-    private static void readTemplate( final IConfigurationElement config )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = config.getContributor().getName();
-        
-        final FacetedProjectTemplate template = new FacetedProjectTemplate();
-        template.setId( findRequiredAttribute( config, ATTR_ID ) );
-        
-        final IConfigurationElement elLabel = findOptionalElement( config, EL_LABEL );
-        template.setLabel( getElementValue( elLabel, template.getId() ) );
-    
-        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_FIXED ) )
-            {
-                final String fid = findRequiredAttribute( child, ATTR_FACET );
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    reportMissingFacet( fid, pluginId );
-                    return;
-                }
-                
-                template.addFixedProjectFacet( ProjectFacetsManager.getProjectFacet( fid ) );
-            }
-            else if( childName.equals( EL_PRESET ) )
-            {
-                final String pid = findRequiredAttribute( child, ATTR_ID );
-                
-                if( ! ProjectFacetsManager.isPresetDefined( pid ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetNotDefined, pid, pluginId );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                template.setInitialPreset( ProjectFacetsManager.getPreset( pid ) );
-            }
-        }
-        
-        templates.add( template.getId(), template );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetNotDefined;
-        
-        static
-        {
-            initializeMessages( FacetedProjectTemplatesExtensionPoint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties
deleted file mode 100644
index bc8ba86..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplatesExtensionPoint.properties
+++ /dev/null
@@ -1 +0,0 @@
-presetNotDefined = Preset {0} has not been defined. It is used in plugin {1}.
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 d9c87b7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-import java.util.ArrayList;
-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.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-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.IProjectFacetVersion;
-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$
-
-    private static final String EXTENSION_POINT_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<ValidatorDefinition> validators 
-        = new ArrayList<ValidatorDefinition>();
-    
-    static
-    {
-        readExtensions();
-    }
-    
-    protected IProject[] build( final int kind, 
-                                final Map args, 
-                                final IProgressMonitor monitor ) 
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( Resources.taskDescription, 3 );
-        }
-        
-        try
-        {
-            final IProject proj = getProject();
-            final IFacetedProject fproj = ProjectFacetsManager.create( proj );
-            
-            // Delete existing problem markers.
-            
-            proj.deleteMarkers( IFacetedProjectValidator.BASE_MARKER_ID, true, 
-                                IResource.DEPTH_INFINITE );
-            
-            worked( monitor, 1 );
-            
-            // Perform basic validation.
-            
-            final IStatus st = fproj.validate( submon( monitor, 1 ) );
-            
-            if( ! st.isOK() )
-            {
-                final IStatus[] problems = st.getChildren();
-                
-                for( int i = 0; i < problems.length; i++ )
-                {
-                    final IStatus problem = problems[ i ];
-                    final int severity = problem.getSeverity();
-                    final String message = problem.getMessage();
-                    
-                    if( severity == IStatus.ERROR )
-                    {
-                        fproj.createErrorMarker( message );
-                    }
-                    else if( severity == IStatus.WARNING )
-                    {
-                        fproj.createWarningMarker( message );
-                    }
-                }
-            }
-            
-            // Call the registered validators.
-            
-            for( ValidatorDefinition def : validators )
-            {
-                if( monitor != null && monitor.isCanceled() )
-                {
-                    throw new OperationCanceledException();
-                }
-                
-                if( def.isApplicable( fproj.getProjectFacets() ) )
-                {
-                    final IFacetedProjectValidator validator = def.getValidator();
-                    
-                    if( validator != null )
-                    {
-                        validator.validate( fproj );
-                    }
-                }
-            }
-            
-            worked( monitor, 1 );
-            
-            return new IProject[0];
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    private static void readExtensions()
-    {
-        for( IConfigurationElement config 
-            : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            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 )
-                {
-                    FacetedProjectFrameworkImpl.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 SubProgressMonitor submon( final IProgressMonitor parent,
-                                              final int ticks )
-    {
-        if( parent == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new SubProgressMonitor( parent, ticks );
-        }
-    }
-    
-    private static void worked( final IProgressMonitor monitor,
-                                final int ticks )
-    {
-        if( monitor != null )
-        {
-            monitor.worked( ticks );
-            
-            if( monitor.isCanceled() )
-            {
-                throw new OperationCanceledException();
-            }
-        }
-    }
-    
-    private static final class ValidatorDefinition
-    {
-        public String plugin;
-        public String className;
-        public IFacetedProjectValidator validator;
-        public final List<ProjectFacetRef> constraints = new ArrayList<ProjectFacetRef>();
-        
-        public boolean isApplicable( final Set<IProjectFacetVersion> facets )
-        
-            throws CoreException
-            
-        {
-            for( ProjectFacetRef ref : this.constraints )
-            {
-                if( ! ref.check( facets ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        public synchronized IFacetedProjectValidator getValidator()
-        
-            throws CoreException
-            
-        {
-            if( this.validator == null )
-            {
-                this.validator
-                    = instantiate( this.plugin, this.className, IFacetedProjectValidator.class );
-            }
-            
-            return this.validator;
-        }
-    }
-            
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String taskDescription;
-        
-        static
-        {
-            initializeMessages( FacetedProjectValidationBuilder.class.getName(), 
-                                Resources.class );
-        }
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties
deleted file mode 100644
index e759136..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectValidationBuilder.properties
+++ /dev/null
@@ -1 +0,0 @@
-taskDescription = Validating faceted project...
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 6bbf520..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-    private String label;
-    private String description;
-    private final Set<IProjectFacetVersion> members;
-    private final Set<IProjectFacetVersion> membersReadOnly;
-    
-    Group() 
-    {
-        this.description = "";  //$NON-NLS-1$
-        this.members = new HashSet<IProjectFacetVersion>();
-        this.membersReadOnly = Collections.unmodifiableSet( this.members );
-    }
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-        
-        if( this.label == null )
-        {
-            this.label = 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<IProjectFacetVersion> getMembers()
-    {
-        return this.membersReadOnly;
-    }
-    
-    void addMember( final IProjectFacetVersion fv )
-    {
-        this.members.add( fv );
-    }
-    
-    public String toString()
-    {
-        return getLabel();
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java
deleted file mode 100644
index f1a9c80..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.createErrorStatus;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.log;
-import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.logError;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findOptionalElement;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findRequiredAttribute;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findRequiredElement;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getElementValue;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Map;
-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.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IPresetFactory;
-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.PresetDefinition;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.util.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.InvalidExtensionException;
-
-/**
- * Contains the logic for processing the <code>presets</code> extension point.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PresetsExtensionPoint
-{
-    public static final String EXTENSION_POINT_ID = "presets"; //$NON-NLS-1$
-    private static final String OLD_EXTENSION_POINT_ID = "facets"; //$NON-NLS-1$
-    
-    private static final String EL_DESCRIPTION = "description"; //$NON-NLS-1$
-    private static final String EL_DYNAMIC_PRESET = "dynamic-preset"; //$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_LABEL = "label"; //$NON-NLS-1$
-    private static final String EL_PRESET = "preset"; //$NON-NLS-1$
-    private static final String EL_STATIC_PRESET = "static-preset"; //$NON-NLS-1$
-    private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-    private static final String ATTR_EXTENDS = "extends"; //$NON-NLS-1$
-    private static final String ATTR_ID = "id"; //$NON-NLS-1$
-    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
-    
-    private static final String DEFAULT_DESCRIPTION = ""; //$NON-NLS-1$
-    
-    private static IndexedSet<String,IPreset> presets = null;
-    
-    public static Set<IPreset> getPresets()
-    {
-        readExtensions();
-        return presets.getUnmodifiable();
-    }
-    
-    public static IPreset getPreset( final String id )
-    {
-        readExtensions();
-        return presets.get( id );
-    }
-    
-    private static synchronized void readExtensions()
-    {
-        if( presets != null )
-        {
-            return;
-        }
-        
-        presets = new IndexedSet<String,IPreset>();        
-        
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
-        {
-            final String elName = element.getName();
-            
-            if( elName.equals( EL_STATIC_PRESET ) )
-            {
-                try
-                {
-                    readStaticPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-            else if( elName.equals( EL_DYNAMIC_PRESET ) )
-            {
-                try
-                {
-                    readDynamicPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-
-        for( IConfigurationElement element 
-             : getTopLevelElements( findExtensions( PLUGIN_ID, OLD_EXTENSION_POINT_ID ) ) )
-        {
-            if( element.getName().equals( EL_PRESET ) )
-            {
-                try
-                {
-                    readStaticPreset( element );
-                }
-                catch( InvalidExtensionException e )
-                {
-                    // Continue. The problem has been reported to the user via the log.
-                }
-            }
-        }
-        
-        // Resolve the base presets. Make sure that no presets are extending presets that do not
-        // exist, check for circular references, etc.
-        
-        Set<IPreset> copy = new HashSet<IPreset>( presets ); 
-        
-        for( IPreset preset : copy )
-        {
-            if( presets.contains( preset ) )
-            {
-                resolveBasePreset( preset, new HashSet<IPreset>() );
-            }
-        }
-        
-        // Find static presets that are extending dynamic presets and make them into dynamic
-        // presets (StaticExtendingDynamicPreset class).
-        
-        boolean doAnotherPass = true;
-        
-        while( doAnotherPass )
-        {
-            doAnotherPass = false;
-            
-            for( IPreset preset : presets )
-            {
-                if( preset.getType() == IPreset.Type.STATIC )
-                {
-                    final StaticPreset stPreset = (StaticPreset) preset;
-                    final String basePresetId = stPreset.getBasePresetId();
-                    
-                    if( basePresetId != null )
-                    {
-                        final IPreset basePreset = getPreset( basePresetId );
-                        
-                        if( basePreset.getType() == IPreset.Type.DYNAMIC )
-                        {
-                            final StaticExtendingDynamicPreset stPresetNew
-                                = new StaticExtendingDynamicPreset( stPreset.getId(), 
-                                                                    stPreset.getPluginId(),
-                                                                    stPreset.getLabel(),
-                                                                    stPreset.getDescription(),
-                                                                    stPreset.getBasePresetId(),
-                                                                    stPreset.getProjectFacets() );
-                            
-                            presets.add( stPresetNew.getId(), stPresetNew );
-
-                            doAnotherPass = true;
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    
-    private static void readStaticPreset( final IConfigurationElement el )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = el.getContributor().getName();
-        final String id = findRequiredAttribute( el, ATTR_ID );
-        
-        final IConfigurationElement elLabel = findOptionalElement( el, EL_LABEL );
-        final String label = getElementValue( elLabel, id );
-        
-        final IConfigurationElement elDesc = findOptionalElement( el, EL_DESCRIPTION );
-        final String description = getElementValue( elDesc, DEFAULT_DESCRIPTION );
-        
-        String basePreset = el.getAttribute( ATTR_EXTENDS );
-        
-        if( basePreset != null )
-        {
-            basePreset = basePreset.trim();
-            
-            if( basePreset.length() == 0 )
-            {
-                basePreset = null;
-            }
-        }
-        
-        final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-
-        for( IConfigurationElement child : el.getChildren() )
-        {
-            final String childName = child.getName();
-            
-            if( childName.equals( EL_FACET ) )
-            {
-                final String fid = findRequiredAttribute( child, ATTR_ID );
-                final String fver = findRequiredAttribute( child, ATTR_VERSION );
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( fid ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetUsesUnknownFacet, id, pluginId, fid );
-                    
-                    logError( msg );
-                    
-                    return;
-                }
-                
-                final IProjectFacet f = ProjectFacetsManager.getProjectFacet( fid );
-                
-                if( ! f.hasVersion( fver ) )
-                {
-                    final String msg
-                        = Resources.bind( Resources.presetUsesUnknownFacetVersion, id, pluginId,
-                                          fid, fver );
-                    
-                    logError( msg );
-                    
-                    return;
-                }
-                
-                final IProjectFacetVersion fv = f.getVersion( fver );
-                
-                facets.add( fv );
-            }
-        }
-        
-        final StaticPreset preset 
-            = new StaticPreset( id, pluginId, label, description, basePreset, facets );
-        
-        presets.add( id, preset );
-    }
-
-    private static void readDynamicPreset( final IConfigurationElement el )
-    
-        throws InvalidExtensionException
-        
-    {
-        final String pluginId = el.getContributor().getName();
-        final String id = findRequiredAttribute( el, ATTR_ID );
-        final IConfigurationElement elFactory = findRequiredElement( el, EL_FACTORY );
-        final String factoryClassName = findRequiredAttribute( elFactory, ATTR_CLASS );
-        
-        final DynamicPreset preset = new DynamicPreset( id, pluginId, factoryClassName );
-        presets.add( id, preset );
-    }
-    
-    private static boolean resolveBasePreset( final IPreset preset,
-                                              final Set<IPreset> visitedPresets )
-    {
-        if( preset.getType() == IPreset.Type.STATIC )
-        {
-            final StaticPreset stPreset = (StaticPreset) preset;
-            final String basePresetId = stPreset.getBasePresetId();
-            
-            if( basePresetId != null )
-            {
-                final IPreset basePreset = getPreset( basePresetId );
-                boolean problem = false;
-                
-                visitedPresets.add( preset );
-                
-                if( basePreset == null )
-                {
-                    final String msg
-                        = Resources.bind( Resources.basePresetNotFound, stPreset.getId(), 
-                                          stPreset.getPluginId(), basePresetId );
-                    
-                    logError( msg );
-                    
-                    problem = true;
-                }
-                else if( visitedPresets.contains( basePreset ) )
-                {
-                    final StringBuilder cycle = new StringBuilder();
-                    final int cycleSize = visitedPresets.size();
-                    int count = 0;
-                    
-                    for( IPreset vp : visitedPresets )
-                    {
-                        count++;
-                        
-                        if( count > 1 )
-                        {
-                            if( count == cycleSize )
-                            {
-                                cycle.append( " and " ); //$NON-NLS-1$
-                            }
-                            else
-                            {
-                                cycle.append( ", " ); //$NON-NLS-1$
-                            }
-                        }
-                        
-                        cycle.append( '"' );
-                        cycle.append( vp.getId() );
-                        cycle.append( '"' );
-                    }
-                    
-                    final String msg = Resources.bind( Resources.cycleDetected, cycle.toString() );
-                    
-                    logError( msg );
-                    
-                    problem = true;
-                }
-                else if( ! resolveBasePreset( basePreset, visitedPresets ) )
-                {
-                    problem = true;
-                }
-
-                if( problem )
-                {
-                    PresetsExtensionPoint.presets.delete( preset.getId() );
-                    return false;
-                }
-            }
-        }
-        
-        return true;
-    }
-    
-    private static class StaticPreset
-    
-        implements IPreset
-        
-    {
-        private final String id;
-        private final String pluginId;
-        private final String label;
-        private final String description;
-        private final String basePresetId;
-        private final Set<IProjectFacet> facets;
-        private final Set<IProjectFacetVersion> facetVersions;
-        private final Set<IProjectFacetVersion> facetVersionsReadOnly;
-        
-        public StaticPreset( final String id,
-                             final String pluginId,
-                             final String label,
-                             final String description,
-                             final String basePreset,
-                             final Set<IProjectFacetVersion> facets )
-        {
-            this.id = id;
-            this.pluginId = pluginId;
-            this.label = label;
-            this.description = description;
-            this.basePresetId = basePreset;
-            this.facetVersions = facets;
-            this.facetVersionsReadOnly = Collections.unmodifiableSet( this.facetVersions );
-            
-            this.facets = new HashSet<IProjectFacet>( this.facetVersions.size() );
-            
-            for( IProjectFacetVersion fv : this.facetVersions )
-            {
-                this.facets.add( fv.getProjectFacet() );
-            }
-        }
-        
-        public final String getId()
-        {
-            return this.id;
-        }
-        
-        public final String getPluginId()
-        {
-            return this.pluginId;
-        }
-
-        public Type getType()
-        {
-            return Type.STATIC;
-        }
-        
-        public final String getLabel()
-        {
-            return this.label;
-        }
-
-        public final String getDescription()
-        {
-            return this.description;
-        }
-        
-        public final String getBasePresetId()
-        {
-            return this.basePresetId;
-        }
-
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            if( this.basePresetId == null )
-            {
-                return this.facetVersionsReadOnly;
-            }
-            else
-            {
-                final IPreset basePreset = getPreset( this.basePresetId );
-                return createCombinedFacetSet( basePreset );
-            }
-        }
-
-        public final boolean isUserDefined()
-        {
-            return false;
-        }
-        
-        public final String toString()
-        {
-            return this.id;
-        }
-        
-        protected final Set<IProjectFacetVersion> createCombinedFacetSet( final IPreset basePreset )
-        {
-            final Set<IProjectFacetVersion> result 
-                = new HashSet<IProjectFacetVersion>( this.facetVersions );
-            
-            for( IProjectFacetVersion fv : basePreset.getProjectFacets() )
-            {
-                if( ! this.facets.contains( fv.getProjectFacet() ) )
-                {
-                    result.add( fv );
-                }
-            }
-            
-            return Collections.unmodifiableSet( result );
-        }
-    }
-    
-    private static final class StaticExtendingDynamicPreset
-    
-        extends StaticPreset
-        implements IDynamicPreset
-        
-    {
-        public StaticExtendingDynamicPreset( final String id,
-                                             final String pluginId,
-                                             final String label,
-                                             final String description,
-                                             final String basePresetId,
-                                             final Set<IProjectFacetVersion> facets )
-        {
-            super( id, pluginId, label, description, basePresetId, facets );
-        }
-        
-        @Override
-        public Type getType()
-        {
-            return Type.DYNAMIC;
-        }
-        
-        @Override
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            return Collections.emptySet();
-        }
-
-        public IPreset resolve( final Map<String,Object> context )
-        {
-            final IDynamicPreset basePreset = (IDynamicPreset) getPreset( getBasePresetId() );
-            final IPreset resBasePreset = basePreset.resolve( context );
-            
-            if( resBasePreset == null )
-            {
-                return null;
-            }
-            else
-            {
-                final Set<IProjectFacetVersion> facets = createCombinedFacetSet( resBasePreset );
-                
-                return new StaticPreset( getId(), getPluginId(), getLabel(), getDescription(), 
-                                         getBasePresetId(), facets );
-            }
-        }
-    }
-    
-    private static final class DynamicPreset
-    
-        implements IDynamicPreset
-        
-    {
-        private final String id;
-        private final String pluginId;
-        private final String factoryClassName;
-        
-        public DynamicPreset( final String id,
-                              final String pluginId,
-                              final String factoryClassName )
-        {
-            this.id = id;
-            this.pluginId = pluginId;
-            this.factoryClassName = factoryClassName;
-        }
-
-        public String getId()
-        {
-            return this.id;
-        }
-        
-        public Type getType()
-        {
-            return Type.DYNAMIC;
-        }
-
-        public String getLabel()
-        {
-            return this.id;
-        }
-
-        public String getDescription()
-        {
-            return ""; //$NON-NLS-1$
-        }
-
-        public Set<IProjectFacetVersion> getProjectFacets()
-        {
-            return Collections.emptySet();
-        }
-
-        public boolean isUserDefined()
-        {
-            return false;
-        }
-        
-        public IPreset resolve( final Map<String,Object> context )
-        {
-            IPresetFactory factory = null;
-            
-            try
-            {
-                factory = instantiate( this.pluginId, this.factoryClassName, IPresetFactory.class );
-            }
-            catch( CoreException e )
-            {
-                log( e.getStatus() );
-            }
-            
-            if( factory != null )
-            {
-                PresetDefinition def = null;
-                
-                try
-                {
-                    def = factory.createPreset( this.id, context );
-                }
-                catch( CoreException e )
-                {
-                    final String msg 
-                        = Resources.bind( Resources.failedWhileInvokingPresetFactory, 
-                                          this.pluginId );
-                    
-                    log( createErrorStatus( msg, e ) );
-                }
-                
-                if( def != null )
-                {
-                    final StaticPreset staticPreset
-                        = new StaticPreset( this.id, this.pluginId, def.getLabel(), 
-                                            def.getDescription(), null, def.getProjectFacets() );
-                    
-                    return staticPreset;
-                }
-            }
-            
-            return null;
-        }
-        
-        public String toString()
-        {
-            return this.id;
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String presetUsesUnknownFacet;
-        public static String presetUsesUnknownFacetVersion;
-        public static String basePresetNotFound;
-        public static String cycleDetected;
-        public static String failedWhileInvokingPresetFactory;
-        
-        static
-        {
-            initializeMessages( PresetsExtensionPoint.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/PresetsExtensionPoint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.properties
deleted file mode 100644
index c4ef67e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/PresetsExtensionPoint.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-presetUsesUnknownFacet = Preset {0} in plugin {1} uses unknown facet "{2}".
-presetUsesUnknownFacetVersion = Preset {0} in plugin {1} uses unknown version "{3}" of facet "{2}".
-basePresetNotFound = Preset {0} in plugin {1} specifies base preset "{2}" which does not exist.
-cycleDetected = Cycle detected among these presets: {0}
-failedWhileInvokingPresetFactory = Failed while invoking preset factory "{0}".
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 db2b11d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-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.internal.util.Versionable;
-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<IProjectFacetVersion>
-    implements IProjectFacet 
-    
-{
-    private String id;
-    private String plugin;
-    private String label;
-    private String description;
-    private ICategory category;
-    private final List<IActionDefinition> actionDefinitions;
-    private IProjectFacetVersion defaultVersion;
-    private IDefaultVersionProvider defaultVersionProvider;
-    
-    ProjectFacet() 
-    {
-        this.actionDefinitions = new ArrayList<IActionDefinition>();
-    }
-    
-    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;
-    }
-    
-    void addVersion( final IProjectFacetVersion ver )
-    {
-        this.versions.add( ver.getVersionString(), ver );
-    }
-    
-    public IProjectFacetVersion getLatestSupportedVersion( final IRuntime r )
-    {
-        for( IProjectFacetVersion fv : getSortedVersions( false ) )
-        {
-            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 )
-            {
-                defver = getLatestVersion();
-            }
-            
-            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;
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( FacetedProjectFrameworkImpl.Resources.facetVersionNotDefined,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-    
-    Set<IActionDefinition> getActionDefinitions( final IProjectFacetVersion fv )
-    {
-        final Set<IActionDefinition> result = new HashSet<IActionDefinition>();
-        
-        for( IActionDefinition def : this.actionDefinitions )
-        {
-            if( def.getVersionExpr().check( fv ) )
-            {
-                result.add( def );
-            }
-        }
-        
-        return result;
-    }
-    
-    void addActionDefinition( final ActionDefinition actionDefinition )
-    {
-        this.actionDefinitions.add( actionDefinition );
-    }
-    
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        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 bbf4250..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.properties
+++ /dev/null
@@ -1 +0,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 38c8856..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetRef.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-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.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.util.VersionExpr;
-
-/**
- * @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<IProjectFacetVersion> vexpr;
-    
-    @SuppressWarnings( "unchecked" )
-    public ProjectFacetRef( final IProjectFacet f,
-                            final IVersionExpr vexpr )
-    {
-        this( f, (VersionExpr<IProjectFacetVersion>) vexpr );
-    }
-
-    public ProjectFacetRef( final IProjectFacet f,
-                            final VersionExpr<IProjectFacetVersion> vexpr )
-    {
-        this.f = f;
-        this.vexpr = vexpr;
-    }
-    
-    public boolean check( final Set<IProjectFacetVersion> facets )
-    
-        throws CoreException
-        
-    {
-        for( IProjectFacetVersion fv : facets )
-        {
-            if( this.f == fv.getProjectFacet() )
-            {
-                if( this.vexpr != null )
-                {
-                    return this.vexpr.check( fv );
-                }
-                else
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-    
-    public static ProjectFacetRef read( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( ATTR_ID );
-
-        if( id == null )
-        {
-            FacetedProjectFrameworkImpl.reportMissingAttribute( config, ATTR_ID );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            FacetedProjectFrameworkImpl.reportMissingFacet( id, config.getContributor().getName() );
-            return null;
-        }
-        
-        final IProjectFacet f = ProjectFacetsManager.getProjectFacet( id );
-        
-        final String v = config.getAttribute( ATTR_VERSION );
-        VersionExpr<ProjectFacetVersion> vexpr = null;
-        
-        if( v != null )
-        {
-            try
-            {
-                final String pluginId = config.getContributor().getName();
-                vexpr = new VersionExpr<ProjectFacetVersion>( f, v, pluginId );
-            }
-            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 0838166..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
+++ /dev/null
@@ -1,543 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Map;
-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.IVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.util.UnknownVersion;
-import org.eclipse.wst.common.project.facet.core.internal.util.Versionable;
-
-/**
- * The implementation of the <code>IProjectFacetVersion</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetVersion 
-
-    implements IProjectFacetVersion
-    
-{
-    private ProjectFacet facet;
-    private String version;
-    private IConstraint constraint;
-    private String plugin;
-    private Map<IProjectFacetVersion,Integer> compTable = null;
-    
-    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<IProjectFacetVersion> 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;
-    }
-    
-    void setComparisonTable( final Map<IProjectFacetVersion,Integer> compTable )
-    {
-        this.compTable = compTable;
-    }
-    
-    public boolean supports( final Set<IProjectFacetVersion> 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<IActionDefinition> getActionDefinitions()
-    {
-        return this.facet.getActionDefinitions( this );
-    }
-    
-    public Set<IActionDefinition> getActionDefinitions( final Action.Type type )
-    {
-        final Set<IActionDefinition> result = new HashSet<IActionDefinition>();
-        
-        for( IActionDefinition def : getActionDefinitions() )
-        {
-            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<IProjectFacetVersion> 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<IProjectFacetVersion> base,
-                                                           final Action.Type type )
-    
-        throws CoreException
-        
-    {
-        final Set<IActionDefinition> definitions = getActionDefinitions( type );
-        
-        if( definitions.size() > 0 )
-        {
-            if( type == Action.Type.VERSION_CHANGE )
-            {
-                IProjectFacetVersion fromVersion = null;
-                
-                for( IProjectFacetVersion x : base )
-                {
-                    if( x.getProjectFacet() == this.facet )
-                    {
-                        fromVersion = x;
-                        break;
-                    }
-                }
-                
-                if( fromVersion != null )
-                {
-                    for( IActionDefinition def : definitions )
-                    {
-                        final IVersionExpr vexpr 
-                            = (IVersionExpr) def.getProperty( IActionDefinition.PROP_FROM_VERSIONS );
-                        
-                        if( vexpr == null || vexpr.check( fromVersion ) )
-                        {
-                            return def;
-                        }
-                    }
-                }
-            }
-            else
-            {
-                return definitions.iterator().next();
-            }
-        }
-
-        return null;
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    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<IProjectFacet> fixed )
-    {
-        for( IProjectFacet f : fixed )
-        {
-            if( this.facet == f )
-            {
-                return true;
-            }
-        }
-        
-        for( IProjectFacet f : fixed )
-        {
-            boolean conflictsWithAllVersions = true;
-
-            for( IProjectFacetVersion fv : f.getVersions() )
-            {
-                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( Object operand : op.getOperands() )
-            {
-                if( conflictsWith( fv, (IConstraint) operand ) )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-        else if( op.getType() == IConstraint.Type.OR )
-        {
-            boolean allBranchesConflict = true;
-            
-            for( Object operand : op.getOperands() )
-            {
-                if( ! conflictsWith( fv, (IConstraint) operand ) )
-                {
-                    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 IVersionExpr vexpr = (IVersionExpr) op.getOperand( 1 );
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    if( vexpr.check( fv ) )
-                    {
-                        return true;
-                    }
-                }
-                
-                return false;
-            }
-        }
-        else if( op.getType() == IConstraint.Type.REQUIRES )
-        {
-            final Boolean soft
-                = (Boolean) op.getOperand( op.getOperands().size() - 1 );
-        
-            if( soft.equals( Boolean.TRUE ) )
-            {
-                return false;
-            }
-            else
-            {
-                final Object firstOperand = op.getOperand( 0 );
-                boolean conflictsWithAll = true;
-                
-                if( firstOperand instanceof IGroup )
-                {
-                    final IGroup group = (IGroup) firstOperand;
-                    
-                    for( IProjectFacetVersion member : group.getMembers() )
-                    {
-                        if( ! member.conflictsWith( fv ) )
-                        {
-                            conflictsWithAll = false;
-                            break;
-                        }
-                    }
-                }
-                else
-                {
-                    final IProjectFacet rf = (IProjectFacet) firstOperand;
-                    final IVersionExpr vexpr = (IVersionExpr) op.getOperand( 1 );
-                    
-                    try
-                    {
-                        final String vexprstr = vexpr.toString();
-                        
-                        for( IProjectFacetVersion rfv : rf.getVersions( vexprstr ) )
-                        {
-                            if( ! rfv.conflictsWith( fv ) )
-                            {
-                                conflictsWithAll = false;
-                                break;
-                            }
-                        }
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                        return false;
-                    }
-                }
-                
-                return conflictsWithAll;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public int compareTo( final Object obj )
-    {
-        if( obj == this )
-        {
-            return 0;
-        }
-        else if( obj instanceof IProjectFacetVersion )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) obj;
-            
-            if( fv.getProjectFacet() != this.facet )
-            {
-                final String msg
-                    = Resources.bind( Resources.cannotCompareVersionsOfDifferentFacets,
-                                      this.facet.getId(), this.version,
-                                      fv.getProjectFacet().getId(), 
-                                      fv.getVersionString() );
-                
-                throw new RuntimeException( msg );
-            }
-            
-            return this.compTable.get( fv ).intValue();
-        }
-        else if( obj instanceof UnknownVersion )
-        {
-            try
-            {
-                final Comparator<String> comp = this.facet.getVersionComparator();
-                return comp.compare( this.version, ( (IVersion) obj ).getVersionString() );
-            }
-            catch( CoreException e )
-            {
-                throw new RuntimeException( e );
-            }
-        }
-        else
-        {
-            throw new IllegalArgumentException();
-        }
-    }
-    
-    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;
-        public static String cannotCompareVersionsOfDifferentFacets;
-        
-        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 } );
-        }
-
-        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/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 fe7b2b9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
+++ /dev/null
@@ -1,6 +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}.
-
-cannotCompareVersionsOfDifferentFacets = \
-  Cannot compare versions of different facets to each other. Attempted to \
-  compare version {1} of facet {0} with version {3} of facet {2}. 
\ 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/UserPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
deleted file mode 100644
index b6cfd71..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 that's used for user-defined presets.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class UserPreset
-
-    implements IPreset
-    
-{
-    private final String id;
-    private final String label;
-    private final String description;
-    private final Set<IProjectFacetVersion> facets;
-    
-    public UserPreset( final String id,
-                       final String label,
-                       final String description,
-                       final Set<IProjectFacetVersion> facets ) 
-    {
-        this.id = id;
-        this.label = label;
-        this.description = description;
-        this.facets = Collections.unmodifiableSet( new HashSet<IProjectFacetVersion>( facets ) );
-    }
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    public Type getType()
-    {
-        return Type.USER_DEFINED;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    public String getDescription()
-    {
-        return this.description;
-    }
-    
-    public Set<IProjectFacetVersion> getProjectFacets()
-    {
-        return this.facets;
-    }
-    
-    public boolean isUserDefined()
-    {
-        return false;
-    }
-    
-    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/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 287b8b6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 REQUIRES_GROUP
-            = new Type( Resources.requiresGroup );
-
-        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 requiresGroup;
-        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 1211000..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-requires = {0} requires {1}.
-requiresOneOfTwo = {0} requires {1} or {2}.
-requiresGroup = {0} requires any member of {1}.
-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/util/FileUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/FileUtil.java
deleted file mode 100644
index 6d83496..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/FileUtil.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-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.core.runtime.IStatus;
-
-/**
- * Contains utility functions for dealing with files.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FileUtil
-{
-    public static final String FILE_DOT_PROJECT = ".project"; //$NON-NLS-1$
-    
-    public static void validateEdit( final IFile... files )
-    
-        throws CoreException
-        
-    {
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IStatus st = ws.validateEdit( files, IWorkspace.VALIDATE_PROMPT );
-        
-        if( st.getSeverity() == IStatus.ERROR )
-        {
-            throw new CoreException( st );
-        }
-    }
-
-    private FileUtil() {}
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/IndexedSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/IndexedSet.java
deleted file mode 100644
index 667ca60..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/IndexedSet.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class IndexedSet<K,V>
-
-    extends HashSet<V>
-    
-{
-    private static final long serialVersionUID = 1L;
-    private final Set<V> unmodifiable;
-    private final Map<K,V> index;
-    
-    public IndexedSet()
-    {
-        this.unmodifiable = Collections.unmodifiableSet( this );
-        this.index = new HashMap<K,V>();
-    }
-    
-    public void add( final K key,
-                     final V value )
-    {
-        remove( this.index.get( key ) );
-        add( value );
-        this.index.put( key, value );
-    }
-    
-    public boolean delete( final K key )
-    {
-        final Object value = this.index.get( key );
-        
-        if( value == null )
-        {
-            return false;
-        }
-        else
-        {
-            remove( value );
-            this.index.remove( key );
-            return true;
-        }
-    }
-    
-    public V get( final K key )
-    {
-        return this.index.get( key );
-    }
-    
-    public boolean containsKey( final K key )
-    {
-        return this.index.containsKey( key );
-    }
-    
-    public Set<V> 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/util/ObjectReference.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/ObjectReference.java
deleted file mode 100644
index ccf5aad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/ObjectReference.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ObjectReference<T>
-{
-    private T object;
-    
-    public ObjectReference()
-    {
-        this.object = null;
-    }
-    
-    public ObjectReference( final T object )
-    {
-        this.object = object;
-    }
-    
-    public T get()
-    {
-        return this.object;
-    }
-    
-    public void set( final T object )
-    {
-        this.object = object;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/PluginUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/PluginUtil.java
deleted file mode 100644
index ad831de..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/PluginUtil.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-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.internal.FacetCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Utility methods that are helpful for implementing extension points.
- *
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PluginUtil
-{
-    public static final class InvalidExtensionException
-
-        extends Exception
-    
-    {
-        private static final long serialVersionUID = 1L;
-    }
-    
-	private PluginUtil() {}
-    
-    public static Collection<IExtension> findExtensions( final String pluginId,
-                                                         final String extensionPointId )
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        final IExtensionPoint point = registry.getExtensionPoint( pluginId, extensionPointId );
-        
-        if( point == null )
-        {
-            throw new RuntimeException();
-        }
-        
-        final List<IExtension> extensions = new ArrayList<IExtension>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            extensions.add( extension );
-        }
-        
-        return extensions;
-    }
-    
-    public static Collection<IConfigurationElement> getTopLevelElements( final Collection<IExtension> extensions )
-    {
-        final List<IConfigurationElement> elements = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : extensions )
-        {
-            for( IConfigurationElement element : extension.getConfigurationElements() )
-            {
-                elements.add( element );
-            }
-        }
-        
-        return elements;
-    }
-
-    public static void reportMissingAttribute( final IConfigurationElement el,
-                                               final String attribute )
-    {
-        final String pluginId = el.getContributor().getName();
-        final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-        
-        final String msg
-            = Resources.bind( Resources.missingAttribute, pluginId, extPointId, el.getName(), 
-                              attribute );
-
-        FacetCorePlugin.log( msg );
-    }
-
-    public static void reportMissingElement( final IConfigurationElement el,
-                                             final String element )
-    {
-        final String pluginId = el.getContributor().getName();
-        final String extPointId = el.getDeclaringExtension().getExtensionPointUniqueIdentifier();
-        
-        final String msg
-            = Resources.bind( Resources.missingElement, pluginId, extPointId, el.getName(), 
-                              element );
-
-        FacetCorePlugin.log( msg );
-    }
-
-    public static String findRequiredAttribute( final IConfigurationElement el,
-                                                final String attribute )
-
-        throws InvalidExtensionException
-
-    {
-        final String val = el.getAttribute( attribute );
-
-        if( val == null )
-        {
-            reportMissingAttribute( el, attribute );
-            throw new InvalidExtensionException();
-        }
-
-        return val;
-    }
-
-    public static IConfigurationElement findRequiredElement( final IConfigurationElement el,
-                                                             final String childElement )
-
-        throws InvalidExtensionException
-
-    {
-        final IConfigurationElement[] children = el.getChildren( childElement );
-
-        if( children.length == 0 )
-        {
-            reportMissingElement( el, childElement );
-            throw new InvalidExtensionException();
-        }
-
-        return children[ 0 ];
-    }
-
-    public static IConfigurationElement findOptionalElement( final IConfigurationElement el,
-                                                             final String childElement )
-    {
-        final IConfigurationElement[] children = el.getChildren( childElement );
-
-        if( children.length == 0 )
-        {
-            return null;
-        }
-        else
-        {
-            return children[ 0 ];
-        }
-    }
-    
-    public static String getElementValue( final IConfigurationElement el,
-                                          final String defaultValue )
-    {
-        if( el != null )
-        {
-            String text = el.getValue();
-            
-            if( text != null )
-            {
-                text = text.trim();
-                
-                if( text.length() > 0 )
-                {
-                    return text;
-                }
-            }
-        }
-        
-        return defaultValue;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public static <T> T instantiate( final String pluginId,
-                                     final String clname,
-                                     final Class<T> 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( FacetCorePlugin.createErrorStatus( msg, e ) );
-        }
-        
-        if( ! interfc.isAssignableFrom( obj.getClass() ) )
-        {
-            final String msg
-                = NLS.bind( Resources.doesNotImplement, clname, interfc.getClass().getName() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        return (T) obj;
-    }
-    
-    private static final class Resources
-
-        extends NLS
-    
-    {
-        public static String missingAttribute;
-        public static String missingElement;
-        public static String failedToCreate;
-        public static String doesNotImplement;
-    
-        static
-        {
-            initializeMessages( PluginUtil.class.getName(), Resources.class );
-        }
-        
-        public static String bind( final String message,
-                                   final String arg1,
-                                   final String arg2,
-                                   final String arg3,
-                                   final String arg4 )
-        {
-            return bind( message, 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/util/PluginUtil.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/PluginUtil.properties
deleted file mode 100644
index 2473490..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/PluginUtil.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-missingAttribute = Extension element <{2}> is missing required attribute "{3}". [plugin: "{0}"; extension point: "{1}"]
-missingElement = Extension element <{2}> is missing required child element <{3}>. [plugin: "{0}"; extension point: "{1}"]
-failedToCreate = Failed to instantiate class {0}.
-doesNotImplement = Class {0} does not implement {1} interface.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/ProgressMonitorUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/ProgressMonitorUtil.java
deleted file mode 100644
index c2a4df0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/ProgressMonitorUtil.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.SubProgressMonitor;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProgressMonitorUtil 
-{
-    private ProgressMonitorUtil() {}
-    
-    public static void beginTask( final IProgressMonitor monitor,
-                                  final String taskName,
-                                  final int totalWork )
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( taskName, totalWork );
-        }
-    }
-    
-    public static void worked( final IProgressMonitor monitor,
-                               final int work )
-    {
-        if( monitor != null )
-        {
-            monitor.worked( work );
-        }
-    }
-    
-    public static void done( final IProgressMonitor monitor )
-    {
-        if( monitor != null )
-        {
-            monitor.done();
-        }
-    }
-    
-    public static IProgressMonitor submon( final IProgressMonitor parent,
-                                           final int ticks )
-    {
-        return ( parent == null ? null : new SubProgressMonitor( parent, ticks ) );
-    }
-    
-    public static void subTask( final IProgressMonitor monitor,
-                                final String taskName )
-    {
-        if( monitor != null )
-        {
-            monitor.subTask( taskName );
-        }
-    }
-    
-    public static void checkIfCanceled( final IProgressMonitor monitor )
-    
-        throws InterruptedException
-        
-    {
-        if( monitor != null && monitor.isCanceled() )
-        {
-            throw new InterruptedException();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/UnknownVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/UnknownVersion.java
deleted file mode 100644
index 09e7f51..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/UnknownVersion.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class UnknownVersion<T extends IVersion>
-
-    implements IVersion
-    
-{
-    private final Versionable<T> versionable;
-    private final String versionString;
-    
-    public UnknownVersion( final Versionable<T> versionable,
-                           final String versionString )
-    {
-        this.versionable = versionable;
-        this.versionString = versionString;
-    }
-    
-    public String getVersionString()
-    {
-        return this.versionString;
-    }
-
-    public int compareTo( final Object obj )
-    {
-        try
-        {
-            final Comparator<String> comp = this.versionable.getVersionComparator();
-            return comp.compare( this.versionString, ( (IVersion) obj  ).getVersionString() );
-        }
-        catch( CoreException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/VersionExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/VersionExpr.java
deleted file mode 100644
index 751c224..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/VersionExpr.java
+++ /dev/null
@@ -1,669 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import java.util.ArrayList;
-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.IVersion;
-import org.eclipse.wst.common.project.facet.core.IVersionExpr;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class VersionExpr<T extends IVersion>
-
-    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<T> versionable;
-    private final List<ISubExpr> subexprs;
-    private final String usedInPlugin;
-    
-    @SuppressWarnings( "unchecked" )
-    public VersionExpr( final Object versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this( (Versionable<T>) versionable, expr, usedInPlugin );
-    }
-    
-    public VersionExpr( final Versionable<T> versionable,
-                        final String expr,
-                        final String usedInPlugin )
-    
-        throws CoreException
-        
-    {
-        this.versionable = versionable;
-        this.subexprs = new ArrayList<ISubExpr>();
-        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 IVersion parseVersion( final String str )
-    {
-        if( this.versionable.hasVersion( str ) )
-        {
-            return this.versionable.getVersion( str );
-        }
-        else
-        {
-            return new UnknownVersion<T>( this.versionable, str );
-        }
-    }
-    
-    public boolean check( final IVersion ver )
-    {
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( subexpr.evaluate( ver ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean evaluate( final String ver )
-    {
-        return check( parseVersion( ver ) );
-    }
-    
-    public boolean isSingleVersionMatch()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = this.subexprs.get( 0 );
-            
-            if( subExpr instanceof Range )
-            {
-                final Range range = (Range) subExpr;
-                
-                if( range.startVersion.equals( range.endVersion ) &&
-                    range.includesStartVersion == range.includesEndVersion == true )
-                {
-                    return true;
-                }
-            }
-        }
-        
-        return false;
-    }
-
-    public boolean isSimpleAllowNewer()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subExpr = 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.getVersionString();
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-    
-    public String toString()
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( buf.length() > 0 ) buf.append( ',' );
-            buf.append( subexpr.toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    public String toDisplayString()
-    {
-        if( this.subexprs.size() == 1 )
-        {
-            final ISubExpr subexpr = this.subexprs.get( 0 );
-            
-            if( subexpr instanceof Range )
-            {
-                final Range r = (Range) subexpr;
-                
-                if( r.isSingleVersion() )
-                {
-                    return r.startVersion.getVersionString();
-                }
-                else if( r.endVersion == null && r.includesStartVersion )
-                {
-                    return NLS.bind( Resources.versionOrNewer, 
-                                     r.startVersion.getVersionString() );
-                }
-            }
-        }
-
-        boolean onlySingleVersions = true;
-        
-        for( ISubExpr subexpr : this.subexprs )
-        {
-            if( ! ( subexpr instanceof Range ) || 
-                ! ( (Range) subexpr ).isSingleVersion() )
-            {
-                onlySingleVersions = false;
-                break;
-            }
-        }
-        
-        if( onlySingleVersions )
-        {
-            final StringBuffer buf = new StringBuffer();
-
-            for( Iterator<ISubExpr> 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.getVersionString() );
-            }
-            
-            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( IVersion version );
-    }
-    
-    private static final class Range
-    
-        implements ISubExpr
-        
-    {
-        public IVersion startVersion = null;
-        public boolean includesStartVersion = false;
-        public IVersion endVersion = null;
-        public boolean includesEndVersion = false;
-        
-        public boolean isSingleVersion()
-        {
-            return this.startVersion.equals( this.endVersion ) &&
-                   this.includesStartVersion == this.includesEndVersion == true;
-        }
-        
-        @SuppressWarnings( "unchecked" )
-        public boolean evaluate( final IVersion version )
-        {
-            if( this.startVersion != null )
-            {
-                final int res = version.compareTo( this.startVersion );
-                
-                if( ! ( res > 0 || ( res == 0 && this.includesStartVersion ) ) )
-                {
-                    return false;
-                }
-            }
-            
-            if( this.endVersion != null )
-            {
-                final int res = version.compareTo( 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.getVersionString();
-            }
-            else
-            {
-                final StringBuffer buf = new StringBuffer();
-                
-                if( this.startVersion != null )
-                {
-                    buf.append( this.includesStartVersion ? '[' : '(' );
-                    buf.append( this.startVersion.getVersionString() );
-                }
-                
-                if( this.endVersion != null )
-                {
-                    if( buf.length() != 0 )
-                    {
-                        buf.append( '-' );
-                    }
-                    
-                    buf.append( this.endVersion.getVersionString() );
-                    buf.append( this.includesEndVersion ? ']' : ')' );
-                }
-                
-                return buf.toString();
-            }
-        }
-    }
-    
-    private static final class Wildcard
-    
-        implements ISubExpr
-        
-    {
-        public boolean evaluate( final IVersion 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/util/VersionExpr.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/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/util/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/util/Versionable.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/Versionable.java
deleted file mode 100644
index 79ca337..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/Versionable.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-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.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class Versionable<T extends IVersion>
-{
-    private static final Comparator<String> DEFAULT_VERSION_COMPARATOR
-        = new DefaultVersionComparator();
-
-    protected final IndexedSet<String,T> versions;
-    private String versionComparatorClass;
-    private Comparator<String> versionComparator;
-    
-    public Versionable()
-    {
-        this.versions = new IndexedSet<String,T>();
-    }
-    
-    public abstract String getPluginId();
-    
-    public Set<T> getVersions()
-    {
-        return this.versions.getUnmodifiable();
-    }
-    
-    public Set<T> getVersions( final String expr )
-    
-        throws CoreException
-        
-    {
-        final VersionExpr<T> prepared = new VersionExpr<T>( this, expr, null );
-        final Set<T> result = new HashSet<T>();
-         
-        for( T ver : this.versions )
-        {
-            if( prepared.check( ver ) )
-            {
-                result.add( ver );
-            }
-        }
-        
-        return result;
-    }
-    
-    public T getVersion( final String version )
-    {
-        final T ver = this.versions.get( version );
-        
-        if( ver == null )
-        {
-            throw new IllegalArgumentException( createVersionNotFoundErrMsg( version ) );
-        }
-        
-        return ver;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public T getLatestVersion()
-    {
-        if( this.versions.size() > 0 )
-        {
-            return Collections.max( this.versions );
-        }
-        else
-        {
-            return null;
-        }
-    }
-    
-    public boolean hasVersion( final String version )
-    {
-        return this.versions.containsKey( version );
-    }
-
-    public List<T> getSortedVersions( final boolean ascending )
-    {
-        Comparator<T> comp;
-        
-        if( ascending )
-        {
-            comp = null;
-        }
-        else
-        {
-            comp = new Comparator<T>()
-            {
-                @SuppressWarnings( "unchecked" )
-                public int compare( final T ver1,
-                                    final T ver2 )
-                {
-                    return ver1.compareTo( ver2 ) * -1;
-                }
-            };
-        }
-
-        final List<T> list = new ArrayList<T>( this.versions );
-        Collections.sort( list, comp );
-        
-        return list;
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public Comparator<String> getVersionComparator()
-    
-        throws CoreException
-        
-    {
-        Comparator<String> 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<String>) 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;
-        }
-        
-        return comp;
-    }
-    
-    public void setVersionComparator( final String clname )
-    {
-        this.versionComparatorClass = clname;
-    }
-    
-    public abstract String createVersionNotFoundErrMsg( String verstr );
-    
-    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/util/Versionable.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/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/util/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/internal/util/XmlUtil.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/XmlUtil.java
deleted file mode 100644
index f7fb853..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/util/XmlUtil.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal.util;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class XmlUtil
-{
-    private XmlUtil() {}
-    
-    public static String escape( final String string )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        for( int i = 0, n = string.length(); i < n; i++ )
-        {
-            final char ch = string.charAt( i );
-            
-            if( ch == '<' )
-            {
-                buf.append( "&lt;" ); //$NON-NLS-1$
-            }
-            else if( ch == '>' )
-            {
-                buf.append( "&gt;" ); //$NON-NLS-1$
-            }
-            else if( ch == '&' )
-            {
-                buf.append( "&amp;" ); //$NON-NLS-1$
-            }
-            else
-            {
-                buf.append( ch );
-            }
-        }
-        
-        return buf.toString();
-    }
-
-}
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 87f4446..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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>This interface is not intended to be implemented outside of this framework. Client code can 
- * get access to <code>IRuntime</code> objects by using methods on the {@see RuntimeManager} 
- * class.</p>  
- * 
- * @see RuntimeManager.getRuntimes()
- * @see RuntimeManager.getRuntime(String)
- * @see RuntiemManager.isRuntimeDefined(String)
- * @see RuntimeManager.defineRuntime(String,List<IRuntimeComponent>,Map<String,String>)
- * @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 localized name of this runtime. If not specified, this will default to the name
-     * of the runtime as returned by the {@see getName()} method. 
-     * 
-     * <p>The localized name should be used in all communications with the user while all metadata 
-     * references to the runtime should use the unlocalized name. Note that there is an inherent 
-     * danger in this. If a runtime is deleted or renamed, existing projects that use that runtime 
-     * might become invalid. In that case the system will need to communicate that problem to the 
-     * user using the unlocalized name for the runtime. Since the user is never exposed to runtime's 
-     * unlocalized name, the user can have trouble understanding and correcting the problem. A
-     * similar situation can arise when a project is imported into another user's workspace.</p>
-     * 
-     * <p>To mitigate the above risks, the name localization feature is expected to be used 
-     * sparingly and only in contexts where the runtime provider can take steps to guarantee that
-     * the above situation is not likely to occurr. One scenario where name localization is
-     * acceptable is when a runtime is auto-created and the user is not given ability to delete or
-     * rename it.</p>
-     * 
-     * @return the localized name of this runtime
-     */
-    
-    String getLocalizedName();
-    
-    /**
-     * 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
-     */
-    
-    List<IRuntimeComponent> 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
-     */
-    
-    Map<String,String> 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
-     * @return the default facets
-     * @throws CoreException if failed for any reason
-     */
-    
-    Set<IProjectFacetVersion> getDefaultFacets( final Set<IProjectFacet> 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 96811c4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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
-     * @throws CoreException if failed while bridging
-     */
-    
-    Set<String> 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
-         */
-        
-        List<IRuntimeComponent> 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<String,String> 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 82c903c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 instance is 
- * composed of multiple runtime components.
- * 
- * <p>This interface is not intended to be implemented outside of this framework. Client code can 
- * get access to <code>IRuntimeComponent</code> objects by using methods on the 
- * {@see IRuntime} and {@see RuntimeManager} classes.</p>  
- * 
- * @see IRuntime.getRuntimeComponents()
- * @see RuntimeManager.createRuntimeComponent(IRuntimeComponentVersion,Map<String,String>) 
- * @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 runtime that this component belongs to or <code>null</code> if this component
-     * has not yet been associated with a runtime.
-     * 
-     * @return the runtime that that this component belongs to
-     */
-    
-    IRuntime getRuntime();
-    
-    /**
-     * 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
-     */
-    
-    Map<String,String> 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 746a4f2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * 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>This interface is not intended to be implemented outside of this framework. Runtime component
- * types are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
- * extension point. Once declared, client code can get access to <code>IRuntimeComponentType</code> 
- * objects by using methods on the {@see RuntimeManager} class.</p>  
- *
- * @see RuntimeManager.getRuntimeComponentTypes()
- * @see RuntimeManager.getRuntimeComponentType(String)
- * @see RuntimeManager.isRuntimeComponentTypeDefined(String)
- * @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
-     */
-    
-    Set<IRuntimeComponentVersion> getVersions();
-    
-    Set<IRuntimeComponentVersion> 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
-     */
-    
-    List<IRuntimeComponentVersion> 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<String> 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 4dee74f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import org.eclipse.wst.common.project.facet.core.IVersion;
-
-/**
- * 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>This interface is not intended to be implemented outside of this framework. Runtime component
- * versions are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
- * extension point. Once declared, client code can get access to 
- * <code>IRuntimeComponentVersion</code> objects by using methods on the 
- * {@see IRuntimeComponentType} class.</p>  
- *
- * @see IRuntimeComponentType.getVersions()
- * @see IRuntimeComponentType.getVersions(String)
- * @see IRuntimeComponentType.getVersion(String)
- * @see IRuntimeComponentType.hasVersion(String)
- * @see IRuntimeComponentType.getLatestVersion()
- * @see IRuntimeComponentType.getSortedVersions(boolean)
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentVersion
-
-    extends Comparable, IVersion
-    
-{
-    /**
-     * 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 bbfc827..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeManagerImpl;
-
-/**
- * @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
-     */
-    
-    public static Set<IRuntimeComponentType> 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
-     */
-    
-    public static Set<IRuntime> getRuntimes()
-    {
-        return RuntimeManagerImpl.getRuntimes();
-    }
-    
-    /**
-     * Returns the runtimes that support all of the specified facets.
-     * 
-     * @param facets the facets that need to be supported
-     * @return the runtimes that support all of the specified facets
-     */
-    
-    public static Set<IRuntime> getRuntimes( final Set<IProjectFacetVersion> 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
-     * @param properties the runtime properties
-     * @return the new runtime
-     */
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List<IRuntimeComponent> components,
-                                          final Map<String,String> 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
-     * @return the new runtime component
-     */
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map<String,String> 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 1a1ef4f..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,198 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.HashMap;
-import java.util.HashSet;
-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 static final String PROP_LOCALIZED_NAME = "localized-name"; //$NON-NLS-1$
-    
-    private String name;
-    
-    /**
-     * This class should not be subclassed outside this package.
-     */
-    
-    AbstractRuntime() {}
-    
-    public final String getName()
-    {
-        return this.name;
-    }
-    
-    public final String getLocalizedName()
-    {
-        String localizedName = getProperty( PROP_LOCALIZED_NAME );
-        
-        if( localizedName == null )
-        {
-            localizedName = getName();
-        }
-        
-        return localizedName;
-    }
-    
-    final void setName( final String name )
-    {
-        this.name = name;
-    }
-
-    public final String getProperty( final String key )
-    {
-        return 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( IRuntimeComponent rc : getRuntimeComponents() )
-            {
-                res = rc.getAdapter( adapter );
-                
-                if( res != null )
-                {
-                    return res;
-                }
-            }
-        }
-        
-        return res;
-    }
-    
-    public boolean supports( final IProjectFacet f )
-    {
-        for( IProjectFacetVersion fv : f.getVersions() )
-        {
-            if( supports( fv ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public Set<IProjectFacetVersion> getDefaultFacets( final Set<IProjectFacet> fixed )
-    
-        throws CoreException
-        
-    {
-        // 1. Get the complete list.
-        
-        final Map<IProjectFacet,IProjectFacetVersion> facets 
-            = new HashMap<IProjectFacet,IProjectFacetVersion>();
-        
-        for( IRuntimeComponent rc : getRuntimeComponents() )
-        {
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-
-            for( IProjectFacetVersion fv : RuntimeManagerImpl.getDefaultFacets( rcv ) )
-            {
-                if( ! facets.containsKey( fv.getProjectFacet() ) )
-                {
-                    facets.put( fv.getProjectFacet(), fv );
-                }
-            }
-        }
-        
-        // 2. Remove the facets that conflict with fixed facets.
-        
-        final Set<IProjectFacet> toRemove = new HashSet<IProjectFacet>();
-        
-        for( IProjectFacetVersion fv : facets.values() )
-        {
-            if( ! fv.isValidFor( fixed ) )
-            {
-                toRemove.add( fv.getProjectFacet() );
-            }
-        }
-        
-        for( IProjectFacet f : toRemove )
-        {
-            facets.remove( f );
-        }
-        
-        // 3. Make sure that the result includes all of the fixed facets.
-        
-        Map<IProjectFacet,IProjectFacetVersion> toadd = null;
-        
-        for( IProjectFacet f : fixed )
-        {
-            if( ! facets.containsKey( f ) )
-            {
-                if( toadd == null )
-                {
-                    toadd = new HashMap<IProjectFacet,IProjectFacetVersion>();
-                }
-                
-                toadd.put( f, f.getLatestSupportedVersion( this ) );
-            }
-        }
-        
-        if( toadd != null )
-        {
-            facets.putAll( toadd );
-        }
-        
-        // 4. Return the result.
-        
-        return new HashSet<IProjectFacetVersion>( 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 5d0567f..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,92 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @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<IProjectFacetVersion> supported;
-    private List<IRuntimeComponent> 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<IRuntimeComponent> getRuntimeComponents()
-    {
-        final List<IRuntimeComponent> components = this.stub.getRuntimeComponents();
-        
-        for( IRuntimeComponent rc : components )
-        {
-            ( (RuntimeComponent) rc ).setRuntime( this );
-        }
-        
-        return Collections.unmodifiableList( components );
-    }
-    
-    public Map<String,String> getProperties()
-    {
-        return Collections.unmodifiableMap( this.stub.getProperties() );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( fv.getPluginId() == null )
-        {
-            return true;
-        }
-        
-        final List<IRuntimeComponent> comp = 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 f3fdd39..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,88 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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<IRuntimeComponent> components = new ArrayList<IRuntimeComponent>();
-    
-    private final List<IRuntimeComponent> componentsReadOnly 
-        = Collections.unmodifiableList( this.components );
-    
-    private final Map<String,String> properties = new HashMap<String,String>();
-    
-    private final Map<String,String> propertiesReadOnly
-        = Collections.unmodifiableMap( this.properties );
-    
-    private Set<IProjectFacetVersion> supported = null;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-    
-    Runtime() {}
-    
-    public List<IRuntimeComponent> getRuntimeComponents()
-    {
-        return this.componentsReadOnly;
-    }
-    
-    void addRuntimeComponent( final IRuntimeComponent component )
-    {
-        ( (RuntimeComponent) component ).setRuntime( this );
-        this.components.add( component );
-    }
-
-    public Map<String,String> 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 e85e8f8..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,167 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-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.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponent
-
-    implements IRuntimeComponent
-    
-{
-    private RuntimeComponentVersion rcv;
-    private IRuntime runtime;
-    private final Map<String,String> properties;
-    private final Map<String,String> propertiesReadOnly;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-
-    RuntimeComponent() 
-    {
-        this.rcv = null;
-        this.runtime = null;
-        this.properties = new HashMap<String,String>();
-        this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
-    }
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.rcv.getRuntimeComponentType();
-    }
-
-    public IRuntimeComponentVersion getRuntimeComponentVersion()
-    {
-        return this.rcv;
-    }
-    
-    void setRuntimeComponentVersion( final IRuntimeComponentVersion rcv )
-    {
-        this.rcv = (RuntimeComponentVersion) rcv;
-    }
-    
-    public IRuntime getRuntime()
-    {
-        return this.runtime;
-    }
-    
-    void setRuntime( final IRuntime runtime )
-    {
-        if( runtime == null )
-        {
-            throw new IllegalArgumentException();
-        }
-        
-        if( this.runtime != null )
-        {
-            throw new IllegalStateException( Resources.runtimeAlreadySet );
-        }
-        
-        this.runtime = runtime;
-    }
-
-    public Map<String,String> getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    public String getProperty( final String key )
-    {
-        return 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();
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String runtimeAlreadySet;
-        
-        static
-        {
-            initializeMessages( RuntimeComponent.class.getName(), Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties
deleted file mode 100644
index d486468..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.properties
+++ /dev/null
@@ -1 +0,0 @@
-runtimeAlreadySet = Component already associated with a runtime.
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 1d6d0f1..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,74 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.internal.util.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<IRuntimeComponentVersion>
-    implements IRuntimeComponentType
-    
-{
-    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 Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-
-    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 6de5766..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,209 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.util.UnknownVersion;
-import org.eclipse.wst.common.project.facet.core.internal.util.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
-    
-{
-    private String plugin;
-    private IRuntimeComponentType type;
-    private String version;
-    private final Map<String,Object> adapterFactories = new HashMap<String,Object>();
-    private Map<IRuntimeComponentVersion,Integer> compTable = null;
-    
-    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 = instantiate( ref.plugin, ref.clname, IAdapterFactory.class );
-                this.adapterFactories.put( type.getName(), factory );
-            }
-            
-            return (IAdapterFactory) factory;
-        }
-    }
-    
-    void addAdapterFactory( final String type,
-                            final String plugin,
-                            final String factory )
-    {
-        synchronized( this.adapterFactories )
-        {
-            this.adapterFactories.put( type, new PluginAndClass( plugin, factory ) );
-        }
-    }
-    
-    void setComparisonTable( final Map<IRuntimeComponentVersion,Integer> compTable )
-    {
-        this.compTable = compTable;
-    }
-
-    public int compareTo( final Object obj )
-    {
-        if( obj == this )
-        {
-            return 0;
-        }
-        else if( obj instanceof IRuntimeComponentVersion )
-        {
-            final IRuntimeComponentVersion rcv = (IRuntimeComponentVersion) obj;
-            
-            if( rcv.getRuntimeComponentType() != this.type )
-            {
-                final String msg
-                    = Resources.bind( Resources.cannotCompareVersionsOfDifferentTypes,
-                                      this.type.getId(), this.version,
-                                      rcv.getRuntimeComponentType().getId(), 
-                                      rcv.getVersionString() );
-                
-                throw new RuntimeException( msg );
-            }
-            
-            return this.compTable.get( rcv ).intValue();
-        }
-        else if( obj instanceof UnknownVersion )
-        {
-            try
-            {
-                final Comparator<String> comp = this.type.getVersionComparator();
-                return comp.compare( this.version, ( (IVersion) obj ).getVersionString() );
-            }
-            catch( CoreException e )
-            {
-                throw new RuntimeException( e );
-            }
-        }
-        else
-        {
-            throw new IllegalArgumentException();
-        }
-        
-    }
-    
-    public String toString()
-    {
-        return this.type.getId() + " " + this.version; //$NON-NLS-1$
-    }
-
-    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;
-        }
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String cannotCompareVersionsOfDifferentTypes;
-        
-        static
-        {
-            initializeMessages( RuntimeComponentVersion.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/runtime/internal/RuntimeComponentVersion.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.properties
deleted file mode 100644
index 4588b25..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-cannotCompareVersionsOfDifferentTypes = \
-  Cannot compare versions of different runtime component types to each other. \
-  Attempted to compare version {1} of runtime component type {0} with version \
-  {3} of runtime component type {2}. 
\ 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.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 a176d3f..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,1149 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.instantiate;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-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.FacetedProjectFrameworkImpl;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.internal.util.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.util.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<String,IRuntimeComponentType> runtimeComponentTypes;
-    private static final IndexedSet<String,IRuntime> runtimes;
-    private static final List<Mapping> mappings;
-    private static final Map<String,IRuntimeBridge> bridges;
-    private static final List<DefaultFacetsEntry> defaultFacets;
-    private static final Set<IListener> listeners;
-    
-    static
-    {
-        runtimeComponentTypes = new IndexedSet<String,IRuntimeComponentType>();
-        runtimes = new IndexedSet<String,IRuntime>();
-        mappings = new ArrayList<Mapping>();
-        bridges = new HashMap<String,IRuntimeBridge>();
-        defaultFacets = new ArrayList<DefaultFacetsEntry>();
-        listeners = new HashSet<IListener>();
-        
-        readMetadata();
-        readBridgesExtensions();
-        readDefaultFacetsExtensions();
-    }
-    
-    private RuntimeManagerImpl() {}
-    
-    public static Set<IRuntimeComponentType> 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 = 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<String,String> properties )
-    {
-        final RuntimeComponent rc = new RuntimeComponent();
-        
-        rc.setRuntimeComponentVersion( rcv );
-        
-        if( properties != null )
-        {
-            for( Map.Entry<String,String> entry : properties.entrySet() )
-            {
-                rc.setProperty( entry.getKey(), entry.getValue() );
-            }
-        }
-        
-        return rc;
-    }
-    
-    public static Set<IRuntime> getRuntimes()
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return new HashSet<IRuntime>( runtimes );
-        }
-    }
-    
-    public static Set<IRuntime> getRuntimes( final Set<IProjectFacetVersion> facets )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final Set<IRuntime> result = new HashSet<IRuntime>();
-            
-            for( IRuntime r : runtimes )
-            {
-                boolean supports = true;
-                
-                for( IProjectFacetVersion fv : facets )
-                {
-                    if( ! r.supports( fv ) )
-                    {
-                        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 = 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<IRuntimeComponent> components,
-                                          final Map<String,String> properties )
-    {
-        synchronized( runtimes )
-        {
-            final Runtime r = new Runtime();
-            
-            r.setName( name );
-            
-            for( IRuntimeComponent rc : components )
-            {
-                r.addRuntimeComponent( rc );
-            }
-            
-            if( properties != null )
-            {
-                for( Map.Entry<String,String> entry : properties.entrySet() )
-                {
-                    r.setProperty( entry.getKey(), 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( IListener listener : listeners )
-        {
-            try
-            {
-                listener.handle();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    static Set<IProjectFacetVersion> getSupportedFacets( final List<IRuntimeComponent> composition )
-    {
-        final Set<IProjectFacetVersion> result = new HashSet<IProjectFacetVersion>();
-        
-        for( IRuntimeComponent rc : composition )
-        {
-            for( Mapping m : mappings )
-            {
-                try
-                {
-                    result.addAll( m.getSupportedFacets( rc ) );                    
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e.getStatus() );
-                }
-                catch( VersionFormatException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    static Set<IProjectFacetVersion> getDefaultFacets( final IRuntimeComponentVersion rcv )
-    {
-        final Set<IProjectFacetVersion> result = new HashSet<IProjectFacetVersion>();
-        
-        for( DefaultFacetsEntry dfe : defaultFacets )
-        {
-            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( Map.Entry<String,IRuntimeBridge> entry : bridges.entrySet() )
-        {
-            final String brid = entry.getKey();
-            final IRuntimeBridge br = entry.getValue();
-            
-            // Find the runtimes belonging to this bridge that are currently
-            // in the system.
-            
-            final Map<String,BridgedRuntime> existing = new HashMap<String,BridgedRuntime>();
-            
-            for( IRuntime r : runtimes )
-            {
-                if( r instanceof BridgedRuntime )
-                {
-                    final BridgedRuntime bridged = (BridgedRuntime) r;
-                    
-                    if( bridged.getBridgeId().equals( brid ) )
-                    {
-                        existing.put( bridged.getNativeRuntimeId(), bridged );
-                    }
-                }
-            }
-            
-            // Get the new set of exported runtimes.
-            
-            final Set<String> exported;
-            
-            try
-            {
-                exported = br.getExportedRuntimeNames();
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-                
-                for( BridgedRuntime r : existing.values() )
-                {
-                    runtimes.remove( r.getName() );
-                    modified = true;
-                }
-                
-                continue;
-            }
-            
-            // Remove the absolete entries.
-            
-            for( BridgedRuntime r : existing.values() )
-            {
-                if( ! exported.contains( r.getNativeRuntimeId() ) )
-                {
-                    runtimes.delete( r.getName() );
-                    modified = true;
-                }
-            }
-            
-            // Create the new entries.
-            
-            for( String id : exported )
-            {
-                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 List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-        
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_TYPE ) )
-            {
-                readRuntimeComponentType( config );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_RUNTIME_COMPONENT_VERSION ) )
-            {
-                readRuntimeComponentVersion( config );
-            }
-        }
-        
-        calculateVersionComparisonTables();
-
-        for( IConfigurationElement config : cfgels )
-        {
-            if( config.getName().equals( EL_ADAPTER ) )
-            {
-                readAdapter( config );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            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 );
-    }
-    
-    /**
-     * Pre-computes the tables that describe how versions of runtime components
-     * compare to each other. This allows the IRuntimeComponentVersion.compareTo() 
-     * operation, which is called rather frequently, to be reduced to a hash 
-     * table lookup instead of having to do a parse and comparison of two 
-     * version strings.
-     */
-    
-    private static void calculateVersionComparisonTables()
-    {
-        final List<IRuntimeComponentType> badRuntimeComponentTypes 
-            = new ArrayList<IRuntimeComponentType>();
-        
-        for( IRuntimeComponentType rct : runtimeComponentTypes )
-        {
-            try
-            {
-                final Comparator<String> comp = rct.getVersionComparator();
-                
-                final List<IRuntimeComponentVersion> versions 
-                    = new ArrayList<IRuntimeComponentVersion>( rct.getVersions() );
-                
-                final Map<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>> compTables
-                    = new HashMap<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>>();
-                
-                for( IRuntimeComponentVersion rcv : versions )
-                {
-                    compTables.put( rcv, new HashMap<IRuntimeComponentVersion,Integer>() );
-                }
-                
-                for( int i = 0, n = versions.size(); i < n; i++ )
-                {
-                    final IRuntimeComponentVersion iVer = versions.get( i );
-                    final String iVerStr = iVer.getVersionString();
-                    final Map<IRuntimeComponentVersion,Integer> iCompTable = compTables.get( iVer );
-                    
-                    for( int j = i + 1; j < n; j++ )
-                    {
-                        final IRuntimeComponentVersion jVer = versions.get( j );
-                        final String jVerStr = jVer.getVersionString();
-                        final Map<IRuntimeComponentVersion,Integer> jCompTable = compTables.get( jVer );
-                        
-                        final int result = comp.compare( iVerStr, jVerStr );
-                        
-                        iCompTable.put( jVer, new Integer( result ) );
-                        jCompTable.put( iVer, new Integer( result * -1 ) );
-                    }
-                }
-                
-                for( Map.Entry<IRuntimeComponentVersion,Map<IRuntimeComponentVersion,Integer>> entry
-                     : compTables.entrySet() )
-                {
-                    final RuntimeComponentVersion rcv = (RuntimeComponentVersion) entry.getKey();
-                    rcv.setComparisonTable( entry.getValue() );
-                }
-            }
-            catch( Exception e )
-            {
-                // The failure here is due to the problem loading the provided
-                // version comparator or due to the problem comparing the
-                // version string. In either case, we log the exception and
-                // remove all traces of this runtime component type from the 
-                // system to keep a faulty runtime component type from dragging
-                // down the entire system.
-                
-                FacetCorePlugin.log( e );
-                badRuntimeComponentTypes.add( rct );
-            }
-        }
-        
-        for( IRuntimeComponentType rct : badRuntimeComponentTypes )
-        {
-            runtimeComponentTypes.remove( rct );
-        }
-    }
-    
-    private static void readAdapter( final IConfigurationElement config )
-    {
-        IRuntimeComponentType rctype = null;
-        IRuntimeComponentVersion rcversion = null;
-        String factory = null;
-        final List<String> types = new ArrayList<String>();
-        
-        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<IRuntimeComponentVersion> versions;
-        
-        if( rcversion == null )
-        {
-            versions = rctype.getVersions();
-        }
-        else
-        {
-            versions = Collections.singleton( rcversion );
-        }
-        
-        final String plugin = config.getContributor().getName();
-        
-        for( IRuntimeComponentVersion rcv : versions )
-        {
-            final RuntimeComponentVersion v = (RuntimeComponentVersion) rcv;
-            
-            for( String type : types )
-            {
-                v.addAdapterFactory( type, 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<ProjectFacetVersion> expr = null;
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        final String pluginId = config.getContributor().getName();
-                        expr = new VersionExpr<ProjectFacetVersion>( f, v, pluginId );
-                    }
-                    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<RuntimeComponentVersion> expr = null;
-                    
-                    if( v != null )
-                    {
-                        try
-                        {
-                            final String pluginId = config.getContributor().getName();
-                            expr = new VersionExpr<RuntimeComponentVersion>( 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 List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            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 IRuntimeBridge br;
-                
-                try
-                {
-                    br = 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 List<IConfigurationElement> cfgels = new ArrayList<IConfigurationElement>();
-        
-        for( IExtension extension : point.getExtensions() )
-        {
-            for( IConfigurationElement cfgel : extension.getConfigurationElements() )
-            {
-                cfgels.add( cfgel );
-            }
-        }
-
-        for( IConfigurationElement config : cfgels )
-        {
-            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<RuntimeComponentVersion>( 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( FacetedProjectFrameworkImpl.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 ) )
-        {
-            FacetedProjectFrameworkImpl.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
-    {
-        public final Map<IProjectFacet,VersionExpr<ProjectFacetVersion>> facets 
-            = new HashMap<IProjectFacet,VersionExpr<ProjectFacetVersion>>();
-        
-        public final Map<IRuntimeComponentType,VersionExpr<RuntimeComponentVersion>> runtimeComponents 
-            = new HashMap<IRuntimeComponentType,VersionExpr<RuntimeComponentVersion>>();
-        
-        private Set<IProjectFacetVersion> getSupportedFacets( final IRuntimeComponent rc )
-        
-            throws CoreException
-            
-        {
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            if( this.runtimeComponents.containsKey( rct ) )
-            {
-                final VersionExpr<RuntimeComponentVersion> expr = this.runtimeComponents.get( rct );
-                
-                if( expr != null && ! expr.check( rcv ) )
-                {
-                    return Collections.emptySet();
-                }
-            }
-            else if( ! this.runtimeComponents.isEmpty() )
-            {
-                return Collections.emptySet();
-            }
-            
-            final Set<IProjectFacetVersion> result = new HashSet<IProjectFacetVersion>();
-            
-            for( Map.Entry<IProjectFacet,VersionExpr<ProjectFacetVersion>> entry 
-                 : this.facets.entrySet() )
-            {
-                final IProjectFacet f = entry.getKey();
-                final VersionExpr<ProjectFacetVersion> expr = entry.getValue();
-                
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( expr == null || expr.check( fv ) )
-                    {
-                        result.add( fv );
-                    }
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    private static final class DefaultFacetsEntry
-    {
-        public IRuntimeComponentType rct;
-        public VersionExpr<RuntimeComponentVersion> rcvexpr;
-        public final Set<IProjectFacetVersion> facets = new HashSet<IProjectFacetVersion>();
-        
-        public boolean match( final IRuntimeComponentVersion rcv )
-        
-            throws CoreException
-            
-        {
-            if( rcv.getRuntimeComponentType() != this.rct )
-            {
-                return false;
-            }
-            else
-            {
-                return this.rcvexpr.check( 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 ee22c04..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,52 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * 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<String,String> getProperties()
-    {
-        return Collections.emptyMap();
-    }
-
-    public List<IRuntimeComponent> getRuntimeComponents()
-    {
-        return Collections.emptyList();
-    }
-
-    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 304e861..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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<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 7777a26..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Fri Feb 02 09:02:36 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-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=error
-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=error
-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.5
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 6925dfc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +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.2.0.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.0)";visibility:=reexport,
- 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.0)";visibility:=reexport,
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.2.0,1.3.0)";visibility:=reexport,
- org.eclipse.draw2d;bundle-version="[3.2.0,4.0)"
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
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 73db36e..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>June 06, 2007</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/down-arrow.gif b/plugins/org.eclipse.wst.common.project.facet.ui/images/down-arrow.gif
deleted file mode 100644
index 8f6c34d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/images/down-arrow.gif
+++ /dev/null
Binary files differ
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 448e880..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/images.exsd
+++ /dev/null
@@ -1,145 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <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>
-         
-      </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 ed88971..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages-old.exsd
+++ /dev/null
@@ -1,200 +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>
-         <documentation>
-            (no description available)
-         </documentation>
-      </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>
-         <documentation>
-            (no description available)
-         </documentation>
-      </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>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="uninstall">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            (no description available)
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="page">
-      <annotation>
-         <appInfo>
-            <meta.element deprecated="true"/>
-         </appInfo>
-         <documentation>
-            (no description available)
-         </documentation>
-      </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>
-         
-      </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 7527de1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/schemas/wizard-pages.exsd
+++ /dev/null
@@ -1,151 +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">
-      <annotation>
-         <documentation>
-            (no description available)
-         </documentation>
-      </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>
-            </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>
-         
-      </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 9ed4712..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AbstractFacetWizardPage.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.wizard.WizardPage;
-
-/**
- * @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 d2c463e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/AddRemoveFacetsWizard.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- * @deprecated use ModifyFacetedProjectWizard class instead
- */
-
-public class AddRemoveFacetsWizard 
-
-    extends ModifyFacetedProjectWizard 
-    
-{
-    public AddRemoveFacetsWizard( final IFacetedProject fproj )
-    {
-        super( fproj );
-    }
-    
-}
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 e33c536..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/FacetUiHelpContextIds.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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 0127609..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-2007 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
- ******************************************************************************/
-
-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.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class FacetedProjectWizard 
-
-    extends ModifyFacetedProjectWizard 
-    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() );
-        
-        final ImageDescriptor defImageDescriptor = getDefaultPageImageDescriptor();
-        
-        if( defImageDescriptor != null )
-        {
-            this.setDefaultPageImageDescriptor( defImageDescriptor );
-        }
-    }
-    
-    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<IProjectFacet> 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<IProjectFacet> 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 09191f7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IDecorationsProvider.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * @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 f49d781..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IFacetWizardPage.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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 4c7269c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IRuntimeComponentLabelProvider.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-/**
- * @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 bb1d37f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/IWizardContext.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.
- * 
- * @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/ModifyFacetedProjectWizard.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ModifyFacetedProjectWizard.java
deleted file mode 100644
index 1fe7e25..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ModifyFacetedProjectWizard.java
+++ /dev/null
@@ -1,669 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.beginTask;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.done;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.subTask;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.submon;
-import static org.eclipse.wst.common.project.facet.core.internal.util.ProgressMonitorUtil.worked;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Collections;
-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.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.ICategory;
-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.core.runtime.IRuntime;
-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;
-import org.eclipse.wst.common.project.facet.ui.internal.ModifyFacetedProjectDataModel;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class ModifyFacetedProjectWizard 
-
-    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<IWizardPage> pagesToDispose = new ArrayList<IWizardPage>();
-    private final ModifyFacetedProjectDataModel model;
-    private final List<Runnable> delayedActions;
-    
-    public ModifyFacetedProjectWizard( final IFacetedProject fproj )
-    {
-        this.model = new ModifyFacetedProjectDataModel();
-        this.delayedActions = new ArrayList<Runnable>();;
-        this.fproj = fproj;
-        
-        Set<IProjectFacetVersion> 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 ModifyFacetedProjectDataModel 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 List<IWizardPage> list = new ArrayList<IWizardPage>();
-        
-        list.add( this.facetsSelectionPage );
-        
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            list.addAll( this.facetPages[ i ].pages );
-        }
-        
-        return list.toArray( new IWizardPage[ list.size() ] );
-    }
-    
-    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();
-        executeDelayedActions();
-    }
-    
-    public boolean performFinish() 
-    {
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            for( IFacetWizardPage fp : this.facetPages[ i ].pages )
-            {
-                fp.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
-        
-    {
-        beginTask( monitor, "", 20 ); //$NON-NLS-1$
-        
-        try
-        {
-            // Figure out whether we can set runtimes before applying facet actions. This is better
-            // for performance reasons, but may not work if the project contains facets that are
-            // not supported by the new runtime. You can get into this situation if the user tries
-            // to simultaneously uninstall a facet and select a different runtime. The fallback
-            // solution for this situation is to set the targeted runtimes to an empty list first,
-            // then apply the facet actions, and then set the targeted runtimes to the new list.
-            // This is more drastic than necessary in all situations, but it is not clear that
-            // implementing additional optimizations is necessary either.
-            
-            final ChangeTargetedRuntimesDataModel rdm = this.model.getTargetedRuntimesDataModel();
-            boolean canSetRuntimesFirst = true;
-            
-            for( IProjectFacetVersion fv : this.fproj.getProjectFacets() )
-            {
-                for( IRuntime r : rdm.getTargetedRuntimes() )
-                {
-                    if( ! r.supports( fv ) )
-                    {
-                        canSetRuntimesFirst = false;
-                        break;
-                    }
-                }
-                
-                if( ! canSetRuntimesFirst )
-                {
-                    break;
-                }
-            }
-            
-            subTask( monitor, Resources.taskConfiguringRuntimes );
-            
-            if( canSetRuntimesFirst )
-            {
-                this.fproj.setTargetedRuntimes( rdm.getTargetedRuntimes(), submon( monitor, 2 ) );
-                
-                if( rdm.getPrimaryRuntime() != null )
-                {
-                    this.fproj.setPrimaryRuntime( rdm.getPrimaryRuntime(), submon( monitor, 2 ) );
-                }
-                else
-                {
-                    worked( monitor, 2 );
-                }
-            }
-            else
-            {
-                final Set<IRuntime> emptySet = Collections.emptySet();
-                this.fproj.setTargetedRuntimes( emptySet, submon( monitor, 2 ) );
-            }
-            
-            this.fproj.modify( this.facetsSelectionPage.getActions(), submon( monitor, 16 ) );
-            
-            if( ! canSetRuntimesFirst )
-            {
-                subTask( monitor, Resources.taskConfiguringRuntimes );
-                
-                this.fproj.setTargetedRuntimes( rdm.getTargetedRuntimes(), submon( monitor, 1 ) );
-                
-                if( rdm.getPrimaryRuntime() != null )
-                {
-                    this.fproj.setPrimaryRuntime( rdm.getPrimaryRuntime(), submon( monitor, 1 ) );
-                }
-                else
-                {
-                    worked( monitor, 1 );
-                }
-            }
-        }
-        finally
-        {
-            done( monitor );
-        }
-    }
-    
-    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 setCategoryExpandedState( final ICategory category,
-                                          final boolean expanded )
-    {
-        if( this.facetsSelectionPage != null && this.facetsSelectionPage.panel != null )
-        {
-            this.facetsSelectionPage.panel.setCategoryExpandedState( category, true );
-        }
-        else
-        {
-            final Runnable action = new Runnable()
-            {
-                public void run()
-                {
-                    setCategoryExpandedState( category, expanded );
-                }
-            };
-            
-            this.delayedActions.add( action );
-        }
-    }
-    
-    public void dispose()
-    {
-        super.dispose();
-        
-        for( int i = 0; i < this.facetPages.length; i++ )
-        {
-            this.pagesToDispose.addAll( this.facetPages[ i ].pages );
-        }
-        
-        for( IWizardPage page : this.pagesToDispose )
-        {
-            page.dispose();
-        }
-        
-        this.model.dispose();
-    }
-    
-    private static final class FacetPages
-    {
-        public Action action;
-        public List<IFacetWizardPage> 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<IProjectFacetVersion> base = getBaseFacets();
-        final Set<Action> actions = this.facetsSelectionPage.getActions();
-        final List<Action> sortedActions = new ArrayList<Action>( actions );
-        ProjectFacetsManager.sort( base, sortedActions );
-        
-        // Recalculate the sequence of wizard pages.
-        
-        final List<FacetPages> newFacetPages = new ArrayList<FacetPages>();
-        final boolean[] markers = new boolean[ this.facetPages.length ];
-        boolean changed = false;
-        
-        for( Action action : sortedActions )
-        {
-            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<IFacetWizardPage> pages
-                    = ProjectFacetsUiManager.getWizardPages( actiondef.getId() );
-                
-                if( ! pages.isEmpty() )
-                {
-                    fp = new FacetPages();
-                    fp.action = action;
-                    fp.pages = pages;
-                    
-                    for( IFacetWizardPage page : fp.pages )
-                    {
-                        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( IFacetWizardPage page : this.facetPages[ i ].pages )
-                {
-                    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<IProjectFacetVersion> getBaseFacets()
-    {
-        if( this.fproj == null )
-        {
-            return Collections.emptySet();
-        }
-        else
-        {
-            return this.fproj.getProjectFacets();
-        }
-    }
-    
-    private void executeDelayedActions()
-    {
-        for( Runnable r : this.delayedActions )
-        {
-            try
-            {
-                r.run();
-            }
-            catch( Exception e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-    }
-
-    /**
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-
-    private final class WizardContext
-
-        implements IWizardContext
-        
-    {
-        public String getProjectName()
-        {
-            return ModifyFacetedProjectWizard.this.getProjectName();
-        }
-
-        public Set<IProjectFacetVersion> getSelectedProjectFacets()
-        {
-            return ModifyFacetedProjectWizard.this.facetsSelectionPage.getSelectedProjectFacets();
-        }
-
-        public boolean isProjectFacetSelected( final IProjectFacetVersion fv )
-        {
-            return getSelectedProjectFacets().contains( fv );
-        }
-
-        public Set<Action> getActions()
-        {
-            final FacetsSelectionPage page
-                = ModifyFacetedProjectWizard.this.facetsSelectionPage;
-            
-            return page.getActions();
-        }
-
-        public Action getAction( final Action.Type type,
-                                 final IProjectFacetVersion f )
-        {
-            for( Action action : getActions() )
-            {
-                if( action.getType() == type && action.getProjectFacetVersion() == f )
-                {
-                    return action;
-                }
-            }
-            
-            return null;
-        }
-        
-		public Object getConfig(IProjectFacetVersion fv, Type type, String pjname) throws CoreException {
-			Object config = ModifyFacetedProjectWizard.this.getConfig(fv, type, pjname);
-			if (null == config) {
-                final Set<IProjectFacetVersion> 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;
-        public static String taskConfiguringRuntimes;
-        
-        static
-        {
-            initializeMessages( ModifyFacetedProjectWizard.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ModifyFacetedProjectWizard.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ModifyFacetedProjectWizard.properties
deleted file mode 100644
index c359be3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ModifyFacetedProjectWizard.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-wizardTitle = Modify Faceted Project
-errDlgTitle = Error
-taskConfiguringRuntimes = Configuring targetted runtimes...
\ 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/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 da0f5f8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/PresetSelectionPanel.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation and ongoing maintenance
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui;
-
-import org.eclipse.jface.dialogs.Dialog;
-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.ModifyFacetedProjectDataModel;
-import org.eclipse.wst.common.project.facet.ui.internal.AbstractDataModel.IDataModelListener;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PresetSelectionPanel
-
-    extends Composite
-    
-{
-    private final Group group;
-    private final Combo presetsCombo;
-    private final Label descLabel;
-    private final ModifyFacetedProjectDataModel model;
-    
-    public PresetSelectionPanel( final Composite parent,
-                                 final int style,
-                                 final ModifyFacetedProjectDataModel 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
-        ( 
-            ModifyFacetedProjectDataModel.EVENT_SELECTED_PRESET_CHANGED,
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    refreshDescription();
-                }
-            }
-        );
-        
-        Dialog.applyDialogFont( parent );
-    }
-    
-    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 c8adeae..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/ProjectFacetsUiManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsUiManager 
-{
-    private ProjectFacetsUiManager() {}
-    
-    public static List<IFacetWizardPage> 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 2c2e4b1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/AbstractDataModel.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractDataModel
-{
-    private final Map<String,List<IDataModelListener>> listeners 
-        = new HashMap<String,List<IDataModelListener>>();
-    
-    public synchronized void addListener( final String event,
-                                          final IDataModelListener listener )
-    {
-        List<IDataModelListener> list = this.listeners.get( event );
-        
-        if( list == null )
-        {
-            list = new ArrayList<IDataModelListener>();
-            this.listeners.put( event, list );
-        }
-        
-        list.add( listener );
-    }
-    
-    public synchronized void removeListener( final String event,
-                                             final IDataModelListener listener )
-    {
-        final List<IDataModelListener> list = this.listeners.get( event );
-        
-        if( list != null )
-        {
-            list.remove( listener );
-        }
-    }
-    
-    public synchronized void removeListener( final IDataModelListener listener )
-    {
-        for( String property : this.listeners.keySet() )
-        {
-            removeListener( property, listener );
-        }
-    }
-    
-    protected void notifyListeners( final String event )
-    {
-        final List<IDataModelListener> listeners = this.listeners.get( event );
-        
-        if( listeners != null )
-        {
-            for( IDataModelListener listener : listeners )
-            {
-                listener.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/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 4c4b7a2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ChangeTargetedRuntimesDataModel.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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<IRuntimeFilter> filters;
-    private final Set<IRuntime> targetableRuntimes;
-    private final Set<IRuntime> targetedRuntimes;
-    private IRuntime primaryRuntime;
-    private IListener runtimeManagerListener;
-
-    public ChangeTargetedRuntimesDataModel()
-    {
-        this.filters = new ArrayList<IRuntimeFilter>();
-        
-        this.targetableRuntimes = new CopyOnWriteArraySet<IRuntime>();
-        this.targetableRuntimes.addAll( getAllRuntimes() );
-        
-        this.targetedRuntimes = new CopyOnWriteArraySet<IRuntime>();
-        
-        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<IRuntime> getAllRuntimes()
-    {
-        return RuntimeManager.getRuntimes();
-    }
-    
-    public synchronized Set<IRuntime> getTargetableRuntimes()
-    {
-        return this.targetableRuntimes;
-    }
-    
-    public synchronized void refreshTargetableRuntimes()
-    {
-        final Set<IRuntime> result = new HashSet<IRuntime>();
-        
-        for( IRuntime r : getAllRuntimes() )
-        {
-            boolean ok = true;
-
-            for( IRuntimeFilter filter : this.filters )
-            {
-                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 );
-            
-            final List<IRuntime> toRemove = new ArrayList<IRuntime>();
-            
-            for( IRuntime r : this.targetedRuntimes )
-            {
-                if( ! this.targetableRuntimes.contains( r ) )
-                {
-                    toRemove.add( r );
-                }
-            }
-            
-            this.targetedRuntimes.removeAll( toRemove );
-            
-            if( ! toRemove.isEmpty() )
-            {
-                notifyListeners( EVENT_TARGETED_RUNTIMES_CHANGED );
-                
-                if( this.primaryRuntime != null && 
-                    ! this.targetableRuntimes.contains( this.primaryRuntime ) )
-                {
-                    autoAssignPrimaryRuntime();
-                }
-            }
-        }
-    }
-    
-    public synchronized Set<IRuntime> getTargetedRuntimes()
-    {
-        return this.targetedRuntimes;
-    }
-    
-    public synchronized void setTargetedRuntimes( final Set<IRuntime> runtimes )
-    {
-        if( ! this.targetedRuntimes.equals( runtimes ) )
-        {
-            this.targetedRuntimes.clear();
-            
-            for( IRuntime r : runtimes )
-            {
-                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 = 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/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 fdd4e13..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 ) );
-        
-        final Color infoBackgroundColor
-            = parent.getDisplay().getSystemColor( SWT.COLOR_INFO_BACKGROUND );
-        
-        canvas.setBackground( infoBackgroundColor );
-        
-        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( Object operand : constraint.getOperands() )
-                {
-                    final IConstraint child = (IConstraint) operand;
-                    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();        
-        }
-
-        @SuppressWarnings( "unchecked" )
-        public void layout( final IFigure container )
-        {
-            if( this.laidout > 5 )
-            {
-                return;
-            }
-            
-            // Create the graph.
-            
-            final DirectedGraph graph = new DirectedGraph();
-            final Map<IFigure,Node> nodes = new HashMap<IFigure,Node>();
-            
-            for( Object child : container.getChildren() )
-            {
-                final IFigure childFigure = (IFigure) child;
-                
-                if( ! ( childFigure instanceof PolylineConnection ) )
-                {
-                    final Node node = new Node( childFigure );
-                    final Dimension size = childFigure.getPreferredSize();
-                    node.height = size.height;
-                    node.width = size.width;
-                    graph.nodes.add( node );
-                    nodes.put( childFigure, node );
-                }
-            }
-            
-            for( Object child : container.getChildren() )
-            {
-                if( child instanceof PolylineConnection )
-                {
-                    final PolylineConnection cn = (PolylineConnection) child;
-                    
-                    final IFigure source = cn.getSourceAnchor().getOwner();
-                    final Node sourceNode = nodes.get( source );
-                    
-                    final IFigure target = cn.getTargetAnchor().getOwner();
-                    final Node targetNode = 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( Object obj : graph.nodes )
-            {
-                final Node node = (Node) obj;
-                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( Object obj : graph.edges )
-            {
-                final Edge edge = (Edge) obj;
-                final PolylineConnection cn = (PolylineConnection) edge.data;
-                
-                if( edge.vNodes == null )
-                {
-                    cn.setRoutingConstraint( Collections.EMPTY_LIST );
-                }
-                else
-                {
-                    final List<AbsoluteBendpoint> bends = new ArrayList<AbsoluteBendpoint>();
-                    
-                    for( Object obj2 : edge.vNodes )
-                    {
-                        final Node vn = (Node) obj2;
-                        
-                        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 Boolean soft 
-                = (Boolean) constraint.getOperand( constraint.getOperands().size() - 1 );
-            
-            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.setBorder( new MarginBorder( 2 ) );
-            add( headerLabel );
-            
-            final StringBuffer bodyLabelText = new StringBuffer();
-            final Object firstOperand = constraint.getOperand( 0 );
-            
-            if( firstOperand instanceof IGroup )
-            {
-                final IGroup group = (IGroup) firstOperand;
-                
-                headerLabel.setText( Resources.requiresGroupMemberOperator );
-                bodyLabelText.append( group.toString() );
-            }
-            else
-            {
-                final IProjectFacet f = (IProjectFacet) firstOperand;
-                final IVersionExpr vexpr = (IVersionExpr) constraint.getOperand( 1 );
-    
-                headerLabel.setText( Resources.requiresFacetOperator );
-                
-                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 requiresFacetOperator;
-        public static String requiresGroupMemberOperator;
-        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 2b5148a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ConstraintDisplayDialog.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-pressEscToClose = Press 'Esc' to close.
-andOperator = AND
-orOperator = OR
-requiresFacetOperator = \ requires facet\ 
-requiresGroupMemberOperator = \ requires group member\ 
-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 6e74ac6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/DecorationsProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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 902c023..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-2007 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
- ******************************************************************************/
-
-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<String> messagesLogged = new HashSet<String>();
-    
-    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() + ""; //$NON-NLS-1$
-        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 b3e6ddf..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-2007 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
- ******************************************************************************/
-
-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 1d78ecf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsPropertyPage.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation
- *    Konstantin Komissarchik - ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-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.dialogs.Dialog;
-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.ModifyFacetedProjectWizard;
-
-/**
- * @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();
-                    }
-                }
-            );
-            Dialog.applyDialogFont(parent);
-            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);
-        
-        // Create the button that will open the Modify Faceted Project wizard.
-        
-        final Button button = new Button( parent, SWT.PUSH );
-        button.setText( Resources.modifyProjectButtonLabel );
-        
-        final GridData gd = new GridData( GridData.HORIZONTAL_ALIGN_END );
-        gd.widthHint = button.computeSize( SWT.DEFAULT, SWT.DEFAULT ).x + 15;
-        button.setLayoutData( gd );
-        
-        button.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected(SelectionEvent event)
-                {
-                    final IWizard wizard = new ModifyFacetedProjectWizard( 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( final Object inputElement )
-        {
-            if( inputElement instanceof IFacetedProject )
-            {
-                final IFacetedProject project = (IFacetedProject) inputElement;
-                
-                final List<IProjectFacetVersion> facets
-                    = new ArrayList<IProjectFacetVersion>( project.getProjectFacets() );
-
-                Collections.sort
-                (
-                    facets, 
-                    new Comparator<IProjectFacetVersion>()
-                    {
-                        public int compare( final IProjectFacetVersion fv1, 
-                                            final IProjectFacetVersion fv2 ) 
-                        {
-                            if( fv1 == fv2 )
-                            {
-                                return 0;
-                            }
-                            else
-                            {
-                                final String label1 = fv1.getProjectFacet().getLabel();
-                                final String label2 = fv2.getProjectFacet().getLabel();
-                                
-                                return label1.compareTo( label2 );
-                            }
-                        }
-                    }
-                );
-
-                return facets.toArray( new IProjectFacetVersion[ facets.size() ] );
-            }
-            
-            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 modifyProjectButtonLabel;
-        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 1770474..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 @@
-modifyProjectButtonLabel = Modify Project...
-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 0fd6888..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPage.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-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.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.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<IProjectFacetVersion> base;
-    private IPreset initialPreset;
-    private Set<IProjectFacetVersion> initialSelection;
-    private final Set<IProjectFacet> fixed;
-    public FacetsSelectionPanel panel;
-    private List<Listener> listeners;
-    private List<Combo> initialSyncWithPresetsCombos;
-    private IRuntime initialSetDefaultFacetsForRuntime;
-    private ModifyFacetedProjectDataModel model;
-
-    public FacetsSelectionPage( final IWizardContext context,
-                                final Set<IProjectFacetVersion> base,
-                                final ModifyFacetedProjectDataModel 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<IProjectFacet>();
-        this.listeners = new ArrayList<Listener>();
-        this.initialSyncWithPresetsCombos = new ArrayList<Combo>();
-        this.initialSetDefaultFacetsForRuntime = null;
-    }
-    
-    public void setInitialPreset( final IPreset preset )
-    {
-        this.initialPreset = preset;
-    }
-    
-    public void setInitialSelection( final Set<IProjectFacetVersion> sel )
-    {
-        this.initialSelection = sel;
-    }
-
-    public void setFixedProjectFacets( final Set<IProjectFacet> fixed )
-    {
-        this.fixed.clear();
-        this.fixed.addAll( fixed );
-    }
-
-    public Set<Action> getActions()
-    {
-        return this.panel.getActions();
-    }
-
-    public Set<IProjectFacetVersion> getSelectedProjectFacets()
-    {
-        return this.panel.getSelectedProjectFacets();
-    }
-
-    public void addSelectedFacetsChangedListener( final Listener listener )
-    {
-        synchronized( this.listeners )
-        {
-            this.listeners.add( listener );
-        }
-    }
-
-    public void removeSelectedFacetsChangedListener( final Listener listener )
-    {
-        synchronized( this.listeners )
-        {
-            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.getDataModel().setSelectedPreset( this.initialPreset.getId() );
-        }
-        
-        if( this.initialSelection != null )
-        {
-            this.panel.setSelectedProjectFacets( this.initialSelection );
-        }
-        
-        if( this.initialSetDefaultFacetsForRuntime != null )
-        {
-            this.panel.setDefaultFacetsForRuntime( this.initialSetDefaultFacetsForRuntime );
-        }
-        
-        setPageComplete( this.panel.isSelectionValid() );
-
-        this.panel.addProjectFacetsListener
-        (
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    handleSelectedFacetsChangedEvent( event );
-                }
-            }
-        );
-
-        for( Combo combo : this.initialSyncWithPresetsCombos )
-        {
-            this.panel.syncWithPresetsModel( combo );
-        }
-        
-        this.initialSyncWithPresetsCombos = null;
-        
-        final IWorkbenchHelpSystem h = PlatformUI.getWorkbench().getHelpSystem();
-        h.setHelp( this.panel, FacetUiHelpContextIds.FACETS_SELECTION_PAGE );
-        
-        setControl( this.panel );
-    }
-
-    private void handleSelectedFacetsChangedEvent( final Event event )
-    {
-        setPageComplete( this.panel.isSelectionValid() );
-
-        final List<Listener> copyOfListenersList = new ArrayList<Listener>();
-        
-        synchronized( this.listeners )
-        {
-            copyOfListenersList.addAll( this.listeners );
-        }
-
-        for( Listener listener : copyOfListenersList )
-        {
-            try
-            {
-                listener.handleEvent( event );
-            }
-            catch( Exception e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-        
-        if( getContainer().getCurrentPage() != null )
-        {
-            getContainer().updateButtons();
-        }
-    }
-
-    public void setVisible( final boolean visible )
-    {
-        if( visible )
-        {
-            for( Action action : this.panel.getActions() )
-            {
-                final Object config = action.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 90eef0c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
+++ /dev/null
@@ -1,2443 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation and ongoing maintenance
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import static java.lang.Math.max;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gd;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhalign;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhspan;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdwhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gl;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.SwtUtil.getPreferredWidth;
-
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-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.Dialog;
-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.jface.window.ToolTip;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-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.GC;
-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.Display;
-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.Tree;
-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.eclipse.wst.common.project.facet.ui.internal.util.BasicToolTip;
-import org.eclipse.wst.common.project.facet.ui.internal.util.HeaderToolTip;
-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 static final String IMG_ERROR = "##error##"; //$NON-NLS-1$
-    private static final String IMG_WARNING = "##warning##"; //$NON-NLS-1$
-    private static final String IMG_DOWN_ARROW = "##down-arrow##"; //$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 treeViewer;
-    private final Tree tree;
-    private final TreeColumn colFacet;
-    private final TreeColumn colVersion;
-    private final Menu popupMenu;
-    private final MenuItem popupMenuConstraints;
-    private final ComboBoxCellEditor ceditor;
-    private final FixedFacetToolTip fixedFacetToolTip;
-    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 List<TableRowData> data;
-    private final Set<IProjectFacetVersion> base;
-    private final Set<Action> actions;
-    private Object oldSelection;
-
-    private IStatus problems;
-    private final List<Listener> listeners;
-    private final List<ISelectionChangedListener> selectionListeners;
-    
-    private final ModifyFacetedProjectDataModel model;
-    
-    /**
-     * Holds images used throughout the panel.
-     */
-    
-    private final ImageRegistry imageRegistry;
-    
-    public interface IFilter 
-    {
-        boolean check( IProjectFacetVersion fv );
-    }
-
-    public FacetsSelectionPanel( final Composite parent,
-                                 final int style,
-                                 final IWizardContext context,
-                                 final Set<IProjectFacetVersion> base,
-                                 final ModifyFacetedProjectDataModel model )
-    {
-        super( parent, style );
-
-        this.context = context;
-        this.data = new ArrayList<TableRowData>();
-        this.model = model;
-        this.base = ( base == null ? new HashSet<IProjectFacetVersion>() : base );
-        this.actions = new HashSet<Action>();
-        this.oldSelection = null;
-        this.problems = Status.OK_STATUS;
-        this.listeners = new ArrayList<Listener>();
-        this.selectionListeners = new ArrayList<ISelectionChangedListener>();
-        
-        for( IProjectFacet f : ProjectFacetsManager.getProjectFacets() )
-        {
-            try
-            {
-                this.data.add( new TableRowData( f ) );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-        
-        // Initialize the image registry.
-        
-        this.imageRegistry = new ImageRegistry();
-        final Bundle bundle = Platform.getBundle( FacetUiPlugin.PLUGIN_ID );
-        
-        URL url = bundle.getEntry( "images/error.gif" ); //$NON-NLS-1$
-        this.imageRegistry.put( IMG_ERROR, ImageDescriptor.createFromURL( url ) );
-
-        url = bundle.getEntry( "images/warning.gif" ); //$NON-NLS-1$
-        this.imageRegistry.put( IMG_WARNING, ImageDescriptor.createFromURL( url ) );
-
-        url = bundle.getEntry( "images/down-arrow.gif" ); //$NON-NLS-1$
-        this.imageRegistry.put( IMG_DOWN_ARROW, ImageDescriptor.createFromURL( url ) );
-
-        // 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( 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( gdwhint( gd(), width ) );
-        this.deletePresetButton.setLayoutData( gdwhint( gd(), width ) );
-        
-        this.sform1 = new SashForm( this.topComposite, SWT.HORIZONTAL | SWT.SMOOTH );
-        this.sform1.setLayoutData( gdhspan( gdfill(), 4 ) );
-        
-        this.sform2 = new SashForm( this.sform1, SWT.VERTICAL | SWT.SMOOTH );
-        this.sform2.setLayoutData( gdhspan( gdfill(), 4 ) );
-        
-        this.treeViewer = new CheckboxTreeViewer( this.sform2, SWT.BORDER );
-        this.tree = this.treeViewer.getTree();
-        
-        this.tree.setHeaderVisible( true );
-
-        this.ceditor = new ComboBoxCellEditor( this.tree, new String[ 0 ], SWT.READ_ONLY );
-
-        this.treeViewer.setColumnProperties( new String[] { FACET_COLUMN, VERSION_COLUMN } );
-        this.treeViewer.setCellModifier( new CellModifier() );
-        this.treeViewer.setCellEditors( new CellEditor[] { null, this.ceditor } );
-
-        this.treeViewer.setContentProvider( new ContentProvider() );
-        this.treeViewer.setLabelProvider( new LabelProvider() );
-        this.treeViewer.setSorter( new Sorter() );
-        
-        this.colFacet = new TreeColumn( this.tree, SWT.NONE );
-        this.colFacet.setText( Resources.facetColumnLabel );
-        this.colFacet.setResizable( true );
-        
-        if( this.settings.get( CW_FACET ) == null )
-        {
-            this.settings.put( CW_FACET, computeDefaultFacetColumnWidth() );
-        }
-        
-        this.colFacet.setWidth( this.settings.getInt( CW_FACET ) );
-        
-        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, SWT.NONE );
-        this.colVersion.setText( Resources.versionColumnLabel );
-        this.colVersion.setResizable( true );
-        
-        if( this.settings.get( CW_VERSION ) == null )
-        {
-            this.settings.put( CW_VERSION, computeDefaultVersionColumnWidth() );
-        }
-
-        this.colVersion.setWidth( this.settings.getInt( CW_VERSION ) );
-        
-        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();
-                }
-            }
-        );
-        
-        new FacetToolTip( this.tree );
-        new CategoryToolTip( this.tree );
-        this.fixedFacetToolTip = new FixedFacetToolTip( this.tree );
-        
-        this.treeViewer.setInput( new Object() );
-
-        this.treeViewer.addSelectionChangedListener
-        (
-            new ISelectionChangedListener()
-            {
-                public void selectionChanged( final SelectionChangedEvent e )
-                {
-                    FacetsSelectionPanel.this.selectionChanged( e );
-                }
-            }
-        );
-
-        this.treeViewer.addCheckStateListener
-        (
-            new ICheckStateListener()
-            {
-                public void checkStateChanged( final CheckStateChangedEvent e )
-                {
-                    FacetsSelectionPanel.this.checkStateChanged( e );
-                }
-            }
-        );
-
-        this.tree.addListener
-        (
-            SWT.MouseDown,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    handleMouseDownEvent( event );
-                }
-            }
-        );
-        
-        this.tree.addListener
-        (
-            SWT.PaintItem,
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    handlePaintItemEvent( 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( gdhhint( gdhfill(), 80 ) );
-        
-        this.model.getTargetedRuntimesDataModel().addRuntimeFilter
-        ( 
-            new IRuntimeFilter()
-            {
-                public boolean check( final IRuntime runtime )
-                {
-                    for( IProjectFacetVersion fv : getSelectedProjectFacets() )
-                    {
-                        if( ! runtime.supports( fv ) )
-                        {
-                            return false;
-                        }
-                    }
-                    
-                    return true;
-                }
-            }
-        );
-        
-        addProjectFacetsListener
-        (
-            new Listener()
-            {
-                public void handleEvent( final Event event )
-                {
-                    final ChangeTargetedRuntimesDataModel rdm
-                        = getDataModel().getTargetedRuntimesDataModel();
-                    
-                    rdm.refreshTargetableRuntimes();
-                }
-            }
-        );
-        
-        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 = gdhalign( gdhspan( gd(), 4 ), GridData.END );
-        gd = gdwhint( gd, getPreferredWidth( this.showHideRuntimesButton ) + 15 );
-        this.showHideRuntimesButton.setLayoutData( gd );
-        
-        this.showHideRuntimesButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleShowHideRuntimes();
-                }
-            }
-        );
-        
-        this.addDisposeListener
-        (
-            new DisposeListener()
-            {
-                public void widgetDisposed( final DisposeEvent e )
-                {
-                    handleDisposeEvent();
-                }
-            }
-        );
-        
-        updateValidationDisplay();
-        Dialog.applyDialogFont(parent);
-        
-        // Bind to the model.
-        
-        this.model.addListener
-        ( 
-            ModifyFacetedProjectDataModel.EVENT_FIXED_FACETS_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleModelChangedEvent( ModifyFacetedProjectDataModel.EVENT_FIXED_FACETS_CHANGED );
-                }
-            }
-        );
-
-        this.model.addListener
-        ( 
-            ModifyFacetedProjectDataModel.EVENT_SELECTED_PRESET_CHANGED, 
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleModelChangedEvent( ModifyFacetedProjectDataModel.EVENT_SELECTED_PRESET_CHANGED );
-                }
-            }
-        );
-        
-        syncWithPresetsModel( this.presetsCombo );
-        
-        this.model.getTargetedRuntimesDataModel().addListener
-        ( 
-            ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED,
-            new IDataModelListener()
-            {
-                public void handleEvent()
-                {
-                    handleModelChangedEvent( ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED );
-                }
-            }
-        );
-    }
-    
-    public ModifyFacetedProjectDataModel getDataModel()
-    {
-        return this.model;
-    }
-    
-    public boolean isSelectionValid()
-    {
-        return ( this.problems.getSeverity() != IStatus.ERROR );
-    }
-    
-    public Set<Action> 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<Action> actions,
-                                     final Action.Type type,
-                                     final IProjectFacetVersion fv )
-    {
-        for( Action action : actions )
-        {
-            if( action.getType() == type && action.getProjectFacetVersion() == fv )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private static Action getAction( final Set<Action> actions,
-                                     final Action.Type type,
-                                     final IProjectFacet f )
-    {
-        for( Action action : actions )
-        {
-            if( action.getType() == type && 
-                action.getProjectFacetVersion().getProjectFacet() == f )
-            {
-                return action;
-            }
-        }
-        
-        return null;
-    }
-    
-    private Action createAction( final Set<Action> 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<IProjectFacetVersion> defaultFacets;
-        
-        if( runtime != null )
-        {
-            try
-            {
-                defaultFacets = runtime.getDefaultFacets( this.model.getFixedFacets() );
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-                return;
-            }
-        }
-        else
-        {
-            defaultFacets = new HashSet<IProjectFacetVersion>();
-            
-            for( IProjectFacet f : this.model.getFixedFacets() )
-            {
-                defaultFacets.add( f.getDefaultVersion() );
-            }
-        }
-            
-        setSelectedProjectFacets( defaultFacets );
-        this.model.setSelectedPreset( null );
-    }
-    
-    public Set<IProjectFacetVersion> getSelectedProjectFacets()
-    {
-        final Set<IProjectFacetVersion> set = new HashSet<IProjectFacetVersion>();
-
-        for( TableRowData trd : this.data )
-        {
-            if( trd.isSelected() )
-            {
-                set.add( trd.getCurrentVersion() );
-            }
-        }
-
-        return set;
-    }
-
-    public void setSelectedProjectFacets( final Set<IProjectFacetVersion> sel )
-    {
-        final List<TableRowData> toCheck = new ArrayList<TableRowData>();
-        final List<TableRowData> needsCategoryRefresh = new ArrayList<TableRowData>();
-        
-        for( IProjectFacetVersion fv : sel )
-        {
-            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( TableRowData trd : this.data )
-        {
-            if( trd.isSelected() && ! sel.contains( trd.getCurrentVersion() ) )
-            {
-                trd.setSelected( false );
-                needsCategoryRefresh.add( trd );
-            }
-        }
-
-        refresh();
-        
-        this.treeViewer.setCheckedElements( toCheck.toArray() );
-        
-        for( TableRowData trd : needsCategoryRefresh )
-        {
-            refreshCategoryState( trd );
-        }
-        
-        updateValidationDisplay();
-    }
-    
-    public void setFixedProjectFacets( final Set<IProjectFacet> fixed )
-    {
-        this.model.setFixedFacets( fixed );
-    }
-    
-    /**
-     * @deprecated
-     */
-    
-    public void selectPreset( final IPreset preset )
-    {
-        this.model.setSelectedPreset( preset.getId() );
-    }
-    
-    public boolean setFocus()
-    {
-        return this.tree.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( Listener listener : this.listeners )
-        {
-            listener.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.treeViewer.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.treeViewer.setSelection( ts );
-    }
-
-    public void notifySelectionChangedListeners()
-    {
-        final SelectionChangedEvent event = new SelectionChangedEvent( this, getSelection() );
-
-        for( ISelectionChangedListener listener : this.selectionListeners )
-        {
-            listener.selectionChanged( event );
-        }
-    }
-    
-    private ImageRegistry getImageRegistry()
-    {
-        return this.imageRegistry;
-    }
-
-    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.treeViewer.setChecked( el, true );
-                    
-                    final String msg 
-                        = NLS.bind( Resources.couldNotDeselectFixedFacetMessage,
-                                    trd.getProjectFacet().getLabel() );                    
-
-                    this.fixedFacetToolTip.setMessage( msg );
-                    
-                    final Point cursorLocation = getDisplay().getCursorLocation();
-                    this.fixedFacetToolTip.show( this.tree.toControl( cursorLocation ) );
-                }
-                
-                return;
-            }
-            
-            trd.setSelected( checked );
-            refreshCategoryState( trd );
-        }
-        else
-        {
-            final ContentProvider cp
-                = (ContentProvider) this.treeViewer.getContentProvider();
-
-            final Object[] children = cp.getChildren( el );
-            int selected = 0;
-            
-            for( Object child : children )
-            {
-                final TableRowData trd = (TableRowData) child;
-                
-                if( ! trd.isFixed() )
-                {
-                    trd.setSelected( checked );
-                    this.treeViewer.setChecked( trd, checked );
-                }
-                
-                if( trd.isSelected() )
-                {
-                    selected++;
-                }
-            }
-            
-            if( selected == 0 || selected == children.length )
-            {
-                this.treeViewer.setGrayed( el, false );
-            }
-            else
-            {
-                this.treeViewer.setGrayChecked( el, true );
-            }
-        }
-
-        updateValidationDisplay();
-        
-        this.model.setSelectedPreset( null );
-    }
-
-    private void updateValidationDisplay()
-    {
-        final Set<IProjectFacetVersion> sel = getSelectedProjectFacets();
-        final Set<Action> old = new HashSet<Action>( this.actions );
-        this.actions.clear();
-        
-        // What has been removed?
-        
-        for( IProjectFacetVersion fv : this.base )
-        {
-            if( ! sel.contains( fv ) )
-            {
-                this.actions.add( createAction( old, Action.Type.UNINSTALL, fv ) );
-            }
-        }
-
-        // What has been added?
-
-        for( IProjectFacetVersion fv : sel )
-        {
-            if( ! this.base.contains( fv ) )
-            {
-                this.actions.add( createAction( old, Action.Type.INSTALL, fv ) );
-            }
-        }
-        
-        // Coalesce uninstall/install pairs into version change actions, if
-        // possible.
-        
-        final Set<Action> toadd = new HashSet<Action>();
-        final Set<Action> toremove = new HashSet<Action>();
-        
-        for( Action action1 : this.actions )
-        {
-            for( Action action2 : this.actions )
-            {
-                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 );
-            }
-        }
-        else
-        {
-            if( this.sform2.getMaximizedControl() != null )
-            {
-                this.sform2.setMaximizedControl( null );
-            }
-        }
-
-        notifyProjectFacetsListeners();
-    }
-    
-    private IStatus calculateProblems()
-    {
-        IStatus st = ProjectFacetsManager.check( this.base, this.actions );
-        
-        for( IProjectFacetVersion fv : this.base )
-        {
-            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.treeViewer.getCheckedElements();
-        this.treeViewer.refresh();
-        this.treeViewer.setCheckedElements( checked );
-        refreshVersionsDropDown();
-    }
-    
-    public void setCategoryExpandedState( final ICategory category,
-                                          final boolean expanded )
-    {
-        this.treeViewer.setExpandedState( category, expanded );
-    }
-    
-    public void syncWithPresetsModel( final Combo combo )
-    {
-        final List<IPreset> sortedPresets = new ArrayList<IPreset>();
-        
-        // Contents : model -> view
-
-        final IDataModelListener modelToViewContentsListener = new IDataModelListener()
-        {
-            public void handleEvent()
-            {
-                synchronized( sortedPresets )
-                {
-                    sortedPresets.clear();
-                    sortedPresets.addAll( FacetsSelectionPanel.this.model.getAvailablePresets() );
-                    
-                    Collections.sort
-                    (
-                        sortedPresets,
-                        new Comparator<IPreset>()
-                        {
-                            public int compare( final IPreset p1, 
-                                                final IPreset p2 ) 
-                            {
-                                if( p1 == p2 )
-                                {
-                                    return 0;
-                                }
-                                else
-                                {
-                                    return p1.getLabel().compareTo( p2.getLabel() );
-                                }
-                            }
-                        }
-                    );
-                    
-                    final IPreset selectedPreset 
-                        = FacetsSelectionPanel.this.model.getSelectedPreset();
-                    
-                    combo.removeAll();
-                    combo.add( Resources.customPreset );
-                    
-                    if( selectedPreset == null )
-                    {
-                        combo.select( 0 );
-                    }
-                    
-                    for( IPreset preset : sortedPresets )
-                    {
-                        combo.add( preset.getLabel() );
-                        
-                        if( preset == selectedPreset )
-                        {
-                            combo.select( combo.getItemCount() - 1 );
-                        }
-                    }
-                }
-            }
-        };
-
-        this.model.addListener( ModifyFacetedProjectDataModel.EVENT_AVAILABLE_PRESETS_CHANGED,
-                                modelToViewContentsListener );
-        
-        // Selection : model -> view
-        
-        this.model.addListener
-        ( 
-            ModifyFacetedProjectDataModel.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 String presetId;
-                        
-                        if( selection == 0 )
-                        {
-                            presetId = null;
-                        }
-                        else
-                        {
-                            presetId = sortedPresets.get( selection - 1 ).getId();
-                        }
-                        
-                        FacetsSelectionPanel.this.model.setSelectedPreset( presetId );
-                    }
-                }
-            }
-        );
-        
-        // Trigger initial UI population.
-        
-        modelToViewContentsListener.handleEvent();
-    }
-    
-    private void refreshCategoryState( final TableRowData trd )
-    {
-        final ICategory category = trd.getProjectFacet().getCategory();
-        
-        if( category != null )
-        {
-            int selected = 0;
-    
-            for( IProjectFacet f : category.getProjectFacets() )
-            {
-                final TableRowData ctrd = findTableRowData( f );
-    
-                if( ctrd.isSelected() )
-                {
-                    selected++;
-                }
-            }
-    
-            if( selected == 0 )
-            {
-                this.treeViewer.setChecked( category, false );
-                this.treeViewer.setGrayed( category, false );
-            }
-            else if( selected == category.getProjectFacets().size() )
-            {
-                this.treeViewer.setChecked( category, true );
-                this.treeViewer.setGrayed( category, false );
-            }
-            else
-            {
-                this.treeViewer.setGrayChecked( category, true );
-            }
-        }
-    }
-    
-    private void refreshVersionsDropDown()
-    {
-        final TableRowData trd = getSelectedTableRowData();
-        
-        if( trd == null )
-        {
-            return;
-        }
-        
-        final List<IProjectFacetVersion> versions = trd.getVersions();
-        final String[] verstrs = new String[ versions.size() ];
-
-        for( int i = 0, n = versions.size(); i < n; i++ )
-        {
-            final IProjectFacetVersion fv = 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.treeViewer.getSelection();
-        
-        if( ssel != null && ! ssel.isEmpty() )
-        {
-            final Object obj = ssel.getFirstElement();
-            
-            if( obj instanceof TableRowData )
-            {
-                return (TableRowData) obj;
-            }
-        }
-
-        return null;
-    }
-    
-    private TableRowData findTableRowData( final IProjectFacet f )
-    {
-        return findTableRowData( f, false );
-    }
-
-    private TableRowData findTableRowData( final IProjectFacet f,
-                                           final boolean createIfNecessary )
-    {
-        for( TableRowData trd : this.data )
-        {
-            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 List<TreeItem> items = getAllTreeItems();
-        
-        TreeItem onItem = null;
-
-        for( TreeItem item : items )
-        {
-            if( item.getBounds( 0 ).contains( event.x, event.y ) )
-            {
-                onItem = item;
-                break;
-            }
-
-            if( item.getBounds( 1 ).contains( event.x, event.y ) )
-            {
-                this.tree.setSelection( new TreeItem[] { item } );
-                this.treeViewer.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.setMenu( this.popupMenu );
-        }
-        else
-        {
-            this.tree.setMenu( null );
-        }
-    }
-    
-    private void handlePaintItemEvent( final Event event )
-    {
-        final TreeItem item = (TreeItem) event.item;
-        final Object itemData = item.getData();
-
-        if( itemData instanceof TableRowData && event.index == 1 )
-        {
-            final TableRowData trd = (TableRowData) itemData;
-            
-            if( trd.getVersions().size() > 1 )
-            {
-                final Image arrowImage = getImageRegistry().get( IMG_DOWN_ARROW );
-                final Rectangle arrowImageBounds = arrowImage.getBounds();
-                
-                final int columnWidth = this.colVersion.getWidth();
-                final int itemHeight = this.tree.getItemHeight();
-                
-                int x, y;
-                
-                x = event.x + columnWidth - arrowImageBounds.width - 10;
-                y = event.y;
-                event.gc.setBackground( item.getDisplay().getSystemColor( SWT.COLOR_WHITE ) );
-                event.gc.fillRectangle( x, y, arrowImageBounds.width + 10, itemHeight );
-                
-                y = event.y + ( itemHeight - arrowImageBounds.height ) / 2;
-                event.gc.drawImage( arrowImage, x, y );
-            }
-        }
-    }
-    
-    private void handleDisposeEvent()
-    {
-        this.imageRegistry.dispose();
-    }
-    
-    private void handleShowConstraints()
-    {
-        final TreeItem[] items = this.tree.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.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<TableRowData> selected = new HashSet<TableRowData>();
-            
-            for( IProjectFacetVersion fv : preset.getProjectFacets() )
-            {
-                final TableRowData trd = findTableRowData( fv.getProjectFacet() );
-                
-                if( ! trd.isSelected() )
-                {
-                    this.treeViewer.setChecked( trd, true );
-                    trd.setSelected( true );
-                    refreshCategoryState( trd );
-                }
-                
-                if( trd.getCurrentVersion() != fv )
-                {
-                    trd.setCurrentVersion( fv );
-                    this.treeViewer.update( trd, null );
-                }
-                
-                selected.add( trd );
-            }
-
-            for( TableRowData trd : this.data )
-            {
-                if( ! selected.contains( trd ) )
-                {
-                    this.treeViewer.setChecked( trd, false );
-                    trd.setSelected( false );
-                    refreshCategoryState( trd );
-                }
-            }
-
-            updateValidationDisplay();
-        }
-    }
-    
-    private void handleSavePreset()
-    {
-        final Set<IProjectFacetVersion> facets = getSelectedProjectFacets();
-        final IPreset preset = SavePresetDialog.showDialog( getShell(), facets );
-        
-        if( preset != null )
-        {
-            this.model.refreshAvailablePresets();
-            this.model.setSelectedPreset( preset.getId() );
-        }
-    }
-    
-    private void handleDeletePreset()
-    {
-        final IPreset preset = this.model.getSelectedPreset();
-        this.model.setSelectedPreset( null );
-        ProjectFacetsManager.deletePreset( preset );
-        this.model.refreshAvailablePresets();
-    }
-    
-    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 void handleModelChangedEvent( final String event )
-    {
-        if( event.equals( ModifyFacetedProjectDataModel.EVENT_FIXED_FACETS_CHANGED ) )
-        {
-            for( TableRowData trd : this.data )
-            {
-                trd.setFixed( false );
-            }
-
-            for( IProjectFacet f : this.model.getFixedFacets() )
-            {
-                final TableRowData trd = findTableRowData( f, true );
-                
-                trd.setFixed( true );
-                trd.setSelected( true );
-                this.treeViewer.setChecked( trd, true );
-            }
-
-            refresh();
-            updateValidationDisplay();
-        }
-        else if( event.equals( ModifyFacetedProjectDataModel.EVENT_SELECTED_PRESET_CHANGED ) )
-        {
-            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.getType() == IPreset.Type.USER_DEFINED );
-            }
-        }
-        else if( event.equals( ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED ) )
-        {
-            refresh();
-        }
-    }
-    
-    private List<TreeItem> getAllTreeItems()
-    {
-        final List<TreeItem> result = new ArrayList<TreeItem>();
-        getAllTreeItems( this.tree.getItems(), result );
-        return result;
-    }
-
-    private static void getAllTreeItems( final TreeItem[] items,
-                                         final List<TreeItem> result )
-    {
-        for( TreeItem item : items )
-        {
-            result.add( item );
-            getAllTreeItems( item.getItems(), result );
-        }
-    }
-    
-    private TreeItem getTreeItem( final int x,
-                                  final int y )
-    {
-        return getTreeItemHelper( x, y, this.tree.getItems() );
-    }
-    
-    private static TreeItem getTreeItemHelper( final int x,
-                                               final int y,
-                                               final TreeItem[] items )
-    {
-        for( TreeItem item : items )
-        {
-            if( item.getBounds().contains( x, y ) )
-            {
-                return item;
-            }
-            
-            final TreeItem res = getTreeItemHelper( x, y, item.getItems() );
-            
-            if( res != null )
-            {
-                return res;
-            }
-        }
-        
-        return null;
-    }
-    
-    /*private TreeItem getTreeItem( final Object modelObject )
-    {
-        for( TreeItem item : getAllTreeItems() )
-        {
-            if( item.getData().equals( modelObject ) )
-            {
-                return item;
-            }
-        }
-        
-        return null;
-    }*/
-    
-    private int computeDefaultFacetColumnWidth()
-    {
-        final GC gc = new GC( this.getDisplay() );
-        int maxFacetLabelWidth = 0;
-        
-        try
-        {
-            gc.setFont( this.tree.getFont() );
-            
-            for( IProjectFacet f : ProjectFacetsManager.getProjectFacets() )
-            {
-                maxFacetLabelWidth = max( maxFacetLabelWidth, gc.textExtent( f.getLabel() ).x );
-            }
-        }
-        finally
-        {
-            gc.dispose();
-        }
-        
-        return max( maxFacetLabelWidth + 100, 200 );
-    }
-
-    private int computeDefaultVersionColumnWidth()
-    {
-        final GC gc = new GC( this.getDisplay() );
-        int maxVersionStringWidth = 0;
-        final int columnLabelWidth;
-        
-        try
-        {
-            gc.setFont( this.tree.getFont() );
-
-            for( IProjectFacet f : ProjectFacetsManager.getProjectFacets() )
-            {
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    final int textExtent = gc.textExtent( fv.getVersionString() ).x;
-                    maxVersionStringWidth = max( maxVersionStringWidth, textExtent + 30 );
-                }
-            }
-
-            columnLabelWidth = gc.textExtent( Resources.versionColumnLabel ).x + 30;
-        }
-        finally
-        {
-            gc.dispose();
-        }
-        
-        return max( maxVersionStringWidth, columnLabelWidth );
-    }
-    
-    private final class TableRowData
-    {
-        private IProjectFacet f;
-        private List<IProjectFacetVersion> allVersionsSorted;
-        private IProjectFacetVersion current;
-        private boolean isSelected;
-        private boolean isFixed;
-
-        public TableRowData( final IProjectFacet f )
-        
-            throws CoreException
-            
-        {
-            this.f = f;
-            // TODO: Remove this unnecessary copy.
-            this.allVersionsSorted = new ArrayList<IProjectFacetVersion>( f.getSortedVersions( false ) );
-            this.current = f.getDefaultVersion();
-            this.isSelected = false;
-            this.isFixed = false;
-        }
-
-        public IProjectFacet getProjectFacet()
-        {
-            return this.f;
-        }
-
-        public List<IProjectFacetVersion> getVersions()
-        {
-            final Set<IProjectFacetVersion> versions
-                = FacetsSelectionPanel.this.model.getAvailableFacets().get( this.f );
-            
-            if( versions == null )
-            {
-                return Collections.emptyList();
-            }
-            else
-            {
-                final List<IProjectFacetVersion> sortedVersions 
-                    = new ArrayList<IProjectFacetVersion>( this.allVersionsSorted );
-                
-                sortedVersions.retainAll( versions );
-                
-                return sortedVersions;
-            }
-        }
-        
-        public void addUnknownVersion( final IProjectFacetVersion fv )
-        {
-            try
-            {
-                final Comparator<String> c = this.f.getVersionComparator();
-                boolean added = false;
-                
-                for( int i = 0, n = this.allVersionsSorted.size(); i < n; i++ )
-                {
-                    final IProjectFacetVersion x = this.allVersionsSorted.get( i );
-                    
-                    if( c.compare( x.getVersionString(), fv.getVersionString() ) < 0 )
-                    {
-                        this.allVersionsSorted.add( i, fv );
-                        added = true;
-                        break;
-                    }
-                }
-                
-                if( ! added )
-                {
-                    this.allVersionsSorted.add( fv );
-                }
-            }
-            catch( CoreException e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-
-        public IProjectFacetVersion getCurrentVersion()
-        {
-            final Set<IProjectFacetVersion> versions
-                = FacetsSelectionPanel.this.model.getAvailableFacets().get( this.f );
-            
-            if( versions == null )
-            {
-                if( this.current != null )
-                {
-                    this.current = null;
-                }
-            }
-            else
-            {
-                if( ! versions.contains( this.current ) )
-                {
-                    this.current = 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 List<Object> list = new ArrayList<Object>();
-            final Set<ICategory> categories = ProjectFacetsManager.getCategories();
-
-            for( ICategory cat : categories )
-            {
-                boolean visible = false;
-
-                for( IProjectFacet f : cat.getProjectFacets() )
-                {
-                    if( findTableRowData( f ).isVisible() )
-                    {
-                        visible = true;
-                        break;
-                    }
-                }
-
-                if( visible )
-                {
-                    list.add( cat );
-                }
-            }
-
-            for( TableRowData trd : FacetsSelectionPanel.this.data )
-            {
-                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 List<TableRowData> trds = new ArrayList<TableRowData>();
-
-                for( IProjectFacet f : category.getProjectFacets() )
-                {
-                    final TableRowData trd = findTableRowData( f );
-
-                    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
-
-    {
-        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:
-                    {
-                        return trd.getCurrentVersion().getVersionString();
-                    }
-                    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 = getImageRegistry().get( id );
-            
-            if( image == null )
-            {
-                final IDecorationsProvider decprov
-                    = (IDecorationsProvider) obj.getAdapter( IDecorationsProvider.class );
-                
-                ImageDescriptor imgdesc = decprov.getIcon();
-                
-                if( isFixed )
-                {
-                    imgdesc = new FixedFacetImageDescriptor( imgdesc );
-                }
-                
-                getImageRegistry().put( id, imgdesc );
-                image = getImageRegistry().get( id );
-            }
-
-            return image;
-        }
-
-        public boolean isLabelProperty( final Object obj,
-                                        final String s )
-        {
-            return false;
-        }
-        
-        public void dispose() {}
-        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<IProjectFacetVersion> 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 = trd.getVersions().get( index );
-                    
-                    if( trd.getCurrentVersion() != fv )
-                    {
-                        trd.setCurrentVersion( fv );
-                        FacetsSelectionPanel.this.treeViewer.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 FacetToolTip
-    
-        extends HeaderToolTip
-        
-    {
-        public FacetToolTip( final Control control )
-        {
-            super( control );
-        }
-        
-        @Override
-        protected final boolean shouldCreateToolTip( final Event event ) 
-        {
-            final TreeItem treeItem = getTreeItem( event.x, event.y );
-            String description = null;
-            
-            if( treeItem != null && treeItem.getBounds( 0 ).contains( event.x, event.y ) )
-            {
-                final Object treeItemData = treeItem.getData();
-                
-                if( treeItemData instanceof TableRowData )
-                {
-                    final IProjectFacetVersion fv 
-                        = ( (TableRowData) treeItemData ).getCurrentVersion();
-                    
-                    description = fv.getProjectFacet().getDescription();
-                }
-            }
-            
-            return ( description != null && description.trim().length() > 0 );
-        }
-
-        @Override
-        protected String getToolTipTitle( final Event event )
-        {
-            final TableRowData trd = (TableRowData) getTreeItem( event.x, event.y ).getData();
-            return trd.getCurrentVersion().toString();
-        }
-
-        @Override
-        protected Composite createContentArea( final Event event,
-                                               final Composite parent )
-        {
-            final Display display = parent.getDisplay();
-            
-            final Composite composite = new Composite( parent, SWT.NONE );
-            composite.setLayout( gl( 1 ) );
-            composite.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-            
-            final Label label = new Label( composite, SWT.WRAP );
-            label.setLayoutData( gdfill() );
-            label.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-
-            final TableRowData trd = (TableRowData) getTreeItem( event.x, event.y ).getData();
-            label.setText( trd.getCurrentVersion().getProjectFacet().getDescription() );
-            
-            return composite;
-        }
-    }
-
-    private final class CategoryToolTip
-    
-        extends HeaderToolTip
-        
-    {
-        public CategoryToolTip( final Control control )
-        {
-            super( control );
-        }
-        
-        @Override
-        protected final boolean shouldCreateToolTip( final Event event ) 
-        {
-            final TreeItem treeItem = getTreeItem( event.x, event.y );
-            String description = null;
-            
-            if( treeItem != null && treeItem.getBounds( 0 ).contains( event.x, event.y ) )
-            {
-                final Object treeItemData = treeItem.getData();
-                
-                if( treeItemData instanceof ICategory )
-                {
-                    description = ( (ICategory) treeItemData ).getDescription();
-                }
-            }
-            
-            return ( description != null && description.trim().length() > 0 );
-        }
-    
-        @Override
-        protected String getToolTipTitle( final Event event )
-        {
-            return ( (ICategory) getTreeItem( event.x, event.y ).getData() ).getLabel();
-        }
-    
-        @Override
-        protected Composite createContentArea( final Event event,
-                                               final Composite parent )
-        {
-            final Display display = parent.getDisplay();
-            
-            final Composite composite = new Composite( parent, SWT.NONE );
-            composite.setLayout( gl( 1 ) );
-            composite.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-            
-            final Label label = new Label( composite, SWT.WRAP );
-            label.setLayoutData( gdfill() );
-            label.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-    
-            final ICategory category = (ICategory) getTreeItem( event.x, event.y ).getData();
-            label.setText( category.getDescription() );
-            
-            return composite;
-        }
-    }
-
-    private final class FixedFacetToolTip
-    
-        extends BasicToolTip
-        
-    {
-        private static final int FAKE_EVENT_TYPE = -9999;
-        
-        public FixedFacetToolTip( final Control control )
-        {
-            super( control );
-            setPopupDelay( 0 );
-        }
-        
-        public void show( final Point location )
-        {
-            // The JFace ToolTip class does not support alternative methods of tool tip activation.
-            // An enhancement request https://bugs.eclipse.org/bugs/show_bug.cgi?id=174844 tracks
-            // this issue. When that enhancement request has been resolved, this hacky 
-            // implementation should be replaced with something more sensible.
-            
-            final Event fakeEvent = new Event();
-            fakeEvent.type = FAKE_EVENT_TYPE;
-            fakeEvent.x = location.x;
-            fakeEvent.y = location.y;
-            
-            try
-            {
-                final Method method
-                    = ToolTip.class.getDeclaredMethod( "toolTipCreate", Event.class ); //$NON-NLS-1$
-                
-                method.setAccessible( true );
-                method.invoke( this, fakeEvent );
-            }
-            catch( Exception e )
-            {
-                FacetUiPlugin.log( e );
-            }
-        }
-        
-        @Override
-        protected final boolean shouldCreateToolTip( final Event event ) 
-        {
-            return ( event.type == FAKE_EVENT_TYPE );
-        }
-    }
-    
-    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
-
-    {
-        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 getImageRegistry().get( IMG_ERROR );
-            }
-            else
-            {
-                return getImageRegistry().get( IMG_WARNING );
-            }
-        }
-
-        public boolean isLabelProperty( final Object obj,
-                                        final String s )
-        {
-            return false;
-        }
-
-        public void dispose() {}
-        public void addListener( final ILabelProviderListener listener ) {}
-        public void removeListener( ILabelProviderListener listener ) {}
-    }
-    
-    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 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 6e98a3d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.properties
+++ /dev/null
@@ -1,14 +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 >>
-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/ModifyFacetedProjectDataModel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ModifyFacetedProjectDataModel.java
deleted file mode 100644
index b0bfa8c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ModifyFacetedProjectDataModel.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import static org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel.EVENT_PRIMARY_RUNTIME_CHANGED;
-import static org.eclipse.wst.common.project.facet.ui.internal.ChangeTargetedRuntimesDataModel.EVENT_TARGETED_RUNTIMES_CHANGED;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IDynamicPreset;
-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.internal.util.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ModifyFacetedProjectDataModel
-
-    extends AbstractDataModel
-    
-{
-    public static String EVENT_FIXED_FACETS_CHANGED = "fixedFacetsChanged"; //$NON-NLS-1$
-    public static String EVENT_AVAILABLE_FACETS_CHANGED = "availableFacetsChanged"; //$NON-NLS-1$
-    public static String EVENT_AVAILABLE_PRESETS_CHANGED = "availablePresetsChanged"; //$NON-NLS-1$
-    public static String EVENT_SELECTED_PRESET_CHANGED = "selectedPresetChanged"; //$NON-NLS-1$
-    
-    private Set<IProjectFacet> fixedFacets;
-    private Map<IProjectFacet,Set<IProjectFacetVersion>> availableFacets;
-    private IndexedSet<String,IPreset> availablePresets;
-    private IPreset selectedPreset;
-    private final ChangeTargetedRuntimesDataModel runtimesDataModel;
-    
-    public ModifyFacetedProjectDataModel()
-    {
-        this.fixedFacets = Collections.emptySet();
-        this.availableFacets = Collections.emptyMap();
-        this.availablePresets = new IndexedSet<String,IPreset>();
-        this.selectedPreset = null;
-        this.runtimesDataModel = new ChangeTargetedRuntimesDataModel();
-
-        refreshAvailableFacets();
-        
-        final IDataModelListener avFacetsListener = new IDataModelListener()
-        {
-            public void handleEvent()
-            {
-                refreshAvailableFacets();
-            }
-        };
-        
-        addListener( EVENT_FIXED_FACETS_CHANGED, avFacetsListener );
-        this.runtimesDataModel.addListener( EVENT_TARGETED_RUNTIMES_CHANGED, avFacetsListener );
-
-        refreshAvailablePresets();
-        
-        final IDataModelListener avPresetsListener = new IDataModelListener()
-        {
-            public void handleEvent()
-            {
-                refreshAvailablePresets();
-            }
-        };
-        
-        addListener( EVENT_FIXED_FACETS_CHANGED, avPresetsListener );
-        addListener( EVENT_AVAILABLE_FACETS_CHANGED, avPresetsListener );
-        this.runtimesDataModel.addListener( EVENT_PRIMARY_RUNTIME_CHANGED, avPresetsListener );
-    }
-    
-    public synchronized Set<IProjectFacet> getFixedFacets()
-    {
-        return this.fixedFacets;
-    }
-    
-    public synchronized void setFixedFacets( final Set<IProjectFacet> fixed )
-    {
-        if( this.fixedFacets.equals( fixed ) )
-        {
-            return;
-        }
-        
-        this.fixedFacets = Collections.unmodifiableSet( new HashSet<IProjectFacet>( fixed ) );
-        
-        notifyListeners( EVENT_FIXED_FACETS_CHANGED );
-    }
-    
-    public synchronized Map<IProjectFacet,Set<IProjectFacetVersion>> getAvailableFacets()
-    {
-        return this.availableFacets;
-    }
-    
-    public synchronized boolean isFacetAvailable( final IProjectFacet f )
-    {
-        return this.availableFacets.containsKey( f );
-    }
-    
-    public synchronized boolean isFacetAvailable( final IProjectFacetVersion fv )
-    {
-        final Set<IProjectFacetVersion> versions = this.availableFacets.get( fv.getProjectFacet() );
-        return ( versions != null && versions.contains( fv ) );
-    }
-    
-    private synchronized void refreshAvailableFacets()
-    {
-        final Map<IProjectFacet,Set<IProjectFacetVersion>> newAvailableFacets
-            = new HashMap<IProjectFacet,Set<IProjectFacetVersion>>();
-        
-        final Set<IRuntime> targetedRuntimes = this.runtimesDataModel.getTargetedRuntimes();
-        
-        for( IProjectFacet f : ProjectFacetsManager.getProjectFacets() )
-        {
-            Set<IProjectFacetVersion> versions = null;
-            
-            for( IProjectFacetVersion fv : f.getVersions() )
-            {
-                boolean available = true;
-                
-                for( IRuntime r : targetedRuntimes )
-                {
-                    if( ! r.supports( fv ) )
-                    {
-                        available = false;
-                        break;
-                    }
-                }
-                
-                if( available && ! fv.isValidFor( this.fixedFacets ) )
-                {
-                    available = false;
-                }
-                
-                if( available )
-                {
-                    if( versions == null )
-                    {
-                        versions = new HashSet<IProjectFacetVersion>();
-                    }
-                    
-                    versions.add( fv );
-                }
-            }
-            
-            if( versions != null )
-            {
-                newAvailableFacets.put( f, Collections.unmodifiableSet( versions ) );
-            }
-        }
-        
-        if( ! this.availableFacets.equals( newAvailableFacets ) )
-        {
-            this.availableFacets = Collections.unmodifiableMap( newAvailableFacets );
-            notifyListeners( EVENT_AVAILABLE_FACETS_CHANGED );
-        }
-    }
-    
-    public synchronized Set<IPreset> getAvailablePresets()
-    {
-        return this.availablePresets.getUnmodifiable();
-    }
-    
-    public synchronized void refreshAvailablePresets()
-    {
-        final IndexedSet<String,IPreset> newAvailablePresets = new IndexedSet<String,IPreset>();
-        Map<String,Object> context = null;
-        
-        for( IPreset preset : ProjectFacetsManager.getPresets() )
-        {
-            if( preset.getType() == IPreset.Type.DYNAMIC )
-            {
-                if( context == null )
-                {
-                    context = new HashMap<String,Object>();
-                    
-                    context.put( IDynamicPreset.CONTEXT_KEY_FIXED_FACETS, this.fixedFacets );
-                    
-                    context.put( IDynamicPreset.CONTEXT_KEY_PRIMARY_RUNTIME, 
-                                 this.runtimesDataModel.getPrimaryRuntime() );
-                }
-                
-                preset = ( (IDynamicPreset) preset ).resolve( context );
-                
-                if( preset == null )
-                {
-                    continue;
-                }
-            }
-            
-            final Set<IProjectFacetVersion> facets = preset.getProjectFacets();
-            boolean applicable = true;
-            
-            // All of the facets listed in the preset and their versions must be available.
-            
-            for( IProjectFacetVersion fv : facets )
-            {
-                if( ! isFacetAvailable( fv ) )
-                {
-                    applicable = false;
-                    break;
-                }
-            }
-            
-            // The preset must span across all of the fixed facets.
-            
-            for( IProjectFacet f : this.fixedFacets )
-            {
-                boolean found = false;
-
-                for( IProjectFacetVersion fv : f.getVersions() )
-                {
-                    if( facets.contains( fv ) )
-                    {
-                        found = true;
-                        break;
-                    }
-                }
-                
-                if( ! found )
-                {
-                    applicable = false;
-                    break;
-                }
-            }
-            
-            if( applicable )
-            {
-                newAvailablePresets.add( preset.getId(), preset );
-            }
-        }
-        
-        if( ! this.availablePresets.equals( newAvailablePresets ) )
-        {
-            this.availablePresets = newAvailablePresets;
-            notifyListeners( EVENT_AVAILABLE_PRESETS_CHANGED );
-            
-            if( this.selectedPreset != null && 
-                ! this.availablePresets.contains( this.selectedPreset ) )
-            {
-                setSelectedPreset( null );
-            }
-        }
-    }
-    
-    public synchronized IPreset getSelectedPreset()
-    {
-        return this.selectedPreset;
-    }
-    
-    public synchronized void setSelectedPreset( final String presetId )
-    {
-        if( presetId != null && ! this.availablePresets.containsKey( presetId ) )
-        {
-            final String msg = Resources.bind( Resources.couldNotSelectPreset, presetId ); 
-            throw new IllegalArgumentException( msg );
-        }
-        
-        final IPreset preset = this.availablePresets.get( presetId );
-
-        if( ! equals( this.selectedPreset, preset ) )
-        {
-            this.selectedPreset = preset;
-            
-            notifyListeners( EVENT_SELECTED_PRESET_CHANGED );
-        }
-    }
-    
-    public ChangeTargetedRuntimesDataModel getTargetedRuntimesDataModel()
-    {
-        return this.runtimesDataModel;
-    }
-    
-    public void dispose()
-    {
-        this.runtimesDataModel.dispose();
-    }
-    
-    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 couldNotSelectPreset;
-        
-        static
-        {
-            initializeMessages( ModifyFacetedProjectDataModel.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ModifyFacetedProjectDataModel.properties b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ModifyFacetedProjectDataModel.properties
deleted file mode 100644
index b7535e2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ModifyFacetedProjectDataModel.properties
+++ /dev/null
@@ -1 +0,0 @@
-couldNotSelectPreset = Could not select preset "{0}". One or more required of the required facets are not visible.
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 5fe48c8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/ProjectFacetsUiManagerImpl.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.findExtensions;
-import static org.eclipse.wst.common.project.facet.core.internal.util.PluginUtil.getTopLevelElements;
-import static org.eclipse.wst.common.project.facet.ui.internal.FacetUiPlugin.PLUGIN_ID;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IConfigurationElement;
-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.eclipse.wst.common.project.facet.ui.IFacetWizardPage;
-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 Map<String,WizardPagesInfo> wizardPages;
-    
-    /**
-     * Maps either IProjectFacet or IRuntimeComponentType to an ImageDescriptor.
-     */
-    
-    private static final Map<Object,ImageDescriptor> icons = new HashMap<Object,ImageDescriptor>();
-    private static ImageDescriptor defaultIcon;
-    
-    static
-    {
-        // Make sure that the core extensions are loaded first.
-        
-        ProjectFacetsManager.getProjectFacets();
-        RuntimeManager.getRuntimeComponentTypes();
-        
-        wizardPages = new HashMap<String,WizardPagesInfo>();
-        
-        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 = icons.get( obj );
-        return imgdesc != null ? imgdesc : defaultIcon;
-    }
-    
-    public static List<IFacetWizardPage> getWizardPages( final String actionId )
-    {
-        final WizardPagesInfo info = wizardPages.get( actionId );
-        
-        if( info != null )
-        {
-            return getWizardPages( info.plugin, info.pages );
-        }
-        
-        return Collections.emptyList();
-    }
-
-    /**
-     * @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<IFacetWizardPage> getWizardPages( final String plugin,
-                                                          final List<String> clnames )
-    {
-        final List<IFacetWizardPage> pages = new ArrayList<IFacetWizardPage>();
-        
-        for( String clname : clnames )
-        {
-            try
-            {
-                pages.add( (IFacetWizardPage) create( plugin, clname ) );
-            }
-            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()
-    {
-        for( IConfigurationElement config
-             : getTopLevelElements( findExtensions( PLUGIN_ID, WIZARD_PAGES_EXTENSION_ID ) ) )
-        {
-            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()
-    {
-        for( IConfigurationElement config
-            : getTopLevelElements( findExtensions( PLUGIN_ID, WIZARD_PAGES_EXTENSION_ID_OLD ) ) )
-        {
-            final String ename = config.getName();
-            
-            if( ename.equals( EL_WIZARD_PAGES ) )
-            {
-                readWizardPagesOld( config );
-            }
-        }
-    }
-    
-    @SuppressWarnings( "deprecation" )
-    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<String> readPageList( final IConfigurationElement config )
-    {
-        final List<String> list = new ArrayList<String>();
-        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()
-    {
-        for( IConfigurationElement config
-            : getTopLevelElements( findExtensions( PLUGIN_ID, IMAGES_EXTENSION_ID ) ) )
-        {
-            final String ename = config.getName();
-            
-            if( ename.equals( EL_IMAGE ) )
-            {
-                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 );
-                        
-                        break;
-                    }
-                    
-                    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 );
-                        
-                        break;
-                    }
-                    
-                    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 );
-                        
-                        break;
-                    }
-                    
-                    target = RuntimeManager.getRuntimeComponentType( rct );
-                }
-                else
-                {
-                    reportMissingAttribute( config, ATTR_FACET );
-                    break;
-                }
-                
-                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<String> 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 4103182..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.java
+++ /dev/null
@@ -1,866 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation and ongoing maintenance
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gd;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhalign;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdwhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gl;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.glmargins;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.SwtUtil.getPreferredWidth;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-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;
-import org.osgi.framework.Bundle;
-
-/**
- * @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 Button newRuntimeButton;
-    private final Label runtimeComponentsLabel;
-    private final TableViewer runtimeComponents;
-    private IRuntime currentPrimaryRuntime;
-    private final List<IDataModelListener> listeners;
-    private Color colorGray;
-    
-    public RuntimesPanel( final Composite parent,
-                          final int style,
-                          final ChangeTargetedRuntimesDataModel model )
-    {
-        super( parent, style );
-        
-        this.listeners = new ArrayList<IDataModelListener>();
-        
-        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 );
-
-        // 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();
-                }
-            }
-        );
-        
-        final Composite buttons = new Composite( this, SWT.NONE );
-        buttons.setLayoutData( gdhalign( gd(), GridData.END ) );
-        buttons.setLayout( glmargins( gl( 2 ), 0, 0 ) );
-        
-        GridData gd;
-        
-        this.makePrimaryButton = new Button( buttons, SWT.PUSH );
-        this.makePrimaryButton.setText( Resources.makePrimaryLabel );
-        gd = gdwhint( 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.newRuntimeButton = new Button( buttons, SWT.PUSH );
-        this.newRuntimeButton.setText( Resources.newRuntimeButtonLabel );
-        gd = gdwhint( gd(), getPreferredWidth( this.newRuntimeButton ) + 15 );
-        this.newRuntimeButton.setLayoutData( gd );
-
-        this.newRuntimeButton.addSelectionListener
-        (
-            new SelectionAdapter()
-            {
-                public void widgetSelected( final SelectionEvent e )
-                {
-                    handleNewRuntimeButtonSelected();
-                }
-            }
-        );
-        
-        this.runtimeComponentsLabel = new Label( this, SWT.NONE );
-        this.runtimeComponentsLabel.setText( Resources.runtimeCompositionLabel );
-        this.runtimeComponentsLabel.setLayoutData( gdhfill() );
-        
-        final Color infoBackgroundColor
-            = parent.getDisplay().getSystemColor( SWT.COLOR_INFO_BACKGROUND );
-        
-        this.runtimeComponents = new TableViewer( this, SWT.BORDER );
-        this.runtimeComponents.getTable().setLayoutData( gdhhint( gdhfill(), 50 ) );
-        this.runtimeComponents.getTable().setBackground( infoBackgroundColor );
-        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();
-        
-	    Dialog.applyDialogFont( parent );
-    }
-    
-    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<IRuntime> targeted = this.model.getTargetedRuntimes();
-        
-        for( IRuntime r : this.model.getTargetableRuntimes() )
-        {
-            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() );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    private void handleNewRuntimeButtonSelected()
-    {
-        final String SERVER_UI_PLUGIN_ID = "org.eclipse.wst.server.ui"; //$NON-NLS-1$
-        final String CLASS_NAME = "org.eclipse.wst.server.ui.internal.ServerUIPlugin"; //$NON-NLS-1$
-        final String METHOD_NAME = "showNewRuntimeWizard"; //$NON-NLS-1$
-        
-        final Bundle serverUiBundle = Platform.getBundle( SERVER_UI_PLUGIN_ID );
-        
-        if( serverUiBundle == null )
-        {
-            this.newRuntimeButton.setEnabled( false );
-            return;
-        }
-
-        try
-        {
-            final Class serverUiPluginClass = serverUiBundle.loadClass( CLASS_NAME );
-            
-            final Method method
-                = serverUiPluginClass.getMethod( METHOD_NAME, Shell.class, String.class );
-            
-            final Object result = method.invoke( null, getShell(), null );
-            
-            if( result.equals( true ) )
-            {
-                this.model.refreshTargetableRuntimes();
-            }
-        }
-        catch( Exception e )
-        {
-            FacetUiPlugin.log( e );
-        }
-    }
-
-    private void handleWidgetDisposed()
-    {
-        removeDataModelListeners();
-        
-        this.colorGray.dispose();
-    }
-    
-    private void refresh()
-    {
-        this.runtimes.refresh();
-
-        final Set<IRuntime> untargetable = new HashSet<IRuntime>( 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( IDataModelListener listener : this.listeners )
-        {
-            this.model.removeListener( listener );
-        }
-    }
-    
-    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 ).getLocalizedName();
-        }
-
-        public Image getImage( final Object element )
-        {
-            final IRuntime r = (IRuntime) element;
-            
-            final IRuntimeComponent rc = 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.getLocalizedName().compareToIgnoreCase( r2.getLocalizedName() );
-        }
-    }
-    
-    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 class Resources
-    
-        extends NLS
-        
-    {
-        public static String runtimesLabel;
-        public static String runtimeCompositionLabel;
-        public static String makePrimaryLabel;
-        public static String newRuntimeButtonLabel;
-        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 c87b092..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPanel.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-runtimesLabel = Runtimes:
-runtimeCompositionLabel = Runtime Composition:
-makePrimaryLabel = Make Primary
-newRuntimeButtonLabel = New...
-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 664fc8a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/RuntimesPropertyPage.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation and ongoing maintenance
- *    David Schneider, david.schneider@unisys.com - [142500] WTP properties pages fonts don't follow Eclipse preferences
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-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.Dialog;
-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.ModifyFacetedProjectWizard;
-
-/**
- * @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( IProjectFacetVersion fv : fpj.getProjectFacets() )
-                        {
-                            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 uninstallFacetsLink = new Hyperlink( composite, SWT.NONE );
-            uninstallFacetsLink.setForeground( parent.getDisplay().getSystemColor( SWT.COLOR_DARK_BLUE ) );
-            uninstallFacetsLink.setUnderlined( true );
-            uninstallFacetsLink.setText( Resources.uninstallFacetsLinkLabel );
-            
-            uninstallFacetsLink.addHyperlinkListener
-            (
-                new HyperlinkAdapter() 
-                {
-                    public void linkActivated( final HyperlinkEvent evt ) 
-                    {
-                        performAddRemoveFacets();
-                    }
-                }
-            );
-            
-            composite.addDisposeListener
-            (
-                new DisposeListener()
-                {
-                    public void widgetDisposed( final DisposeEvent e )
-                    {
-                        handleDisposeEvent();
-                    }
-                }
-            );
-            
-    	    Dialog.applyDialogFont( parent );
-            
-            return composite;
-        }
-        return null;
-    }
-    
-    public boolean performOk() 
-    {
-        final Set<IRuntime> 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 ModifyFacetedProjectWizard( this.project );
-        final WizardDialog dialog = new WizardDialog( getShell(), wizard );
-        
-        dialog.open();     
-    }
-    
-    private void handleProjectChangedEvent()
-    {
-        this.model.refreshTargetableRuntimes();
-        
-        final Set<IRuntime> 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 uninstallFacetsLinkLabel;
-        
-        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 d36a585..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.
-
-uninstallFacetsLinkLabel = Uninstall 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 30e327f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/SavePresetDialog.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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 implementation and ongoing maintenance
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal;
-
-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.IProjectFacetVersion;
-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<IProjectFacetVersion> 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( IPreset preset : ProjectFacetsManager.getPresets() )
-            {
-                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/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/BasicToolTip.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/BasicToolTip.java
deleted file mode 100644
index 8f9cada..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/BasicToolTip.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal.util;
-
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdwhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gl;
-
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class BasicToolTip
-    
-    extends ToolTip
-    
-{
-    private String message = ""; //$NON-NLS-1$
-    
-    public BasicToolTip( final Control control )
-    {
-        super( control );
-        
-        setPopupDelay( 1000 );
-        setShift( new Point( 10, 3 ) );
-    }
-
-    @Override
-    protected final Composite createToolTipContentArea( final Event event,
-                                                        final Composite parent )
-    {
-        final Display display = parent.getDisplay();
-        
-        final Composite composite = new Composite( parent, SWT.NONE );
-        composite.setLayout( gl( 1 ) );
-        composite.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-        
-        final Label label = new Label( composite, SWT.WRAP );
-        label.setLayoutData( gdwhint( gdfill(), 300 ) );
-        label.setBackground( display.getSystemColor( SWT.COLOR_INFO_BACKGROUND ) );
-        label.setText( this.message );
-        
-        return composite;
-    }
-    
-    public String getMessage()
-    {
-        return this.message;
-    }
-    
-    public void setMessage( final String message )
-    {
-        this.message = message;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/GridLayoutUtil.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/GridLayoutUtil.java
deleted file mode 100644
index 8dfa58d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/GridLayoutUtil.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class GridLayoutUtil
-{
-    public static final GridLayout gl( final int columns )
-    {
-        return new GridLayout( columns, false );
-    }
-
-    public static final GridLayout glmargins( final GridLayout layout,
-                                              final int marginWidth,
-                                              final int marginHeight )
-    {
-        layout.marginWidth = marginWidth;
-        layout.marginHeight = marginHeight;
-        layout.marginLeft = 0;
-        layout.marginRight = 0;
-        layout.marginTop = 0;
-        layout.marginBottom = 0;
-        
-        return layout;
-    }
-
-    public static final GridLayout glmargins( final GridLayout layout,
-                                              final int leftMargin,
-                                              final int rightMargin,
-                                              final int topMargin,
-                                              final int bottomMargin )
-    {
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        layout.marginLeft = leftMargin;
-        layout.marginRight = rightMargin;
-        layout.marginTop = topMargin;
-        layout.marginBottom = bottomMargin;
-        
-        return layout;
-    }
-
-    public static final GridData gd()
-    {
-        return new GridData();
-    }
-    
-    public static final GridData gdfill()
-    {
-        return new GridData( SWT.FILL, SWT.FILL, true, true );
-    }
-    
-    public static final GridData gdhfill()
-    {
-        return new GridData( GridData.FILL_HORIZONTAL );
-    }
-
-    public static final GridData gdvfill()
-    {
-        return new GridData( GridData.FILL_VERTICAL );
-    }
-    
-    public static final GridData gdhhint( final GridData gd,
-                                          final int heightHint )
-    {
-        gd.heightHint = heightHint;
-        return gd;
-    }
-    
-    public static final GridData gdwhint( final GridData gd,
-                                          final int widthHint )
-    {
-        gd.widthHint = widthHint;
-        return gd;
-    }
-    
-    public static final GridData gdhindent( final GridData gd,
-                                            final int horizontalIndent )
-    {
-        gd.horizontalIndent = horizontalIndent;
-        return gd;
-    }
-
-    public static final GridData gdvindent( final GridData gd,
-                                            final int verticalIndent )
-    {
-        gd.verticalIndent = verticalIndent;
-        return gd;
-    }
-    
-    public static final GridData gdhspan( final GridData gd,
-                                          final int span )
-    {
-        gd.horizontalSpan = span;
-        return gd;
-    }
-
-    public static final GridData gdvspan( final GridData gd,
-                                          final int span )
-    {
-        gd.verticalSpan = span;
-        return gd;
-    }
-    
-    public static final GridData gdhalign( final GridData gd,
-                                           final int alignment )
-    {
-        gd.horizontalAlignment = alignment;
-        return gd;
-    }
-    
-    public static final GridData gdvalign( final GridData gd,
-                                           final int alignment )
-    {
-        gd.verticalAlignment = alignment;
-        return gd;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/HeaderToolTip.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/HeaderToolTip.java
deleted file mode 100644
index 825eab7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/HeaderToolTip.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal.util;
-
-import static java.lang.Math.max;
-import static org.eclipse.jface.resource.JFaceResources.getColorRegistry;
-import static org.eclipse.jface.resource.JFaceResources.getDefaultFont;
-import static org.eclipse.jface.resource.JFaceResources.getFontRegistry;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdhfill;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gdwhint;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.gl;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.GridLayoutUtil.glmargins;
-import static org.eclipse.wst.common.project.facet.ui.internal.util.SwtUtil.getPreferredWidth;
-
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class HeaderToolTip
-    
-    extends ToolTip
-    
-{
-    private static final String HEADER_BG_COLOR 
-        = HeaderToolTip.class.getName() + ".TOOLTIP_HEAD_BG_COLOR"; //$NON-NLS-1$
-    
-    private static final String HEADER_FG_COLOR 
-        = HeaderToolTip.class.getName() + ".TOOLTIP_HEAD_FG_COLOR"; //$NON-NLS-1$
-    
-    private static final String HEADER_FONT 
-        = HeaderToolTip.class.getName() + ".TOOLTIP_HEAD_FONT"; //$NON-NLS-1$
-    
-    static
-    {
-        getColorRegistry().put( HEADER_BG_COLOR, new RGB( 255, 255, 255 ) );
-        getColorRegistry().put( HEADER_FG_COLOR, new RGB( 0, 0, 0 ) );
-        
-        final String defaultFontName = getDefaultFont().getFontData()[ 0 ].getName();
-        final FontData[] fontData = getFontRegistry().getBold( defaultFontName ).getFontData();
-        
-        getFontRegistry().put( HEADER_FONT, fontData );
-    }
-    
-    public HeaderToolTip( final Control control )
-    {
-        super( control );
-        
-        setPopupDelay( 1000 );
-        setShift( new Point( 10, 3 ) );
-    }
-
-    @Override
-    protected final Composite createToolTipContentArea( final Event event,
-                                                        final Composite parent )
-    {
-        final Composite composite = new Composite( parent, SWT.NONE );
-        final GridLayout layout = glmargins( gl( 1 ), 0, 0 );
-        layout.verticalSpacing = 1;
-        composite.setLayout( layout );
-        
-        final Composite topArea = new Composite( composite, SWT.NONE );
-        topArea.setBackground( getColorRegistry().get( HEADER_BG_COLOR ) );
-        topArea.setLayout( glmargins( gl( 3 ), 5, 5, 2, 2 ) );
-        
-        final Label titleLabel = new Label( topArea, SWT.NONE  );
-        titleLabel.setLayoutData( gdfill() );
-        titleLabel.setBackground( getColorRegistry().get( HEADER_BG_COLOR ) );
-        titleLabel.setFont( getFontRegistry().get( HEADER_FONT ) );
-        titleLabel.setForeground( getColorRegistry().get( HEADER_FG_COLOR ) );
-        titleLabel.setText( getToolTipTitle( event ) );
-        
-        final Control content = createContentArea( event, composite );
-
-        final int width = max( getPreferredWidth( titleLabel ) + 50, 300 );
-        topArea.setLayoutData( gdwhint( gdhfill(), width ) );
-        content.setLayoutData( gdwhint( gdfill(), width ) );
-        
-        return composite;
-    }
-    
-    protected abstract String getToolTipTitle( Event event );
-    
-    protected abstract Composite createContentArea( Event event,
-                                                    Composite parent );
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/SwtUtil.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/SwtUtil.java
deleted file mode 100644
index bef9ad2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/SwtUtil.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.ui.internal.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class SwtUtil
-{
-    public static final int getPreferredWidth( final Control control )
-    {
-        return control.computeSize( SWT.DEFAULT, SWT.DEFAULT ).x;
-    }
-
-}
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 304e861..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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<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/.cvsignore b/tests/org.eclipse.wst.common.project.facet.core.tests/.cvsignore
deleted file mode 100644
index 52e8206..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-javaCompiler.tests.jar.args
-build.xml
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/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.common.project.facet.core.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7a5f1c3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Fri Feb 02 16:51:39 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
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 b043f4d..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: Eclipse.org
-Bundle-Name: Facet Core Tests Plug-in
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core.tests;singleton:=true
-Bundle-Version: 1.2.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.junit;bundle-version="[3.8.0,4.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.2.0,1.3.0)",
- 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
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/about.html b/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/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>June 06, 2007</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/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.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.properties
deleted file mode 100644
index 5883308..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-# properties file for org.eclipse.wst.common.project.facet.core.tests
-Bundle-Name.0 = Facet Core Tests Plug-in
\ No newline at end of file
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 5876447..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
+++ /dev/null
@@ -1,556 +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"/>
-      <member category="cat1"/>
-    </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">
-      <member category="cat1"/>
-    </project-facet>
-    
-    <project-facet-version facet="facet2ext" version="1.0"/>
-
-    <category id="cat2"/>
-    
-    <project-facet id="facet3a"> <!-- Tests a facet with no description. -->
-      <member category="cat2"/>
-    </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">
-      <member category="cat2"/>
-      <description></description> <!-- Tests a facet with an empty description. -->
-    </project-facet>
-    
-    <project-facet-version facet="facet3b" version="1.0"/>
-    <project-facet-version facet="facet3b" version="2.0"/>
-    
-    <project-facet id="facet3c">
-      <member category="cat2"/>
-    </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>
-
-  </extension>
-  
-  <!-- PresetsTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.presets">
-  
-    <static-preset id="pt_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"/>
-    </static-preset>
-
-    <static-preset id="pt_preset2">
-      <facet id="facet3a" version="1.0"/>
-      <facet id="facet3b" version="1.0"/>
-      <facet id="facet3c" version="1.0"/>
-    </static-preset>
-    
-    <static-preset id="pt_preset3" extends="pt_preset1">
-      <facet id="facet3a" version="1.0"/>
-      <facet id="facet1" version="1.2.1"/>  <!-- Tests that the version in derived preset wins. -->
-    </static-preset>      
-
-    <dynamic-preset id="pt_dyn_preset">
-      <factory class="org.eclipse.wst.common.project.facet.core.tests.PresetsTests$PresetFactory"/>
-    </dynamic-preset>      
-
-    <static-preset id="pt_static_extending_dynamic_preset_1" extends="pt_dyn_preset">
-      <label>Static Extending Dynamic Preset</label>
-      <description>This is the static-dynamic description.</description>
-      <facet id="facet2" version="3.5#a"/>
-      <facet id="facet3b" version="1.0"/>
-    </static-preset>
-
-    <static-preset id="pt_static_extending_dynamic_preset_2" extends="pt_static_extending_dynamic_preset_1">
-      <label>Static Extending Dynamic Preset 2</label>
-      <description>This is the static-dynamic description 2.</description>
-      <facet id="facet1" version="1.2.1"/>
-      <facet id="facet3a" version="1.0"/>
-    </static-preset>
-
-    <!-- References facet that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset1">
-      <facet id="abc" version="1.0"/>
-    </static-preset>
-
-    <!-- References facet version that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset2">
-      <facet id="facet2" version="99.98"/>
-    </static-preset>
-
-    <!-- References base preset that doesn't exist. -->
-    
-    <static-preset id="pt_bad.preset3" extends="does.not.exist">
-      <facet id="facet2" version="3.5#a"/>
-    </static-preset>
-    
-    <!-- The following four presets form a cycle. -->
-    
-    <static-preset id="pt_cycle_preset1" extends="pt_cycle_preset3">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-    
-    <static-preset id="pt_cycle_preset2" extends="pt_cycle_preset1">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-
-    <static-preset id="pt_cycle_preset3" extends="pt_cycle_preset2">
-      <facet id="facet1" version="1.2.1"/>
-    </static-preset>
-
-    <static-preset id="pt_cycle_preset4" extends="pt_cycle_preset3">
-      <facet id="facet1" version="1.2.1"/>
-    </static-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>
-
-    <project-facet-version facet="fct_f7" version="2.0">
-      <constraint>
-        <requires facet="fct_f6" version="[5.0-6.5)"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f8"/>
-    
-    <project-facet-version facet="fct_f8" version="1.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-          
-    <project-facet-version facet="fct_f8" version="2.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="fct_f8" version="3.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f9"/>
-    
-    <project-facet-version facet="fct_f9" version="1.0">
-      <group-member id="fct_g1"/>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet id="fct_f10"/>
-
-    <project-facet-version facet="fct_f10" version="1.0">
-      <constraint>
-        <requires group="fct_g1"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet-version facet="fct_f10" version="2.0">
-      <constraint>
-        <requires group="fct_g1" soft="true"/>
-      </constraint>
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <group id="fct_g1">
-      <label>FCT Group 1</label>
-      <description>This is the description.</description>
-    </group>
-
-  </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>
-
-  <!-- FacetActionExecutionTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="fat_f1"/>
-    
-    <project-facet-version facet="fat_f1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.FacetActionsTests$F1v1InstallDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <project-facet-version facet="fat_f1" version="2.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.FacetActionsTests$F1v2InstallDelegate"/>
-      </action>
-    </project-facet-version>
-    
-  </extension>
-  
-  <!-- UI Tests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="ui_long_label1">
-      <label>This facet has a really really rather long label</label>
-      <description>And a short description.</description>
-    </project-facet> 
-  
-    <project-facet-version facet="ui_long_label1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <category id="ui_long_label_category">
-      <label>Category for facets with long labels</label>
-    </category>
-
-    <project-facet id="ui_long_label2">
-      <label>This facet has a really really rather long label</label>
-      <member category="ui_long_label_category"/>
-    </project-facet> 
-  
-    <project-facet-version facet="ui_long_label2" version="1.2.3.4.5.6.7.8.9">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet-version facet="ui_long_label2" version="9.8.7.6.5.4.3.2.1">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-  </extension>
-  
-  <!-- EventDeliveryTests -->
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.facets">
-  
-    <project-facet id="edt_f1"/>
-    <project-facet-version facet="edt_f1" version="1.0"/>
-    <project-facet-version facet="edt_f1" version="2.0"/>
-    <action facet="edt_f1" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f1" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f1" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-    <project-facet id="edt_f2"/>
-    <project-facet-version facet="edt_f2" version="1.1"/>
-    <project-facet-version facet="edt_f2" version="2.1"/>
-    <action facet="edt_f2" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f2" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f2" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    
-    <project-facet id="edt_f3"/>
-    <project-facet-version facet="edt_f3" version="1.2"/>
-    <project-facet-version facet="edt_f3" version="2.2"/>
-    <action facet="edt_f3" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f3" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f3" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-
-    <project-facet id="edt_f4"/>
-    <project-facet-version facet="edt_f4" version="1.3"/>
-    <project-facet-version facet="edt_f4" version="2.3"/>
-    <action facet="edt_f4" type="INSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f4" type="UNINSTALL">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    <action facet="edt_f4" type="VERSION_CHANGE">
-      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-    </action>
-    
-  </extension>
-  
-  <extension point="org.eclipse.wst.common.project.facet.core.listeners">
-    <listener 
-      class="org.eclipse.wst.common.project.facet.core.tests.EventDeliveryTests$FullExtensionBasedListener"/>
-    <listener 
-      class="org.eclipse.wst.common.project.facet.core.tests.EventDeliveryTests$PartialExtensionBasedListener"
-      eventTypes="PRE_INSTALL,FIXED_FACETS_CHANGED"/>
-  </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 b79703f..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,96 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-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 org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractTests
-
-    extends TestCase
-    
-{
-    protected static final String DEFAULT_TEST_PROJECT_NAME = "testProject";
-    protected static final IWorkspace ws = ResourcesPlugin.getWorkspace();
-    protected final Set<IResource> resourcesToCleanup = new HashSet<IResource>();
-    protected final List<Runnable> tearDownOperations = new ArrayList<Runnable>();
-    
-    protected AbstractTests( final String name )
-    {
-        super( name );
-    }
-    
-    protected void tearDown()
-        
-        throws CoreException
-        
-    {
-        for( IResource r : this.resourcesToCleanup )
-        {
-            r.delete( true, null );
-        }
-        
-        for( Runnable runnable : this.tearDownOperations )
-        {
-            runnable.run();
-        }
-    }
-    
-    protected final void addResourceToCleanup( final IResource resource )
-    {
-        this.resourcesToCleanup.add( resource );
-    }
-    
-    protected final void addTearDownOperation( final Runnable runnable )
-    {
-        this.tearDownOperations.add( runnable );
-    }
-    
-    protected final IFacetedProject createFacetedProject()
-    
-        throws CoreException
-        
-    {
-        return createFacetedProject( DEFAULT_TEST_PROJECT_NAME );
-    }
-    
-    protected IFacetedProject createFacetedProject( final String name )
-
-        throws CoreException
-        
-    {
-        assertFalse( ws.getRoot().getProject( name ).exists() );
-        final IFacetedProject fpj = ProjectFacetsManager.create( name, null, null );
-        final IProject pj = fpj.getProject();
-        assertTrue( pj.exists() );
-        addResourceToCleanup( pj );
-        
-        return fpj;
-    }
-    
-}
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 3e115b6..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,47 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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( PresetsTests.suite() );
-        suite.addTest( ProjectCreationTests.suite() );
-        suite.addTest( BasicFacetActionTests.suite() );
-        suite.addTest( FacetActionSortTests.suite() );
-        suite.addTest( FacetActionsTests.suite() );
-        suite.addTest( ProjectChangeReactionTests.suite() );
-        suite.addTest( FacetConstraintsTests.suite() );
-        suite.addTest( DefaultVersionTests.suite() );
-        suite.addTest( EventDeliveryTests.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 7dce648..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,251 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 a07769a..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,672 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-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.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 BasicTests
-
-    extends TestCase
-    
-{
-    private static final String PLUGIN_ID 
-        = "org.eclipse.wst.common.project.facet.core.tests";
-    
-    public static IProjectFacet f1;
-    public static IProjectFacetVersion f1v10;
-    public static IProjectFacetVersion f1v12;
-    public static IProjectFacetVersion f1v121;
-    public static IProjectFacetVersion f1v13;
-    public static IProjectFacetVersion f1v20;
-    
-    public static IProjectFacet f2;
-    public static IProjectFacetVersion f2v35;
-    public static IProjectFacetVersion f2v35a;
-    public static IProjectFacetVersion f2v47;
-    public static IProjectFacetVersion f2v47b;
-    public static IProjectFacetVersion f2v47c;
-    
-    public static IProjectFacet f2ext;
-    public static IProjectFacetVersion f2extv10;
-
-    public static IProjectFacet f3a;
-    public static IProjectFacetVersion f3av10;
-    public static IProjectFacetVersion f3av20;
-
-    public static IProjectFacet f3b;
-    public static IProjectFacetVersion f3bv10;
-    public static IProjectFacetVersion f3bv20;
-
-    public static IProjectFacet f3c;
-    public static IProjectFacetVersion f3cv10;
-    public 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( "testDefaultVersionComparator" ) );
-        suite.addTest( new BasicTests( "testCustomVersionComparator" ) );
-        suite.addTest( new BasicTests( "testVersionExpressions" ) );
-        suite.addTest( new BasicTests( "testVersionExpressionsWithUnknownVersions" ) );
-        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 );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    public void testDefaultVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator<String> 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 );
-        
-        assertTrue( f1v10.compareTo( f1v12 ) < 0 );
-        assertTrue( f1v12.compareTo( f1v121 ) < 0 );
-        assertTrue( f1v121.compareTo( f1v20 ) < 0 );
-        
-        assertTrue( f1v12.compareTo( f1v10 ) > 0 );
-        assertTrue( f1v121.compareTo( f1v12 ) > 0 );
-        assertTrue( f1v20.compareTo( f1v121 ) > 0 );
-        
-        assertTrue( f1v10.compareTo( f1v10 ) == 0 );
-        assertTrue( f1v12.compareTo( f1v12 ) == 0 );
-        assertTrue( f1v121.compareTo( f1v121 ) == 0 );
-        assertTrue( f1v20.compareTo( f1v20 ) == 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 );
-    }
-
-    @SuppressWarnings( "unchecked" )
-    public void testCustomVersionComparator()
-    
-        throws CoreException
-        
-    {
-        final Comparator<String> 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 );
-
-        assertTrue( f2v35.compareTo( f2v47 ) < 0 );
-        assertTrue( f2v35.compareTo( f2v35a ) < 0 );
-        assertTrue( f2v47c.compareTo( f2v47b ) < 0 );
-        
-        assertTrue( f2v47.compareTo( f2v35 ) > 0 );
-        assertTrue( f2v35a.compareTo( f2v35 ) > 0 );
-        assertTrue( f2v47b.compareTo( f2v47c ) > 0 );
-        
-        assertTrue( f2v35.compareTo( f2v35 ) == 0 );
-        assertTrue( f2v35a.compareTo( f2v35a ) == 0 );
-        assertTrue( f2v47.compareTo( f2v47 ) == 0 );
-        assertTrue( f2v47b.compareTo( f2v47b ) == 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 ) );
-    }
-    
-    /**
-     * Tests the cases where version expressions make references to facet versions that don't
-     * actually exist.
-     * 
-     * @throws CoreException
-     */
-    
-    public void testVersionExpressionsWithUnknownVersions()
-    
-        throws CoreException
-        
-    {
-        assertEquals( f1.getVersions( "[0.5-1.2]" ), asSet( f1v10, f1v12 ) );
-        assertEquals( f1.getVersions( "[1.2.2-2.0]" ), asSet( f1v13, f1v20 ) );
-        assertEquals( f1.getVersions( "[0.5-10.0)" ), asSet( f1v10, f1v12, f1v121, f1v13, f1v20 ) );
-        assertEquals( f1.getVersions( "[10.0-25]" ), Collections.emptySet() );
-        assertEquals( f1.getVersions( "3.0,4.5" ), Collections.emptySet() );
-        assertEquals( f1.getVersions( "5.7" ), Collections.emptySet() );
-    }
-    
-    @SuppressWarnings( "unchecked" )
-    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<Object> list = new ArrayList<Object>();
-        
-        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 );
-    }
-    
-}
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 449f9a3..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,189 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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/EventDeliveryTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.java
deleted file mode 100644
index afd08a2..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-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.events.IFacetedProjectEvent;
-import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-public final class EventDeliveryTests
-
-    extends AbstractTests
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    private static IProjectFacetVersion f1v20;
-
-    private static IProjectFacet f2;
-    private static IProjectFacetVersion f2v11;
-    private static IProjectFacetVersion f2v21;
-
-    private static IProjectFacet f3;
-    private static IProjectFacetVersion f3v12;
-    private static IProjectFacetVersion f3v22;
-    
-    private static IProjectFacet f4;
-    private static IProjectFacetVersion f4v13;
-    private static IProjectFacetVersion f4v23;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "edt_f1" );
-        f1v10 = f1.getVersion( "1.0" );
-        f1v20 = f1.getVersion( "2.0" );
-        
-        f2 = ProjectFacetsManager.getProjectFacet( "edt_f2" );
-        f2v11 = f2.getVersion( "1.1" );
-        f2v21 = f2.getVersion( "2.1" );
-
-        f3 = ProjectFacetsManager.getProjectFacet( "edt_f3" );
-        f3v12 = f3.getVersion( "1.2" );
-        f3v22 = f3.getVersion( "2.2" );
-
-        f4 = ProjectFacetsManager.getProjectFacet( "edt_f4" );
-        f4v13 = f4.getVersion( "1.3" );
-        f4v23 = f4.getVersion( "2.3" );
-    }
-    
-    private EventDeliveryTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Event Delivery Tests" );
-
-        suite.addTest( new EventDeliveryTests( "testEventDelivery" ) );
-        
-        return suite;
-    }
-    
-    public void testEventDelivery()
-    
-        throws CoreException
-        
-    {
-        // Create a test project.
-        
-        final IFacetedProject fpj = createFacetedProject();
-        
-        // Setup listeners.
-        
-        final Listener fullListenerProjectApi = new Listener();
-        fpj.addListener( fullListenerProjectApi );
-
-        final Listener fullListenerGlobalApi = new Listener();
-        FacetedProjectFramework.addListener( fullListenerGlobalApi );
-
-        final Listener partialListenerProjectApi = new Listener();
-        
-        fpj.addListener( partialListenerProjectApi, IFacetedProjectEvent.Type.PRE_INSTALL, 
-                         IFacetedProjectEvent.Type.FIXED_FACETS_CHANGED );
-        
-        final Listener partialListenerGlobalApi = new Listener();
-        
-        FacetedProjectFramework.addListener( partialListenerGlobalApi, 
-                                             IFacetedProjectEvent.Type.PRE_INSTALL, 
-                                             IFacetedProjectEvent.Type.FIXED_FACETS_CHANGED );
-        
-        if( FullExtensionBasedListener.instance != null )
-        {
-            FullExtensionBasedListener.instance.retrieveDeliveredEvents();
-        }
-        
-        if( PartialExtensionBasedListener.instance != null )
-        {
-            PartialExtensionBasedListener.instance.retrieveDeliveredEvents();
-        }
-        
-        addTearDownOperation
-        (
-            new Runnable()
-            {
-                public void run()
-                {
-                    FacetedProjectFramework.removeListener( fullListenerGlobalApi );
-                    FacetedProjectFramework.removeListener( partialListenerGlobalApi );
-                }
-            }
-        );
-        
-        // Run through a series of operations, checking to make sure that the listeners are seeing
-        // the expected events.
-        
-        fpj.setFixedProjectFacets( asSet( f1, f2 ) );
-        
-        check( fullListenerProjectApi, Resources.fullStep1 );
-        check( fullListenerGlobalApi, Resources.fullStep1 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep1 );
-        check( partialListenerProjectApi, Resources.partialStep1 );
-        check( partialListenerGlobalApi, Resources.partialStep1 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep1 );
-        
-        fpj.modify( asSet( new Action( Action.Type.INSTALL, f1v10, null ),
-                           new Action( Action.Type.INSTALL, f2v11, null ),
-                           new Action( Action.Type.INSTALL, f3v12, null ) ), null );
-
-        check( fullListenerProjectApi, Resources.fullStep2 );
-        check( fullListenerGlobalApi, Resources.fullStep2 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep2 );
-        check( partialListenerProjectApi, Resources.partialStep2 );
-        check( partialListenerGlobalApi, Resources.partialStep2 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep2 );
-        
-        fpj.installProjectFacet( f4v13, null, null );
-        
-        check( fullListenerProjectApi, Resources.fullStep3 );
-        check( fullListenerGlobalApi, Resources.fullStep3 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep3 );
-        check( partialListenerProjectApi, Resources.partialStep3 );
-        check( partialListenerGlobalApi, Resources.partialStep3 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep3 );
-        
-        fpj.uninstallProjectFacet( f3v12, null, null );
-        
-        check( fullListenerProjectApi, Resources.fullStep4 );
-        check( fullListenerGlobalApi, Resources.fullStep4 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep4 );
-        check( partialListenerProjectApi, Resources.partialStep4 );
-        check( partialListenerGlobalApi, Resources.partialStep4 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep4 );
-        
-        fpj.setFixedProjectFacets( asSet( f4 ) );
-        
-        check( fullListenerProjectApi, Resources.fullStep5 );
-        check( fullListenerGlobalApi, Resources.fullStep5 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep5 );
-        check( partialListenerProjectApi, Resources.partialStep5 );
-        check( partialListenerGlobalApi, Resources.partialStep5 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep5 );
-        
-        fpj.modify( asSet( new Action( Action.Type.VERSION_CHANGE, f1v20, null ),
-                           new Action( Action.Type.VERSION_CHANGE, f4v23, null ) ), null );
-        
-        check( fullListenerProjectApi, Resources.fullStep6 );
-        check( fullListenerGlobalApi, Resources.fullStep6 );
-        check( FullExtensionBasedListener.instance, Resources.fullStep6 );
-        check( partialListenerProjectApi, Resources.partialStep6 );
-        check( partialListenerGlobalApi, Resources.partialStep6 );
-        check( PartialExtensionBasedListener.instance, Resources.partialStep6 );
-    }
-    
-    private static String toString( final List<IFacetedProjectEvent> events )
-    {
-        final StringBuilder buf = new StringBuilder();
-        
-        for( IFacetedProjectEvent event : events )
-        {
-            buf.append( event.toString() ).append( '\n' );
-        }
-        
-        return buf.toString();
-    }
-    
-    private static void check( final Listener listener,
-                               final String expectedEvents )
-    {
-        final String actual = toString( listener.retrieveDeliveredEvents() ).trim();
-        final String expected = expectedEvents.trim();
-        
-        assertEquals( expected, actual );
-    }
-    
-    private static class Listener 
-    
-        implements IFacetedProjectListener
-        
-    {
-        private final List<IFacetedProjectEvent> events = new ArrayList<IFacetedProjectEvent>();
-
-        public final void handleEvent( final IFacetedProjectEvent event )
-        {
-            this.events.add( event );
-        }
-        
-        public final List<IFacetedProjectEvent> retrieveDeliveredEvents()
-        {
-            final List<IFacetedProjectEvent> result 
-                = new ArrayList<IFacetedProjectEvent>( this.events );
-            
-            this.events.clear();
-            
-            return result;
-        }
-    }
-    
-    public static final class FullExtensionBasedListener
-    
-        extends Listener
-        
-    {
-        public static Listener instance = null;
-        
-        public FullExtensionBasedListener()
-        {
-            instance = this;
-        }
-    }
-        
-    public static final class PartialExtensionBasedListener
-    
-        extends Listener
-        
-    {
-        public static Listener instance = null;
-        
-        public PartialExtensionBasedListener()
-        {
-            instance = this;
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String fullStep1;
-        public static String fullStep2;
-        public static String fullStep3;
-        public static String fullStep4;
-        public static String fullStep5;
-        public static String fullStep6;
-        public static String partialStep1;
-        public static String partialStep2;
-        public static String partialStep3;
-        public static String partialStep4;
-        public static String partialStep5;
-        public static String partialStep6;
-        
-        static
-        {
-            initializeMessages( EventDeliveryTests.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties
deleted file mode 100644
index 13fd967..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/EventDeliveryTests.properties
+++ /dev/null
@@ -1,123 +0,0 @@
-fullStep1 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </new-fixed-facets>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep2 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep3 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep4 = \
-<event project\="testProject" type\="PRE_UNINSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_UNINSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep5 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f4"/>\n\
-\  </new-fixed-facets>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-fullStep6 = \
-<event project\="testProject" type\="PRE_VERSION_CHANGE">\n\
-\  <facet id\="edt_f1" version\="2.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_VERSION_CHANGE">\n\
-\  <facet id\="edt_f1" version\="2.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_VERSION_CHANGE">\n\
-\  <facet id\="edt_f4" version\="2.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="POST_VERSION_CHANGE">\n\
-\  <facet id\="edt_f4" version\="2.3"/>\n\
-</event>\n\
-<event project\="testProject" type\="PROJECT_MODIFIED">\n\
-</event>
-
-partialStep1 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </new-fixed-facets>\n\
-</event>
-
-partialStep2 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f1" version\="1.0"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f2" version\="1.1"/>\n\
-</event>\n\
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f3" version\="1.2"/>\n\
-</event>
-
-partialStep3 = \
-<event project\="testProject" type\="PRE_INSTALL">\n\
-\  <facet id\="edt_f4" version\="1.3"/>\n\
-</event>
-
-partialStep4 = 
-
-partialStep5 = \
-<event project\="testProject" type\="FIXED_FACETS_CHANGED">\n\
-\  <old-fixed-facets>\n\
-\    <facet id\="edt_f1"/>\n\
-\    <facet id\="edt_f2"/>\n\
-\  </old-fixed-facets>\n\
-\  <new-fixed-facets>\n\
-\    <facet id\="edt_f4"/>\n\
-\  </new-fixed-facets>\n\
-</event>
-
-partialStep6 = 
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 aa7d7bd..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,206 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static java.util.Arrays.asList;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-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;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-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 List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( asSet( f3av10 ), actions );
-        assertEquals( actions, 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 List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( asSet( f3av10 ), actions );
-        assertEquals( actions, 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. 
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testSortStability1()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a1 );
-        actions.add( a2 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, asList( a1, a2 ) );
-    }
-
-    /**
-     * Tests whether the sort produces "stable" results given unrelated facets.
-     * The input facets are in the reverse order.
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testSortStability2()
-    {
-        final Action a1 = new Action( Action.Type.INSTALL, f1v12, null );
-        final Action a2 = new Action( Action.Type.INSTALL, f3av10, null );
-        
-        final List<Action> actions = new ArrayList<Action>();
-        
-        actions.add( a2 );
-        actions.add( a1 );
-        
-        ProjectFacetsManager.sort( Collections.EMPTY_SET, actions );
-        assertEquals( actions, asList( a1, a2 ) );
-    }
-    
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java
deleted file mode 100644
index 48906d5..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/FacetActionsTests.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import java.io.ByteArrayInputStream;
-
-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.core.runtime.IProgressMonitor;
-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.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 class FacetActionsTests
-
-    extends AbstractTests
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v1;
-    private static IProjectFacetVersion f1v2;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "fat_f1" );
-        f1v1 = f1.getVersion( "1.0" );
-        f1v2 = f1.getVersion( "2.0" );
-    }
-    
-    private FacetActionsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Facet Actions Tests" );
-
-        suite.addTest( new FacetActionsTests( "testMultiVersionInstall1" ) );
-        suite.addTest( new FacetActionsTests( "testMultiVersionInstall2" ) );
-        
-        return suite;
-    }
-    
-    /*
-     * The following test cases test the scenario where different 
-     * implementations of the INSTALL action are provided for two versions of 
-     * the same facet.
-     * 
-     * Scenario Test Code:
-     * 
-     *   testMultiVersionInstall1
-     *   testMultiVersionInstall2
-     *   F1v1InstallDelegate
-     *   F1v2InstallDelegate
-     */
-    
-    public void testMultiVersionInstall1()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fpj = createFacetedProject();
-        final IProject pj = fpj.getProject();
-        fpj.installProjectFacet( f1v1, null, null );
-        
-        assertTrue( F1v1InstallDelegate.getMarkerFile( pj ).exists() );
-        assertFalse( F1v2InstallDelegate.getMarkerFile( pj ).exists() );
-    }
-
-    public void testMultiVersionInstall2()
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fpj = createFacetedProject();
-        final IProject pj = fpj.getProject();
-        fpj.installProjectFacet( f1v2, null, null );
-        
-        assertFalse( F1v1InstallDelegate.getMarkerFile( pj ).exists() );
-        assertTrue( F1v2InstallDelegate.getMarkerFile( pj ).exists() );
-    }
-    
-    public static final class F1v1InstallDelegate
-    
-        implements IDelegate
-        
-    {
-        public static IFile getMarkerFile( final IProject project )
-        {
-            return project.getFile( "v1marker" );
-        }
-        
-        public void execute( final IProject project,
-                             final IProjectFacetVersion fv,
-                             final Object config,
-                             final IProgressMonitor monitor ) 
-        
-            throws CoreException
-            
-        {
-            final IFile marker = getMarkerFile( project );
-            
-            final ByteArrayInputStream emptyStream 
-                = new ByteArrayInputStream( new byte[ 0 ] );
-            
-            marker.create( emptyStream, false, null );
-        }
-    }
-
-    public static final class F1v2InstallDelegate
-    
-        implements IDelegate
-        
-    {
-        public static IFile getMarkerFile( final IProject project )
-        {
-            return project.getFile( "v2marker" );
-        }
-        
-        public void execute( final IProject project,
-                             final IProjectFacetVersion fv,
-                             final Object config,
-                             final IProgressMonitor monitor ) 
-        
-            throws CoreException
-            
-        {
-            final IFile marker = getMarkerFile( project );
-            
-            final ByteArrayInputStream emptyStream 
-                = new ByteArrayInputStream( new byte[ 0 ] );
-            
-            marker.create( emptyStream, false, null );
-        }
-    }
-    
-}
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 0f790b6..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,271 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.Collections;
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class FacetConstraintsTests
-
-    extends TestCase
-    
-{
-    private static IProjectFacet f1;
-    private static IProjectFacetVersion f1v10;
-    
-    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;
-    private static IProjectFacetVersion f7v20;
-
-    private static IProjectFacet f8;
-    private static IProjectFacetVersion f8v10;
-    private static IProjectFacetVersion f8v20;
-    private static IProjectFacetVersion f8v30;
-    
-    private static IProjectFacet f9;
-    private static IProjectFacetVersion f9v10;
-    
-    private static IProjectFacet f10;
-    private static IProjectFacetVersion f10v10;
-    private static IProjectFacetVersion f10v20;
-    
-    static
-    {
-        f1 = ProjectFacetsManager.getProjectFacet( "fct_f1" );
-        f1v10 = f1.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" );
-        f7v20 = f7.getVersion( "2.0" );
-
-        f8 = ProjectFacetsManager.getProjectFacet( "fct_f8" );
-        f8v10 = f8.getVersion( "1.0" );
-        f8v20 = f8.getVersion( "2.0" );
-        f8v30 = f8.getVersion( "3.0" );
-
-        f9 = ProjectFacetsManager.getProjectFacet( "fct_f9" );
-        f9v10 = f9.getVersion( "1.0" );
-
-        f10 = ProjectFacetsManager.getProjectFacet( "fct_f10" );
-        f10v10 = f10.getVersion( "1.0" );
-        f10v20 = f10.getVersion( "2.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" ) );
-        suite.addTest( new FacetConstraintsTests( "testRequiresWithUnknownVersion" ) );
-        suite.addTest( new FacetConstraintsTests( "testGroupRequires" ) );
-        suite.addTest( new FacetConstraintsTests( "testGroupRequiresSoft" ) );
-        
-        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:
-     * 
-     *   <requires facet="fct_f6"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    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() );
-    }
-    
-    /*
-     * Tests the following constraint that specifies versions that don't exist:
-     * 
-     *   <requires facet="fct_f6" version="[5.0-6.5)"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testRequiresWithUnknownVersion()
-    {
-        assertFalse( f7v20.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v10 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v23 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v37 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v40 ) ).isOK() );
-        assertFalse( f7v20.getConstraint().check( asSet( f6v45 ) ).isOK() );
-    }
-    
-    /*
-     * Tests the "requires any group member" constraint:
-     * 
-     *   <requires group="fct_g1"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testGroupRequires()
-    {
-        assertFalse( f10v10.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f8v10 ) ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f8v20 ) ).isOK() );
-        assertFalse( f10v10.getConstraint().check( asSet( f8v30 ) ).isOK() );
-        assertTrue( f10v10.getConstraint().check( asSet( f9v10 ) ).isOK() );
-        assertFalse( f10v10.getConstraint().check( asSet( f1v10 ) ).isOK() );
-    }
-
-    /*
-     * Tests the soft version of the "requires any group member" constraint:
-     * 
-     *   <requires group="fct_g1" soft="true"/>
-     */
-    
-    @SuppressWarnings( "unchecked" )
-    public void testGroupRequiresSoft()
-    {
-        assertTrue( f10v20.getConstraint().check( Collections.EMPTY_SET ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v10 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v20 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f8v30 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f9v10 ) ).isOK() );
-        assertTrue( f10v20.getConstraint().check( asSet( f1v10 ) ).isOK() );
-    }
-
-}
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java
deleted file mode 100644
index fa702e3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/PresetsTests.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f1v121;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f1v20;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f2extv10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f2v35a;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3av10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3bv10;
-import static org.eclipse.wst.common.project.facet.core.tests.BasicTests.f3cv10;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-
-import java.util.Collections;
-import java.util.Map;
-
-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.IDynamicPreset;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IPresetFactory;
-import org.eclipse.wst.common.project.facet.core.PresetDefinition;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class PresetsTests
-
-    extends TestCase
-    
-{
-    private PresetsTests( final String name )
-    {
-        super( name );
-    }
-    
-    public static Test suite()
-    {
-        final TestSuite suite = new TestSuite();
-        
-        suite.setName( "Presets Tests" );
-
-        suite.addTest( new PresetsTests( "testSimpleStaticPresets" ) );
-        suite.addTest( new PresetsTests( "testDerivedStaticPresets" ) );
-        suite.addTest( new PresetsTests( "testDynamicPresets" ) );
-        suite.addTest( new PresetsTests( "testStaticPresetsExtendingDynamicPresets1" ) );
-        suite.addTest( new PresetsTests( "testStaticPresetsExtendingDynamicPresets2" ) );
-        suite.addTest( new PresetsTests( "testUserDefinedPresets" ) );
-        
-        return suite;
-    }
-    
-    public void testSimpleStaticPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset1" ) );
-        final IPreset preset1 = ProjectFacetsManager.getPreset( "pt_preset1" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset1 ) );        
-        
-        assertEquals( preset1.getId(), "pt_preset1" );
-        assertEquals( preset1.getType(), IPreset.Type.STATIC );
-        assertEquals( preset1.getLabel(), "Preset 1" );
-        assertEquals( preset1.getDescription(), "This is the description for the first preset." );
-        assertEquals( preset1.getProjectFacets(), asSet( f1v20, f2v35a, f2extv10 ) );
-        
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset2" ) );
-        final IPreset preset2 = ProjectFacetsManager.getPreset( "pt_preset2" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset2 ) );        
-        
-        assertEquals( preset2.getId(), "pt_preset2" );
-        assertEquals( preset2.getType(), IPreset.Type.STATIC );
-        assertEquals( preset2.getLabel(), "pt_preset2" );
-        assertEquals( preset2.getDescription(), "" );
-        assertEquals( preset2.getProjectFacets(), asSet( f3av10, f3bv10, f3cv10 ) );
-    }
-
-    public void testDerivedStaticPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_preset3" ) );
-        final IPreset preset3 = ProjectFacetsManager.getPreset( "pt_preset3" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset3 ) );        
-        
-        assertEquals( preset3.getId(), "pt_preset3" );
-        assertEquals( preset3.getType(), IPreset.Type.STATIC );
-        assertEquals( preset3.getProjectFacets(), asSet( f1v121, f2v35a, f2extv10, f3av10 ) );
-    }
-    
-    public void testDynamicPresets()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_dyn_preset" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_dyn_preset" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_dyn_preset" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "pt_dyn_preset" );
-        assertEquals( preset.getDescription(), "" );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_dyn_preset" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Dynamic Preset" );
-        assertEquals( resolved.getDescription(), "The description of the dynamic preset." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v20, f2extv10, f3cv10 ) );
-    }
-    
-    public void testStaticPresetsExtendingDynamicPresets1()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_static_extending_dynamic_preset_1" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_static_extending_dynamic_preset_1" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_static_extending_dynamic_preset_1" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "Static Extending Dynamic Preset" );
-        assertEquals( preset.getDescription(), "This is the static-dynamic description." );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_static_extending_dynamic_preset_1" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Static Extending Dynamic Preset" );
-        assertEquals( resolved.getDescription(), "This is the static-dynamic description." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v20, f2extv10, f3cv10, f2v35a, f3bv10 ) );
-    }
-
-    public void testStaticPresetsExtendingDynamicPresets2()
-    {
-        assertTrue( ProjectFacetsManager.isPresetDefined( "pt_static_extending_dynamic_preset_2" ) );
-        final IPreset preset = ProjectFacetsManager.getPreset( "pt_static_extending_dynamic_preset_2" );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getId(), "pt_static_extending_dynamic_preset_2" );
-        assertEquals( preset.getType(), IPreset.Type.DYNAMIC );
-        assertEquals( preset.getLabel(), "Static Extending Dynamic Preset 2" );
-        assertEquals( preset.getDescription(), "This is the static-dynamic description 2." );
-        assertEquals( preset.getProjectFacets(), Collections.emptySet() );
-        
-        final IDynamicPreset dynamicPreset = (IDynamicPreset) preset;
-        final IPreset resolved = dynamicPreset.resolve( Collections.<String,Object>emptyMap() );
-        
-        assertEquals( resolved.getId(), "pt_static_extending_dynamic_preset_2" );
-        assertEquals( resolved.getType(), IPreset.Type.STATIC );
-        assertEquals( resolved.getLabel(), "Static Extending Dynamic Preset 2" );
-        assertEquals( resolved.getDescription(), "This is the static-dynamic description 2." );
-        assertEquals( resolved.getProjectFacets(), asSet( f1v121, f2extv10, f3cv10, f2v35a, f3bv10, f3av10 ) );
-    }
-    
-    public void testUserDefinedPresets()
-    {
-        assertFalse( ProjectFacetsManager.isPresetDefined( "pt_user_defined" ) );
-        
-        final IPreset preset
-            = ProjectFacetsManager.definePreset( "pt_user_defined", "the description", 
-                                                 asSet( f1v121, f2extv10 ) );
-        
-        assertTrue( ProjectFacetsManager.isPresetDefined( preset.getId() ) );
-        assertTrue( ProjectFacetsManager.getPresets().contains( preset ) );
-
-        assertEquals( preset.getType(), IPreset.Type.USER_DEFINED );
-        assertEquals( preset.getLabel(), "pt_user_defined" );
-        assertEquals( preset.getDescription(), "the description" );
-        assertEquals( preset.getProjectFacets(), asSet( f1v121, f2extv10 ) );
-        
-        ProjectFacetsManager.deletePreset( preset );
-        assertFalse( ProjectFacetsManager.isPresetDefined( "pt_user_defined" ) );
-    }
-    
-    public static final class PresetFactory 
-    
-        implements IPresetFactory
-        
-    {
-        public PresetDefinition createPreset( final String presetId,
-                                              final Map<String,Object> context ) 
-        
-            throws CoreException
-            
-        {
-            return new PresetDefinition( "Dynamic Preset", "The description of the dynamic preset.",
-                                         asSet( f1v20, f2extv10, f3cv10 ) );
-        }
-    }
-    
-}
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 4348f46..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,181 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.tests;
-
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.asSet;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.readFromFile;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.waitForCondition;
-import static org.eclipse.wst.common.project.facet.core.tests.support.TestUtils.writeToFile;
-
-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.ICondition;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-@SuppressWarnings( "unused" )
-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(), asSet( f1v12 ) );
-        
-        this.mdfile = this.pj.getFile( METADATA_FILE );
-    }
-    
-    public void testReactionToProjectDelete()
-    
-        throws CoreException
-        
-    {
-        this.pj.delete( true, null );
-        
-        waitForCondition( createNoFacetsCondition( this.fpj ) );
-        assertNull( ProjectFacetsManager.create( this.pj ) );
-    }
-
-    public void testReactionToMetadataFileDelete()
-    
-        throws CoreException
-        
-    {
-        this.mdfile.delete( true, null );
-
-        waitForCondition( createNoFacetsCondition( this.fpj ) );
-    }
-
-    public void testReactionToMetadataFileChange()
-    
-        throws CoreException, IOException
-        
-    {
-        String contents;
-        
-        contents = readFromFile( this.mdfile );
-        contents = contents.replaceFirst( "1.2", "2.0" );
-        writeToFile( this.mdfile, contents );
-        
-        waitForCondition( createFacetCondition( this.fpj, f1v20 ) );
-        
-        contents = contents.replaceFirst( "2.0", "1.2.1" );
-        writeToFile( this.mdfile, contents );
-        
-        waitForCondition( createFacetCondition( this.fpj, f1v121 ) );
-        
-        contents = contents.replaceFirst( "<installed facet=\"facet1\" version=\"1.2.1\"/>", "" );
-        writeToFile( this.mdfile, contents );
-        
-        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 72e8665..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,344 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 cab08f0..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,78 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 ee7af79..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 8836770..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 3934e03..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 664d7f2..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 c85a107..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 5d7c86a..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,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 1d2f3ba..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,36 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 218cee6..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,142 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005-2007 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
- ******************************************************************************/
-
-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.LinkedHashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-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 <T> Set<T> asSet( final T... objects )
-    {
-        final Set<T> set = new LinkedHashSet<T>();
-        set.addAll( Arrays.asList( objects ) );
-        return set;
-    }
-    
-}
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
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/.classpath b/tests/org.eclipse.wst.common.project.facet.ui.tests/.classpath
deleted file mode 100644
index 304e861..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<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.ui.tests/.cvsignore b/tests/org.eclipse.wst.common.project.facet.ui.tests/.cvsignore
deleted file mode 100644
index 3bfac44..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build.xml
-javaCompiler.tests.jar.args
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/.project b/tests/org.eclipse.wst.common.project.facet.ui.tests/.project
deleted file mode 100644
index 6b5d310..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.ui.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.ui.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.wst.common.project.facet.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7a5f1c3..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Fri Feb 02 16:51:39 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 2129027..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: Eclipse.org
-Bundle-Name: Facet UI Tests Plug-in
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.ui.tests;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.wst.common.project.facet.ui,
- org.eclipse.wst.common.project.facet.core.tests,
- org.eclipse.core.resources
-Bundle-ClassPath: tests.jar
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html b/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html
deleted file mode 100644
index 9e73bda..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/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>June 06, 2007</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/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties b/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties
deleted file mode 100644
index 205ce4b..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.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.ui.tests/images/unknown.gif b/tests/org.eclipse.wst.common.project.facet.ui.tests/images/unknown.gif
deleted file mode 100644
index 7ccc6a7..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/images/unknown.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml b/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml
deleted file mode 100644
index 0847b27..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.xml
+++ /dev/null
@@ -1,57 +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="ui.category">
-      <label>UI Test Category</label>
-      <description>This is the category description.</description>
-    </category>
-
-    <project-facet id="ui.f1">
-      <label>Facet 1</label>
-      <description>This is the description of facet1.</description>
-      <member category="ui.category"/>
-    </project-facet>
-
-    <project-facet-version facet="ui.f1" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-
-    <project-facet id="ui.f2">
-      <label>Facet 2</label>
-      <description>This is the description of facet2.</description>
-      <member category="ui.category"/>
-    </project-facet>
-
-    <project-facet-version facet="ui.f2" version="1.0">
-      <action type="INSTALL">
-        <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
-      </action>
-    </project-facet-version>
-    
-    <template id="ui.base.wizard.template">
-      <label>Faceted Project</label>
-    </template>
-    
-  </extension>
-
-   <extension point="org.eclipse.ui.newWizards">
-      <wizard 
-        name="Faceted Project Test Wizard"
-        id="org.eclipse.wst.common.project.facet.ui.tests.TestProjectWizard"
-        class="org.eclipse.wst.common.project.facet.ui.tests.TestProjectWizard"
-        icon="images/unknown.gif"
-        project="true">
-        <description>
-          This wizard is used to test the Faceted Project Wizard.
-        </description>
-        <selection class="org.eclipse.core.resources.IResource"/>
-      </wizard>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java b/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java
deleted file mode 100644
index aff122a..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/src/org/eclipse/wst/common/project/facet/ui/tests/TestProjectWizard.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.wst.common.project.facet.ui.tests;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.ui.FacetedProjectWizard;
-
-public final class TestProjectWizard
-
-    extends FacetedProjectWizard
-    
-{
-    public TestProjectWizard()
-    {
-        setCategoryExpandedState( ProjectFacetsManager.getCategory( "ui.category" ), true );
-    }
-    
-    @Override
-    protected ImageDescriptor getDefaultPageImageDescriptor()
-    {
-        return null;
-    }
-
-    @Override
-    protected String getPageDescription()
-    {
-        return "This wizard is used to test the Faceted Project Wizard.";
-    }
-
-    @Override
-    protected IFacetedProjectTemplate getTemplate()
-    {
-        return ProjectFacetsManager.getTemplate( "ui.base.wizard.template" );
-    }
-
-}