This commit was manufactured by cvs2svn to create branch 'R3_0_5_patches'.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
index fd7a64e..c620893 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Vendor: %providerName
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.3.1.qualifier
+Bundle-Version: 1.3.4.qualifier
 Bundle-ClassPath: .
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.common.project.facet.core,
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
index d9b24bb..de57bc3 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
@@ -106,7 +106,13 @@
     <validator class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetValidator">
       <facet id="jst.java"/>
     </validator>
-  </extension>    
+  </extension>
+  
+  <extension point="org.eclipse.wst.common.project.facet.core.aliases">
+    <facet-alias facet="jst.java" alias="java"/>
+    <facet-version-alias facet="jst.java" version="5.0" alias="1.5"/>
+    <facet-version-alias facet="jst.java" version="6.0" alias="1.6"/>
+  </extension>
 
   <extension 
     point="org.eclipse.core.resources.markers"
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
index 7da2085..92e0dfa 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
@@ -33,6 +33,7 @@
 import org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin;
 import org.eclipse.osgi.util.NLS;
 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.runtime.IRuntime;
@@ -186,7 +187,7 @@
                 final IClasspathEntry cpentry = (IClasspathEntry) itr.next();
                 final IPath path = cpentry.getPath();
                 
-                final boolean contains = cp.contains( cpentry );
+                final boolean contains = classpathContains(cp, cpentry);
                 
                 Set owners = (Set) prefs.get( path );
                 
@@ -227,6 +228,16 @@
             throw new CoreException( st );
         }
     }
+
+	private static boolean classpathContains(final List cp, final IClasspathEntry cpentry) {
+		if (cpentry == null) return false;
+		for (Iterator iterator = cp.iterator(); iterator.hasNext();) {
+			IClasspathEntry entry = (IClasspathEntry) iterator.next();
+			if (entry.getPath().equals(cpentry.getPath()))
+				return true;
+		}
+		return false;
+	}
     
     /**
      * Removes the classpath entries belonging to the specified project facet.
@@ -237,66 +248,109 @@
      * @throws CoreException if failed while removing classpath entries
      */
     
-    public static void removeClasspathEntries( final IProject project,
-                                               final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            final IJavaProject jproj = JavaCore.create( project );
-            final List cp = getClasspath( jproj );
-            boolean cpchanged = false;
+    public static void removeClasspathEntries(final IProject project, final IProjectFacetVersion fv)
 
-            final Map prefs = readPreferences( project );
-            
-            for( Iterator itr1 = prefs.entrySet().iterator(); itr1.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr1.next();
-                final IPath path = (IPath) entry.getKey();
-                final Set owners = (Set) entry.getValue();
-                
-                if( owners.contains( fv ) )
-                {
-                    owners.remove( fv );
-                    
-                    if( owners.size() == 0 )
-                    {
-                        itr1.remove();
-                        
-                        for( Iterator itr2 = cp.iterator(); itr2.hasNext(); )
-                        {
-                            final IClasspathEntry cpentry
-                                = (IClasspathEntry) itr2.next();
-                            
-                            if( cpentry.getPath().equals( path ) )
-                            {
-                                itr2.remove();
-                                cpchanged = true;
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
+	throws CoreException
 
-            if( cpchanged )
-            {
-                setClasspath( jproj, cp );
-            }
-            
-            writePreferences( project, prefs );
-        }
-        catch( BackingStoreException e )
-        {
-            final IStatus st
-                = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, 
-                              Resources.failedWritingPreferences, e );
-            
-            throw new CoreException( st );
-        }
-    }
+	{
+		try {
+			final IJavaProject jproj = JavaCore.create(project);
+			final List cp = getClasspath(jproj);
+			final IProjectFacet facet = fv.getProjectFacet();
+			boolean cpchanged = false;
+
+			Map prefs = readPreferences(project);
+			
+			// In the case where no prefs exists... make sure the entries of the
+			// runtime are removed before continuing
+			if (prefs.isEmpty()) {
+				IFacetedProject fproj = ProjectFacetsManager.create(project);
+				IRuntime runtime = fproj.getPrimaryRuntime();
+				removeOnlyCPEntries(project, fv, jproj, cp, runtime);
+			}
+
+			for (Iterator itr1 = prefs.entrySet().iterator(); itr1.hasNext();) {
+				final Map.Entry entry = (Map.Entry) itr1.next();
+				final IPath path = (IPath) entry.getKey();
+				final Set owners = (Set) entry.getValue();
+				IProjectFacetVersion foundVersion = null;
+				boolean found = false,systemFound = false;
+
+				for (Object anOwner : owners) {
+					if (anOwner == SYSTEM_OWNER) {
+						systemFound = true;
+						continue;
+					}
+					if (((IProjectFacetVersion)anOwner).getProjectFacet().equals(facet)) {
+						foundVersion = (IProjectFacetVersion)anOwner;
+						found = true;
+						break;
+					}
+				}
+				if (systemFound)
+					owners.remove(SYSTEM_OWNER);
+				if (found) {
+					owners.remove(foundVersion);
+
+					if (owners.size() == 0) {
+						itr1.remove();
+
+						for (Iterator itr2 = cp.iterator(); itr2.hasNext();) {
+							final IClasspathEntry cpentry = (IClasspathEntry) itr2.next();
+
+							if (cpentry.getPath().equals(path)) {
+								itr2.remove();
+								cpchanged = true;
+								break;
+							}
+						}
+					}
+				}
+			}
+
+			if (cpchanged) {
+				setClasspath(jproj, cp);
+			}
+
+			writePreferences(project, prefs);
+		} catch (BackingStoreException e) {
+			final IStatus st = new Status(IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, Resources.failedWritingPreferences, e);
+
+			throw new CoreException(st);
+		}
+	}
+
+	private static void removeOnlyCPEntries(final IProject project, final IProjectFacetVersion fv, final IJavaProject jproj, final List cp,
+			IRuntime oldRuntime) throws CoreException {
+		IFacetedProject fproj = ProjectFacetsManager.create(project);
+		IRuntime runtime = (oldRuntime != null) ? oldRuntime : fproj.getPrimaryRuntime();
+
+		if (runtime != null) {
+			IClasspathProvider cpprov = (IClasspathProvider) runtime.getAdapter(IClasspathProvider.class);
+			List cpentries = cpprov.getClasspathEntries(fv);
+			boolean realCPChanged = false;
+			for (Iterator itr = cpentries.iterator(); itr.hasNext();) {
+				IClasspathEntry cpentry = (IClasspathEntry) itr.next();
+				IPath path = cpentry.getPath();
+				boolean contains = cp.contains(cpentry);
+
+				if (contains) {
+					for (Iterator itr2 = cp.iterator(); itr2.hasNext();) {
+						final IClasspathEntry realEntry = (IClasspathEntry) itr2.next();
+
+						if (realEntry.getPath().equals(path)) {
+							itr2.remove();
+							realCPChanged = true;
+							break;
+						}
+					}
+				}
+			}
+			if (realCPChanged) {
+				setClasspath(jproj, cp);
+			}
+		}
+	}
     
     private static List getClasspath( final IJavaProject jproj )
     
@@ -355,10 +409,12 @@
                 }
                 else
                 {
-                    final IProjectFacetVersion fv 
-                        = parseFeatureVersion( segment );
-                    
-                    set.add( fv );
+                	if(segment.length() != 0) {
+	                    final IProjectFacetVersion fv 
+	                        = parseFeatureVersion( segment );
+	                    
+	                    set.add( fv );
+	                }
                 }
             }
             
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/.classpath b/plugins/org.eclipse.jst.common.project.facet.ui/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<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="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/.project b/plugins/org.eclipse.jst.common.project.facet.ui/.project
deleted file mode 100644
index 96fd01c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.jst.common.project.facet.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index bcc26d6..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/.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.jst.common.project.facet.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.project.facet.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 3e1f4b8..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.common.project.facet.ui;singleton:=true
-Bundle-Version: 1.3.1.qualifier
-Bundle-ClassPath: .
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.jst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/about.html b/plugins/org.eclipse.jst.common.project.facet.ui/about.html
deleted file mode 100644
index 73db36e..0000000
--- a/plugins/org.eclipse.jst.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.jst.common.project.facet.ui/build.properties b/plugins/org.eclipse.jst.common.project.facet.ui/build.properties
deleted file mode 100644
index c4aeebe..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               META-INF/,\
-               plugin.properties,\
-               component.xml,\
-               about.html,\
-               images/
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/component.xml b/plugins/org.eclipse.jst.common.project.facet.ui/component.xml
deleted file mode 100644
index c5f9bc9..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/component.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jst.common.project.facet">
-  <description url=""></description>
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.jst.common.project.facet.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/images/java-facet.gif b/plugins/org.eclipse.jst.common.project.facet.ui/images/java-facet.gif
deleted file mode 100644
index 37cb4e7..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/images/java-facet.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/images/standard-jre-component.gif b/plugins/org.eclipse.jst.common.project.facet.ui/images/standard-jre-component.gif
deleted file mode 100644
index cb55e33..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/images/standard-jre-component.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/plugin.properties b/plugins/org.eclipse.jst.common.project.facet.ui/plugin.properties
deleted file mode 100644
index 7b14710..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Project Facet UI (Java Support)
-providerName = Eclipse.org
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/plugin.xml b/plugins/org.eclipse.jst.common.project.facet.ui/plugin.xml
deleted file mode 100644
index 786daa1..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/plugin.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension point="org.eclipse.wst.common.project.facet.ui.images">
-    <image 
-      runtime-component-type="standard.jre"
-      path="images/standard-jre-component.gif"/>
-    <image 
-      facet="jst.java" 
-      path="images/java-facet.gif"/>
-  </extension>
-  
-  <extension
-    point="org.eclipse.ui.ide.markerResolution">
-	<markerResolutionGenerator
-      markerType="org.eclipse.jst.common.project.facet.core.javaVersionMismatch"
-      class="org.eclipse.jst.common.project.facet.ui.internal.JavaVersionMismatchMarkerResolutions">
-    </markerResolutionGenerator>
-  </extension>
-
-  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
-    <adapter>
-      <runtime-component id="standard.jre"/>
-      <factory class="org.eclipse.jst.common.project.facet.ui.internal.StandardJreComponentLabelProvider$Factory"/>
-      <type class="org.eclipse.wst.common.project.facet.ui.IRuntimeComponentLabelProvider"/>
-    </adapter>
-  </extension>
-  
-</plugin>
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.java b/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.java
deleted file mode 100644
index d6254ba..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 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.jst.common.project.facet.ui.internal;
-
-import java.util.Collections;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
-import org.eclipse.jst.common.project.facet.core.internal.JavaFacetUtil;
-import org.eclipse.jst.common.project.facet.core.internal.JavaFacetValidator;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator;
-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;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class JavaVersionMismatchMarkerResolutions
-
-    implements IMarkerResolutionGenerator
-    
-{
-    public IMarkerResolution[] getResolutions( final IMarker marker )
-    {
-        return new IMarkerResolution[] 
-        { 
-            new Resolution1( marker ), 
-            new Resolution2( marker ) 
-        };
-    }
-    
-    private static final class Resolution1
-    
-        implements IMarkerResolution
-        
-    {
-        private final IMarker marker;
-        
-        public Resolution1( final IMarker marker )
-        {
-            this.marker = marker;
-        }
-        
-        public String getLabel()
-        {
-            final IProjectFacetVersion fv = getProjectFacetVersion();
-            return NLS.bind( Resources.changeFacetVersion, fv );
-        }
-
-        public void run( final IMarker marker )
-        {
-            final Action action
-                = new Action( Action.Type.VERSION_CHANGE, 
-                              getProjectFacetVersion(), null );
-
-            final IProject proj = this.marker.getResource().getProject();
-            
-            try
-            {
-                final IFacetedProject fproj 
-                    = ProjectFacetsManager.create( proj );
-                
-                fproj.modify( Collections.singleton( action ), null );
-            }
-            catch( CoreException e )
-            {
-                ErrorDialog.openError( null, Resources.errorDialogTitle,
-                                       Resources.errorDialogMessage,
-                                       e.getStatus() );
-            }
-        }
-        
-        private IProjectFacetVersion getProjectFacetVersion()
-        {
-            final String level 
-                = this.marker.getAttribute( JavaFacetValidator.ATTR_COMPILER_LEVEL, null );
-            
-            return JavaFacetUtil.compilerLevelToFacet( level );
-        }
-    }
-
-    private static final class Resolution2
-    
-        implements IMarkerResolution
-        
-    {
-        private final IMarker marker;
-        
-        public Resolution2( final IMarker marker )
-        {
-            this.marker = marker;
-        }
-        
-        public String getLabel()
-        {
-            final String level = getCompilerLevel();
-            return NLS.bind( Resources.changeCompilerLevel, level );
-        }
-    
-        public void run( final IMarker marker )
-        {
-            final IProject project = this.marker.getResource().getProject();
-            final String level = getCompilerLevel();
-            
-            try
-            {
-                JavaFacetUtil.setCompilerLevel( project, level );
-                JavaFacetUtil.scheduleFullBuild( project );
-            }
-            catch( CoreException e )
-            {
-                ErrorDialog.openError( null, Resources.errorDialogTitle,
-                                       Resources.errorDialogMessage,
-                                       e.getStatus() );
-            }
-        }
-        
-        private String getCompilerLevel()
-        {
-            final String fvstr
-                = this.marker.getAttribute( JavaFacetValidator.ATTR_FACET_VERSION, null);
-            
-            final IProjectFacetVersion fv = JavaFacet.FACET.getVersion( fvstr );
-            
-            return JavaFacetUtil.facetToCompilerLevel( fv );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String changeFacetVersion;
-        public static String changeCompilerLevel;
-        public static String errorDialogTitle;
-        public static String errorDialogMessage;
-        
-        static
-        {
-            initializeMessages( JavaVersionMismatchMarkerResolutions.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.properties b/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.properties
deleted file mode 100644
index 227ca0a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/JavaVersionMismatchMarkerResolutions.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-changeFacetVersion = Change Java project facet version to {0}
-changeCompilerLevel =Change Java compiler level to {0}
-errorDialogTitle = Error
-errorDialogMessage = Failed while applying the quick fix.
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.java b/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.java
deleted file mode 100644
index 81971c0..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 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.jst.common.project.facet.ui.internal;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-import org.eclipse.wst.common.project.facet.ui.IRuntimeComponentLabelProvider;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class StandardJreComponentLabelProvider 
-
-    implements IRuntimeComponentLabelProvider 
-    
-{
-    private final IRuntimeComponent rc;
-
-    public StandardJreComponentLabelProvider( final IRuntimeComponent rc ) 
-    {
-        this.rc = rc;
-    }
-
-    public String getLabel() 
-    {
-        final IRuntimeComponentVersion rcv = this.rc.getRuntimeComponentVersion();
-        return Resources.bind( Resources.label, rcv.getVersionString() );
-    }
-    
-    public static final class Factory
-    
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES = { IRuntimeComponentLabelProvider.class };
-
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-
-        public Object getAdapter( final Object adaptableObject, 
-                                  final Class adapterType )
-        {
-            return new StandardJreComponentLabelProvider( (IRuntimeComponent) adaptableObject );
-        }
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String label;
-        
-        static
-        {
-            initializeMessages( StandardJreComponentLabelProvider.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.properties b/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.properties
deleted file mode 100644
index 4049ef4..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.ui/src/org/eclipse/jst/common/project/facet/ui/internal/StandardJreComponentLabelProvider.properties
+++ /dev/null
@@ -1 +0,0 @@
-label = Java Runtime Environment v{0}
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
index b87c007..7decb4f 100644
--- 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
@@ -3,7 +3,7 @@
 Bundle-Vendor: %providerName
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.3.5.qualifier
+Bundle-Version: 1.3.6.qualifier
 Bundle-ClassPath: .
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.project.facet.core,
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
index 9950a1a..05d366a 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
+++ b/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
@@ -4,3 +4,4 @@
 validationMarkerName = Faceted Project Problem
 extPointListeners = Faceted Project Listeners Extension Point
 extPointPresets = Faceted Project Presets
+extPointAliases = Project Facet Aliases Extension Point
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
index 041f7f8..d25cb77 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ b/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
@@ -37,7 +37,12 @@
     id="presets" 
     name="%extPointPresets" 
     schema="schemas/presets.exsd"/>
-  
+    
+  <extension-point 
+    id="aliases" 
+    name="%extPointAliases" 
+    schema="schemas/aliases.exsd"/>
+      
   <extension
     id="nature"
     point="org.eclipse.core.resources.natures">
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/aliases.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/aliases.exsd
new file mode 100644
index 0000000..755eaf5
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.project.facet.core/schemas/aliases.exsd
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="aliases" name="Project Facet Aliases Extension Point"/>
+      </appInfo>
+      <documentation>
+         Used as part of a migration strategy in order to maintain backwards compatibility when changing the id or the version of a facet. Allows one or more aliases to be defined for facet id or version. Once an alias is defined, it will resolve to the actual facet when it appears in project metadata or is referenced in an API call.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appInfo>
+            <meta.element />
+         </appInfo>
+      </annotation>
+      <complexType>
+         <choice minOccurs="1" maxOccurs="unbounded">
+            <element ref="facet-alias"/>
+            <element ref="facet-version-alias"/>
+         </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="facet-alias">
+      <annotation>
+         <documentation>
+            Specifies a single facet alias.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="facet" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The id of an existing facet.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="identifier" basedOn="org.eclipse.wst.common.project.facet.core.facets/project-facet/@id"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="alias" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The alias to assign to the specified facet.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="facet-version-alias">
+      <annotation>
+         <documentation>
+            Specifies a single facet version alias.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="facet" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The id of an existing facet.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="identifier" basedOn="org.eclipse.wst.common.project.facet.core.facets/project-facet/@id"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="version" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The facet version to alias.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="alias" type="string">
+            <annotation>
+               <documentation>
+                  The alias to assign to the specified facet version.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         &lt;pre&gt;
+&lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.aliases&quot;&gt;
+  &lt;facet-alias facet=&quot;mytech&quot; alias=&quot;formgen&quot;/&gt;
+  &lt;facet-version-alias facet=&quot;mytech&quot; version=&quot;1.5&quot; alias=&quot;2.0&quot;/&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2010 Oracle 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/IProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
index 7ac330f..14407db 100644
--- 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
@@ -50,6 +50,15 @@
     String getId();
     
     /**
+     * Returns the alternate identifiers that are associated with this facet. Aliases are specified
+     * via the <code>aliases</code> extension point.
+     * 
+     * @return the alternate identifiers that are associated with this facet, if any
+     */
+    
+    Set<String> getAliases();
+    
+    /**
      * Returns the id of the plugin that defines this project facet. This method
      * will return <code>null</code> if this facet is not defined. 
      * 
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
index 14f11dc..f9ac0f5 100644
--- 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
@@ -46,6 +46,15 @@
     String getVersionString();
     
     /**
+     * Returns the alternate version strings that are associated with this facet version. Aliases 
+     * are specified via the <code>aliases</code> extension point.
+     * 
+     * @return the alternate version strings that are associated with this facet version, if any
+     */
+    
+    Set<String> getAliases();
+    
+    /**
      * 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. 
      * 
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
index 7bf677e..a9e4c7c 100644
--- 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
@@ -139,6 +139,8 @@
     private final Set<IProjectFacet> fixed;
     private final Set<IProjectFacet> fixedReadOnly;
     private final Map<String,ProjectFacet> unknownFacets;
+    private final Map<IProjectFacet,String> activeFacetAliases;
+    private final Map<IProjectFacetVersion,String> activeFacetVersionAliases;
     private final Set<String> targetedRuntimes;
     private String primaryRuntime;
     IFile f;
@@ -161,6 +163,8 @@
         this.fixed = new CopyOnWriteArraySet<IProjectFacet>();
         this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
         this.unknownFacets = new HashMap<String,ProjectFacet>();
+        this.activeFacetAliases = new HashMap<IProjectFacet,String>();
+        this.activeFacetVersionAliases = new HashMap<IProjectFacetVersion,String>();
         this.targetedRuntimes = new CopyOnWriteArraySet<String>();
         this.listeners = new ProjectListenerRegistry();
         this.parsingException = null;
@@ -1499,18 +1503,29 @@
         
         for( IProjectFacet f : this.fixed )
         {
+            String fid = this.activeFacetAliases.get( f );
+            fid = ( fid == null ? f.getId() : fid );
+            
             out.print( "  <fixed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( f.getId() ) );
+            out.print( escape( fid ) );
             out.print( "\"/>" ); //$NON-NLS-1$
             out.print( nl );
         }
         
         for( IProjectFacetVersion fv : this.facets )
         {
+            final IProjectFacet f = fv.getProjectFacet();
+
+            String fid = this.activeFacetAliases.get( f );
+            fid = ( fid == null ? f.getId() : fid );
+            
+            String fverstr = this.activeFacetVersionAliases.get( fv );
+            fverstr = ( fverstr == null ? fv.getVersionString() : fverstr );
+            
             out.print( "  <installed facet=\"" ); //$NON-NLS-1$
-            out.print( escape( fv.getProjectFacet().getId() ) );
+            out.print( escape( fid ) );
             out.print( "\" version=\"" ); //$NON-NLS-1$
-            out.print( escape( fv.getVersionString() ) );
+            out.print( escape( fverstr ) );
             out.print( "\"/>" ); //$NON-NLS-1$
             out.print( nl );
         }
@@ -1585,6 +1600,8 @@
                 this.facets.clear();
                 this.fixed.clear();
                 this.unknownFacets.clear();
+                this.activeFacetAliases.clear();
+                this.activeFacetVersionAliases.clear();
                 this.targetedRuntimes.clear();
                 this.primaryRuntime = null;
                 
@@ -1634,6 +1651,11 @@
                                 if( ProjectFacetsManager.isProjectFacetDefined( id ) )
                                 {
                                     f = ProjectFacetsManager.getProjectFacet( id );
+                                    
+                                    if( ! f.getId().equals( id ) )
+                                    {
+                                        this.activeFacetAliases.put( f, id );
+                                    }
                                 }
                                 else
                                 {
@@ -1652,6 +1674,11 @@
                                 if( ProjectFacetsManager.isProjectFacetDefined( id ) )
                                 {
                                     f = ProjectFacetsManager.getProjectFacet( id );
+                                    
+                                    if( ! f.getId().equals( id ) )
+                                    {
+                                        this.activeFacetAliases.put( f, id );
+                                    }
                                 }
                                 else
                                 {
@@ -1663,6 +1690,11 @@
                                 if( f.hasVersion( version ) )
                                 {
                                     fv = f.getVersion( version );
+                                    
+                                    if( ! fv.getVersionString().equals( version ) )
+                                    {
+                                        this.activeFacetVersionAliases.put( fv, version );
+                                    }
                                 }
                                 else
                                 {
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
index 99510d1..b3f3724 100644
--- 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
@@ -65,6 +65,7 @@
 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.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectFrameworkEvent;
@@ -212,7 +213,7 @@
     
     public Set<IProjectFacet> getProjectFacets()
     {
-        return this.facets.getUnmodifiable();
+        return this.facets.getItemSet();
     }
     
     public boolean isProjectFacetDefined( final String id )
@@ -222,7 +223,7 @@
     
     public IProjectFacet getProjectFacet( final String id )
     {
-        final IProjectFacet f = this.facets.get( id );
+        final IProjectFacet f = this.facets.getItemByKey( id );
         
         if( f == null )
         {
@@ -235,7 +236,7 @@
     
     public Set<IActionDefinition> getActionDefinitions()
     {
-        return this.actions.getUnmodifiable();
+        return this.actions.getItemSet();
     }
     
     public boolean isActionDefined( final String id )
@@ -245,7 +246,7 @@
     
     public IActionDefinition getActionDefinition( final String id )
     {
-        final IActionDefinition adef = this.actions.get( id );
+        final IActionDefinition adef = this.actions.getItemByKey( id );
         
         if( adef == null )
         {
@@ -258,7 +259,7 @@
     
     public Set<ICategory> getCategories()
     {
-        return this.categories.getUnmodifiable();
+        return this.categories.getItemSet();
     }
 
     public boolean isCategoryDefined( final String id )
@@ -268,7 +269,7 @@
     
     public ICategory getCategory( final String id )
     {
-        final ICategory category = this.categories.get( id );
+        final ICategory category = this.categories.getItemByKey( id );
         
         if( category == null )
         {
@@ -284,7 +285,7 @@
         synchronized( this.presets )
         {
             initializePresets();
-            return this.presets.getUnmodifiable();
+            return this.presets.getItemSet();
         }
     }
     
@@ -303,7 +304,7 @@
         {
             initializePresets();
             
-            final IPreset preset = this.presets.get( id );
+            final IPreset preset = this.presets.getItemByKey( id );
             
             if( preset == null )
             {
@@ -358,7 +359,7 @@
                 = new UserPreset( id, name, description == null ? "" : description,  //$NON-NLS-1$
                                   facets );
             
-            this.presets.add( id, preset );
+            this.presets.addItemWithKey( id, preset );
             
             if( save )
             {
@@ -382,7 +383,7 @@
                 return false;
             }
             
-            deleted = this.presets.delete( preset.getId() );
+            deleted = this.presets.removeItemByKey( preset.getId() );
             
             if( deleted )
             {
@@ -409,7 +410,7 @@
             {
                 for( IPreset preset : PresetsExtensionPoint.getPresets() )
                 {
-                    this.presets.add( preset.getId(), preset );
+                    this.presets.addItemWithKey( preset.getId(), preset );
                 }
                 
                 readUserPresets();
@@ -432,7 +433,7 @@
                 root.node( children[ i ] ).removeNode();
             }
             
-            for( IPreset preset : this.presets )
+            for( IPreset preset : this.presets.getItemSet() )
             {
                 if( preset.getType() == IPreset.Type.USER_DEFINED )
                 {
@@ -570,7 +571,7 @@
     
     public Set<IGroup> getGroups()
     {
-        return this.groups.getUnmodifiable();
+        return this.groups.getItemSet();
     }
     
     public boolean isGroupDefined( final String id )
@@ -580,7 +581,7 @@
     
     public IGroup getGroup( final String id )
     {
-        final IGroup group = this.groups.get( id );
+        final IGroup group = this.groups.getItemByKey( id );
         
         if( group == null )
         {
@@ -1445,7 +1446,7 @@
         final IConfigurationElement elDesc = findOptionalElement( config, EL_DESCRIPTION );
         category.setDescription( getElementValue( elDesc, DEFAULT_DESCRIPTION ) );
         
-        this.categories.add( category.getId(), category );
+        this.categories.addItemWithKey( category.getId(), category );
     }
     
     private void readProjectFacet( final IConfigurationElement config )
@@ -1544,7 +1545,14 @@
             }
         }
         
-        this.facets.add( f.getId(), f );
+        this.facets.addItem( f );
+        this.facets.addKey( f.getId(), f );
+        
+        for( String alias : ProjectFacetAliasesExtensionPoint.getAliases( f ) )
+        {
+            this.facets.addKey( alias, f );
+            f.addAlias( alias );
+        }
     }
     
     private void readProjectFacetVersion( final IConfigurationElement config,
@@ -1567,7 +1575,7 @@
             return;
         }
         
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
+        final ProjectFacet f = (ProjectFacet) this.facets.getItemByKey( fid );
         
         if( f == null )
         {
@@ -1606,14 +1614,14 @@
                     return;
                 }
                 
-                Group group = (Group) this.groups.get( id );
+                Group group = (Group) this.groups.getItemByKey( id );
                 
                 if( group == null )
                 {
                     group = new Group();
                     group.setId( id );
                     
-                    this.groups.add( id, group );
+                    this.groups.addItemWithKey( id, group );
                 }
                 
                 group.addMember( fv );
@@ -1672,7 +1680,7 @@
     {
         final List<IProjectFacet> badFacets = new ArrayList<IProjectFacet>();
         
-        for( IProjectFacet f : this.facets )
+        for( IProjectFacet f : this.facets.getItemSet() )
         {
             try
             {
@@ -1730,7 +1738,7 @@
         
         for( IProjectFacet f : badFacets )
         {
-            this.facets.remove( f );
+            this.facets.removeItem( f );
             
             final Category category = (Category) f.getCategory();
             
@@ -1835,7 +1843,7 @@
             return;
         }
         
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
+        final ProjectFacet f = (ProjectFacet) this.facets.getItemByKey( fid );
         
         if( f == null )
         {
@@ -2011,7 +2019,7 @@
         }
         else
         {
-            this.actions.add( def.getId(), def );
+            this.actions.addItemWithKey( def.getId(), def );
             f.addActionDefinition( def );
         }
     }
@@ -2026,7 +2034,7 @@
             return;
         }
         
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
+        final ProjectFacet f = (ProjectFacet) this.facets.getItemByKey( fid );
         
         if( f == null )
         {
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
index a2f7625..85f4286 100644
--- 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
@@ -51,13 +51,13 @@
     public static Set<IFacetedProjectTemplate> getTemplates()
     {
         readExtensions();
-        return templates.getUnmodifiable();
+        return templates.getItemSet();
     }
     
     public static IFacetedProjectTemplate getTemplate( final String id )
     {
         readExtensions();
-        return templates.get( id );
+        return templates.getItemByKey( id );
     }
     
     private static synchronized void readExtensions()
@@ -136,7 +136,7 @@
             }
         }
         
-        templates.add( template.getId(), template );
+        templates.addItemWithKey( template.getId(), template );
     }
     
     private static final class Resources
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java
index 22faeb8..e0c5b2c 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectWorkingCopy.java
@@ -640,7 +640,7 @@
     {
         synchronized( this.lock )
         {
-            return this.facets.getUnmodifiable();
+            return this.facets.getItemSet();
         }
     }
     
@@ -648,7 +648,7 @@
     {
         synchronized( this.lock )
         {
-            return this.facets.get( f );
+            return this.facets.getItemByKey( f );
         }
     }
     
@@ -664,7 +664,7 @@
     {
         synchronized( this.lock )
         {
-            return this.facets.contains( fv );
+            return this.facets.containsItem( fv );
         }
     }
     
@@ -681,17 +681,17 @@
                 
                 for( IProjectFacetVersion fv : facets )
                 {
-                    newProjectFacets.add( fv.getProjectFacet(), fv );
+                    newProjectFacets.addItemWithKey( fv.getProjectFacet(), fv );
                 }
                 
                 final Set<IProjectFacetVersion> addedFacets = new HashSet<IProjectFacetVersion>();
                 final Set<IProjectFacetVersion> removedFacets = new HashSet<IProjectFacetVersion>();
                 final Set<IProjectFacetVersion> changedVersions = new HashSet<IProjectFacetVersion>();
                 
-                for( IProjectFacetVersion fv : newProjectFacets )
+                for( IProjectFacetVersion fv : newProjectFacets.getItemSet() )
                 {
                     final IProjectFacetVersion currentFacetVersion 
-                        = this.facets.get( fv.getProjectFacet() );
+                        = this.facets.getItemByKey( fv.getProjectFacet() );
                     
                     if( currentFacetVersion == null )
                     {
@@ -706,7 +706,7 @@
                     }
                 }
                 
-                for( IProjectFacetVersion fv : this.facets )
+                for( IProjectFacetVersion fv : this.facets.getItemSet() )
                 {
                     if( ! newProjectFacets.containsKey( fv.getProjectFacet() ) )
                     {
@@ -752,14 +752,14 @@
             synchronized( this.lock )
             {
                 final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
+                    = this.facets.getItemByKey( fv.getProjectFacet() );
                 
                 if( existingVersion == null )
                 {
                     final Set<IProjectFacetVersion> newProjectFacets 
                         = new HashSet<IProjectFacetVersion>();
         
-                    newProjectFacets.addAll( this.facets );
+                    newProjectFacets.addAll( this.facets.getItemSet() );
                     newProjectFacets.add( fv );
                     
                     setProjectFacets( newProjectFacets );
@@ -812,7 +812,7 @@
             synchronized( this.lock )
             {
                 final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
+                    = this.facets.getItemByKey( fv.getProjectFacet() );
                 
                 if( existingVersion == null )
                 {
@@ -823,7 +823,7 @@
                     final Set<IProjectFacetVersion> newProjectFacets 
                         = new HashSet<IProjectFacetVersion>();
         
-                    newProjectFacets.addAll( this.facets );
+                    newProjectFacets.addAll( this.facets.getItemSet() );
                     newProjectFacets.remove( fv );
                     
                     setProjectFacets( newProjectFacets );
@@ -850,7 +850,7 @@
             synchronized( this.lock )
             {
                 final IProjectFacetVersion existingVersion 
-                    = this.facets.get( fv.getProjectFacet() );
+                    = this.facets.getItemByKey( fv.getProjectFacet() );
                 
                 if( existingVersion == null )
                 {
@@ -866,7 +866,7 @@
                     final Set<IProjectFacetVersion> newProjectFacets 
                         = new HashSet<IProjectFacetVersion>();
         
-                    newProjectFacets.addAll( this.facets );
+                    newProjectFacets.addAll( this.facets.getItemSet() );
                     newProjectFacets.remove( existingVersion );
                     newProjectFacets.add( fv );
                     
@@ -896,7 +896,7 @@
     {
         synchronized( this.lock )
         {
-            return this.availablePresets.getUnmodifiable();
+            return this.availablePresets.getItemSet();
         }
     }
     
@@ -974,7 +974,7 @@
                     
                     if( applicable )
                     {
-                        newAvailablePresets.add( preset.getId(), preset );
+                        newAvailablePresets.addItemWithKey( preset.getId(), preset );
                     }
                 }
                 
@@ -1003,7 +1003,7 @@
         {
             if( this.selectedPresetId != null )
             {
-                return this.availablePresets.get( this.selectedPresetId );
+                return this.availablePresets.getItemByKey( this.selectedPresetId );
             }
             else
             {
@@ -1026,7 +1026,7 @@
                     throw new IllegalArgumentException( msg );
                 }
                 
-                final IPreset preset = this.availablePresets.get( presetId );
+                final IPreset preset = this.availablePresets.getItemByKey( presetId );
                 
                 if( ! equals( this.selectedPresetId, presetId ) || 
                     ( preset != null && ! equals( preset.getProjectFacets(), getProjectFacets() ) ) )
@@ -1060,7 +1060,7 @@
     {
         synchronized( this.lock )
         {
-            return this.availablePresets.get( DefaultConfigurationPresetFactory.PRESET_ID );
+            return this.availablePresets.getItemByKey( DefaultConfigurationPresetFactory.PRESET_ID );
         }
     }
 
@@ -1068,7 +1068,7 @@
     {
         synchronized( this.lock )
         {
-            return this.availablePresets.get( MinimalConfigurationPresetFactory.PRESET_ID );
+            return this.availablePresets.getItemByKey( MinimalConfigurationPresetFactory.PRESET_ID );
         }
     }
 
@@ -1111,7 +1111,7 @@
                     {
                         ok = true;
                         
-                        for( IProjectFacetVersion fv : this.facets )
+                        for( IProjectFacetVersion fv : this.facets.getItemSet() )
                         {
                             if( ! r.supports( fv ) )
                             {
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
index 31c42ce..bb7727c 100644
--- 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
@@ -71,13 +71,13 @@
     public static Set<IPreset> getPresets()
     {
         readExtensions();
-        return presets.getUnmodifiable();
+        return presets.getItemSet();
     }
     
     public static IPreset getPreset( final String id )
     {
         readExtensions();
-        return presets.get( id );
+        return presets.getItemByKey( id );
     }
     
     private static synchronized void readExtensions()
@@ -137,11 +137,11 @@
         // 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 ); 
+        Set<IPreset> copy = new HashSet<IPreset>( presets.getItemSet() ); 
         
         for( IPreset preset : copy )
         {
-            if( presets.contains( preset ) )
+            if( presets.containsItem( preset ) )
             {
                 resolveBasePreset( preset, new HashSet<IPreset>() );
             }
@@ -156,7 +156,7 @@
         {
             doAnotherPass = false;
             
-            for( IPreset preset : presets )
+            for( IPreset preset : presets.getItemSet() )
             {
                 if( preset.getType() == IPreset.Type.STATIC )
                 {
@@ -177,7 +177,8 @@
                                                                     stPreset.getBasePresetId(),
                                                                     stPreset.getProjectFacets() );
                             
-                            presets.add( stPresetNew.getId(), stPresetNew );
+                            presets.removeItem( stPreset );
+                            presets.addItemWithKey( stPresetNew.getId(), stPresetNew );
 
                             doAnotherPass = true;
                             break;
@@ -257,7 +258,7 @@
         final StaticPreset preset 
             = new StaticPreset( id, pluginId, label, description, basePreset, facets );
         
-        presets.add( id, preset );
+        presets.addItemWithKey( id, preset );
     }
 
     private static void readDynamicPreset( final IConfigurationElement el )
@@ -271,7 +272,7 @@
         final String factoryClassName = findRequiredAttribute( elFactory, ATTR_CLASS );
         
         final DynamicPreset preset = new DynamicPreset( id, pluginId, factoryClassName );
-        presets.add( id, preset );
+        presets.addItemWithKey( id, preset );
     }
     
     private static boolean resolveBasePreset( final IPreset preset,
@@ -339,7 +340,7 @@
 
                 if( problem )
                 {
-                    PresetsExtensionPoint.presets.delete( preset.getId() );
+                    PresetsExtensionPoint.presets.removeItemByKey( preset.getId() );
                     return false;
                 }
             }
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
index 2ddc8ea..7730997 100644
--- 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
@@ -44,6 +44,8 @@
     
 {
     private String id;
+    private final Set<String> aliases;
+    private final Set<String> aliasesReadOnly;
     private String plugin;
     private String label;
     private String description;
@@ -56,6 +58,8 @@
     
     ProjectFacet() 
     {
+        this.aliases = new HashSet<String>();
+        this.aliasesReadOnly = Collections.unmodifiableSet( this.aliases );
         this.actionDefinitions = new ArrayList<IActionDefinition>();
         this.properties = new HashMap<String,Object>();
         this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
@@ -71,6 +75,16 @@
         this.id = id;
     }
     
+    public Set<String> getAliases()
+    {
+        return this.aliasesReadOnly;
+    }
+    
+    void addAlias( final String alias )
+    {
+        this.aliases.add( alias );
+    }
+    
     public String getPluginId()
     {
         return this.plugin;
@@ -111,9 +125,16 @@
         this.category = category;
     }
     
-    void addVersion( final IProjectFacetVersion ver )
+    void addVersion( final IProjectFacetVersion fv )
     {
-        this.versions.add( ver.getVersionString(), ver );
+        this.versions.addItem( fv );
+        this.versions.addKey( fv.getVersionString(), fv );
+        
+        for( String alias : ProjectFacetAliasesExtensionPoint.getAliases( fv ) )
+        {
+            this.versions.addKey( alias, fv );
+            ( (ProjectFacetVersion) fv ).addAlias( alias );
+        }
     }
     
     public IProjectFacetVersion getLatestSupportedVersion( final IRuntime r )
@@ -212,7 +233,7 @@
     
     public boolean isVersionHidden()
     {
-        return ( this.versions.size() == 1 &&
+        return ( this.versions.getItemSet().size() == 1 &&
                  equal( getProperty( PROP_HIDE_VERSION ), true ) );
     }
     
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetAliasesExtensionPoint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetAliasesExtensionPoint.java
new file mode 100644
index 0000000..d56791d
--- /dev/null
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetAliasesExtensionPoint.java
@@ -0,0 +1,154 @@
+/******************************************************************************
+ * Copyright (c) 2010 Oracle
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms 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.core.internal;
+
+import static org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin.PLUGIN_ID;
+import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findExtensions;
+import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.findRequiredAttribute;
+import static org.eclipse.wst.common.project.facet.core.util.internal.PluginUtil.getTopLevelElements;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+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.util.internal.PluginUtil.InvalidExtensionException;
+
+/**
+ * Contains the logic for processing the <code>aliases</code> extension point. 
+ * 
+ * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
+ */
+
+public final class ProjectFacetAliasesExtensionPoint
+{
+    public static final String EXTENSION_POINT_ID = "aliases"; //$NON-NLS-1$
+    
+    private static final String EL_FACET_ALIAS = "facet-alias"; //$NON-NLS-1$
+    private static final String EL_FACET_VERSION_ALIAS = "facet-version-alias"; //$NON-NLS-1$
+    private static final String ATTR_ALIAS = "alias"; //$NON-NLS-1$
+    private static final String ATTR_FACET = "facet"; //$NON-NLS-1$
+    private static final String ATTR_VERSION = "version"; //$NON-NLS-1$
+    
+    /*
+     * Note that the facetAliases and facetVersionAliases data structures hold strings rather
+     * than more specific IProjectFacet and IProjectFacetVersion objects. This is done this
+     * way as this class is called during initialization of FacetedProjectFramework and we need
+     * to avoid circular calls (this class cannot call back to FacetedProjectFramework).
+     */
+    
+    private static Map<String,Set<String>> facetAliases = null;
+    private static Map<String,Map<String,Set<String>>> facetVersionAliases = null;
+    
+    public static Set<String> getAliases( final IProjectFacet f )
+    {
+        readExtensions();
+        
+        final Set<String> aliases = facetAliases.get( f.getId() );
+        
+        if( aliases != null )
+        {
+            return aliases; 
+        }
+        
+        return Collections.emptySet();
+    }
+    
+    public static Set<String> getAliases( final IProjectFacetVersion fv )
+    {
+        readExtensions();
+        
+        final Map<String,Set<String>> versionToAliasesMap = facetVersionAliases.get( fv.getProjectFacet().getId() );
+        
+        if( versionToAliasesMap != null )
+        {
+            final Set<String> aliases = versionToAliasesMap.get( fv.getVersionString() );
+            
+            if( aliases != null )
+            {
+                return aliases;
+            }
+        }
+        
+        return Collections.emptySet();
+    }
+    
+    private static synchronized void readExtensions()
+    {
+        if( facetAliases != null )
+        {
+            return;
+        }
+        
+        facetAliases = new HashMap<String,Set<String>>();
+        facetVersionAliases = new HashMap<String,Map<String,Set<String>>>();
+        
+        for( IConfigurationElement element 
+             : getTopLevelElements( findExtensions( PLUGIN_ID, EXTENSION_POINT_ID ) ) )
+        {
+            final String elname = element.getName();
+            
+            try
+            {
+                if( elname.equals( EL_FACET_ALIAS ) || elname.equals( EL_FACET_VERSION_ALIAS ) )
+                {
+                    final String fid = findRequiredAttribute( element, ATTR_FACET );
+                    final String alias = findRequiredAttribute( element, ATTR_ALIAS );
+
+                    if( elname.equals( EL_FACET_ALIAS ) )
+                    {
+                        Set<String> aliases = facetAliases.get( fid );
+                        
+                        if( aliases == null )
+                        {
+                            aliases = new HashSet<String>();
+                            facetAliases.put( fid, aliases );
+                        }
+                        
+                        aliases.add( alias );
+                    }
+                    else
+                    {
+                        final String fvstr = findRequiredAttribute( element, ATTR_VERSION );
+                        
+                        Map<String,Set<String>> versionToAliasesMap = facetVersionAliases.get( fid );
+                        
+                        if( versionToAliasesMap == null )
+                        {
+                            versionToAliasesMap = new HashMap<String,Set<String>>();
+                            facetVersionAliases.put( fid, versionToAliasesMap );
+                        }
+                        
+                        Set<String> aliases = versionToAliasesMap.get( fvstr );
+                        
+                        if( aliases == null )
+                        {
+                            aliases = new HashSet<String>();
+                            versionToAliasesMap.put( fvstr, aliases );
+                        }
+                        
+                        aliases.add( alias );
+                    }
+                }
+            }
+            catch( InvalidExtensionException e )
+            {
+                // Continue. The problem has been reported to the user via the log.
+            }
+        }
+    }
+    
+}
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
index c4bc352..e3d6085 100644
--- 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
@@ -43,6 +43,8 @@
 {
     private ProjectFacet facet;
     private String version;
+    private final Set<String> aliases;
+    private final Set<String> aliasesReadOnly;
     private IConstraint constraint;
     private String plugin;
     private Map<IProjectFacetVersion,Integer> compTable = Collections.emptyMap();
@@ -51,6 +53,8 @@
     
     ProjectFacetVersion() 
     {
+        this.aliases = new HashSet<String>();
+        this.aliasesReadOnly = Collections.unmodifiableSet( this.aliases );
         this.properties = new HashMap<String,Object>();
         this.propertiesReadOnly = Collections.unmodifiableMap( this.properties );
     }
@@ -75,6 +79,16 @@
         this.version = version;
     }
     
+    public Set<String> getAliases()
+    {
+        return this.aliasesReadOnly;
+    }
+    
+    void addAlias( final String alias )
+    {
+        this.aliases.add( alias );
+    }
+    
     public Versionable<IProjectFacetVersion> getVersionable()
     {
         return this.facet;
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
index b9404a8..a0a2bb7 100644
--- 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
@@ -52,7 +52,7 @@
     
     void addVersion( final IRuntimeComponentVersion ver )
     {
-        this.versions.add( ver.getVersionString(), ver );
+        this.versions.addItemWithKey( ver.getVersionString(), ver );
     }
     
     @SuppressWarnings( "unchecked" )
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
index 7b1007b..73fef92 100644
--- 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
@@ -108,7 +108,7 @@
     
     public static Set<IRuntimeComponentType> getRuntimeComponentTypes()
     {
-        return runtimeComponentTypes.getUnmodifiable();
+        return runtimeComponentTypes.getItemSet();
     }
     
     public static boolean isRuntimeComponentTypeDefined( final String id )
@@ -118,7 +118,7 @@
     
     public static IRuntimeComponentType getRuntimeComponentType( final String id )
     {
-        final IRuntimeComponentType rc = runtimeComponentTypes.get( id );
+        final IRuntimeComponentType rc = runtimeComponentTypes.getItemByKey( id );
         
         if( rc == null )
         {
@@ -154,7 +154,7 @@
         synchronized( runtimes )
         {
             bridge();
-            return new HashSet<IRuntime>( runtimes );
+            return new HashSet<IRuntime>( runtimes.getItemSet() );
         }
     }
     
@@ -166,7 +166,7 @@
             
             final Set<IRuntime> result = new HashSet<IRuntime>();
             
-            for( IRuntime r : runtimes )
+            for( IRuntime r : runtimes.getItemSet() )
             {
                 boolean supports = true;
                 
@@ -204,7 +204,7 @@
         {
             bridge();
             
-            final IRuntime runtime = runtimes.get( name );
+            final IRuntime runtime = runtimes.getItemByKey( name );
             
             if( runtime == null )
             {
@@ -239,7 +239,7 @@
                 }
             }
             
-            runtimes.add( r.getName(), r );
+            runtimes.addItemWithKey( r.getName(), r );
             
             notifyRuntimeListeners();
             
@@ -251,7 +251,7 @@
     {
         synchronized( runtimes )
         {
-            if( runtimes.delete( runtime.getName() ) )
+            if( runtimes.removeItemByKey( runtime.getName() ) )
             {
                 notifyRuntimeListeners();
             }
@@ -362,7 +362,7 @@
             
             final Map<String,BridgedRuntime> existing = new HashMap<String,BridgedRuntime>();
             
-            for( IRuntime r : runtimes )
+            for( IRuntime r : runtimes.getItemSet() )
             {
                 if( r instanceof BridgedRuntime )
                 {
@@ -389,7 +389,7 @@
                 
                 for( BridgedRuntime r : existing.values() )
                 {
-                    runtimes.remove( r.getName() );
+                    runtimes.removeItemByKey( r.getName() );
                     modified = true;
                 }
                 
@@ -402,7 +402,7 @@
             {
                 if( ! exported.contains( r.getNativeRuntimeId() ) )
                 {
-                    runtimes.delete( r.getName() );
+                    runtimes.removeItemByKey( r.getName() );
                     modified = true;
                 }
             }
@@ -422,7 +422,7 @@
                         
                         r.setName( createUniqueRuntimeName( id ) );
                         
-                        runtimes.add( r.getName(), r );
+                        runtimes.addItemWithKey( r.getName(), r );
                         modified = true;
                     }
                     catch( CoreException e )
@@ -443,7 +443,7 @@
     {
         String name = suggestion;
         
-        for( int i = 1; runtimes.contains( name ); i++ )
+        for( int i = 1; runtimes.containsKey( name ); i++ )
         {
             name = suggestion + " (" + i + ")"; //$NON-NLS-1$ //$NON-NLS-2$
         }
@@ -544,7 +544,7 @@
             }
         }
         
-        runtimeComponentTypes.add( id, rct );
+        runtimeComponentTypes.addItemWithKey( id, rct );
     }
     
     private static void readRuntimeComponentVersion( final IConfigurationElement config )
@@ -566,7 +566,7 @@
         }
         
         final RuntimeComponentType rct 
-            = (RuntimeComponentType) runtimeComponentTypes.get( type );
+            = (RuntimeComponentType) runtimeComponentTypes.getItemByKey( type );
         
         if( rct == null )
         {
@@ -601,7 +601,7 @@
         final List<IRuntimeComponentType> badRuntimeComponentTypes 
             = new ArrayList<IRuntimeComponentType>();
         
-        for( IRuntimeComponentType rct : runtimeComponentTypes )
+        for( IRuntimeComponentType rct : runtimeComponentTypes.getItemSet() )
         {
             try
             {
@@ -660,7 +660,7 @@
         
         for( IRuntimeComponentType rct : badRuntimeComponentTypes )
         {
-            runtimeComponentTypes.remove( rct );
+            runtimeComponentTypes.removeItem( rct );
         }
     }
     
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java
index a2f68f3..e0ac9d8 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/IndexedSet.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2008 BEA Systems, Inc.
+ * Copyright (c) 2010 Oracle
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -14,53 +14,33 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
 /**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
+ * @author <a href="mailto:konstantin.komissarchik@oracle.com">Konstantin Komissarchik</a>
  */
 
 public final class IndexedSet<K,V>
-
-    extends HashSet<V>
-    
 {
-    private static final long serialVersionUID = 1L;
+    private final Set<V> set;
     private final Set<V> unmodifiable;
     private final Map<K,V> index;
     
     public IndexedSet()
     {
-        this.unmodifiable = Collections.unmodifiableSet( this );
+        this.set = new HashSet<V>();
+        this.unmodifiable = Collections.unmodifiableSet( this.set );
         this.index = new HashMap<K,V>();
     }
     
-    public void add( final K key,
-                     final V value )
+    public Set<V> getItemSet()
     {
-        remove( this.index.get( key ) );
-        add( value );
-        this.index.put( key, value );
+        return this.unmodifiable;
     }
-    
-    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 )
+
+    public V getItemByKey( final K key )
     {
         return this.index.get( key );
     }
@@ -69,9 +49,75 @@
     {
         return this.index.containsKey( key );
     }
-    
-    public Set<V> getUnmodifiable()
+
+    public boolean containsItem( final V item )
     {
-        return this.unmodifiable;
+        return this.set.contains( item );
     }
+
+    public void addItem( final V item )
+    {
+        if( item == null )
+        {
+            throw new IllegalArgumentException();
+        }
+        
+        this.set.add( item );
+    }
+    
+    public void addItemWithKey( final K key,
+                                final V item )
+    {
+        addItem( item );
+        addKey( key, item );
+    }
+    
+    public void addKey( final K key,
+                        final V item )
+    {
+        if( key == null || item == null )
+        {
+            throw new IllegalArgumentException();
+        }
+        
+        if( ! this.set.contains( item ) )
+        {
+            throw new IllegalArgumentException();
+        }
+        
+        this.index.put( key, item );
+    }
+    
+    public boolean removeItem( final V item )
+    {
+        if( this.set.remove( item ) )
+        {
+            for( Iterator<Map.Entry<K,V>> itr = this.index.entrySet().iterator(); itr.hasNext(); )
+            {
+                final Map.Entry<K,V> entry = itr.next();
+                
+                if( entry.getValue() == item )
+                {
+                    itr.remove();
+                }
+            }
+        
+            return true;
+        }
+        
+        return false;
+    }
+
+    public boolean removeItemByKey( final K key )
+    {
+        final V item = this.index.get( key );
+        
+        if( item != null )
+        {
+            return removeItem( item );
+        }
+        
+        return false;
+    }
+    
 }
\ 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/util/internal/Versionable.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.java
index 54b47da..cba6510 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/util/internal/Versionable.java
@@ -49,7 +49,7 @@
     
     public Set<T> getVersions()
     {
-        return this.versions.getUnmodifiable();
+        return this.versions.getItemSet();
     }
     
     public Set<T> getVersions( final String expr )
@@ -60,7 +60,7 @@
         final VersionExpr<T> prepared = new VersionExpr<T>( this, expr, null );
         final Set<T> result = new HashSet<T>();
          
-        for( T ver : this.versions )
+        for( T ver : this.versions.getItemSet() )
         {
             if( prepared.check( ver ) )
             {
@@ -73,7 +73,7 @@
     
     public T getVersion( final String version )
     {
-        final T ver = this.versions.get( version );
+        final T ver = this.versions.getItemByKey( version );
         
         if( ver == null )
         {
@@ -87,9 +87,9 @@
     
     public T getLatestVersion()
     {
-        if( this.versions.size() > 0 )
+        if( this.versions.getItemSet().size() > 0 )
         {
-            return (T) Collections.max( this.versions );
+            return Collections.max( this.versions.getItemSet() );
         }
         else
         {
@@ -123,7 +123,7 @@
             };
         }
 
-        final List<T> list = new ArrayList<T>( this.versions );
+        final List<T> list = new ArrayList<T>( this.versions.getItemSet() );
         Collections.sort( list, comp );
         
         return list;
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath b/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath
deleted file mode 100644
index a6ee260..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding=".do-not-delete" 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.doc.api/.project b/plugins/org.eclipse.wst.common.project.facet.doc.api/.project
deleted file mode 100644
index 1018d45..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.doc.api</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.doc.api/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF
deleted file mode 100644
index d4a4190..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.doc.api;singleton:=true
-Bundle-Version: 1.0.1.qualifier
-Bundle-Localization: plugin
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/about.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/about.html
deleted file mode 100644
index 2199df3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/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, 2008</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.doc.api/build.properties b/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties
deleted file mode 100644
index dc7fa72..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-customBuildCallbacks = customBuildCallbacks.xml
-customBuildCallbacks.failonerror = true
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               guide/,\
-               plugin.properties,\
-               plugin.xml,\
-               toc.xml,\
-               reference/,\
-               .,\
-               about.html
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml
deleted file mode 100644
index d521f24..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/customBuildCallbacks.xml
+++ /dev/null
@@ -1,156 +0,0 @@
-<!-- ===================================================================== -->
-<!-- Custom targets called from a project's generated build.xml            -->
-<!-- Set customBuildCallbacks=<path/to/this/file> in your build.properties.-->
-<!-- ===================================================================== -->
-<project name="Build specific targets and properties" default="noDefault">
-
-	<!-- ===================================================================== -->
-	<!-- Default target                                                        -->
-	<!-- ===================================================================== -->
-	<target name="noDefault">
-		<echo message="This file must be called with explicit targets" />
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target build.jars                              -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="pre.build.jars">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target build.jars                               -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="post.build.jars">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target build.sources                           -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="pre.build.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target build.sources                            -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder to contain the build results           -->
-	<!-- ===================================================================== -->
-	<target name="post.build.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the compilation target <name>                      -->
-	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
-	<!-- Available parameters :                                                -->
-	<!--   source.foldern : n = 1 ... N, the source folders                    -->
-	<!--   target.folder  : where the results of the compilation go            -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-	<target name="pre.@dot">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do during the compilation target <name>, after the compile   -->
-	<!-- but before jaring.  Substitute "name" with the name of the compilation-->
-	<!-- target, eg @dot                                                       -->
-	<!-- Available parameters :                                                -->
-	<!--   source.foldern : n = 1 ... N, the source folders                    -->
-	<!--   target.folder  : where the results of the compilation go            -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-	<target name="post.compile.@dot">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the compilation target <name>                       -->
-	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
-	<!-- Available parameters :                                                -->
-	<!--   jar.location - the location of the compilation results              -->
-	<!--   <name>.classpath : name = name of the compilation target. A         -->
-	<!--                      reference to the classpath structure.            -->
-	<!-- ===================================================================== -->
-
-	<target name="post.@dot">
-		<ant
-		  antfile="javadoc.xml"
-		  target="export-javadoc"
-		  inheritAll="true"
-		  inheritRefs="true"/>
-	</target>
-	
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.bin.parts                         -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder containing the build results           -->
-	<!--   target.folder - destination folder                                  -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.bin.parts">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.bin.parts                         -->
-	<!-- Available parameters :                                                -->
-	<!--   build.result.folder - folder containing the build results           -->
-	<!--   target.folder - destination folder                                  -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.bin.parts">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.sources                          -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.sources                           -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.sources">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target gather.logs                             -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.gather.logs">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target gather.logs                              -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="post.gather.logs">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do before the target clean                                   -->
-	<!-- Available parameters :                                                -->
-	<!--   destination.temp.folder - destination folder                        -->
-	<!-- ===================================================================== -->
-	<target name="pre.clean">
-	</target>
-
-	<!-- ===================================================================== -->
-	<!-- Steps to do after the target clean                                    -->
-	<!-- Available parameters :                                                -->
-	<!--   plugin.destination - final destination of the build                 -->
-	<!--   build.result.folder - results of the compilation                    -->
-	<!--   temp.folder - temporary folder                                      -->
-	<!-- ===================================================================== -->
-	<target name="post.clean">
-	</target>
-	
-</project>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html
deleted file mode 100644
index e3c8a66..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/description.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>Checking WTP out</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">Faceted Project Framework</p>
-
-<p>The Faceted Project Framework allows the plugin developer to think of 
-projects as composed of units of functionality, otherwise known as facets, that 
-can be added and removed by the user.</p>
-
-<p>Project facets are most frequently used for adding natures, builders, 
-classpath entries, and resources to a project.</p>
-
-<p>Primary Benefits</p>
-
-<ul>
-  <li>Consistent user experience.</li>
-  <li>Ability to accurately describe capabilities of the runtime platform.</li>
-</ul>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip
deleted file mode 100644
index 03e7c89..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/downloads/enablement-example.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html
deleted file mode 100644
index 50ce36a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/enabling-based-on-facets.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Enabling UI Elements Based on Project Facets</title>
-  <link type="text/css" rel="stylesheet" href="tutorial/tutorial.css"/>
-</head>
-
-<body>
-
-<h1 align="center">Enabling UI Elements Based on Project Facets</h1>
-
-<p>User interface elements often need to be selectively enabled based on the
-presence of a facet in a project. The two most common examples are project 
-properties pages and menu actions associated with a facet. The Faceted Project
-Framework provides a way to do that via a property tester that can be used in
-any extension point that supports the Eclipse Platform's common expression
-language.</p>
-
-<p>
-  <b>Property Name:</b> <code>org.eclipse.wst.common.project.facet.core.projectFacet</code><br/>
-  <b>Property Value:</b> <code>[facet.id](:[version.expr])?</code>
-</p>
-
-<p>As you can see from the format of the property value, you can either test
-using just the project facet id or you can also include a version expression if
-only certain versions should be matched.</p>
-
-<p>The following two examples demonstrate how the facets property tester can be
-used. To explore further, you can also download the 
-<a href="downloads/enablement-example.zip">complete runnable source</a> of these
-examples.</p>
-
-<p><b>Example 1</b></p>
-
-<p>Enables a project properties page based on the presence of a facet. Note the
-use of the <code>forcePluginActivation</code> attribute. This attribute makes
-sure that the property tester will be invoked even if the Faceted Project
-Framework plugins have not been activated yet. Omitting this attribute will cause
-the test expression to return false in that situation. Also note the use of the
-<code>adapt</code> operator to adapt the object to <code>IProject</code>. This
-is necessary as some views may represent project entities using other types. For
-instance, in the JDT's Package Explorer the projects are instances of
-<code>org.eclipse.jdt.core.IJavaProject</code>.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.propertyPages</span>"&gt;
-  &lt;page
-    id="<span class="code-text">ExampleFacetPropertiesPage</span>"
-    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
-    adaptable="<span class="code-text">true</span>"
-    name="<span class="code-text">Example Facet Properties</span>"
-    class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPropertiesPage</span>"&gt;
-    &lt;enabledWhen&gt;
-      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
-        &lt;test 
-          forcePluginActivation="<span class="code-text">true</span>"
-          property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-          value="<span class="code-text">example.facet1</span>"/&gt;
-      &lt;/adapt&gt;
-    &lt;/enabledWhen&gt;          
-  &lt;/page&gt;
-&lt;/extension&gt;</pre>
-</div>
-
-<p><b>Example 2</b></p>
-
-<p>Enables a menu action if either one of the two facets specified is installed
-in a project. Note the use of a version expression to match only certain versions.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.ui.popupMenus</span>"&gt;
-  &lt;objectContribution
-    id="<span class="code-text">exampleFacetPopup</span>"
-    objectClass="<span class="code-text">org.eclipse.core.resources.IProject</span>"
-    adaptable="<span class="code-text">true</span>"&gt;
-    &lt;action
-      id="<span class="code-text">exampleFacetPopupAction</span>"
-      label="<span class="code-text">Example Facet Popup</span>"
-      class="<span class="code-text">org.eclipse.wst.project.facet.examples.enablement.ExampleFacetPopupAction</span>"
-      menubarPath="<span class="code-text">additions</span>"
-      enablesFor="<span class="code-text">+</span>"&gt;
-    &lt;/action&gt;
-    &lt;enablement&gt;
-      &lt;adapt type="<span class="code-text">org.eclipse.core.resources.IProject</span>"&gt;
-        &lt;or&gt;
-          &lt;test 
-            forcePluginActivation="<span class="code-text">true</span>"
-            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-            value="<span class="code-text">example.facet1:1.0</span>"/&gt;
-          &lt;test 
-            forcePluginActivation="<span class="code-text">true</span>"
-            property="<span class="code-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-            value="<span class="code-text">example.facet2:[1.1-2.2]</span>"/&gt;
-        &lt;/or&gt;
-      &lt;/adapt&gt;
-    &lt;/enablement&gt;
-  &lt;/objectContribution&gt;  
-&lt;/extension&gt;</pre>
-</div>
-
-<br/><br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css
deleted file mode 100644
index c02625e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/format.css
+++ /dev/null
@@ -1,35 +0,0 @@
-/* CSS Document */
-body {
-	font-family: Arial, Helvetica, sans-serif
-}
-
-.ueberschrift {
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: x-large;
-	margin-top: 20px;
-}
-
-.code {
-	font-family: Courier, "Courier New", Arial, Helvetica, sans-serif;
-	font-size: 11px;
-	font-weight: normal;
-	line-height: 16px;
-	color: #0467B4;
-	background-color: #CCCCCC;
-	padding: 5px 7px 5px 13px;
-	border: 1px solid black;
-}
-
-.note {
-	font-size: smaller
-}
-
-.description {
-	font-family: "Times New Roman", Times, serif;
-	font-size: xx-large;
-}
-
-.schema {
-	font-style: italic;
-	font-size: large
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html
deleted file mode 100644
index a9c725c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/listeners.html
+++ /dev/null
@@ -1,296 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Listening for Changes to Faceted Projects</title>
-  <link type="text/css" rel="stylesheet" href="tutorial/tutorial.css"/>
-</head>
-
-<body>
-
-<style type="text/css">
-  
-  .subHeader
-  {
-    font-size: 16px;
-    font-weight: bold;
-  }
-  
-  .eventsTableHeaderCell
-  {
-    font-weight: bold;
-    border-bottom: 1px solid #000000;
-    padding: 2px;
-  }
-  
-  .eventsTableTypeCell
-  {
-    vertical-align: top;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 2px;
-    padding-right: 20px;
-  }
-  
-  .eventsTableInterfaceCell
-  {
-    vertical-align: top;
-    padding-top: 2px;
-    padding-bottom: 2px;
-    padding-left: 2px;
-    padding-right: 20px;
-  }
-  
-  .eventsTableDescriptionCell
-  {
-    vertical-align: top;
-    padding: 2px;
-  }
-
-</style>
-
-<h1 align="center">Listening for Changes to Faceted Projects</h1>
-
-<p>The Faceted Project Framework provides a facility that will notify any interested parties when
-a change is made to the model of a faceted project. Listeners can be registered either via a direct
-API call or via an extension point. Listeners can be global or scoped to a specific project.</p>
-
-<p class="subHeader">Events</p>
-
-<table style="border-collapse:collapse">
-
-  <tr>
-    <td class="eventsTableHeaderCell">Event Type</td>
-    <td class="eventsTableHeaderCell">Event Object Interface</td>
-    <td class="eventsTableHeaderCell">Description</td>
-  </tr>
-
-  <tr>
-    <td class="eventsTableTypeCell">PROJECT_MODIFIED</td>
-    <td class="eventsTableInterfaceCell">IFacetedProjectEvent</td>
-    <td class="eventsTableDescriptionCell">
-      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).
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_INSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet is installed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_INSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td>Gets triggered right after a facet is installed.</td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_UNINSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet is uninstalled.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_UNINSTALL</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right after a facet is uninstalled.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRE_VERSION_CHANGE</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right before a facet version is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">POST_VERSION_CHANGE</td>
-    <td class="eventsTableInterfaceCell">IProjectFacetActionEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered right after a facet version is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">FIXED_FACETS_CHANGED</td>
-    <td class="eventsTableInterfaceCell">IFixedFacetsChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when project's fixed facets are changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">TARGETED_RUNTIMES_CHANGED</td>
-    <td class="eventsTableInterfaceCell">ITargetedRuntimesChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when the set of runtimes that the project targets is changed.
-    </td>
-  </tr>
-  
-  <tr>
-    <td class="eventsTableTypeCell">PRIMARY_RUNTIME_CHANGED</td>
-    <td class="eventsTableInterfaceCell">IPrimaryRuntimeChangedEvent</td>
-    <td class="eventsTableDescriptionCell">
-      Gets triggered when the primary targeted runtime of the project is changed.
-    </td>
-  </tr>
-    
-</table>
-
-<p class="subHeader">Registering a Listener</p>
-
-<p>All listeners have to implement <code>IFacetedProjectListener</code> interface which looks like
-this:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core.events;
-
-<span class="java-keyword">public interface</span> IFacetedProjectListener 
-{
-    <span class="java-keyword">void</span> handleEvent( IFacetedProjectEvent event );
-}
-</pre>
-</div>
-
-<p>Depending on the event type, it may be possible to cast the event object to a more specific
-interface in order to get details about the event. See the event table for information about which
-event object interface corresponds with which event type.</p>
-
-<p>There are three ways to register a listener:</p>
-
-<ol>
-  <li>IFacetedProject.addListener()</li>
-  <li>FacetedProjectFramework.addListener()</li>
-  <li>Extension Point: org.eclipse.wst.common.project.facet.core.listeners</p>
-</ol>
-
-<p>All of these methods allows you to specify which events the listener should be notified about. 
-Not specifying event types on registration will cause the listener to be notified about all events. 
-This is typically not desired. If a listener needs to react to any change in the project and has no 
-need to analyze specific events, it should be registered for the <code>PROJECT_MODIFIED</code> 
-event.</p>
-
-<p>The first method registers a listener that is scoped to a specific project. The last two
-register a global listener which will be notified about changes in all faceted projects that are
-present in the workspace. In most circumstances, if a global listener is needed, it should be 
-registered via the extension point rather than using <code>FacetedProjectFramework.addListener()</code>
-API. Using the extension point guarantees that the listener will not miss any events due to not
-being registered early enough. It also delays initialization of the plugin bundle containing the
-listener until an event that the listener is interested in is fired.</p>
-
-<p class="subHeader">Extension Point</p>
-
-<p>The extension point that's used for registering listeners is quite simple. Only two pices of
-information need to be supplied: the listener class name and an optional list of event types.</p>
-
-<div class="code">
-<pre class="xml-code">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.listeners</span>"&gt;
-  &lt;listener 
-    class="<span class="code-text">{class:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener}</span>"
-    eventTypes="<span class="code-text">{event.types}</span>"/> <i>(1 or more)</i>
-&lt;extension&gt;
-</pre>
-</div>
-
-<p>The <code>eventTypes</code> attribute value should be a comma-separated list of event types.</p>
-
-<p class="subHeader">Examples</p>
-
-<p>This example registers a very simple listener that prints out events received. The listener is
-registered several different ways for the purposes of this example.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.mycorp.myproduct;
-
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
-
-<span class="java-keyword">public final class</span> ListenerImpl <span class="java-keyword">implements</span> IFacetedProjectListener 
-{
-    <span class="java-keyword">public void</span> handleEvent( <span class="java-keyword">final</span> IFacetedProjectEvent event )
-    {
-        System.out.println( event.toString() );
-    }
-}
-</pre>
-</div>
-
-<p>The following code snippet registers the above listener on a specific project to listen for
-changes in the runtimes that the project targets.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-...
-
-IProject pj;
-
-...
-
-<span class="java-keyword">final</span> IFacetedProject fpj = ProjectFacetsManager.create( pj );
-<span class="java-keyword">final</span> ListenerImpl listener = <span class="java-keyword">new</span> ListenerImpl();
-
-fpj.addListener( listener, 
-                 IFacetedProjectEvent.Type.TARGETED_RUNTIMES_CHANGED,
-                 IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED );
-                 
-...
-
-fpj.removeListener( listener );
-</pre>
-</div>
-
-<p>The following code snippet register the above listener to listen for the PRE_INSTALL and
-PRE_UNINSTALL events in all faceted projects.</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
-
-...
-
-<span class="java-keyword">final</span> ListenerImpl listener = <span class="java-keyword">new</span> ListenerImpl();
-
-FacetedProjectFramework.addListener( listener, 
-                                     IFacetedProjectEvent.Type.PRE_INSTALL,
-                                     IFacetedProjectEvent.Type.PRE_UNINSTALL );
-                 
-...
-
-FacetedProjectFramework.removeListener( listener );
-</pre>
-</div>
-
-<p>The following code snippet accomplishes the same thing as the one above, except it does this
-via the extension point.</p>
-
-<div class="code">
-<pre class="xml-code">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.listeners</span>"&gt;
-  &lt;listener class="<span class="code-text">com.mycorp.myproduct.ListenerImpl</span>" eventTypes="<span class="code-text">PRE_INSTALL,PRE_UNINSTALL</span>"/>
-&lt;extension&gt;
-</pre>
-</div>
-
-<br/><br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/questions.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/questions.html
deleted file mode 100644
index b48b0d9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/questions.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Questions &amp; Answers</title>
-  <link rel="stylesheet" type="text/css" href="tutorial/tutorial.css"/>
-</head>
-</head>
-
-<body>
-
-<h1 align="center">Questions &amp; Answers</h1>
-
-<p><b><a name="configure.facets.button">Question: I'd like to be able to configure my 
-facet after it is installed using the Project Facets property page or the 
-Add/Remove Facets wizard. Why isn't there a configure button?</b></p>
-
-<p><b>Answer:</b> The Project Facets property page and the Add/Remove Facets wizard
-are intended for managing the set of facets that are installed on a project. 
-When configuration of an installed facet needs to be changed, the expectation is
-that the facet author will use existing Eclipse facilities to provide project
-property pages. For example, the <code>jst.java</code> facet is configured using 
-the <i>Java Build Path</i>, <i>Java Code Style</i>, and <i>Java Compiler</i> 
-property pages.</p>
-
-<br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif
deleted file mode 100644
index 6d8bfb7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen01.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif
deleted file mode 100644
index a481aef..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen02.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif
deleted file mode 100644
index c61e29e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen03.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif
deleted file mode 100644
index fae4b62..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen04.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif
deleted file mode 100644
index b33903e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen05.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif
deleted file mode 100644
index 977690b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen06.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif
deleted file mode 100644
index 3133e18..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen07.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif
deleted file mode 100644
index e4040ca..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/images/screen08.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip
deleted file mode 100644
index 499b7dc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/solution.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip
deleted file mode 100644
index bc20cab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/materials/starter.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css
deleted file mode 100644
index 27036ad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.css
+++ /dev/null
@@ -1,120 +0,0 @@
-p, table, td, th {  font-family: arial, helvetica, geneva; font-size: 10pt}
-pre {  font-family: "Courier New", Courier, mono; font-size: 10pt}
-h2 { font-family: arial, helvetica, geneva; font-size: 18pt; font-weight: bold; line-height: 14px; margin-top: 30px}
-code {  font-family: "Courier New", Courier, mono; font-size: 10pt}
-sup {  font-family: arial,helvetica,geneva; font-size: 10px}
-h3 {  font-family: arial, helvetica, geneva; font-size: 14pt; font-weight: bold}
-li {  font-family: arial, helvetica, geneva; font-size: 10pt}
-h1 {  font-family: arial, helvetica, geneva; font-size: 28px; font-weight: bold}
-body {  font-family: arial, helvetica, geneva; font-size: 10pt; clip:   rect(   ); margin-top: 5mm; margin-left: 3mm}
-.indextop { font-size: x-large;; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold}
-.indexsub { font-size: xx-small;; font-family: Arial, Helvetica, sans-serif; color: #8080FF}
-
-pre {
-    padding: 0px;
-    margin-top: 0px;
-    margin-left: 0px;
-    margin-bottom: 0px;
-    margin-right: 0px;
-    text-align: left;
-}
-
-.code {
- 	border: 1px dashed #3c78b5;
-    font-size: 11px;
-	font-family: Courier;
-    margin: 10px;
-	line-height: 13px;
-    text-align: left;
-    background-color: #f0f0f0;
-    padding: 10px;
-}
-
-.code-xml {
-  color: #000000;
-}
-
-.schema-type
-{
-  color: #009100;
-  background-color: inherit;
-}
-
-.schema-type-link a:link
-{
-  color: #009100;
-  text-decoration: none
-}
-
-.schema-type-link a:visited
-{
-  color: #009100;
-  text-decoration: none
-}
-
-.schema-control {
-  color: #009100;
-  font-style: italic;
-  background-color: inherit;
-}
-
-.code-text {
-  color: #009100;
-  background-color: inherit;
-}
-
-.context-code {
-  color: #767676;
-  background-color: inherit;
-}
-
-.xml-text
-{
-  color: #009100;
-}
-
-.java-code 
-{
-  color: #000000;
-}
-
-.java-comment 
-{
-  color: #009100;
-}
-
-.java-javadoc-keyword
-{
-  font-weight: bold;
-}
-
-.java-keyword
-{
-  color: #7f0055;
-  font-weight: bold;
-}
-
-.java-literal
-{
-  color: #009100;
-}
-
-.java-context
-{
-  color: #767676;
-}	
-
-.java-context-keyword
-{
-  font-weight: bold;
-}	
-
-.screen-shot 
-{
-    margin: 10px;
-}
-
-.block-indent 
-{
-    margin: 10px;
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html
deleted file mode 100644
index 09625b5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/tutorial/tutorial.html
+++ /dev/null
@@ -1,1203 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-  
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-  <title>Extending WTP Using Project Facets</title>
-  <link type="text/css" rel="stylesheet" href="tutorial.css"/>
-</head>
-
-<body>
-
-<h1 align="center">Extending WTP Using Project Facets</h1>
-
-<blockquote>
-<b>Summary</b><br/>
-The Faceted Project Framework allows the plugin developer to think of Web Tools 
-Platform (WTP) projects as composed of units of functionality, otherwise known 
-as facets, that can be added and removed by the user. This tutorial walks you 
-through an example of creating a couple of basic facets and in the process 
-covers the majority of the framework's extension points. This tutorial has been
-written for version 1.5 of the Web Tools Platform.
-<br/><br/>
-
-<b>Konstantin Komissarchik</b><br/>
-BEA Systems, Inc.<br/>
-September 5, 2006
-</blockquote>
-
-<hr width="100%">
-
-<h2>Introduction</h2>
-
-<p>Faceted Project Framework provides a powerful mechanism for extending the
-capabilities of the Web Tools Platform. Project facets are typically used as
-a way of adding functionality to a project. When a facet is added to the
-project it can perform any necessary setup actions such as copying resources, 
-installing builders, adding natures, etc. Facets can also be used as markers for
-enabling user interface elements.</p>
-
-<p>Some of the readers may be wondering how
-facets are different from the project natures which are supported by the Eclipse
-platform. Natures are designed to be hidden from user's view. They are
-essentially markers that are set behind the scenes by tooling. Project facets,
-on the other hand, have been designed from the ground up to be manipulated by
-the end users. The Faceted Project Framework provides all the necessary user 
-interface elements for managing the facets on a project and since facets
-are self describing the user is prevented from creating invalid configurations.
-Basically, it is no longer necessary to write custom project creation wizards or
-the "Enable Feature X" menu actions. Common way of managing which facets are
-installed on a project means less burden on the plugin writer and better end user
-experience.</p>
-
-<p>This tutorial covers the extension points and Java API that are used for 
-creating project facets. The reader is assumed to be already familiar with 
-developing plugins for Eclipse and to have user-level knowledge of the Web Tools 
-Platform.</p>
-
-<h2>Tutorial Scenario</h2>
-
-<p>You are a developer for a company which develops a product called
-FormGen. FormGen is basically a servlet that generates HTML forms based on XML
-definition files. The product is composed of a jar containing the servlet and
-some basic widgets. There is also an add-on jar with some extra widgets. Users
-have been manually adding the jars into the WEB-INF/lib directories of their
-web projects and setting up the servlet definitions in web.xml by hand. Your
-task is to make this setup easier by writing a couple of project facets that
-will perform these actions automatically.</p>
-
-<h2>Table of Contents</h2>
-
-<div class="block-indent">
-1. <a href="#getting.started">Getting Started</a><br/>
-2. <a href="#creating.basic.facets">Creating Basic Facet Definitions</a><br/>
-3. <a href="#specifying.constraints">Specifying Constraints</a><br/>
-4. <a href="#implementing.actions">Implementing Actions</a><br/>
-5. <a href="#creating.categories">Creating Categories</a><br/>
-6. <a href="#decorating">Decorating</a><br/>
-7. <a href="#adding.wizard.pages">Adding Wizard Pages</a><br/>
-8. <a href="#defining.presets">Defining Presets</a><br/>
-9. <a href="#runtime.mappings">Specifying Runtime Support Mappings</a><br/>
-10. <a href="#summary">Summary</a><br/>
-Appendix A: <a href="#custom.version.comparators">Custom Version Comparators</a><br/>
-Appendix B: <a href="#version.expressions">Version Expressions</a><br/>
-Appendix C: <a href="#property.tester">Property Tester</a><br/>
-Appendix D: <a href="#wizard.context">Wizard Context</a><br/>
-</div>
-
-<h2><a name="getting.started">1. Getting Started</a></h2>
-
-<p>To follow along with this tutorial, you will need to have a working install 
-of Web Tools Platform v1.5. The tutorial is not designed to be used with 1.0.x
-version of WTP as there are numerous extension point and API differences. You 
-can download the install kits for WTP and its prerequisites, including Eclipse 
-Platform v3.2, at the following locations:</p>
-
-<ul>
-  <li><a href="http://download.eclipse.org/eclipse/downloads/">Eclipse Platform Download Site</a></li>
-  <li><a href="http://download.eclipse.org/webtools/downloads/">Web Tools Platform Download Site</a></li>
-</ul>
-
-<p>Once the required software has been installed you will need to
-create a new workspace and add the <a href="materials/starter.zip">starter project</a>
-to it. The starter project includes the materials and utility code that will
-be used in this tutorial. If you get stuck at any point you can take a peek at
-the <a href="materials/solution.zip">solution project</a>.</p>
-
-<h2><a name="creating.basic.facets">2. Creating Basic Facet Definitions</a></h2>
-
-<p>Project facets are declared via the <code>org.eclipse.wst.common.project.facet.core.facets</code>
-extension point. This is a pretty large extension point with lots of facilities,
-but we will start small and progress incrementally while building the tutorial
-facets. Here is the part of the schema that we will be working with initially:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-
-  &lt;project-facet id="<span class="schema-type">{string}</span>"&gt; <span class="schema-control">(0 or more)</span>
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="schema-type">{string}</span>" version="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  
-&lt;/extension&gt;</pre>
-</div>
-
-<p>As you can see, there are two top-level elements in this part of the extension
-point schema. The <code>&lt;project-facet&gt;</code> element is used to declare
-the facet itself. The <code>&lt;project-facet-version&gt;</code> element is used
-to declare versions of the facet. Every facet implementation needs to provide
-at least one facet version declaration. In fact, as you will see later in this
-tutorial, the bulk of the work happens in the <code>&lt;project-facet-version&gt;</code>
-declaration. For now all you need to remember is that a facet cannot be used
-unless it has at least one version.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="code-text">org.eclipse.wst.common.project.facet.core.facets</span>"&gt;
-
-  &lt;project-facet id="<span class="code-text">formgen.core</span>"&gt;
-    &lt;label&gt;<span class="code-text">FormGen Core</span>&lt;/label&gt;
-    &lt;description&gt;
-      <span class="code-text">Enables generation of HTML forms based on XML definition files.</span>
-    &lt;/description&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="code-text">formgen.core</span>" version="<span class="code-text">1.0</span>"/&gt;
-
-  &lt;project-facet id="<span class="code-text">formgen.ext</span>"&gt;
-    &lt;label&gt;<span class="code-text">FormGen Extensions</span>&lt;/label&gt;
-    &lt;description&gt;
-      <span class="code-text">Enables additional FormGen widgets.</span>
-    &lt;/description&gt;
-  &lt;/project-facet&gt;
-
-  &lt;project-facet-version facet="<span class="code-text">formgen.ext</span>" version="<span class="code-text">1.0</span>"/&gt;
-  
-&lt;/extension&gt;</pre>
-</div>
-
-<p>Insert the above code into your plugin.xml file and lets see it in action.
-Launch Eclipse with your FormGen plugin and then open the Dynamic Web Project
-wizard. Make sure that <code>&lt;none&gt;</code> is selected in the Target Runtime
-field on the first page and go to the second page. You should see a screen that
-looks like the following. Note that the FormGen facets that you have created
-are displayed.</p>
-
-<div class="screen-shot"><img src="images/screen01.gif"/></div>
-
-<h2><a name="specifying.constraints">3. Specifying Constraints</a></h2>
-
-<p>One of the problems with what we have so far is that the FormGen facets
-appear in other module project wizards such as the EJB Project Wizard. That, of
-course, makes no sense since FormGen is servlet-based technology and so is only
-applicable to J2EE web applications. To solve this problem we will use the 
-constraint mechanism to specify the dependencies.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;</span>
-    &lt;constraint&gt; <span class="schema-control">(optional)</span>
-      <span class="schema-control">[expr]</span>
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-
-<span class="schema-control">[expr] =</span>
-  &lt;requires facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>" soft="<span class="schema-type">{boolean}</span>"/&gt; <span class="schema-control">or</span>
-  &lt;conflicts facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">or</span>
-  &lt;conflicts group="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">or</span>
-  &lt;and&gt;
-    <span class="schema-control">[expr]</span> <span class="schema-control">(1 or more)</span>
-  &lt;/and&gt; <span class="schema-control">or</span>
-  &lt;or&gt;
-    <span class="schema-control">[expr]</span> <span class="schema-control">(1 or more)</span>
-  &lt;/or&gt;</pre>
-</div>
-
-<p>As you can see, the constraint is an expression tree and you have four
-operators at your disposal. Lets go over them one by one.</p>
-
-<div style="margin-left: 10px">
-<p><b>requires</b></p>
-
-<p>The <code>requires</code> operator is the most frequently used of all the operators. 
-It is used to specify a dependency on another facet. If the <code>version</code>
-attribute is not specified, any version of the referenced facet will satisfy
-the constraint. If only specific versions will do, the <code>version</code> 
-attribute can contain a <a href="#version.expressions">version expression</a>.</p>
-
-<p>The <code>soft</code> attribute is used to create a special kind of a
-dependency. Facet selection will not be prevented if the dependency is not
-met, but if the dependency is met, the facet is guaranteed to be installed
-after the referenced facet.</p>
-
-<p><b>conflicts</b></p>
-
-<p>The <code>conflicts</code> constraint is used to indicate that the declaring
-facet will not work correctly if installed into the same project as referenced
-facets. The <code>conflicts</code> constraint comes in two flavors. You can
-either specify a conflict with a single facet or with a group of facets.</p>
-
-<p>What are groups of facets? Facet groups are a way to designate a conflict with
-a certain class of facets without having to list all of the facets explicitly.
-For instance, the WTP module facets all belong to the "modules" group. They also
-each declare a conflict with the "modules" group. This prevents two module facets
-from being installed into the same project. By declaring a conflict with a
-group whose membership can expand as necessary, third parties can add module
-facets on top of WTP and have the new facets interact correctly with the
-built-in module facets.</p>
-
-<p>A facet group is created the first time a facet declares group membership.
-Here is the extension point schema for declaring group membership:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;</span>
-    &lt;group-member id="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  <span class="context-code">&lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p><b>and &amp; or</b>
-
-<p>The <code>and</code> &amp; <code>or</code> constraints are used to perform 
-logical conjunction and disjunction over their operands. Although it is legal
-for these operators to have only one operand, typically they will have two or
-more.</p>
-</div>
-
-<p>We can now specify the constraints for the FormGen facets. The facet id that
-marks a project as a J2EE web module is <code>jst.web</code>. We will setup
-a dependency on it from the <code>formgen.core</code> facet. The
-<code>formgen.ext</code> facet can then depend on the <code>formgen.ext</code>
-facet. That latter constraint will ensure that the FormGen Extensions
-are not installed without installing FormGen Core.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-
-  &lt;project-facet-version id="formgen.core" version="1.0"&gt;</span>
-    &lt;constraint&gt;
-      &lt;requires facet="<span class="xml-text">jst.web</span>" version="<span class="xml-text">2.2,2.3,2.4</span>"/&gt;
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-
-  &lt;project-facet-version id="formgen.ext" version="1.0"&gt;</span>
-    &lt;constraint&gt;
-      &lt;requires facet="<span class="xml-text">formgen.core</span>" version="<span class="xml-text">1.0</span>"/&gt;
-    &lt;/constraint&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-  
-&lt;/extension&gt;</span></pre>
-</div>
-
-<p>Once the above code is added, the FormGen facets should only appear in the
-Dynamic Web Project wizard.</p>
-
-<h2><a name="implementing.actions">4. Implementing Actions</a></h2>
-
-<p>Let's now try selecting the FormGen Core facet on the facets selection page
-of the Dynamic Web Project wizard. If you do that, you should see the
-following error message appear.</p>
-
-<div class="screen-shot"><img src="images/screen02.gif"/></div>
-
-<p>This error message is displayed because the install action has not been
-implemented for this facet. What's an action? An action is an operation that a
-user can perform on a facet. There are three action types <code>INSTALL</code>,
-<code>UNINSTALL</code>, and <code>VERSION_CHANGE</code>. We will now implement
-the install actions for the FormGen facets.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-  &lt;action id="<span class="schema-type">{string}</span>" facet="<span class="schema-type">{string}</span>" version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>" type="<span class="schema-type">INSTALL|UNINSTALL|VERSION_CHANGE</span>"&gt;
-    &lt;delegate class="<span class="schema-type">{class:org.eclipse.wst.common.project.facet.core.IDelegate}</span>"/&gt;
-    &lt;property name="<span class="schema-type">{string}</span>" value="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  &lt;/action&gt;
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<ul>
-
-  <li><p>The version attribute can contain a single version or a <a href="#version.expressions">version expression</a>.
-    It can also be omitted if the action applies to all versions of the facet.</p></li>
-    
-  <li><p>The <code>id</code> attribute is optional. If not specified, the framework
-    will automatically generate one using the following pattern:</p>
-    <p><code>[facet-id]#[version-expression]#[action-type](#[prop-name]=[prop-value])*</code></p>
-    <p>As you can see, it is better to provide an explicit id rather than letting
-    the framework generate it. Later in the tutorial we will cover extension
-    points that make references to action ids.</p>
-  
-  <li><p>The <code>&lt;action&gt;</code> element can also be embeded inside the
-    <code>&lt;project-facet-version&gt;</code> element. In that case, the
-    <code>facet</code> and <code>version</code> attributes should be omitted.
-    Note that if the same delegate implementation applies to multiple facet 
-    versions, it is better to provide a single action declaration externally.
-    This allows the framework to perform certain kinds of optimizations</p></li>
-    
-  <li><p>For the <code>VERSION_CHANGE</code> action, it is possible to restrict
-    the applicability of the action definition with regards to the starting
-    version. To do that, simply specify "from.versions" property in the action
-    definition. The value is a <a href="#version.expressions">version expression</a>.
-    If this property is not specified, the framework will assume that the delegate
-    is capable of converting from any starting version.</p></li>
-    
-</ul>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-
-<span class="java-comment">/**
- * 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.
- */</span>
-
-<span class="java-keyword">public interface</span> IDelegate 
-{
-    <span class="java-comment">/**
-     * The method that's called to execute the delegate.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> project the workspace project
-     * <span class="java-javadoc-keyword">@param</span> 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
-     * <span class="java-javadoc-keyword">@param</span> config the configuration object, or <code>null</code> if defaults
-     *   should be used
-     * <span class="java-javadoc-keyword">@param</span> monitor the progress monitor
-     * <span class="java-javadoc-keyword">@throws</span> CoreException if the delegate fails for any reason
-     */</span>
-    
-    <span class="java-keyword">void</span> execute( IProject project,
-                  IProjectFacetVersion fv,
-                  Object config,
-                  IProgressMonitor monitor )
-    
-        <span class="java-keyword">throws</span> CoreException;
-}
-</pre>
-</div>
-
-<p>Let's now dive in and implement the install delegates for the FormGen facets.
-The <code>formgen.core</code> facet should (a) copy <code>formgen-core.jar</code>
-into the project's <code>WEB-INF/lib</code> directory, and (b) register the
-FormGen servlet in <code>web.xml</code>. The <code>formgen.ext</code> facet should
-copy the <code>formgen-ext.jar</code> into the project's <code>WEB-INF/lib</code>
-directory.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-
-  <span class="context-code">&lt;project-facet-version facet="formgen.core" version="1.0"&gt;</span>
-    &lt;action type="<span class="xml-text">INSTALL</span>"&gt;
-      &lt;delegate class="<span class="xml-text">com.formgen.eclipse.FormGenCoreFacetInstallDelegate</span>"/&gt;
-    &lt;/action&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;</span>
-
-  <span class="context-code">&lt;project-facet-version facet="formgen.ext" version="1.0"&gt;</span>
-    &lt;action type="<span class="xml-text">INSTALL</span>"&gt;
-      &lt;delegate class="<span class="xml-text">com.formgen.eclipse.FormGenExtFacetInstallDelegate</span>"/&gt;
-    &lt;/action&gt;
-  <span class="context-code">&lt;/project-facet-version&gt;</span>
-  
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallDelegate <span class="java-keyword">implements</span> IDelegate
-{
-    <span class="java-keyword">public void</span> execute( <span class="java-keyword">final</span> IProject pj,
-                         <span class="java-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-keyword">final</span> Object config,
-                         <span class="java-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 2 );
-
-        <span class="java-keyword">try</span>
-        {
-            <span class="java-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( new Path( "libs/formgen-core.jar" ),
-                                  webInfLib.getFile( "formgen-core.jar" ) );
-
-            monitor.worked( 1 );
-
-            Utils.registerFormGenServlet( pj );
-
-            monitor.worked( 1 );
-        }
-        <span class="java-keyword">finally</span>
-        {
-            monitor.done();
-        }
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-keyword">public final class</span> FormGenExtFacetInstallDelegate <span class="java-keyword">implements</span> IDelegate
-{
-    <span class="java-keyword">public void</span> execute( <span class="java-keyword">final</span> IProject pj,
-                         <span class="java-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-keyword">final</span> Object config,
-                         <span class="java-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 1 );
-
-        <span class="java-keyword">try</span>
-        {
-            <span class="java-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( new Path( "libs/formgen-ext.jar" ),
-                                  webInfLib.getFile( "formgen-ext.jar" ) );
-
-            monitor.worked( 1 );
-        }
-        <span class="java-keyword">finally</span>
-        {
-            monitor.done();
-        }
-
-    }
-}
-</pre>
-</div>
-
-<p>Once the install actions have been implemented, you should be able to select
-the FormGen facets on the Facets Selection Page of the Dynamic Web Project Wizard
-without getting any error messages. You should also be able to complete the
-project creation and see the following highlighted artifacts in the new project.
-These artifacts have been created by the FormGen facet install delegates.</p>
-
-<div class="screen-shot"><img src="images/screen03.gif"/></div>
-
-<h2><a name="creating.categories">5. Creating Categories</a></h2>
-
-<p>Project facets can be grouped into categories in order to provide the "one
-click" exprience for novice users and retain the fine-grained control for advanced 
-users. You are told that most of FormGen users always add both of the jars to
-their web apps. These users would benefit from having the FormGen facets grouped
-into a category and so we will do just that.</p>
-
-<p>Here is what that part of the extension point schema looks like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-  &lt;category id="<span class="schema-type">{string}</span>"&gt;
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-  &lt;/category&gt;
-  <span class="context-code">&lt;project-facet&gt;</span>
-    &lt;category&gt;<span class="schema-type">{string}</span>&lt;/category&gt; <span class="schema-control">(optional)</span>
-  <span class="context-code">&lt;/project-facet&gt;</span>
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>We can now create a category around the FormGen facets.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</span>
-
-  &lt;category id="<span class="schema-type">formgen.category</span>"&gt;
-    &lt;label&gt;<span class="schema-type">FormGen</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">Enables generation of HTML forms based on XML definition files.</span>&lt;/description&gt;
-  &lt;/category&gt;
-
-  <span class="context-code">&lt;project-facet id="formgen.core"&gt;</span>
-    &lt;category&gt;<span class="schema-type">formgen.category</span>&lt;/category&gt;
-  <span class="context-code">&lt;/project-facet&gt;</span>
-
-  <span class="context-code">&lt;project-facet id="formgen.ext"&gt;</span>
-    &lt;category&gt;<span class="schema-type">formgen.category</span>&lt;/category&gt;
-  <span class="context-code">&lt;/project-facet&gt;</span>
-
-<span class="context-code">&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>Once the above change has been put in place, the facets selection page should 
-look like this:</p>
-
-<div class="screen-shot"><img src="images/screen04.gif"/></div>
-
-<h2><a name="decorating">6. Decorating</a></h2>
-
-<p>Custom icons can be provided for facets and categories. If an icon is not
-provided, a default icon is used. The icons are helpful as a way to better
-differentiate facets and to make them stand out.</p>
-
-<p>Here is what that extension point looks like:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="org.eclipse.wst.common.project.facet.ui.images"&gt;
-  &lt;image facet="<span class="schema-type">{string}</span>" path="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-  &lt;image category="<span class="schema-type">{string}</span>" path="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(0 or more)</span>
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Your starter project came with three icons in the <code>icons</code> folder.
-We will now associate them with the FormGen facets and the category.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.images</span>"&gt;
-  &lt;image facet="<span class="xml-text">formgen.core</span>" path="<span class="xml-text">icons/formgen-core.gif</span>"/&gt;
-  &lt;image facet="<span class="xml-text">formgen.ext</span>" path="<span class="xml-text">icons/formgen-ext.gif</span>"/&gt;
-  &lt;image category="<span class="xml-text">formgen.category</span>" path="<span class="xml-text">icons/formgen-cat.gif</span>"/&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Once the above snippet has been added to your plugin.xml file, the facets
-selection page should look like this:</p>
-
-<div class="screen-shot"><img src="images/screen05.gif"/></div>
-
-<h2><a name="adding.wizard.pages">7. Adding Wizard Pages</a></h2>
-
-<p>It is often desirable to gather user input prior to installing a facet.
-The framework allows a sequence of wizard pages to be associated with facet
-actions. The supplied wizard pages are shown after the facets selection
-page. Based on user feedback, you known that FormGen users often customize
-the URL pattern of the FormGen servlet so you would like to give them the ability
-to do that in the wizard when the FormGen facets are being installed.</p>
-
-<p>Here is what the relevant parts of the extension points look like:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;action&gt;</span>
-    &lt;config-factory class="<span class="schema-type">class:org.eclipse.wst.common.project.facet.core.IActionConfigFactory</span>"/&gt;
-  <span class="context-code">&lt;/action&gt;
-&lt;/extension&gt;</span>
-
-&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.wizardPages</span>"&gt;
-  &lt;wizard-pages action="<span class="schema-type">{string}</span>"&gt; <span class="schema-control">(0 or more)</span>
-    &lt;page class="<span class="schema-type">{class:org.eclipse.wst.common.project.facet.ui.IFacetWizardPage}</span>"/> <span class="schema-control">(1 or more)</span>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;  
-</pre>
-</div>
-
-<p>One thing to note here is that in order to enable communication between the
-facet action delegate and the wizard pages, we go back to the action declaration
-and provide an action config factory. The object created by the factory is 
-populated by the wizard pages and is read by the action delegate. No restrictions
-are placed on the shape of the config object. You may choose to implement a custom
-class or you can use a something generic like <code>java.util.HashMap</code>.</p>
-
-<p>Another thing to note is that the <code>wizardPages</code> extension point refers
-to the actions by their ids, so it becomes more important to explicitly specify
-the id rather than letting the framework automatically generate one.</p>
-
-<p>Here are the interfaces that are used in the above extension point schema:</p> 
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.core;
-
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-
-<span class="java-comment">/**
- * 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.
- */</span>
-
-<span class="java-keyword">public interface</span> IActionConfigFactory
-{
-    <span class="java-comment">/**
-     * Creates a new facet action configuration object. The new configuration
-     * object should ideally be populated with reasonable defaults.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> a new facet action configuration object
-     * <span class="java-javadoc-keyword">@throws</span> CoreException if failed while creating the configuration object
-     */</span>
-    
-    Object create() <span class="java-keyword">throws</span> CoreException;
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.ui;
-
-<span class="java-keyword">import</span> org.eclipse.jface.wizard.IWizardPage;
-
-<span class="java-comment">/**
- * This interface is implemented by the wizard pages associated with project
- * facet actions.
- */</span>
-
-<span class="java-keyword">public interface</span> IFacetWizardPage <span class="java-keyword">extends</span> IWizardPage
-{
-    <span class="java-comment">/**
-     * 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.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> context the wizard context
-     */</span>
-    
-    <span class="java-keyword">void</span> setWizardContext( IWizardContext context );
-    
-    <span class="java-comment">/**
-     * 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.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> config the action config object
-     */</span>
-    
-    <span class="java-keyword">void</span> setConfig( Object config );
-    
-    <span class="java-comment">/**
-     * 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.
-     */</span>
-
-    <span class="java-keyword">void</span> transferStateToConfig();
-}
-</pre>
-</div>
-
-<p>We will now implement a wizard page for the <code>facet.core</code> facet
-install action. The wizard page will allow the user to change the default
-servlet URL pattern for the FormGen servlet.</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version facet="formgen.core" version="1.0"&gt;
-    &lt;action type="INSTALL"</span> id="<span class="xml-text">formgen.core.install</span>"<span class="context-code">&gt;</span>
-      &lt;config-factory class="<span class="xml-text">com.formgen.eclipse.FormGenCoreFacetInstallConfig$Factory</span>"/&gt;
-    <span class="context-code">&lt;/action&gt;
-  &lt;/project-facet-version&gt;
-&lt;/extension&gt;</span>
-
-&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.ui.wizardPages</span>"&gt;
-  &lt;wizard-pages action="<span class="xml-text">formgen.core.install</span>"&gt;
-    &lt;page class="<span class="schema-type">com.formgen.eclipse.FormGenCoreFacetInstallPage</span>"/>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;  
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallConfig
-{
-    <span class="java-keyword">private</span> String urlPattern = <span class="java-literal">"*.form"</span>;
-
-    <span class="java-keyword">public</span> String getUrlPattern()
-    {
-        <span class="java-keyword">return this</span>.urlPattern;
-    }
-
-    <span class="java-keyword">public void</span> setUrlPattern( <span class="java-keyword">final</span> String urlPattern )
-    {
-        <span class="java-keyword">this</span>.urlPattern = urlPattern;
-    }
-
-    <span class="java-keyword">public static final class</span> Factory <span class="java-keyword">implements</span> IActionConfigFactory
-    {
-        <span class="java-keyword">public</span> Object create()
-        {
-            <span class="java-keyword">return new</span> FormGenCoreFacetInstallConfig();
-        }
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-keyword">import</span> org.eclipse.swt.SWT;
-<span class="java-keyword">import</span> org.eclipse.swt.layout.GridData;
-<span class="java-keyword">import</span> org.eclipse.swt.layout.GridLayout;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Composite;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Label;
-<span class="java-keyword">import</span> org.eclipse.swt.widgets.Text;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.ui.AbstractFacetWizardPage;
-
-<span class="java-keyword">public final class</span> FormGenCoreFacetInstallPage <span class="java-keyword">extends</span> AbstractFacetWizardPage
-{
-    <span class="java-keyword">private</span> FormGenCoreFacetInstallConfig config;
-    <span class="java-keyword">private</span> Text urlPatternTextField;
-
-    <span class="java-keyword">public</span> FormGenCoreFacetInstallPage()
-    {
-        <span class="java-keyword">super</span>( <span class="java-literal">"formgen.core.facet.install.page"</span> );
-
-        setTitle( <span class="java-literal">"FormGen Core"</span> );
-        setDescription( <span class="java-literal">"Configure the FormGen servlet."</span> );
-    }
-
-    <span class="java-keyword">public void</span> createControl( <span class="java-keyword">final</span> Composite parent )
-    {
-        <span class="java-keyword">final</span> Composite composite = <span class="java-keyword">new</span> Composite( parent, SWT.NONE );
-        composite.setLayout( <span class="java-keyword">new</span> GridLayout( 1, <span class="java-keyword">false</span> ) );
-
-        <span class="java-keyword">final</span> Label label = <span class="java-keyword">new</span> Label( composite, SWT.NONE );
-        label.setLayoutData( gdhfill() );
-        label.setText( <span class="java-literal">"URL Pattern:"</span> );
-
-        <span class="java-keyword">this</span>.urlPatternTextField = <span class="java-keyword">new</span> Text( composite, SWT.BORDER );
-        <span class="java-keyword">this</span>.urlPatternTextField.setLayoutData( gdhfill() );
-        <span class="java-keyword">this</span>.urlPatternTextField.setText( this.config.getUrlPattern() );
-
-        setControl( composite );
-    }
-
-    <span class="java-keyword">public void</span> setConfig( <span class="java-keyword">final</span> Object config )
-    {
-        <span class="java-keyword">this</span>.config = (FormGenCoreFacetInstallConfig) config;
-    }
-
-    <span class="java-keyword">public void</span> transferStateToConfig()
-    {
-        <span class="java-keyword">this</span>.config.setUrlPattern( <span class="java-keyword">this</span>.urlPatternTextField.getText() );
-    }
-
-    <span class="java-keyword">private static</span> GridData gdhfill()
-    {
-        <span class="java-keyword">return new</span> GridData( GridData.FILL_HORIZONTAL );
-    }
-}
-</pre>
-</div>
-
-<div class="code">
-<pre class="java-code"><span class="java-context"><span class="java-context-keyword">package</span> com.formgen.eclipse;
-
-<span class="java-context-keyword">import</span> org.eclipse.core.resources.IFolder;
-<span class="java-context-keyword">import</span> org.eclipse.core.resources.IProject;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.IProgressMonitor;
-<span class="java-context-keyword">import</span> org.eclipse.core.runtime.Path;
-<span class="java-context-keyword">import</span> org.eclipse.wst.common.project.facet.core.IDelegate;
-<span class="java-context-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-<span class="java-context-keyword">public final class</span> FormGenCoreFacetInstallDelegate <span class="java-context-keyword">implements</span> IDelegate
-{
-    <span class="java-context-keyword">public void</span> execute( <span class="java-context-keyword">final</span> IProject pj,
-                         <span class="java-context-keyword">final</span> IProjectFacetVersion fv,
-                         <span class="java-context-keyword">final</span> Object config,
-                         <span class="java-context-keyword">final</span> IProgressMonitor monitor )
-
-        <span class="java-context-keyword">throws</span> CoreException
-
-    {
-        monitor.beginTask( "", 2 );
-
-        try
-        {</span>
-            <span class="java-keyword">final</span> FormGenCoreFacetInstallConfig cfg
-                = (FormGenCoreFacetInstallConfig) config;
-
-            <span class="java-context"><span class="java-context-keyword">final</span> IFolder webInfLib = Utils.getWebInfLibDir( pj );
-
-            Utils.copyFromPlugin( <span class="java-context-keyword">new</span> Path( "libs/formgen-core.jar" ),
-                                  webInfLib.getFile( "formgen-core.jar" ) );
-
-            monitor.worked( 1 );</span>
-
-            Utils.registerFormGenServlet( pj, cfg.getUrlPattern() );
-
-            <span class="java-context">monitor.worked( 1 );
-        }
-        <span class="java-context-keyword">finally</span>
-        {
-            monitor.done();
-        }
-    }
-}</span>
-</pre>
-</div>
-
-<p>Once the above code changes have been made you should see another page appear
-in the Dynamic Web Project Wizard after the FormGen facets are selected. The
-new page will appear after the Web Module page, which is associated with the
-<code>jst.web</code> facet. That's because <code>formgen.core</code> facet
-depends on the <code>jst.web</code> facet. If this dependency relationship 
-was not specified the relative order of these pages would be unspecified.</p>
-
-<div class="screen-shot"><img src="images/screen06.gif"/></div>
-
-<h2><a name="defining.presets">8. Defining Presets</a></h2>
-
-<p>As the number of available facets grows, it becomes increasingly difficult
-for the user to figure out which combinations make sense. This is where presets
-come in. Presets (or Configurations, as they are referred to in the UI) are
-simply combinations of facets that someone has determined are useful in certain
-situations. Presets can be created by the user or supplied via an extension
-point.</p>
-
-<p>Here is the extension point schema for declaring presets:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.presets</span>"&gt;
-  &lt;static-preset id="<span class="schema-type">{string}</span>" extends="<span class="schema-type">{string}</span>"&gt;
-    &lt;label&gt;<span class="schema-type">{string}</span>&lt;/label&gt;
-    &lt;description&gt;<span class="schema-type">{string}</span>&lt;/description&gt; <span class="schema-control">(optional)</span>
-    &lt;facet id="<span class="schema-type">{string}</span>" version="<span class="schema-type">{string}</span>"/&gt; <span class="schema-control">(1 or more)</span>
-  &lt;/static-preset&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Note that in order for a preset to apply to a given faceted project, the
-preset needs to include all of the project's "fixed facets". Fixed facets are
-the facets that are key to the proper operation of that project type and so
-cannot be removed. You can identify fixed facets by the lock icon.</p>
-
-<p>Let's now create a preset that includes formgen facets.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.presets</span>"&gt;
-  &lt;static-preset id="<span class="xml-text">formgen.preset</span>"&gt;
-    &lt;label&gt;<span class="xml-text">FormGen Web Project</span>&lt;/label&gt;
-    &lt;description&gt;<span class="xml-text">Creates a web project with FormGen functionality.</span>&lt;/description&gt;
-    &lt;facet id="<span class="xml-text">jst.java</span>" version="<span class="xml-text">5.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">jst.web</span>" version="<span class="xml-text">2.2</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>" version="<span class="xml-text">1.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>" version="<span class="xml-text">1.0</span>"/&gt;
-  &lt;/static-preset&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Here is how the preset shows up on the facets selection page:</p>
-
-<div class="screen-shot"><img src="images/screen07.gif"/></div>
-
-<p>The preset can also be selected on the first page of all WTP project
-creation wizards. Here is how this looks in the Dynamic Web Project wizard:</p>
-
-<div class="screen-shot"><img src="images/screen08.gif"/></div>
-
-<h2><a name="runtime.mappings">9. Specifying Runtime Support Mappings</a></h2>
-
-<p>One of the most important functions of the faceted project framework is to
-be able to accurately model whether a certain server runtime supports a
-given project. We do that by "mapping" project facets to runtime components
-that support them. If the artifacts created by a facet will run on any server
-that supports all of the facet's upstream dependencies, then the <code>any</code>
-wildcard can be used.</p>
-
-<p>It's important to note that every facet needs to specify a support mapping of
-some kind. Facets that don't specify any support mappings are treated as not
-supported by any runtime, which is not very useful.</p>
-
-<p>Here is the extension point that's used for specifying the support mappings:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt; <span class="schema-control">(0 or more)</span>
-    &lt;runtime-component any="<span class="schema-type">{boolean}</span>"/&gt; <span class="schema-control">(optional)</span>
-    &lt;runtime-component id="<span class="schema-type">{string}</span>"/ version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">(0 or more)</span>
-    &lt;facet id="<span class="schema-type">{string}</span>"/ version="<span class="schema-type"><span class="schema-type-link">{<a href="#version.expressions">version.expr</a>}</span></span>"/&gt; <span class="schema-control">(1 or more)</span>
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>The <code>&lt;supported&gt;</code> block can reference any number of runtime
-components as well as any number of facets. The semantics of that is to declare 
-as supported every combination in the resulting cross-product.</p> 
-
-<p>The <code>version</code> attributes of the <code>&lt;runtime-component&gt;</code> 
-and <code>&lt;facet&gt;</code> elements can be omitted to include all versions.</p>
-
-<p>The FormGen facets don't have any special support requirements. They will run
-on any server that supports the j2ee servlet spec. We will use the <code>any</code>
-wildcard to designate that.</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt;
-    &lt;runtime-component any="<span class="xml-text">true</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>"/&gt;
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>Alternative, if for some reason the FormGen functionality required a specific
-runtime, such as Tomcat, we would use something like the this instead:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.wst.common.project.facet.core.runtimes</span>"&gt;
-  &lt;supported&gt;
-    &lt;runtime-component id="<span class="xml-text">org.eclipse.jst.server.tomcat</span>" version="<span class="xml-text">[5.0</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;facet id="<span class="xml-text">formgen.ext</span>"/&gt;
-  &lt;/supported&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<p>The above more restrictive specification will prevent FormGen facets from
-being selected if the project is targetted to any runtime other than Apache
-Tomcat 5.0 or newer.</p>
-
-<h2><a name="summary">10. Summary</a></h2>
-
-<p>In this tutorial we created two fully-functional project facets by specifying
-constraints, implementing actions, grouping facets into categories, and creating
-wizard pages to allow users to parameterize facet installation. You should now
-be well prepared to create your own facets. Additional information not covered
-by this tutorial can be found in the following appendix sections.</p> 
-
-<h2><a name="custom.version.comparators">Appendix A: Custom Version Comparators</a></h2>
-
-<p>The faceted project framework needs to be able to compare facet version
-strings. The framework supplies a default version comparator that can handle
-version strings encoded using the standard decimal notation (such as 1.2 or
-5.66.5533), but if you want to use a different format you will need to supply
-a custom version comparator.</p>
-
-<p>Here is how you plug in a custom version comparator:</p>
-
-<div class="code">
-<pre class="code-xml"><span class="context-code">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</span>
-    &lt;version-comparator class="<span class="schema-type">{class:java.util.Comparator&lt;String&gt;}</span>"/&gt;
-  <span class="context-code">&lt;/project-facet&gt;
-&lt;/extension&gt;</span>
-</pre>
-</div>
-
-<p>When implementing a version comparator you can either start from scratch
-or subclass the default version comparator (<code>org.eclipse.wst.common.project.facet.core.DefaultVersionComparator</code>).
-Subclassing the default version comparator makes sense if the version format
-differs only slightly from the default format, such as using separators other
-than dots or having non-numeric characters at certain positions. Here are the
-protected methods exposed by the <code>DefaultVersionComparator</code> class
-that are designed to be overridden:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-comment">/**
- * 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.
- * 
- * <span class="java-javadoc-keyword">@return</span> the separator characters
- */</span>
-    
-<span class="java-keyword">protected</span> String getSeparators();
-    
-<span class="java-comment">/**
- * 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.
- * 
- * <span class="java-javadoc-keyword">@param</span> version the full version string
- * <span class="java-javadoc-keyword">@param</span> segment the version segment
- * <span class="java-javadoc-keyword">@param</span> position the position of the segment in the version string
- * <span class="java-javadoc-keyword">@return</span> the parsed representation of the segment as a {@see Comparable}
- * <span class="java-javadoc-keyword">@throws</span> VersionFormatException if encountered an error while parsing
- */</span>
-    
-<span class="java-keyword">protected</span> Comparable parse( <span class="java-keyword">final</span> String version,
-                            <span class="java-keyword">final</span> String segment,
-                            <span class="java-keyword">final</span> int position )
-    
-    <span class="java-keyword">throws</span> VersionFormatException;
-</pre>
-</div>
-
-<h2><a name="version.expressions">Appendix B: Version Expressions</a></h2>
-
-<p>A version expression is a syntax for specifying more than one version. The
-version expressions are used throughout the framework's extension points, but
-you will most likely first encounter them while specifying the <code>requires</code> 
-constraint.</p>
-
-<p>A version expression is composed of multiple segments separated by commas. 
-The commas function as an OR operation. Each segment is either a single version, 
-a range, or a wildcard. Ranges are represented by bracket and dash notation such 
-as [x-y). A bracket means inclusive, while the parenthesis means exclusive. Open 
-ended ranges are also supported. A wildcard (represented by '*' character) can
-be used to match any version. It is not possible to use the wildcard to match
-part of the version string.</p>
-
-<p>Here are some examples:</p>
-
-<div class="code">
-<pre class="java-code">1.2
-1.2,1.5,3.2
-[1.2-3.2]
-[3.7-5.0)
-[3.7
-5.0)
-1.2,[3.0-4.5),[7.3
-*
-</pre>
-</div>
-
-<h2><a name="property.tester">Appendix C: Property Tester</a></h2>
-
-<p>A property tester is provided by the Faceted Project Framework that allows
-the presence of the facet in a project to be tested by any extension point that
-works with <code>org.eclipse.core.expressions</code> package. The most common
-usage is to enable user interface elements (such as actions and project property
-pages). The property name is <code>org.eclipse.wst.common.project.facet.core.projectFacet</code>
-and the value is either a facet id or a facet id followed by a colon and
-a <a href="#version.expressions">version expression</a>.</p>
-
-<p>Here is an example of using facets property tester to control enablement of
-a project properties page:</p>
-
-<div class="code">
-<pre class="code-xml">&lt;extension point="<span class="xml-text">org.eclipse.ui.propertyPages</span>"&gt;
-  &lt;page 
-    adaptable="<span class="xml-text">true</span>"
-    objectClass="<span class="xml-text">org.eclipse.core.resources.IProject</span>"
-    name="<span class="xml-text">FormGen Properties</span>"
-    class="<span class="xml-text">com.formgen.eclipse.FormGenPropertiesPage</span>"
-    id="<span class="xml-text">org.eclipse.jst.j2ee.internal.J2EEDependenciesPage</span>"&gt;
-    &lt;enabledWhen&gt;
-      &lt;test 
-        forcePluginActivation="<span class="xml-text">true</span>"
-        property="<span class="xml-text">org.eclipse.wst.common.project.facet.core.projectFacet</span>"
-        value="<span class="xml-text">formgen.core</span>"/&gt;
-    &lt;/enabledWhen&gt;          
-  &lt;/page&gt;
-&lt;/extension&gt;
-</pre>
-</div>
-
-<h2><a name="wizard.context">Appendix D: Wizard Context</a></h2>
-
-<p>Sometimes it desirable to be able to adjust the behavior of facet action 
-wizard pages based on user input in the wizard pages of other facets. The
-<code>IWizardContext</code> interface can be used for this purpose. The wizard
-page gets a handle on <code>IWizardContext</code> interface when it's
-<code>setWizardContext</code> method is called. When writing code that relies
-on the wizard context, there are a couple of points you should keep in mind.</p>
-
-<ol>
-
-  <li><p>The facet whose value you wish to check may have already been installed
-    in the past. In that case you will not find it's install configuration in
-    the wizard context. You will need to write conditional logic that will
-    consult the wizard context or looks at project state on disk.</p></li>
-    
-  <li><p>You should make sure that a reasonable default is provided in your
-    config object for the API-only scenario where your wizard page will not be
-    involved.</p>
-    
-</ol>
-
-<p>Here is what the <code>IWizardContext</code> interface looks like:</p>
-
-<div class="code">
-<pre class="java-code"><span class="java-keyword">package</span> org.eclipse.wst.common.project.facet.ui;
-
-<span class="java-keyword">import</span> java.util.Set;
-
-<span class="java-keyword">import</span> org.eclipse.core.runtime.CoreException;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-<span class="java-keyword">import</span> org.eclipse.wst.common.project.facet.core.IFacetedProject.Action.Type;
-
-<span class="java-comment">/**
- * The interface exposed to the facet action wizard pages that allows them
- * to gather information about the wizard state.
- */</span>
-
-<span class="java-keyword">public interface</span> IWizardContext 
-{
-    <span class="java-comment">/**
-     * 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.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the name of the project that the wizard is operating on
-     */</span>
-    
-    String getProjectName();
-    
-    <span class="java-comment">/**
-     * 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. 
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the set of facets currently selected in the wizard (element type:
-     *   {<span class="java-javadoc-keyword">@see</span> IProjectFacetVersion})
-     */</span>
-    
-    Set getSelectedProjectFacets();
-    
-    <span class="java-comment">/**
-     * Determines whether the specified facet is currently selected in the
-     * wizard. See {@see getSelectedProjectFacets()} for more information.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> fv the project facet version object
-     * <span class="java-javadoc-keyword">@return</span> <code>true</code> if an only if the provided project facet is
-     *   currently selected in the wizard
-     */</span>
-    
-    <span class="java-keyword">boolean</span> isProjectFacetSelected( IProjectFacetVersion fv );
-    
-    <span class="java-comment">/**
-     * Returns the set of actions currently specified by the user.
-     * 
-     * <span class="java-javadoc-keyword">@return</span> the set of actions currently specified by the user
-     */</span>
-    
-    Set getActions();
-    
-    <span class="java-comment">/**
-     * 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.
-     * 
-     * <span class="java-javadoc-keyword">@param</span> type the action type
-     * <span class="java-javadoc-keyword">@param</span> fv the project facet version object
-     * <span class="java-javadoc-keyword">@return</span> the action object or <code>null</code>
-     */</span>
-    
-    Action getAction( Action.Type type,
-                      IProjectFacetVersion fv );
-}
-</pre>
-</div>
-
-<br/><br/><br/>
-
-</body>
-
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html
deleted file mode 100644
index c354809..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew150.html
+++ /dev/null
@@ -1,363 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 1.5?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 1.5?</p>
-
-<p>This document describes the API changes that have been made in the Faceted
-Project Framework for WTP 1.5 release. Both Java API and extension point changes 
-are covered. Note that the Faceted Project Framework API remains provisional
-for the 1.5 release. This means it will continue undergoing further significant
-changes in future release(s).</p>
-
-<p><b>Attention:</b> All Java API and extension points that have been deprecated 
-in the 1.5 release will be removed in the 2.0 release. Until that point they 
-will continue to function and be fully supported.</p>
-
-<ol>
-  <li><a href="#vexprs">Version Expressions</a></li>
-  <li><a href="#actions">Action Definitions</a></li>
-  <li><a href="#wizard">Wizard Pages</a></li>
-  <li><a href="#event.handlers">Event Handlers</a></li>
-  <li><a href="#runtimes">Targeting Multiple Runtimes</a></li>
-  <li><a href="#presets">Descriptions for Presets</a></li>
-  <li><a href="#misc">Miscellaneous</a></li>
-</ol>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="vexprs">1. Version Expressions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Version expressions are used in various context throughout the framework's
-extension points and Java API when multiple versions need to be specified. In
-the 1.0.x release, the vesion expressions were of the form "&lt;1.5,2.3,2.5,&gt=5.0",
-where commas indicate a disjunction (or). This syntax did not allow ranges to be
-specified and was unwieldy due to the need to escape the angle brackets in the
-plugin.xml files. So this syntax has been deprecated in the 1.5 release. The new
-syntax also uses commas to specify a disjunction, but now ranges can be
-specified using "[1.3-6.3)" notation. Square brackets mean inclusive, while
-parenthesis mean exclusive. Open ranges can also be specified using notation
-like "[1.3" and "6.3)".</p>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="actions">2. Action Definitions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Action definitions have been made into first class entities with the new
-ability to be assigned an id and the creation of the browsing API. In addition,
-it is now possible to create constrained VERSION_CHANGE actions in order to
-designate precisely which versions the delegate is capable of changing from.
-Multiple VERSION_CHANGE delegates with different "from.versions" constraint
-can be specified.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...
-  &lt;action</font> id="string" <font color="#7B7B7B">... &gt;
-    ...
-    </font>
-    &lt;property name="from.versions" value="string"/&gt; <i>(0 or 1)</i>
-    <font color="#7B7B7B">
-    ...
-  &lt/action&gt;
-  ...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.IActionDefinition
-{
-   static final String PROP_FROM_VERSIONS;
-   String getId();
-   IProjectFacet getProjectFacet();
-   IVersionExpr getVersionExpr();
-   Action.Type getActionType();
-   Map getProperties();
-   Object getProperty( String name );
-   Object createConfigObject( IProjectFacetVersion fv, String pjname );
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean supports( Set base, Action.Type type );
-   Set getActionDefinitions();
-   Set getActionDefinitions( Action.Type type );
-   IActionDefinition getActionDefinition( Set base, Action.Type type );
-   <font color="#7B7B7B">...
-}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.ProjectFacetsManager
-{
-    ...</font>
-    Set getActionDefinitions();
-    boolean isActionDefined( String id );
-    IActionDefinition getActionDefinition( String id );
-    <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean supports( Action.Type type );
-   Object createActionConfig( Action.Type type, String pjname );
-   boolean isSameActionConfig( Action.Type type, IProjectFacetVersion fv );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="wizard">3. Wizard Pages</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The extension point schema for defining wizard pages associated with the
-project facet actions has been revised to be more flexible.</p>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.ui.wizard"&gt;
-  &lt;wizard-pages facet="..."&gt;
-    &lt;install&gt; <i>(0 or 1)</i>
-      &lt;page class="..."/&gt; <i>(1 or more)</i>
-    &lt;/install&gt;
-    &lt;uninstall&gt; <i>(0 or 1)</i>
-      &lt;page class="..."/&gt; <i>(1 or more)</i>
-    &lt;/uninstall&gt;
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Replacement Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.ui.wizardPages"&gt;
-  &lt;wizard-pages action="..."&gt; <i>(1 or more)</i>
-    &lt;page class="..."/&gt; <i>(1 or more)</i>
-  &lt;/wizard-pages&gt;
-&lt;/extension&gt;
-</pre>
-</td></tr></table>
-
-<p>Note the new extension point id. The "action" attribute should contain the
-action that these pages are to be associated with. The action id can
-be explicitly specified via the new "id" attribute available on the "action"
-element of the core facets extension point. If not specified, the default id
-is generated using the "[facet-id]#[version-expression]#[action-type]" 
-pattern.</p>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.ui.ProjectFacetsUiManager
-{
-   ...</font>
-   List getWizardPages( Action.Type type, IProjectFacetVersion fv );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Replacement Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.ui.ProjectFacetsUiManager
-{
-   ...</font>
-   List getWizardPages( String actionId );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="event.handlers">4. Event Handlers</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>A new event handling facility has been added. This makes for a clear separation
-between actions (user initiated), and events (automatic). Prior to this change
-it was possible to register a "runtime-changed" action. That usage is now
-deprecated and should be converted to use event handler extension point. Various
-new events have also been added.</p>
-
-<p><u>Event Types</u></p>
-
-<p>PRE_INSTALL, POST_INSTALL, PRE_UNINSTALL, POST_UNINSTALL, PRE_VERSION_CHANGE,
-POST_VERSION_CHANGE, RUNTIME_CHANGED</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...</font>
-  &lt;event-handler type="..." facet="..." version="..."&gt;
-    &lt;delegate class="..."/&gt;
-  &lt/event-handler&gt;
-  <font color="#7B7B7B">...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>RUNTIME_CHANGED Event</u></p>
-
-<p>In the 1.0.x release it was possible to register a "runtime-changed" action.
-That usage is now deprecated and should be converted into a RUNTIME_CHANGED
-event handler. The RUNTIME_CHANGED event handler delegate gets passed in a
-config object that carries additional information about the event.</p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent
-{
-    IRuntime getOldRuntime();
-    IRuntime getNewRuntime();
-}  
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="runtimes">5. Targeting Multiple Runtimes</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The ability for a project to target multiple runtimes has been further
-fleshed out during the 1.5 release.</p>
-   
-<p><u>Deprecated Java API</u></p>
-   
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{
-   ...</font>
-   IRuntime getRuntime();
-   void setRuntime( IRuntime runtime );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-     
-<p><u>Replacement Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{
-   ...</font>
-   Set getTargetedRuntimes();
-   void setTargetedRuntimes( Set runtimes, IProgressMonitor monitor );
-   void addTargetedRuntime( IRuntime runtime, IProgressMonitor monitor );
-   void removeTargetedRuntime( IRuntime runtime, IProgressMonitor monitor );
-   IRuntime getPrimaryRuntime();
-   void setPrimaryRuntime( IRuntime runtime, IProgressMonitor monitor );
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="presets">6. Descriptions for Presets</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to associate description with presets.</p>
-   
-<p><u>Extension Points Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  ...
-  &lt;preset&gt;
-    ...</font>
-    &lt;description&gt;...&lt/description&gt; <i>(0 or 1)</i>
-    <font color="#7B7B7B">...
-  &lt/preset&gt;
-  ...
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.ProjectFacetsManager
-{
-   ...</font>
-   IPreset definePreset( String name, String description, Set facets );
-   <font color="#7B7B7B">...
-}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IPreset
-{
-   ...</font>
-   String getDescription();
-   <font color="#7B7B7B">...
-}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="misc">7. Miscellaneous</a></font></p>
-<!--  ********************************************************************** -->
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacetVersion
-{
-   ...</font>
-   boolean isValidFor( Set fixed );
-   boolean conflictsWith( IProjectFacetVersion fv );
-   String getPluginId();
-   <font color="#7B7B7B">...
-}</font>
-
-org.eclipse.wst.common.project.facet.core.IVersionExpr
-{
-   boolean evaluate( String version );
-   String toDisplayString();
-}
-</pre>
-</td></tr></table>
-
-<p></p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html
deleted file mode 100644
index f6d3d8d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew151.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 1.5.1?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 1.5.1?</p>
-
-<p>This document describes the API changes that have been made in the Faceted
-Project Framework for WTP 1.5.1 release. Both Java API and extension point 
-changes are covered. Note that the Faceted Project Framework API remains 
-provisional for the 1.5.1 release. This means it will continue undergoing 
-further significant changes in future release(s).</p>
-
-<ol>
-  <li><a href="#defver">Specifying Default Facet Version</a></li>
-  <li><a href="#wildcard">Wildcard Support in Version Expressions</a></li>
-</ol>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="vexprs">1. Specifying Default Facet Version</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to specify the facet version that will be used by default
-when the facet is presented to the user. There are two ways to specify the default
-version. You can either specify a static default or you can implement the
-<code>IDefaultVersionProvider</code> interface. If a default version is not
-specified, the latest version will be used instead.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;default-version version="{string}"/&gt; <i>(optional)</i>
-    &lt;default-version provider="{class:org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider}"/&gt; <i>(optional)</i>
-  <font color="#7B7B7B">&lt;/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IProjectFacet
-{</font>
-   IProjectFacetVersion getDefaultVersion();
-<font color="#7B7B7B">}</font>
-
-org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider
-{
-   IProjectFacetVersion getDefaultVersion();
-}
-</pre>
-</td></tr></table>
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="wildcard">2. Wildcard Support in Version Expressions</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>A wildcard character '*' can now be used in version expressions in order to
-match any version. Note that it is not possible to use the wildcard to match
-part of the version string.</p>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IVersionExpr
-{</font>
-   static final String WILDCARD_SYMBOL = "*";
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p></p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html
deleted file mode 100644
index 97f5f0b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew20.html
+++ /dev/null
@@ -1,447 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 2.0?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 2.0?</p>
-
-<p>This document describes the API changes that have been made in the Faceted Project Framework for 
-the WTP 2.0 release. Both Java API and extension point changes are covered. All API that was 
-deprecated in this release is still supported, but clients are advised to switch to non-deprecated 
-alternatives as soon as feasible.</p>
-
-<ol>
-  <li><a href="#generics">Generics</a></li>
-  <li><a href="#presets">Improvements to Presets</a></li>
-  <li><a href="#comparable">IProjectFacetVersion and IRuntimeComponentVersion Extend Comparable</a></li>
-  <li><a href="#requires-group">Requires Constraint Supports Groups</a></li>
-  <li><a href="#group-labels">Labels and Descriptions for Groups</a></li>
-  <li><a href="#validate">New IFacetedProject Validation API</a></li>
-  <li><a href="#new-wizard-class">AddRemoveFacetsWizard Class Renamed to ModifyFacetedProjectWizard</a></li>
-  <li><a href="#pde-limitations">Extension Point Schema Changes to Work Around PDE Limitations</a></li>
-  <li><a href="#listeners">Listeners and Events</a></li>
-  <li><a href="#misc">Miscellaneous</a></li>
-</ol>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#generics">1. Generics</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>All of the framework's API now use Java 5 generics. This has been done in a backwards compatible
-way and existing clients are expected to continue to work without any modifications. In order for a 
-client to gain access to the type safety afforded by generics in this API, the client plugin's Java 
-compiler level should be configured to be 5.0 or newer.</p>  
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="presets">2. Improvements to Presets</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>Significant improvements have been made to the presets facility for the 2.0 release. A new type of
-preset, referred to as a dynamic preset, is now available. A dynamic preset uses an extender-supplied
-factory to synthesize the preset definition on the fly based on the context in which it will be
-used. The "old-style" declarative presets are still available and are now referred to as static
-presets. Static presets have also been improved to allow them to extend other presets. A static
-preset can even extend a dynamic preset.</p>
-
-<p>There is also a new preset that's part of the framework. It's a dynamic preset with id of 
-"default.configuration" and whose contents are synthesized as follows:</p>
-
-<ol>
-  <li>If a runtime is selected, this preset will contain default facets as specified by
-    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 IProjectFacet.getDefaultVersion().</li>
-</ol>   
-
-<p><u>New Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.core.presets"&gt;
-  &lt;static-preset id="<i>{string}</i>" extends="<i>{string}</i>"&gt;
-    &lt;label&gt;<i>{string}</i>&lt;/label&gt; <i>(optional)</i>
-    &lt;description&gt;<i>{string}</i>&lt;/description&gt; <i>(optional)</i>
-    &lt;facet id="<i>{string}</i>" version="<i>{string}</i>"/&gt; <i>(1 or more)</i>
-  &lt;/static-preset&gt; <i>(0 or more)</i>
-  &lt;dynamic-preset id="<i>{string}</i>"&gt;
-    &lt;factory class="<i>{class:org.eclipse.wst.common.project.facet.core.IPresetFactory}</i>"/&gt;
-  &lt;/dynamic-preset&gt; <i>(0 or more)</i>
-&lt;extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;preset id="<i>{string}</i>"&gt;
-    &lt;label&gt;<i>{string}</i>&lt;/label&gt; <i>(optional)</i>
-    &lt;description&gt;<i>{string}</i>&lt;/description&gt; <i>(optional)</i>
-    &lt;facet id="<i>{string}</i>" version="<i>{string}</i>"/&gt; <i>(1 or more)</i>
-  &lt;/preset&gt; <i>(0 or more)</i>
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">interface org.eclipse.wst.common.project.facet.core.IPreset
-{</font>
-    enum Type { STATIC, DYNAMIC, USER_DEFINED }
-    Type getType();
-<font color="#7B7B7B">}</font>
-
-interface org.eclipse.wst.common.project.facet.core.IDynamicPreset extends IPreset
-{
-    static final String CONTEXT_KEY_FIXED_FACETS;
-    static final String CONTEXT_KEY_PRIMARY_RUNTIME;
-    IPreset resolve( Map<String,Object> context );
-}
-
-interface org.eclipse.wst.common.project.facet.core.IPresetFactory
-{
-    PresetDefinition createPreset( String presetId, Map<String,Object> context );
-}
-
-class org.eclipse.wst.common.project.facet.core.PresetDefinition
-{
-    PresetDefinition( String label, String description, Set<IProjectFacetVersion> facets );
-    String getLabel();
-    String getDescription();
-    Set<IProjectFacetVersion> getProjectFacets();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.FacetedProjectFramework
-{</font>
-    static final String DEFAULT_CONFIGURATION_PRESET_ID;
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-<font color="#7B7B7B">interface org.eclipse.wst.common.project.facet.core.IPreset
-{</font>
-    boolean isUserDefined()
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#comparable">3. IProjectFacetVersion and IRuntimeComponentVersion Extend Comparable</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The IProjectFacetVersion and IRuntimeComponentVersion interfaces now extend
-Comparable. Using the compareTo methods will yield significantly better performance
-than calling the version comparator directly on the version strings as the 
-compareTo methods use pre-computed results and do not need to parse the version
-strings.</p>
-
-<p>As part of this change, IVersionExpr.evaluate( String ) method has been
-replaced with IVersionExpr.check( Comparable ) method.</p>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#requires-group">4. Requires Constraint Supports Groups</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The requires constraint can now be declared using facet groups instead of
-individual facets. Any member of the group will satisfy the constraint. This
-allows a level of indirection so that a facet does not need to know about all of
-the group members.</p>
-
-<p><u>Extension Point Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet-version&gt;
-    &lt;constraint&gt;</font>
-      &lt;requires group="group.id"/&gt;
-    <font color="#7B7B7B">&lt;/constraint&gt;
-  &lt;/project-facet-version&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="group-labels">5. Labels and Descriptions for Groups</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>It is now possible to associate labels and description with groups. Note that
-groups are still automatically created on first use, so the use of the new group
-element is only necessary in order to specify the label and the description.</p>
-   
-<p><u>Extension Points Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;group id="..."&gt; <i>(0 or more)</i>
-    &lt;label&gt;...&lt/label&gt;
-    &lt;description&gt;...&lt/description&gt; <i>(0 or 1)</i>
-  &lt/group&gt;
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IGroup
-{</font>
-   String getLabel();
-   String getDescription();
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="validate">6. New IFacetedProject Validation API</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>There is now API for validating the faceted project. It allows the caller to
-find out about any problems with the project without searching for problem
-markers created by the faceted project validation builder. The validation
-builder now uses the new API.</p>
-
-<p><u>Java API Changes</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-   IStatus validate( IProgressMonitor monitor );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="new-wizard-class">7. AddRemoveFacetsWizard Class Renamed to ModifyFacetedProjectWizard</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The AddRemoveFacetsWizard class has been renamed to ModifyFacetedProjectWizard
-to align with terminology change being made in the rest of the system. The old
-class is deprecated, but still supported (extends the new class).</p>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="pde-limitations">8. Extension Point Schema Changes to Work Around PDE Limitations</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>In order to work around false warnings reported by PDE's extension point schema validation, the
-following changes have been made to the framework's extension points. The old syntax is deprecated,
-but is still supported.</p>
-
-<p>When declaring that a facet belongs to a category...</p>
-
-<p><u>Old Syntax</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;category&gt;...&lt/category&gt;
-  <font color="#7B7B7B">&lt/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-<p><u>New Syntax</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;
-  &lt;project-facet&gt;</font>
-    &lt;member category="..."/&gt;
-  <font color="#7B7B7B">&lt/project-facet&gt;
-&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="listeners">9. Listeners and Events</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The existing facilities for listening on faceted project model changes have been re-designed to
-provide more information about the change that took place and to provide the same facility
-regardless of whether the client chooses to register the listener via direct API call or via an
-extension point.</p>
-
-<p>In 1.5, extenders could either:</p>
-
-<ol>
-  
-  <li>Use <code>IFacetedProject.addListener()</code> method. Listener would get called when any
-  aspect of faceted project model was changed, but the listener was not given any details about
-  the change that took place.<br/><br/></li>
-  
-  <li>Use <code>&lt;event-handler&gt;</code> element of the 
-  <code>org.eclipse.wst.common.project.facet.core.facets</code> extension point to register an
-  <code>IDelegate</code> implementation which is similar to how actions are implemented. This 
-  approach gave user a bit more control over what events to process as well as more information
-  regarding what actually took place. However, not all changes could be surfaced via this 
-  interface due to limitations of the extension point and the <code>IDelegate</code> interface.</li>
-  
-</ol>
-
-<p>Full discussion of the new facility can be found <a href="listeners.html">here</a>.</p>
-   
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener
-{
-    void handleEvent( IFacetedProjectEvent event );
-}
-
-org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent
-{
-    enum Type
-    {
-        PROJECT_MODIFIED,
-        PRE_INSTALL,
-        POST_INSTALL,
-        PRE_UNINSTALL,
-        POST_UNINSTALL,
-        PRE_VERSION_CHANGE,
-        POST_VERSION_CHANGE,
-        FIXED_FACETS_CHANGED,
-        TARGETED_RUNTIMES_CHANGED,
-        PRIMARY_RUNTIME_CHANGED
-    }
-    
-    Type getType();
-    IFacetedProject getProject();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IFixedFacetsChangedEvent : IFacetedProjectEvent
-{
-    Set&lt;IProjectFacet&gt; getOldFixedFacets();
-    Set&lt;IProjectFacet&gt; getNewFixedFacets();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent : IFacetedProjectEvent
-{
-    IProjectFacet getProjectFacet();
-    IProjectFacetVersion getProjectFacetVersion();
-    Object getActionConfig();
-}
-
-org.eclipse.wst.common.project.facet.core.events.IPrimaryRuntimeChangedEvent : IFacetedProjectEvent
-{
-    IRuntime getOldPrimaryRuntime();
-    IRuntime getNewPrimaryRuntime();
-}
-
-org.eclipse.wst.common.project.facet.core.events.ITargetedRuntimesChangedEvent : IFacetedProjectEvent
-{
-    Set&lt;IRuntime&gt; getOldTargetedRuntimes();
-    Set&lt;IRuntime&gt; getNewTargetedRuntimes();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener, IFacetedProjectEvent.Type... );
-    void removeListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.FacetedProjectFramework
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener, IFacetedProjectEvent.Type... );
-    void removeListener( org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-<p><u>New Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-&lt;extension point="org.eclipse.wst.common.project.facet.core.listeners"&gt;
-  &lt;listener 
-    class="{class:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener}"
-    eventTypes="{csv:org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent.Type}"/> <i>(1 or more)</i>
-&lt;extension&gt;
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Java API</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor=#FFF1C1>
-<pre>
-org.eclipse.wst.common.project.facet.core.IFacetedProjectListener
-{
-    projectChanged();
-}
-
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    void addListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener );
-    void removeListener( org.eclipse.wst.common.project.facet.core.IFacetedProjectListener );
-<font color="#7B7B7B">}</font>
-
-org.eclipse.wst.common.project.facet.core.IRuntimeChangedEvent
-{
-    IRuntime getOldRuntime();
-    IRuntime getNewRuntime();
-}
-</pre>
-</td></tr></table>
-
-<p><u>Deprecated Extension Point</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#FFF1C1">
-<pre>
-<font color="#7B7B7B">&lt;extension point="org.eclipse.wst.common.project.facet.core.facets"&gt;</font>
-  &lt;event-handler type="{string}" facet="{string}" version="{string}"&gt;
-    &lt;delegate class="{class:org.eclipse.wst.common.project.facet.core.IDelegate}"/&gt;
-  &lt/event-handler&gt;
-<font color="#7B7B7B">&lt;extension&gt;</font>
-</pre>
-</td></tr></table>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="misc">10. Miscellaneous</a></font></p>
-<!--  ********************************************************************** -->
-
-<p><u>Java API Additions</u></p>
-
-<table cellpadding="10"><tr><td width="10">&nbsp;</td><td bgcolor="#E2E2E2">
-<pre>
-<font color="#7B7B7B">org.eclipse.wst.common.project.facet.core.IFacetedProject
-{</font>
-    boolean isTargetable( IRuntime runtime );
-    boolean isTargeted( IRuntime runtime );
-<font color="#7B7B7B">}</font>
-</pre>
-</td></tr></table>
-
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html
deleted file mode 100644
index d8a7c83..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/guide/whatsnew301.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta
-  http-equiv="Content-Type"
-  content="text/html; charset=iso-8859-1">
-<title>What's New for 2.0?</title>
-<link
-  rel="stylesheet"
-  type="text/css"
-  href="format.css">
-</head>
-
-<body>
-<p class="ueberschrift">What's New for 3.0.1?</p>
-
-<p>This document describes the API changes that have been made in the Faceted Project Framework for 
-the WTP 3.0.1 release. Both Java API and extension point changes are covered. All API that was 
-deprecated in this release is still supported, but clients are advised to switch to non-deprecated 
-alternatives as soon as feasible.</p>
-
-<ol>
-  <li><a href="#separate-icons">Separate Icons for Different Versions of a Runtime Component Type</a></li>
-  <li><a href="#rcv-adaptable">IRuntimeComponentVersion Extends IAdaptable</a></li>
-</ol>
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#separate-icons">1. Separate Icons for Different Versions of a Runtime Component Type</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>The <code>images</code> extension point now supports a <code>version</code> attribute when used
-together with <code>runtime-component-type</code> attribute. This allows separate icons to be used
-for different versions of the same runtime component type.</p>  
-
-
-<!--  ********************************************************************** -->
-<p><font size="+1"><a name="#rcv-adaptable">2. IRuntimeComponentVersion Extends IAdaptable</a></font></p>
-<!--  ********************************************************************** -->
-
-<p>IRuntimeComponentVersion interface now extends platform's IAdaptable interface.</p>
-
-</body>
-</html>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml
deleted file mode 100644
index a5e8b7d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/javadoc.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<project default="export-javadoc">
-	
-  <target name="export-javadoc">
-  	<property environment="env"/>
-    <property name="javadoc.dir" value="reference/api"/>
-  	<mkdir dir="${javadoc.dir}"/>
-    <delete dir="${javadoc.dir}"/>
-  	<mkdir dir="${javadoc.dir}"/>
-    <javadoc
-      maxmemory="1024m"
-      destdir="${javadoc.dir}" 
-      access="protected" 
-      author="true"
-      version="true"
-      splitindex="true" 
-      use="true"
-      failonerror="true"
-      executable="${env.JAVA_5_HOME}/bin/javadoc">
-      <doctitle>Faceted Project Framework</doctitle>
-      <header><![CDATA[<b>Faceted Project Framework</b><br/>Version 1.3]]></header>
-      <footer><![CDATA[<b>Faceted Project Framework</b><br/>Version 1.3]]></footer>
-      <bottom><![CDATA[Copyright (c) 2008 BEA Systems, Inc. and others. All rights reserved.]]></bottom>
-      <group title="Core Packages" packages="org.eclipse.wst.common.project.facet.core:org.eclipse.wst.common.project.facet.core.*"/>
-      <group title="UI Packages" packages="org.eclipse.wst.common.project.facet.ui"/>
-      <packageset dir="../org.eclipse.wst.common.project.facet.core/src">
-        <include name="**/*"/>
-        <exclude name="**/internal/**"/>
-      </packageset>
-      <packageset dir="../org.eclipse.wst.common.project.facet.ui/src">
-        <include name="**/*"/>
-        <exclude name="**/internal/**"/>
-      </packageset>
-      <classpath refid="@dot.classpath"/>
-      <link href="http://java.sun.com/j2se/1.5/docs/api" offline="true" packagelistLoc="package-lists/java"/>
-      <link href="/org.eclipse.platform.doc.isv/reference/api" offline="true" packagelistLoc="package-lists/eclipse-platform"/>
-    </javadoc>
-  </target>
-	
-</project>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list b/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list
deleted file mode 100644
index b92c72f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/eclipse-platform/package-list
+++ /dev/null
@@ -1,225 +0,0 @@
-org.eclipse.ant.core
-org.eclipse.compare
-org.eclipse.compare.contentmergeviewer
-org.eclipse.compare.patch
-org.eclipse.compare.rangedifferencer
-org.eclipse.compare.structuremergeviewer
-org.eclipse.core.commands
-org.eclipse.core.commands.common
-org.eclipse.core.commands.contexts
-org.eclipse.core.commands.operations
-org.eclipse.core.databinding
-org.eclipse.core.databinding.beans
-org.eclipse.core.databinding.conversion
-org.eclipse.core.databinding.observable
-org.eclipse.core.databinding.observable.list
-org.eclipse.core.databinding.observable.map
-org.eclipse.core.databinding.observable.masterdetail
-org.eclipse.core.databinding.observable.set
-org.eclipse.core.databinding.observable.value
-org.eclipse.core.databinding.util
-org.eclipse.core.databinding.validation
-org.eclipse.core.expressions
-org.eclipse.core.filebuffers
-org.eclipse.core.filebuffers.manipulation
-org.eclipse.core.filesystem
-org.eclipse.core.filesystem.provider
-org.eclipse.core.net.proxy
-org.eclipse.core.resources
-org.eclipse.core.resources.mapping
-org.eclipse.core.resources.refresh
-org.eclipse.core.resources.team
-org.eclipse.core.runtime
-org.eclipse.core.runtime.adaptor
-org.eclipse.core.runtime.content
-org.eclipse.core.runtime.dynamichelpers
-org.eclipse.core.runtime.jobs
-org.eclipse.core.runtime.model
-org.eclipse.core.runtime.preferences
-org.eclipse.core.runtime.spi
-org.eclipse.core.variables
-org.eclipse.debug.core
-org.eclipse.debug.core.commands
-org.eclipse.debug.core.model
-org.eclipse.debug.core.sourcelookup
-org.eclipse.debug.core.sourcelookup.containers
-org.eclipse.debug.ui
-org.eclipse.debug.ui.actions
-org.eclipse.debug.ui.console
-org.eclipse.debug.ui.contexts
-org.eclipse.debug.ui.memory
-org.eclipse.debug.ui.sourcelookup
-org.eclipse.equinox.app
-org.eclipse.equinox.http.jetty
-org.eclipse.equinox.http.registry
-org.eclipse.equinox.http.servlet
-org.eclipse.equinox.jsp.jasper
-org.eclipse.equinox.jsp.jasper.registry
-org.eclipse.equinox.security.auth
-org.eclipse.equinox.security.auth.credentials
-org.eclipse.equinox.security.auth.module
-org.eclipse.equinox.security.storage
-org.eclipse.equinox.security.storage.provider
-org.eclipse.help
-org.eclipse.help.browser
-org.eclipse.help.search
-org.eclipse.help.standalone
-org.eclipse.help.ui
-org.eclipse.help.ui.browser
-org.eclipse.jface.action
-org.eclipse.jface.bindings
-org.eclipse.jface.bindings.keys
-org.eclipse.jface.bindings.keys.formatting
-org.eclipse.jface.commands
-org.eclipse.jface.contentassist
-org.eclipse.jface.contexts
-org.eclipse.jface.databinding.swt
-org.eclipse.jface.databinding.viewers
-org.eclipse.jface.databinding.wizard
-org.eclipse.jface.dialogs
-org.eclipse.jface.fieldassist
-org.eclipse.jface.layout
-org.eclipse.jface.menus
-org.eclipse.jface.operation
-org.eclipse.jface.preference
-org.eclipse.jface.resource
-org.eclipse.jface.text
-org.eclipse.jface.text.contentassist
-org.eclipse.jface.text.formatter
-org.eclipse.jface.text.hyperlink
-org.eclipse.jface.text.information
-org.eclipse.jface.text.link
-org.eclipse.jface.text.presentation
-org.eclipse.jface.text.projection
-org.eclipse.jface.text.quickassist
-org.eclipse.jface.text.reconciler
-org.eclipse.jface.text.revisions
-org.eclipse.jface.text.rules
-org.eclipse.jface.text.source
-org.eclipse.jface.text.source.projection
-org.eclipse.jface.text.templates
-org.eclipse.jface.text.templates.persistence
-org.eclipse.jface.util
-org.eclipse.jface.viewers
-org.eclipse.jface.viewers.deferred
-org.eclipse.jface.window
-org.eclipse.jface.wizard
-org.eclipse.jsch.core
-org.eclipse.jsch.ui
-org.eclipse.ltk.core.refactoring
-org.eclipse.ltk.core.refactoring.history
-org.eclipse.ltk.core.refactoring.model
-org.eclipse.ltk.core.refactoring.participants
-org.eclipse.ltk.core.refactoring.resource
-org.eclipse.ltk.ui.refactoring
-org.eclipse.ltk.ui.refactoring.actions
-org.eclipse.ltk.ui.refactoring.history
-org.eclipse.ltk.ui.refactoring.model
-org.eclipse.ltk.ui.refactoring.resource
-org.eclipse.osgi.service.datalocation
-org.eclipse.osgi.util
-org.eclipse.search.core.text
-org.eclipse.search.ui
-org.eclipse.search.ui.actions
-org.eclipse.search.ui.text
-org.eclipse.swt
-org.eclipse.swt.accessibility
-org.eclipse.swt.awt
-org.eclipse.swt.browser
-org.eclipse.swt.custom
-org.eclipse.swt.dnd
-org.eclipse.swt.events
-org.eclipse.swt.graphics
-org.eclipse.swt.layout
-org.eclipse.swt.ole.win32
-org.eclipse.swt.opengl
-org.eclipse.swt.printing
-org.eclipse.swt.program
-org.eclipse.swt.widgets
-org.eclipse.team.core
-org.eclipse.team.core.diff
-org.eclipse.team.core.diff.provider
-org.eclipse.team.core.history
-org.eclipse.team.core.history.provider
-org.eclipse.team.core.mapping
-org.eclipse.team.core.mapping.provider
-org.eclipse.team.core.subscribers
-org.eclipse.team.core.synchronize
-org.eclipse.team.core.variants
-org.eclipse.team.ui
-org.eclipse.team.ui.history
-org.eclipse.team.ui.mapping
-org.eclipse.team.ui.synchronize
-org.eclipse.text.edits
-org.eclipse.text.undo
-org.eclipse.ui
-org.eclipse.ui.about
-org.eclipse.ui.actions
-org.eclipse.ui.activities
-org.eclipse.ui.application
-org.eclipse.ui.branding
-org.eclipse.ui.browser
-org.eclipse.ui.cheatsheets
-org.eclipse.ui.commands
-org.eclipse.ui.console
-org.eclipse.ui.console.actions
-org.eclipse.ui.contentassist
-org.eclipse.ui.contexts
-org.eclipse.ui.dialogs
-org.eclipse.ui.editors.text
-org.eclipse.ui.editors.text.templates
-org.eclipse.ui.fieldassist
-org.eclipse.ui.forms
-org.eclipse.ui.forms.editor
-org.eclipse.ui.forms.events
-org.eclipse.ui.forms.widgets
-org.eclipse.ui.handlers
-org.eclipse.ui.help
-org.eclipse.ui.ide
-org.eclipse.ui.ide.dialogs
-org.eclipse.ui.ide.fileSystem
-org.eclipse.ui.ide.undo
-org.eclipse.ui.intro
-org.eclipse.ui.intro.config
-org.eclipse.ui.intro.universal
-org.eclipse.ui.keys
-org.eclipse.ui.menus
-org.eclipse.ui.model
-org.eclipse.ui.navigator
-org.eclipse.ui.navigator.resources
-org.eclipse.ui.operations
-org.eclipse.ui.part
-org.eclipse.ui.plugin
-org.eclipse.ui.preferences
-org.eclipse.ui.presentations
-org.eclipse.ui.progress
-org.eclipse.ui.services
-org.eclipse.ui.statushandlers
-org.eclipse.ui.swt
-org.eclipse.ui.testing
-org.eclipse.ui.texteditor
-org.eclipse.ui.texteditor.link
-org.eclipse.ui.texteditor.quickdiff
-org.eclipse.ui.texteditor.rulers
-org.eclipse.ui.texteditor.spelling
-org.eclipse.ui.texteditor.templates
-org.eclipse.ui.themes
-org.eclipse.ui.views
-org.eclipse.ui.views.bookmarkexplorer
-org.eclipse.ui.views.contentoutline
-org.eclipse.ui.views.framelist
-org.eclipse.ui.views.markers
-org.eclipse.ui.views.navigator
-org.eclipse.ui.views.properties
-org.eclipse.ui.views.properties.tabbed
-org.eclipse.ui.views.tasklist
-org.eclipse.ui.wizards
-org.eclipse.ui.wizards.datatransfer
-org.eclipse.ui.wizards.newresource
-org.eclipse.update.configuration
-org.eclipse.update.configurator
-org.eclipse.update.core
-org.eclipse.update.core.model
-org.eclipse.update.operations
-org.eclipse.update.search
-org.eclipse.update.standalone
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list b/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list
deleted file mode 100644
index 4878336..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/package-lists/java/package-list
+++ /dev/null
@@ -1,166 +0,0 @@
-java.applet
-java.awt
-java.awt.color
-java.awt.datatransfer
-java.awt.dnd
-java.awt.event
-java.awt.font
-java.awt.geom
-java.awt.im
-java.awt.im.spi
-java.awt.image
-java.awt.image.renderable
-java.awt.print
-java.beans
-java.beans.beancontext
-java.io
-java.lang
-java.lang.annotation
-java.lang.instrument
-java.lang.management
-java.lang.ref
-java.lang.reflect
-java.math
-java.net
-java.nio
-java.nio.channels
-java.nio.channels.spi
-java.nio.charset
-java.nio.charset.spi
-java.rmi
-java.rmi.activation
-java.rmi.dgc
-java.rmi.registry
-java.rmi.server
-java.security
-java.security.acl
-java.security.cert
-java.security.interfaces
-java.security.spec
-java.sql
-java.text
-java.util
-java.util.concurrent
-java.util.concurrent.atomic
-java.util.concurrent.locks
-java.util.jar
-java.util.logging
-java.util.prefs
-java.util.regex
-java.util.zip
-javax.accessibility
-javax.activity
-javax.crypto
-javax.crypto.interfaces
-javax.crypto.spec
-javax.imageio
-javax.imageio.event
-javax.imageio.metadata
-javax.imageio.plugins.bmp
-javax.imageio.plugins.jpeg
-javax.imageio.spi
-javax.imageio.stream
-javax.management
-javax.management.loading
-javax.management.modelmbean
-javax.management.monitor
-javax.management.openmbean
-javax.management.relation
-javax.management.remote
-javax.management.remote.rmi
-javax.management.timer
-javax.naming
-javax.naming.directory
-javax.naming.event
-javax.naming.ldap
-javax.naming.spi
-javax.net
-javax.net.ssl
-javax.print
-javax.print.attribute
-javax.print.attribute.standard
-javax.print.event
-javax.rmi
-javax.rmi.CORBA
-javax.rmi.ssl
-javax.security.auth
-javax.security.auth.callback
-javax.security.auth.kerberos
-javax.security.auth.login
-javax.security.auth.spi
-javax.security.auth.x500
-javax.security.cert
-javax.security.sasl
-javax.sound.midi
-javax.sound.midi.spi
-javax.sound.sampled
-javax.sound.sampled.spi
-javax.sql
-javax.sql.rowset
-javax.sql.rowset.serial
-javax.sql.rowset.spi
-javax.swing
-javax.swing.border
-javax.swing.colorchooser
-javax.swing.event
-javax.swing.filechooser
-javax.swing.plaf
-javax.swing.plaf.basic
-javax.swing.plaf.metal
-javax.swing.plaf.multi
-javax.swing.plaf.synth
-javax.swing.table
-javax.swing.text
-javax.swing.text.html
-javax.swing.text.html.parser
-javax.swing.text.rtf
-javax.swing.tree
-javax.swing.undo
-javax.transaction
-javax.transaction.xa
-javax.xml
-javax.xml.datatype
-javax.xml.namespace
-javax.xml.parsers
-javax.xml.transform
-javax.xml.transform.dom
-javax.xml.transform.sax
-javax.xml.transform.stream
-javax.xml.validation
-javax.xml.xpath
-org.ietf.jgss
-org.omg.CORBA
-org.omg.CORBA.DynAnyPackage
-org.omg.CORBA.ORBPackage
-org.omg.CORBA.TypeCodePackage
-org.omg.CORBA.portable
-org.omg.CORBA_2_3
-org.omg.CORBA_2_3.portable
-org.omg.CosNaming
-org.omg.CosNaming.NamingContextExtPackage
-org.omg.CosNaming.NamingContextPackage
-org.omg.Dynamic
-org.omg.DynamicAny
-org.omg.DynamicAny.DynAnyFactoryPackage
-org.omg.DynamicAny.DynAnyPackage
-org.omg.IOP
-org.omg.IOP.CodecFactoryPackage
-org.omg.IOP.CodecPackage
-org.omg.Messaging
-org.omg.PortableInterceptor
-org.omg.PortableInterceptor.ORBInitInfoPackage
-org.omg.PortableServer
-org.omg.PortableServer.CurrentPackage
-org.omg.PortableServer.POAManagerPackage
-org.omg.PortableServer.POAPackage
-org.omg.PortableServer.ServantLocatorPackage
-org.omg.PortableServer.portable
-org.omg.SendingContext
-org.omg.stub.java.rmi
-org.w3c.dom
-org.w3c.dom.bootstrap
-org.w3c.dom.events
-org.w3c.dom.ls
-org.xml.sax
-org.xml.sax.ext
-org.xml.sax.helpers
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties
deleted file mode 100644
index 46efccb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Faceted Project Framework API Documentation
-providerName = Eclipse.org
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml
deleted file mode 100644
index 1e6c624..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-  
-  <extension point="org.eclipse.help.toc">
-    <toc file="toc.xml" primary="true">
-    </toc>
-  </extension>
-	
-  <extension point="org.eclipse.pde.core.javadoc">
-    <javadoc path="reference/api">
-      <plugin id="org.eclipse.wst.common.project.facet.core"/>
-      <plugin id="org.eclipse.wst.common.project.facet.ui"/>
-    </javadoc>
-  </extension>
-   	
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete b/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete
deleted file mode 100644
index e69de29..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/src/.do-not-delete
+++ /dev/null
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml b/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml
deleted file mode 100644
index 6ef0eba..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Faceted Project Framework Developer Guide">
-
-  <topic label="Programmer's Guide" href="guide/description.html">
-    <topic 
-      label="Tutorial" 
-      href="guide/tutorial/tutorial.html"/>
-    <topic 
-      label="Listening for Changes to Faceted Projects"
-      href="guide/listeners.html"/>
-    <topic 
-      label="Enabling UI Elements Based on Project Facets"
-      href="guide/enabling-based-on-facets.html"/>
-    <topic 
-      label="Questions &amp; Answers"
-      href="guide/questions.html"/>
-    <topic 
-      label="New for 1.5"
-      href="guide/whatsnew150.html"/>
-    <topic 
-      label="New for 1.5.1"
-      href="guide/whatsnew151.html"/>
-    <topic 
-      label="New for 2.0"
-      href="guide/whatsnew20.html"/>
-    <topic 
-      label="New for 3.0.1"
-      href="guide/whatsnew301.html"/>
-  </topic>
-    
-  <topic label="Reference">
-    <topic label="API Reference" href="reference/api/overview-summary.html">
-      <topic 
-        label="org.eclipse.wst.common.project.facet.core"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.events"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/events/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.runtime"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/runtime/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.runtime.events"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/runtime/events/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.core.util"
-        href="reference/api/org/eclipse/wst/common/project/facet/core/util/package-summary.html"/>
-      <topic
-        label="org.eclipse.wst.common.project.facet.ui"
-        href="reference/api/org/eclipse/wst/common/project/facet/ui/package-summary.html"/>
-    </topic>
-  </topic>   
-      
-</toc>
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
index 85a169c..610d57a 100644
--- 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
@@ -3,7 +3,7 @@
 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.3.0.qualifier
+Bundle-Version: 1.3.1.qualifier
 Bundle-Localization: plugin
 Require-Bundle: org.junit;bundle-version="[3.8.2,4.0.0)",
  org.eclipse.wst.common.project.facet.core,
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
index 4fba5c6..336af9a 100644
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
+++ b/tests/org.eclipse.wst.common.project.facet.core.tests/plugin.xml
@@ -571,4 +571,24 @@
 
   </extension>
   
+  <!-- AliasingSystemTests -->
+  
+  <extension point="org.eclipse.wst.common.project.facet.core.facets">
+  
+    <project-facet id="ast-f1"/>
+    <project-facet-version facet="ast-f1" version="1.5"/>
+    <project-facet-version facet="ast-f1" version="1.6"/>
+    <action facet="ast-f1" type="INSTALL">
+      <delegate class="org.eclipse.wst.common.project.facet.core.tests.support.NoOpDelegate"/>
+    </action>
+    
+  </extension>
+
+  <extension point="org.eclipse.wst.common.project.facet.core.aliases">
+    
+    <facet-version-alias facet="ast-f1" version="1.5" alias="5.0"/>
+    <facet-version-alias facet="ast-f1" version="1.6" alias="6.0"/>
+    
+  </extension>
+  
 </plugin>
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AliasingSystemTests.java b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AliasingSystemTests.java
new file mode 100644
index 0000000..0549bd8
--- /dev/null
+++ b/tests/org.eclipse.wst.common.project.facet.core.tests/src/org/eclipse/wst/common/project/facet/core/tests/AliasingSystemTests.java
@@ -0,0 +1,86 @@
+/******************************************************************************
+ * 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.runtime.CoreException;
+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;
+
+/**
+ * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
+ */
+
+public final class AliasingSystemTests
+
+    extends AbstractTests
+    
+{
+    private static IProjectFacet f1;
+    private static IProjectFacetVersion f1v16;
+    
+    static
+    {
+        f1 = ProjectFacetsManager.getProjectFacet( "ast-f1" );
+        f1v16 = f1.getVersion( "1.6" );
+    }
+
+    private AliasingSystemTests( final String name )
+    {
+        super( name );
+    }
+    
+    public static Test suite()
+    {
+        final TestSuite suite = new TestSuite();
+        
+        suite.setName( "Aliasing System Tests" );
+
+        suite.addTest( new AliasingSystemTests( "testVersionExpr" ) );
+        
+        return suite;
+    }
+
+    /**
+     * Tests that the version expressions work with aliases.
+     * 
+     * @throws CoreException
+     * @throws IOException
+     */
+    
+    public void testVersionExpr()
+    
+        throws CoreException, IOException
+    
+    {
+        final IFacetedProject proj = createFacetedProject();
+        proj.installProjectFacet( f1v16, null, null );
+
+        // Base line.
+        
+        assertTrue( FacetedProjectFramework.hasProjectFacet( proj.getProject(), f1.getId(), "1.6" ) );
+        assertFalse( FacetedProjectFramework.hasProjectFacet( proj.getProject(), f1.getId(), "1.5" ) );
+        
+        // Actual test case.
+        
+        assertTrue( FacetedProjectFramework.hasProjectFacet( proj.getProject(), f1.getId(), "6.0" ) );
+        assertFalse( FacetedProjectFramework.hasProjectFacet( proj.getProject(), f1.getId(), "5.0" ) );
+    }
+    
+}
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
index 3e115b6..dd3cc77 100644
--- 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
@@ -40,6 +40,7 @@
         suite.addTest( FacetConstraintsTests.suite() );
         suite.addTest( DefaultVersionTests.suite() );
         suite.addTest( EventDeliveryTests.suite() );
+        suite.addTest( AliasingSystemTests.suite() );
         
         return suite;
     }
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 5c053c4..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.3.0.qualifier
-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
-Bundle-Localization: plugin
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 0799bdb..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, 2008</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 e3df3db..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-bin.includes = META-INF/,\
-               plugin.xml,\
-               tests.jar,\
-               about.html,\
-               plugin.properties,\
-               images/
-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.properties b/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.properties
deleted file mode 100644
index a3370ff..0000000
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/plugin.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-#Properties file for org.eclipse.wst.common.project.facet.ui.tests
-Bundle-Vendor.0 = Eclipse.org
-Bundle-Name.0 = Facet UI Tests Plug-in
-wizard.name.0 = Faceted Project Test Wizard
-wizard.description.0 = This wizard is used to test the Faceted Project Wizard.
\ No newline at end of file
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 1cc0f6a..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="%wizard.name.0"
-        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>
-          %wizard.description.0
-        </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" );
-    }
-
-}