This commit was manufactured by cvs2svn to create tag 'v200805140020'.
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 88d7d17..4ade267 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
@@ -7,13 +7,12 @@
 Bundle-ClassPath: .
 Bundle-Localization: plugin
 Export-Package: org.eclipse.jst.common.project.facet.core,
- org.eclipse.jst.common.project.facet.core.internal;x-internal:=true
+ org.eclipse.jst.common.project.facet.core.internal;x-friends:="org.eclipse.jst.common.project.facet.ui"
 Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0)",
  org.eclipse.jdt.core;bundle-version="[3.2.0,4.0)",
  org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)"
+ org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Activator: org.eclipse.jst.common.project.facet.core.FacetCorePlugin
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/about.html b/plugins/org.eclipse.jst.common.project.facet.core/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/about.html
+++ b/plugins/org.eclipse.jst.common.project.facet.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/build.properties b/plugins/org.eclipse.jst.common.project.facet.core/build.properties
index c4aeebe..12ae70d 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/build.properties
+++ b/plugins/org.eclipse.jst.common.project.facet.core/build.properties
@@ -5,5 +5,4 @@
                META-INF/,\
                plugin.properties,\
                component.xml,\
-               about.html,\
-               images/
+               about.html
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/images/java-facet.gif b/plugins/org.eclipse.jst.common.project.facet.core/images/java-facet.gif
deleted file mode 100644
index 37cb4e7..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/images/java-facet.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/images/standard-jre-component.gif b/plugins/org.eclipse.jst.common.project.facet.core/images/standard-jre-component.gif
deleted file mode 100644
index cb55e33..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/images/standard-jre-component.gif
+++ /dev/null
Binary files differ
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 d5362fb..d9b24bb 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
@@ -51,19 +51,8 @@
       <type class="org.eclipse.jst.common.project.facet.core.IClasspathProvider"/>
     </adapter>
 
-    <adapter>
-      <runtime-component id="standard.jre"/>
-      <factory class="org.eclipse.jst.common.project.facet.core.internal.StandardJreComponentLabelProvider$Factory"/>
-      <type class="org.eclipse.wst.common.project.facet.ui.IRuntimeComponentLabelProvider"/>
-    </adapter>
-
   </extension>
 
-  <extension point="org.eclipse.wst.common.project.facet.ui.images">
-    <image runtime-component-type="standard.jre"
-       path="images/standard-jre-component.gif"/>
-  </extension>
-  
   <extension point="org.eclipse.wst.common.project.facet.core.facets">
   
     <project-facet id="jst.java">
@@ -107,10 +96,6 @@
 
   </extension>
   
-  <extension point="org.eclipse.wst.common.project.facet.ui.images">
-    <image facet="jst.java" path="images/java-facet.gif"/>
-  </extension>
-  
   <extension point="org.eclipse.wst.common.project.facet.core.listeners">
      <listener
        class="org.eclipse.jst.common.project.facet.core.internal.JavaFacetRuntimeChangedListener"
@@ -133,13 +118,4 @@
     <persistent value="true"/>
   </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.core.internal.JavaVersionMismatchMarkerResolutions">
-    </markerResolutionGenerator>
-  </extension>
-  
-  
 </plugin>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/FacetCorePlugin.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/FacetCorePlugin.java
new file mode 100644
index 0000000..eb05f4e
--- /dev/null
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/FacetCorePlugin.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ ******************************************************************************/
+
+package org.eclipse.jst.common.project.facet.core;
+
+import org.eclipse.core.runtime.ILog;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+
+public final class FacetCorePlugin 
+
+    extends Plugin
+
+{
+    public static final String PLUGIN_ID = "org.eclipse.jst.common.project.facet.core"; //$NON-NLS-1$
+    public static final String OUTPUT_FOLDER = "outputFolder"; //$NON-NLS-1$
+    public static final String PROD_PROP_SOURCE_FOLDER_LEGACY = "defaultSource"; //$NON-NLS-1$    
+    private static final String PROD_PROP_SOURCE_FOLDER = "defaultJavaSourceFolder"; //$NON-NLS-1$
+    public static final String DEFAULT_SOURCE_FOLDER = "src"; //$NON-NLS-1$
+    
+    private static FacetCorePlugin inst;
+
+    /**
+     * Get the plugin singleton.
+     */
+    
+    public static FacetCorePlugin getDefault() 
+    {
+        return inst;
+    }
+    
+    public FacetCorePlugin() {
+    	super();
+		if (inst == null)
+			inst = this;
+	}
+    public String getPluginID() 
+    {
+        return PLUGIN_ID;
+    }
+    
+    public static void log( final Exception e )
+    {
+        final ILog log = FacetCorePlugin.getDefault().getLog();
+        final String msg = "Encountered an unexpected exception."; //$NON-NLS-1$
+        
+        log.log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
+    }
+    
+    
+    public static String getJavaSrcFolder(){
+    	String srcFolder = FacetCorePlugin.getDefault().getPluginPreferences().getString(PROD_PROP_SOURCE_FOLDER_LEGACY);
+    	if( srcFolder == null || srcFolder.equals("") ){
+    		if( Platform.getProduct() != null ){
+    			srcFolder = Platform.getProduct().getProperty( PROD_PROP_SOURCE_FOLDER );
+    		    if( srcFolder == null || srcFolder.equals("")){ //$NON-NLS-1$
+    		    	srcFolder = Platform.getProduct().getProperty( PROD_PROP_SOURCE_FOLDER_LEGACY );
+    		    }      			
+    		}
+	    	if( srcFolder == null || srcFolder.equals("") ){
+	    		srcFolder = DEFAULT_SOURCE_FOLDER;
+	    	}
+
+    	}
+	    return srcFolder;
+    }
+}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java
index 3d51d0c..ed2c1f9 100644
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java
+++ b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/JavaFacetInstallConfig.java
@@ -28,9 +28,9 @@
 
 public class JavaFacetInstallConfig
 {
-    private static final String PROD_PROP_SOURCE_FOLDER = "defaultJavaSourceFolder"; //$NON-NLS-1$
-    private static final String PROD_PROP_SOURCE_FOLDER_LEGACY = "defaultSource"; //$NON-NLS-1$
-    private static final String DEFAULT_SOURCE_FOLDER = "src"; //$NON-NLS-1$
+//    private static final String PROD_PROP_SOURCE_FOLDER = "defaultJavaSourceFolder"; //$NON-NLS-1$
+//    private static final String PROD_PROP_SOURCE_FOLDER_LEGACY = "defaultSource"; //$NON-NLS-1$
+//    private static final String DEFAULT_SOURCE_FOLDER = "src"; //$NON-NLS-1$
 
     private static final String PROD_PROP_OUTPUT_FOLDER = "defaultJavaOutputFolder"; //$NON-NLS-1$
     private static final String PROD_PROP_OUTPUT_FOLDER_LEGACY = "outputFolder"; //$NON-NLS-1$
@@ -78,17 +78,7 @@
         this.sourceFoldersReadOnly = Collections.unmodifiableList( this.sourceFolders );
         this.defaultOutputFolder = null;
         
-        String sourceFolder = getProductProperty( PROD_PROP_SOURCE_FOLDER );
-        
-        if( sourceFolder == null )
-        {
-            sourceFolder = getProductProperty( PROD_PROP_SOURCE_FOLDER_LEGACY );
-        }
-        
-        if( sourceFolder == null )
-        {
-            sourceFolder = DEFAULT_SOURCE_FOLDER;
-        }
+        String sourceFolder = FacetCorePlugin.getJavaSrcFolder();
         
         this.sourceFolders.add( new Path( sourceFolder ) );
         
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaVersionMismatchMarkerResolutions.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaVersionMismatchMarkerResolutions.java
deleted file mode 100644
index 685964f..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaVersionMismatchMarkerResolutions.java
+++ /dev/null
@@ -1,161 +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.core.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.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.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaVersionMismatchMarkerResolutions.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/JavaVersionMismatchMarkerResolutions.properties
deleted file mode 100644
index 227ca0a..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/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.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreComponentLabelProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreComponentLabelProvider.java
deleted file mode 100644
index 8e0685b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/StandardJreComponentLabelProvider.java
+++ /dev/null
@@ -1,60 +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.core.internal;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-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 "Java Runtime Environment v" + 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 );
-        }
-    }
-    
-}
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 a3c810c..1c6380c 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
@@ -13,8 +13,8 @@
  org.eclipse.wst.common.project.facet.core.runtime.events,
  org.eclipse.wst.common.project.facet.core.util,
  org.eclipse.wst.common.project.facet.core.util.internal;x-friends:="org.eclipse.wst.common.project.facet.ui,org.eclipse.wst.common.project.facet.core.tests"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.expressions;bundle-version="[3.2.0,4.0)"
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/about.html b/plugins/org.eclipse.wst.common.project.facet.core/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/about.html
+++ b/plugins/org.eclipse.wst.common.project.facet.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
index 06541f0..b117579 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
@@ -1,10 +1,10 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
+<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appInfo>
+      <appinfo>
          <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="facets" name="Project Facets Extension Point"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          This is the main extension point in the faceted project framework. It is used for defining project facets. A project facet can be thought of as a unit of functionality that the user can add to the project when the functionality is needed.
       </documentation>
@@ -46,9 +46,9 @@
                <documentation>
                   An optional name of the extension instance.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute translatable="true"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -272,9 +272,9 @@
                <documentation>
                   The version comparator class name. Has to implement java.util.Comparator&amp;lt;String&amp;gt; interface.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="java.util.Comparator"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -303,9 +303,9 @@
 
    <element name="preset">
       <annotation>
-         <appInfo>
+         <appinfo>
             <meta.element deprecated="true"/>
-         </appInfo>
+         </appinfo>
          <documentation>
             Declares a preset. A preset represents a common configuration of facets and their versions that a user might want to utilize on several projects. Presets can be supplied via this extension point or created by the user.
          </documentation>
@@ -334,6 +334,8 @@
       <complexType>
          <sequence>
             <element ref="label"/>
+            <element ref="fixed" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="preset"/>
          </sequence>
          <attribute name="id" type="string" use="required">
             <annotation>
@@ -345,6 +347,18 @@
       </complexType>
    </element>
 
+   <element name="fixed">
+      <complexType>
+         <attribute name="facet" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
    <element name="action">
       <annotation>
          <documentation>
@@ -417,9 +431,9 @@
                <documentation>
                   The config factory class name. Has to implement org.eclipse.wst.common.project.facet.core.IActionConfigFactory interface.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IActionConfigFactory"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -437,9 +451,9 @@
                <documentation>
                   The delegate class name. Has to implement org.eclipse.wst.common.project.facet.core.IDelegate interface.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDelegate"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -447,9 +461,9 @@
 
    <element name="event-handler">
       <annotation>
-         <appInfo>
+         <appinfo>
             <meta.element deprecated="true"/>
-         </appInfo>
+         </appinfo>
          <documentation>
             Adds an event handler for one of the events in the faceted project life cycle. The event-handler element can be used standalone or embeded inside the project-facet-version element. If used inside the project-facet-version element, the facet and version attributes are implied and should not be specified.&lt;br/&gt;&lt;br/&gt;
 
@@ -545,9 +559,9 @@
                <documentation>
                   Specifies the version provider that will be consulted in order to determine the default version. If this attribute is used, the &lt;code&gt;version&lt;/code&gt; attribute will be ignored if present.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IDefaultVersionProvider"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -593,9 +607,9 @@
 
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="examples"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          &lt;p&gt;The following example illustrates the various facilities exposed by this extension point. This example is taken from the &lt;i&gt;Building Project Facets&lt;/i&gt; tutorial.&lt;/p&gt;
 
@@ -659,9 +673,9 @@
 
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="copyright"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          Copyright (c) 2005-2007 BEA Systems, Inc.
 All rights reserved. This program and the accompanying materials
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
index 75cf7d6..ebc8395 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
+++ b/plugins/org.eclipse.wst.common.project.facet.core/schemas/presets.exsd
@@ -1,10 +1,10 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
+<schema targetNamespace="org.eclipse.wst.common.project.facet.core" xmlns="http://www.w3.org/2001/XMLSchema">
 <annotation>
-      <appInfo>
+      <appinfo>
          <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="presets" name="Faceted Project Presets"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          A preset represents a common configuration of facets and their versions that give a user a starting point when configuring a project. Presets can either be static or dynamic. Static presets are fully specified in this extension point. Dynamic presets are created using an extender-supplied factory that can take into account the context in which the preset will be used in. Static presets can also extend other presets.
 
@@ -37,9 +37,9 @@
                <documentation>
                   
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute translatable="true"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
@@ -146,27 +146,27 @@
                <documentation>
                   The name of the factory class.
                </documentation>
-               <appInfo>
+               <appinfo>
                   <meta.attribute kind="java" basedOn="org.eclipse.wst.common.project.facet.core.IPresetFactory"/>
-               </appInfo>
+               </appinfo>
             </annotation>
          </attribute>
       </complexType>
    </element>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="since"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          2.0
       </documentation>
    </annotation>
 
    <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="examples"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          &lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.wst.common.project.facet.core.presets&quot;&gt;
@@ -177,46 +177,31 @@
        versions. If project targets one or more runtime, this preset will contain facets that are specified
        to be the default for the primary runtime. --&gt;
        
-  &lt;preset id=&quot;default.configuration&quot;&gt;
+  &lt;dynamic-preset id=&quot;default.configuration&quot;&gt;
     &lt;factory class=&quot;org.eclipse.wst.common.project.facet.core.internal.DefaultConfigurationPresetFactory&quot;/&gt;
-  &lt;/preset&gt;
+  &lt;/dynamic-preset&gt;
 
   &lt;!-- Creates a preset which extends the &quot;default.configuration&quot; preset and adds two facets. --&gt; 
        
-  &lt;preset id=&quot;my.favorite.preset&quot; extends=&quot;default.configuration&quot;&gt;
+  &lt;static-preset id=&quot;my.favorite.preset&quot; extends=&quot;default.configuration&quot;&gt;
     &lt;label&gt;My Favorite Configuration&lt;/label&gt;
     &lt;description&gt;Here is the description of my favorite configuration.&lt;/description&gt;
     &lt;facet id=&quot;facet_a&quot; version=&quot;1.2&quot;/&gt;
     &lt;facet id=&quot;facet_b&quot; version=&quot;2.0&quot;/&gt;
-  &lt;/preset&gt;
+  &lt;/static-preset&gt;
   
 &lt;/extension&gt;
 &lt;/pre&gt;
       </documentation>
    </annotation>
 
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
+
+
 
    <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
+      <appinfo>
          <meta.section type="copyright"/>
-      </appInfo>
+      </appinfo>
       <documentation>
          Copyright (c) 2005-2007 BEA Systems, Inc.&lt;br/&gt;
 All rights reserved. This program and the accompanying materials
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java
index 13bbd84..24f8509 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultConfigurationPresetFactory.java
@@ -25,9 +25,9 @@
  * 
  * <ol>
  *   <li>If a runtime is selected, this preset will contain default facets as specified by
- *     {@see IRuntime.getDefaultFacets(Set)}.</li>
+ *     {@link IRuntime#getDefaultFacets(Set)}.</li>
  *   <li>If no runtime is selected, this preset will contain default versions for all of the 
- *     fixed facets as specified by {@see IProjectFacet.getDefaultVersion()}.
+ *     fixed facets as specified by {@link IProjectFacet#getDefaultVersion()}.
  * </ol>
  * 
  * @since 3.0
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
index b8e6e91..0ab1612 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
@@ -83,7 +83,7 @@
      * @param version the full version string
      * @param segment the version segment
      * @param position the position of the segment in the version string
-     * @return the parsed representation of the segment as a {@see Comparable}
+     * @return the parsed representation of the segment as a {@link Comparable}
      * @throws VersionFormatException if encountered an error while parsing
      */
     
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
index 4698f4d..6ffb261 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/FacetedProjectFramework.java
@@ -19,6 +19,7 @@
 import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
 import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
 import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature;
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 
 /**
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
@@ -35,9 +36,9 @@
      * 
      * <ol>
      *   <li>If a runtime is selected, this preset will contain default facets as specified by
-     *     {@see IRuntime.getDefaultFacets(Set)}.</li>
+     *     {@link IRuntime#getDefaultFacets(Set)}.</li>
      *   <li>If no runtime is selected, this preset will contain default versions for all of the 
-     *     fixed facets as specified by {@see IProjectFacet.getDefaultVersion()}.
+     *     fixed facets as specified by {@link IProjectFacet#getDefaultVersion()}.
      * </ol>
      * 
      * @since 2.0
@@ -65,13 +66,13 @@
      * Project Framework if the project is not faceted. For the code that
      * operates in the context where it can be assumed that the framework has
      * started already, better performance can be achieved by storing 
-     * {@see IProjectFacet} and {@see IProjectFacetVersion} instances using the
+     * {@link IProjectFacet} and {@link IProjectFacetVersion} instances using the
      * singleton pattern and using the
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacet)} or
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacetVersion)} methods.</p>
+     * {@link IFacetedProject#hasProjectFacet(IProjectFacet)} or
+     * {@link IFacetedProject#hasProjectFacet(IProjectFacetVersion)} methods.</p>
      * 
      * <p>This method is equivalent to calling 
-     * {@see hasProjectFacet(IProject,String,String)} with <code>null</code>
+     * {@link #hasProjectFacet(IProject,String,String)} with <code>null</code>
      * version expression parameter.</p>
      * 
      * @param project the project to check for the facet presence
@@ -97,10 +98,10 @@
      * Project Framework if the project is not faceted. For the code that
      * operates in the context where it can be assumed that the framework has
      * started already, better performance can be achieved by storing 
-     * {@see IProjectFacet} and {@see IProjectFacetVersion} instances using the
+     * {@link IProjectFacet} and {@link IProjectFacetVersion} instances using the
      * singleton pattern and using the
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacet)} or
-     * {@see IFacetedProject.hasProjectFacet(IProjectFacetVersion)} methods.</p>
+     * {@link IFacetedProject#hasProjectFacet(IProjectFacet)} or
+     * {@link IFacetedProject#hasProjectFacet(IProjectFacetVersion)} methods.</p>
      * 
      * @param project the project to check for the facet presence
      * @param fid the project facet id
@@ -159,9 +160,9 @@
      * @param types the types of the events to listen for
      * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
      *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see removeListener(IFacetedProjectListener)
-     * @see IFacetedProject.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.removeListener(IFacetedProjectListener)
+     * @see #removeListener(IFacetedProjectListener)
+     * @see IFacetedProject#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see IFacetedProject#removeListener(IFacetedProjectListener)
      */
     
     public static void addListener( final IFacetedProjectListener listener,
@@ -180,14 +181,14 @@
     
     /**
      * Removes the faceted project listener that was previously registered using the
-     * {@see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
+     * {@link #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
      * specified listener is not present in the listener registry, this call will be ignored.
      * 
      * @param listener the faceted project listener
      * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see IFacetedProject.removeListener(IFacetedProjectListener)
+     * @see #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see IFacetedProject#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see IFacetedProject#removeListener(IFacetedProjectListener)
      */
     
     public static void removeListener( final IFacetedProjectListener listener )
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
index 530909d..019eec6 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
@@ -17,6 +17,7 @@
 import java.util.Map;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
 
 /**
  * Models a single constraint in the constraint expression. 
@@ -91,9 +92,9 @@
      * Checks this constraint against the given set of project facets.
      * 
      * @param facets a set of project facets
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
+     * @return a status object with severity of {@link IStatus#OK} if the
+     *   constraint was satisfied or otherwise a {@link MultiStatus} composed of
+     *   individual status objects for each of the problems
      */
     
     IStatus check( Collection<IProjectFacetVersion> facets );
@@ -104,9 +105,9 @@
      * @param facets a set of project facets
      * @param validateSoftDependencies if <code>true</code> soft dependencies
      *   will be treated as required
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
+     * @return a status object with severity of {@link IStatus#OK} if the
+     *   constraint was satisfied or otherwise a {@link MultiStatus} composed of
+     *   individual status objects for each of the problems
      */
 
     IStatus check( Collection<IProjectFacetVersion> facets,
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
index 6a345c2..b20a283 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDynamicPreset.java
@@ -13,9 +13,11 @@
 
 import java.util.Map;
 
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
+
 /**
  * A dynamic preset is type of preset that needs to be resolved before it can be used. The resolve
- * operation relies the {@see IPresetFactory} specified when the dynamic preset is registered via
+ * operation relies the {@link IPresetFactory} specified when the dynamic preset is registered via
  * the <code>presets</code> extension point and can take into account the context in which the 
  * preset will be used. 
  * 
@@ -29,7 +31,7 @@
     
 {
     /**
-     * The key of the context map entry whose value is an {@see IFacetedProjectBase} object.
+     * The key of the context map entry whose value is an {@link IFacetedProjectBase} object.
      * 
      * @since 3.0
      */
@@ -37,14 +39,14 @@
     static final String CONTEXT_KEY_FACETED_PROJECT = "CONTEXT_KEY_FACETED_PROJECT"; //$NON-NLS-1$
     
     /**
-     * The key of the context map entry whose value is a set of {@see IProjectFacet} objects
+     * The key of the context map entry whose value is a set of {@link IProjectFacet} objects
      * representing the fixed facets.
      */
     
     static final String CONTEXT_KEY_FIXED_FACETS = "CONTEXT_KEY_FIXED_FACETS"; //$NON-NLS-1$
     
     /**
-     * The key of the context map entry whose value is the primary runtime ({@see IRuntime}) or
+     * The key of the context map entry whose value is the primary runtime ({@link IRuntime}) or
      * <code>null</code> if no runtime has been selected.
      */
     
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
index 9fdf7e3..aba8ce3 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
@@ -22,7 +22,7 @@
 
 /**
  * This interface is used for manipulating the set of facets installed on a
- * project. Use {@see ProjectFacetsManager#create(IProject)} to get an instance 
+ * project. Use {@link ProjectFacetsManager#create(IProject)} to get an instance 
  * of this interface.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
@@ -185,7 +185,7 @@
     
     /**
      * <p>Installs a project facet on this project. This method is equivalent to 
-     * calling the {@see #modify(Set, IProgressMonitor)} method with a single 
+     * calling the {@link #modify(Set, IProgressMonitor)} method with a single 
      * install action.</p>
      * 
      * <p>This method should not be called from the UI thread as it is long-
@@ -209,7 +209,7 @@
     
     /**
      * <p>Uninstalls a project facet from this project. This method is 
-     * equivalent to calling the {@see #modify(Set, IProgressMonitor)} method 
+     * equivalent to calling the {@link #modify(Set, IProgressMonitor)} method 
      * with a single uninstall action.</p>
      * 
      * <p>This method should not be called from the UI thread as it is long-
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java
index 9de8a75..fb752bb 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectBase.java
@@ -22,7 +22,7 @@
 
 /**
  * This interface is used for manipulating the set of facets installed on a
- * project. Use {@see ProjectFacetsManager#create(IProject)} to get an instance 
+ * project. Use {@link ProjectFacetsManager#create(IProject)} to get an instance 
  * of this interface.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
@@ -156,9 +156,9 @@
      * @param types the types of the events to listen for
      * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code> or
      *   the <code>types</code> parameter is <code>null</code> or empty.
-     * @see removeListener(IFacetedProjectListener)
-     * @see FacetedProjectFramework.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.removeListener(IFacetedProjectListener)
+     * @see #removeListener(IFacetedProjectListener)
+     * @see FacetedProjectFramework#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see FacetedProjectFramework#removeListener(IFacetedProjectListener)
      */
     
     void addListener( IFacetedProjectListener listener,
@@ -166,14 +166,14 @@
     
     /**
      * Removes the faceted project listener that was previously registered using the
-     * {@see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
+     * {@link #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])} method. If the
      * specified listener is not present in the listener registry, this call will be ignored.
      * 
      * @param listener the faceted project listener
      * @throws IllegalArgumentException if <code>listener</code> parameter is <code>null</code>
-     * @see addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
-     * @see FacetedProjectFramework.removeListener(IFacetedProjectListener)
+     * @see #addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see FacetedProjectFramework#addListener(IFacetedProjectListener,IFacetedProjectEvent.Type[])
+     * @see FacetedProjectFramework#removeListener(IFacetedProjectListener)
      */
     
     void removeListener( IFacetedProjectListener listener );
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
index 6e2ab65..6c972f2 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
@@ -14,7 +14,7 @@
 import java.util.Set;
 
 /**
- * A group is a named collection of {@see IProjectFacetVersion}  objects. It is 
+ * A group is a named collection of {@link IProjectFacetVersion}  objects. It is 
  * used primarily as a parameter to the "requires" and "conflicts" constraints 
  * and allows a level of indirection where a facet does not need to know about 
  * all the members of the group. A given project facet version can belong to 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
index ac2555a..1a5dddb 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
@@ -41,8 +41,8 @@
         /**
          * Dynamic presets are created by registering a factory in the <code>presets</code>
          * extension point and are not fully specified until they are resolved within the context
-         * of use. To resolve a dynamic preset, cast the preset object to {@see IDynamicPreset} and
-         * then use the {@see IDynamicPreset.resolve(java.util.Map)} method. 
+         * of use. To resolve a dynamic preset, cast the preset object to {@link IDynamicPreset} and
+         * then use the {@link IDynamicPreset#resolve(java.util.Map)} method. 
          */
         
         DYNAMIC,
@@ -64,8 +64,8 @@
     String getId();
     
     /**
-     * Returns the type of the preset. If the preset type is {@see Type.DYNAMIC}, then the preset
-     * object can be cast to {@see IDynamicPreset}.
+     * Returns the type of the preset. If the preset type is {@link Type#DYNAMIC}, then the preset
+     * object can be cast to {@link IDynamicPreset}.
      * 
      * @return the type of the preset
      * @since 2.0
@@ -103,7 +103,7 @@
      * 
      * @return <code>true</code> if the preset is user-defined,
      *   <code>false</code> otherwise
-     * @deprecated use the {@see getType()} method instead
+     * @deprecated use the {@link #getType()} method instead
      */
     
     boolean isUserDefined();
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
index 8e5bb7b..a1f563f 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPresetFactory.java
@@ -30,7 +30,7 @@
      * The factory method for creating a preset definition. The definition contains all of the 
      * information necessary for the system to create a preset. The factory can take into account 
      * the context that the preset will be used in when creating a preset definition. See
-     * {@see IDynamicPreset} for documentation on what type of information the context can contain.
+     * {@link IDynamicPreset} for documentation on what type of information the context can contain.
      *
      * @param presetId the id of the preset
      * @param context the information about context that this preset will be used in
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 636a2a4..7ac330f 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
@@ -143,7 +143,7 @@
     /**
      * Returns the facet version that should be selected by default. If the
      * default version is not explicitly specified in the facet definition, the
-     * latest version (as specified by {@see getLatestVersion()} method) will
+     * latest version (as specified by {@link #getLatestVersion()} method) will
      * be returned. 
      * 
      * @return the facet version that should be selected by default
@@ -168,7 +168,7 @@
     /**
      * Returns the version comparator specified for this project facet. If no 
      * version comparator is specified, this method will return an instance of 
-     * the {@see DefaultVersionComparator}.
+     * the {@link DefaultVersionComparator}.
      * 
      * @return the version comparator specified for this project facet
      */
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 da5c29f..14f11dc 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
@@ -88,7 +88,7 @@
      * @param type action type
      * @return <code>true</code> if this project facet supports the provided 
      *   action type, <code>false</code> otherwise
-     * @deprecated use {@link supports( Set, Action.Type)} instead
+     * @deprecated use {@link #supports( Set, IFacetedProject.Action.Type)} instead
      */
     
     boolean supports( Action.Type type );
@@ -118,7 +118,7 @@
     
     /**
      * Returns the action definition corresponding to a particular action type
-     * over this project facet version. The {@link supports( Set, Action.Type )} 
+     * over this project facet version. The {@link #supports( Set, IFacetedProject.Action.Type )} 
      * method can be used to check whether the action is supported prior to
      * calling this method.
      * 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java
index d11804c..de78903 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/MinimalConfigurationPresetFactory.java
@@ -18,6 +18,7 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.project.facet.core.internal.DefaultFacetsExtensionPoint;
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
 
 /**
  * Preset factory for the <code>minimal.configuration</code> preset. This preset only contains
@@ -25,9 +26,9 @@
  * 
  * <ol>
  *   <li>If a runtime is selected, the versions are looked up using 
- *     {@see IRuntime.getDefaultFacets(Set)}.</li>
+ *     {@link IRuntime#getDefaultFacets(Set)}.</li>
  *   <li>If no runtime is selected, this versions are the default versions as specified 
- *     by {@see IProjectFacet.getDefaultVersion()}.
+ *     by {@link IProjectFacet#getDefaultVersion()}.
  * </ol>
  * 
  * @since 3.0
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
index f724b27..24c481d 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/PresetDefinition.java
@@ -17,7 +17,7 @@
 
 /**
  * The preset definition is used in several contexts as a means of describing a preset. It is
- * different from {@see IPreset} in that the preset definition is not an actual preset that's
+ * different from {@link IPreset} in that the preset definition is not an actual preset that's
  * registered with the system. 
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
index 1ff0754..4546ec6 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
@@ -19,13 +19,14 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
 import org.eclipse.wst.common.project.facet.core.internal.FacetedProjectFrameworkImpl;
 
 /**
  * This is the entry point to the project facet framework API. From here, you 
  * can (among other things) list available project facets and create instances 
- * of {@see IFacetedProject}.
+ * of {@link IFacetedProject}.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
@@ -406,9 +407,9 @@
      *
      * @param base the set of project facets that the actions will be applied to
      * @param actions the set of actions to evaluate
-     * @return a status object with severity of {@see IStatus#OK} if all of the
-     *   constraints were satisfied or otherwise a {@see MultiStatus} composed
-     *   of {@see ValidationProblem} status objects
+     * @return a status object with severity of {@link IStatus#OK} if all of the
+     *   constraints were satisfied or otherwise a {@link MultiStatus} composed of
+     *   individual status objects for each of the problems
      */
     
     public static IStatus check( final Set<IProjectFacetVersion> base,
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
index c34bef9..2bdbec9 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectEvent.java
@@ -38,7 +38,7 @@
         
         /**
          * Type of the event that gets triggered right before a facet is installed. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
+         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
          * about the change. 
          */
         
@@ -46,7 +46,7 @@
         
         /**
          * Type of the event that gets triggered right after a facet is installed. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
+         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
          * about the change. 
          */
         
@@ -54,7 +54,7 @@
         
         /**
          * Type of the event that gets triggered right before a facet is uninstalled. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
+         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
          * about the change. 
          */
         
@@ -62,7 +62,7 @@
         
         /**
          * Type of the event that gets triggered right after a facet is uninstalled. Events of this 
-         * type can be cast to {@see IProjectFacetActionEvent} interface to get additional details 
+         * type can be cast to {@link IProjectFacetActionEvent} interface to get additional details 
          * about the change. 
          */
         
@@ -70,7 +70,7 @@
         
         /**
          * Type of the event that gets triggered right before a facet version is changed. Events of 
-         * this type can be cast to {@see IProjectFacetActionEvent} interface to get additional 
+         * this type can be cast to {@link IProjectFacetActionEvent} interface to get additional 
          * details about the change. 
          */
         
@@ -78,7 +78,7 @@
         
         /**
          * Type of the event that gets triggered right after a facet version is changed. Events of 
-         * this type can be cast to {@see IProjectFacetActionEvent} interface to get additional 
+         * this type can be cast to {@link IProjectFacetActionEvent} interface to get additional 
          * details about the change. 
          */
         
@@ -86,7 +86,7 @@
         
         /**
          * Type of the event that gets triggered when project's fixed facets are changed. Events
-         * of this type can be cast to {@see IFixedFacetsChangedEvent} interface to get additional
+         * of this type can be cast to {@link IFixedFacetsChangedEvent} interface to get additional
          * details about the change.
          */
         
@@ -94,7 +94,7 @@
         
         /**
          * Type of the event that gets triggered when the set of runtimes that the project targets
-         * is changed. Events of this type can be cast to {@see ITargetedRuntimesChangedEvent} 
+         * is changed. Events of this type can be cast to {@link ITargetedRuntimesChangedEvent} 
          * interface to get additional details about the change.
          */
         
@@ -102,7 +102,7 @@
         
         /**
          * Type of the event that gets triggered when the primary targeted runtime of the project
-         * is changed. Events of this type can be cast to {@see IPrimaryRuntimeChangedEvent}
+         * is changed. Events of this type can be cast to {@link IPrimaryRuntimeChangedEvent}
          * interface to get additional details about the change. 
          */
         
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java
index 4d00c94..28efd2b 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectFrameworkListener.java
@@ -11,10 +11,13 @@
 
 package org.eclipse.wst.common.project.facet.core.events;
 
+import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+
 /**
  * This interface is implemented by those who wish to receive events when a faceted project is
- * changed. There are three ways to register a listener: (a) using methods on {@see 
- * IFacetedProject}, (b) using methods on {@see FacetedProjectFramework}, or (c) using the provided
+ * changed. There are three ways to register a listener: (a) using methods on {@link 
+ * IFacetedProject}, (b) using methods on {@link FacetedProjectFramework}, or (c) using the provided
  * extension point. Method (a) catches only events for a specific faceted project while methods
  * (b) and (c) catch events for all faceted projects in the workspace.
  * 
@@ -29,7 +32,7 @@
      * <p>All events except for <code>PROJECT_MODIFIED</code> of this type are triggered in the 
      * lock context of the operation that caused the original change. This guarantees that the 
      * project has not changed further from the state it was in after the change was complete, 
-     * however the listener is unable to call any modifier methods on the {@see IFacetedProject} 
+     * however the listener is unable to call any modifier methods on the {@link IFacetedProject} 
      * interface. To do so, the listener must spin off a thread.</p>
      * 
      * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
index 43ce60a..e673b33 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/events/IFacetedProjectListener.java
@@ -11,10 +11,13 @@
 
 package org.eclipse.wst.common.project.facet.core.events;
 
+import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+
 /**
  * This interface is implemented by those who wish to receive events when a faceted project is
- * changed. There are three ways to register a listener: (a) using methods on {@see 
- * IFacetedProject}, (b) using methods on {@see FacetedProjectFramework}, or (c) using the provided
+ * changed. There are three ways to register a listener: (a) using methods on {@link 
+ * IFacetedProject}, (b) using methods on {@link FacetedProjectFramework}, or (c) using the provided
  * extension point. Method (a) catches only events for a specific faceted project while methods
  * (b) and (c) catch events for all faceted projects in the workspace.
  * 
@@ -29,7 +32,7 @@
      * <p>All events except for <code>PROJECT_MODIFIED</code> of this type are triggered in the 
      * lock context of the operation that caused the original change. This guarantees that the 
      * project has not changed further from the state it was in after the change was complete, 
-     * however the listener is unable to call any modifier methods on the {@see IFacetedProject} 
+     * however the listener is unable to call any modifier methods on the {@link IFacetedProject} 
      * interface. To do so, the listener must spin off a thread.</p>
      * 
      * <p>It is highly advised that any listener that performs non-critical or long-running tasks 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
index f90d1e4..3a8a6b8 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectAdapter.java
@@ -18,7 +18,7 @@
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 
 /**
- * Adapts {@see IProject} to {@see IFacetedProject}.
+ * Adapts {@link IProject} to {@link IFacetedProject}.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
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 26768d3..99510d1 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
@@ -82,7 +82,7 @@
 import org.osgi.service.prefs.Preferences;
 
 /**
- * The implementation of the {@see ProjectFacetsManager} abstract class.
+ * The implementation of the {@link ProjectFacetsManager} abstract class.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
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 d33a5fd..f09c005 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
@@ -1802,30 +1802,41 @@
         throws CoreException
         
     {
-        synchronized( this.lock )
+        final SubMonitor pm = SubMonitor.convert( monitor, 100 );
+        
+        try
         {
-            final SubMonitor pm = SubMonitor.convert( monitor, 100 );
+            // In order to avoid deadlocks, we clone the working copy. This allows us to release
+            // the lock on this working copy while running mergeChanges(). This is important since
+            // mergeChanges() can call out to third-party code.
             
-            try
+            final IFacetedProjectWorkingCopy clone;
+            
+            synchronized( this.lock )
             {
-                final IFacetedProject fpj;
+                clone = clone();
+            }
                 
-                if( this.project == null )
-                {
-                    fpj = ProjectFacetsManager.create( this.projectName,
-                                                       this.projectLocation, 
-                                                       pm.newChild( 10, SubMonitor.SUPPRESS_ALL_LABELS ) );
-                }
-                else
-                {
-                    fpj = this.project;
-                    pm.worked( 10 );
-                }
+            final IFacetedProject fpj;
+            
+            if( this.project == null )
+            {
+                fpj = ProjectFacetsManager.create( this.projectName,
+                                                   this.projectLocation, 
+                                                   pm.newChild( 10, SubMonitor.SUPPRESS_ALL_LABELS ) );
+            }
+            else
+            {
+                fpj = this.project;
+                pm.worked( 10 );
+            }
+            
+            ( (FacetedProject) fpj ).mergeChanges( clone, pm.newChild( 90 ) );
                 
-                ( (FacetedProject) fpj ).mergeChanges( this, pm.newChild( 90 ) );
-                
-                // Make sure that the working copy is still valid after changes are committed.
-                
+            // Reset the working copy so that it can be used again.
+            
+            synchronized( this.lock )
+            {
                 this.project = fpj;
                 this.projectName = null;
                 this.projectNameValidation = Status.OK_STATUS;
@@ -1833,10 +1844,10 @@
                 
                 revertChanges();
             }
-            finally
-            {
-                pm.done();
-            }
+        }
+        finally
+        {
+            pm.done();
         }
     }
     
@@ -1848,8 +1859,6 @@
         {
             synchronized( this.lock )
             {
-                // TODO: Both this method and the clone method ignore the action config objects.
-            
                 setProjectName( fpjwc.getProjectName() );
                 setProjectLocation( fpjwc.getProjectLocation() );
                 setFixedProjectFacets( fpjwc.getFixedProjectFacets() );
@@ -1863,6 +1872,9 @@
                 {
                     setSelectedPreset( selectedPreset.getId() );
                 }
+                
+                this.actions.clear();
+                this.actions.addAll( ( (FacetedProjectWorkingCopy) fpjwc  ).actions );
             }
         }
         finally
@@ -1924,6 +1936,9 @@
                 clone.setSelectedPreset( selectedPreset.getId() );
             }
             
+            clone.actions.clear();
+            clone.actions.addAll( this.actions );
+
             return clone;
         }
     }
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
index 92b2526..f93d068 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
@@ -19,7 +19,7 @@
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 
 /**
- * The implementation of the {@see IGroup} interface.
+ * The implementation of the {@link IGroup} interface.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
index 7d7116a..cf71da4 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/UserPreset.java
@@ -19,7 +19,7 @@
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
 
 /**
- * The implementation of the {@see IPreset} interface that's used for user-defined presets.
+ * The implementation of the {@link IPreset} interface that's used for user-defined presets.
  * 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
index 0534689..a3821b0 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
@@ -27,13 +27,13 @@
  * runtime components. 
  * 
  * <p>This interface is not intended to be implemented outside of this framework. Client code can 
- * get access to <code>IRuntime</code> objects by using methods on the {@see RuntimeManager} 
+ * get access to <code>IRuntime</code> objects by using methods on the {@link RuntimeManager} 
  * class.</p>  
  * 
- * @see RuntimeManager.getRuntimes()
- * @see RuntimeManager.getRuntime(String)
- * @see RuntiemManager.isRuntimeDefined(String)
- * @see RuntimeManager.defineRuntime(String,List<IRuntimeComponent>,Map<String,String>)
+ * @see RuntimeManager#getRuntimes()
+ * @see RuntimeManager#getRuntime(String)
+ * @see RuntimeManager#isRuntimeDefined(String)
+ * @see RuntimeManager#defineRuntime(String,List,Map)
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
 
@@ -52,7 +52,7 @@
     
     /**
      * Returns the localized name of this runtime. If not specified, this will default to the name
-     * of the runtime as returned by the {@see getName()} method. 
+     * of the runtime as returned by the {@link #getName()} method. 
      * 
      * <p>The localized name should be used in all communications with the user while all metadata 
      * references to the runtime should use the unlocalized name. Note that there is an inherent 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
index 7e9c32a..10b5ad7 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
@@ -33,7 +33,7 @@
      * Returns the set of names for runtimes that this bridge wants to export.
      * The system will try to accommodate these name choices, but may have to
      * disambiguate names due to collisions. However, even if the runtime name
-     * is changed, the name that will be passed into the {@see bridge(String)}
+     * is changed, the name that will be passed into the {@link #bridge(String)}
      * call will be the original name provided by this method call. 
      * 
      * @return the set of names for runtimes that this bridge wants to export
@@ -46,11 +46,11 @@
     
     /**
      * Returns a stub that represents the bridged runtime. The system will
-     * wrap this stub and expose it to the clients through the {@see IRuntime}
+     * wrap this stub and expose it to the clients through the {@link IRuntime}
      * interface.
      * 
      * @param name the name of the bridged runtime (as returned by the
-     *   {@see getExportedRuntimeNames()}) method
+     *   {@link #getExportedRuntimeNames()}) method
      * @return a stub that represents the bridged runtime
      * @throws CoreException if failed while bridging
      */
@@ -61,7 +61,7 @@
     
     /**
      * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@see IRuntime}. All relevant calls will be
+     * and expose it to clients as {@link IRuntime}. All relevant calls will be
      * delegated to this interface.
      * 
      * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
@@ -85,8 +85,7 @@
          * contents will vary depending on how the runtime was created and 
          * what component types/versions it's comprised of.
          * 
-         * @return the properties associated with this runtime (key type: 
-         *   {@see String}, value type: {@see String})
+         * @return the properties associated with this runtime
          */
         
         Map<String,String> getProperties();
@@ -94,7 +93,7 @@
     
     /**
      * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@see IRuntime}. All relevant calls will be
+     * and expose it to clients as {@link IRuntime}. All relevant calls will be
      * delegated to this interface.
      * 
      * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
@@ -123,8 +122,7 @@
          * contents will vary depending on how the runtime was created and 
          * what component types/versions it's comprised of.
          * 
-         * @return the properties associated with this runtime (key type: 
-         *   {@see String}, value type: {@see String})
+         * @return the properties associated with this runtime
          * @since 3.0
          */
         
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
index 7285f68..1292c38 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
@@ -21,10 +21,10 @@
  * 
  * <p>This interface is not intended to be implemented outside of this framework. Client code can 
  * get access to <code>IRuntimeComponent</code> objects by using methods on the 
- * {@see IRuntime} and {@see RuntimeManager} classes.</p>  
+ * {@link IRuntime} and {@link RuntimeManager} classes.</p>  
  * 
- * @see IRuntime.getRuntimeComponents()
- * @see RuntimeManager.createRuntimeComponent(IRuntimeComponentVersion,Map<String,String>) 
+ * @see IRuntime#getRuntimeComponents()
+ * @see RuntimeManager#createRuntimeComponent(IRuntimeComponentVersion,Map) 
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
index 0c548ef..1e0c501 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
@@ -17,6 +17,7 @@
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
 
 /**
  * Represents the type of a runtime component. A runtime instance is composed of  multiple runtime 
@@ -25,11 +26,11 @@
  * <p>This interface is not intended to be implemented outside of this framework. Runtime component
  * types are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
  * extension point. Once declared, client code can get access to <code>IRuntimeComponentType</code> 
- * objects by using methods on the {@see RuntimeManager} class.</p>  
+ * objects by using methods on the {@link RuntimeManager} class.</p>  
  *
- * @see RuntimeManager.getRuntimeComponentTypes()
- * @see RuntimeManager.getRuntimeComponentType(String)
- * @see RuntimeManager.isRuntimeComponentTypeDefined(String)
+ * @see RuntimeManager#getRuntimeComponentTypes()
+ * @see RuntimeManager#getRuntimeComponentType(String)
+ * @see RuntimeManager#isRuntimeComponentTypeDefined(String)
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
 
@@ -78,11 +79,11 @@
     boolean hasVersion( String version );
     
     /**
-     * Returns the {@see IRuntimeComponentVersion} object corresponding to the
+     * Returns the {@link IRuntimeComponentVersion} object corresponding to the
      * provided version string.
      * 
      * @param version the version string
-     * @return the {@see IRuntimeComponentVersion} object corresponding to the
+     * @return the {@link IRuntimeComponentVersion} object corresponding to the
      *   provided version string
      * @throws IllegalArgumentException if the version does not exist
      */
@@ -116,7 +117,7 @@
     /**
      * Returns the version comparator specified for this runtime component type.
      * If no version comparator is specified, this method will return an 
-     * instance of the {@see DefaultVersionComparator}.
+     * instance of the {@link DefaultVersionComparator}.
      * 
      * @return the version comparator specified for this runtime component type
      */
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
index 7046650..a24d472 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
@@ -21,14 +21,14 @@
  * versions are declared using <code>org.eclipse.wst.common.project.facet.core.runtimes</code>
  * extension point. Once declared, client code can get access to 
  * <code>IRuntimeComponentVersion</code> objects by using methods on the 
- * {@see IRuntimeComponentType} class.</p>  
+ * {@link IRuntimeComponentType} class.</p>  
  *
- * @see IRuntimeComponentType.getVersions()
- * @see IRuntimeComponentType.getVersions(String)
- * @see IRuntimeComponentType.getVersion(String)
- * @see IRuntimeComponentType.hasVersion(String)
- * @see IRuntimeComponentType.getLatestVersion()
- * @see IRuntimeComponentType.getSortedVersions(boolean)
+ * @see IRuntimeComponentType#getVersions()
+ * @see IRuntimeComponentType#getVersions(String)
+ * @see IRuntimeComponentType#getVersion(String)
+ * @see IRuntimeComponentType#hasVersion(String)
+ * @see IRuntimeComponentType#getLatestVersion()
+ * @see IRuntimeComponentType#getSortedVersions(boolean)
  * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
  */
 
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
index 0aab848..37588ee 100644
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
@@ -54,11 +54,11 @@
     }
     
     /**
-     * Returns the {@see IRuntimeComponentType} object corresponding to the
+     * Returns the {@link IRuntimeComponentType} object corresponding to the
      * specified runtime component type id.
      * 
      * @param id the runtime componenet type id
-     * @return the {@see IRuntimeComponentType} object corresponding to the
+     * @return the {@link IRuntimeComponentType} object corresponding to the
      *   specified runtime componenet type id
      * @throws IllegalArgumentException if the runtime component type id is not
      *   recognized
@@ -148,7 +148,7 @@
     
     /**
      * Creates a new runtime componenet. This method is intended to be used in
-     * conjunction with the {@see defineRuntime(String,List,Map)} method.
+     * conjunction with the {@link #defineRuntime(String,List,Map)} method.
      * 
      * @param rcv the runtime component version
      * @param properties the runtime component properties
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 6a74c76..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/.project
+++ /dev/null
@@ -1,22 +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.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.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 e4b8e32..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,6 +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.0.qualifier
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 41997e1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = META-INF/,\
-               content/,\
-               plugin.properties,\
-               plugin.xml,\
-               toc.xml
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/description.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/description.html
deleted file mode 100644
index e3c8a66..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/downloads/enablement-example.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/downloads/enablement-example.zip
deleted file mode 100644
index 03e7c89..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/downloads/enablement-example.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/enabling-based-on-facets.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/enabling-based-on-facets.html
deleted file mode 100644
index 50ce36a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/format.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/format.css
deleted file mode 100644
index c02625e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/listeners.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/listeners.html
deleted file mode 100644
index a9c725c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/questions.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/questions.html
deleted file mode 100644
index b48b0d9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/tutorial/images/screen01.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen01.gif
deleted file mode 100644
index 6d8bfb7..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen01.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen02.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen02.gif
deleted file mode 100644
index a481aef..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen02.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen03.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen03.gif
deleted file mode 100644
index c61e29e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen03.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen04.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen04.gif
deleted file mode 100644
index fae4b62..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen04.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen05.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen05.gif
deleted file mode 100644
index b33903e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen05.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen06.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen06.gif
deleted file mode 100644
index 977690b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen06.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen07.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen07.gif
deleted file mode 100644
index 3133e18..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen07.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen08.gif b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen08.gif
deleted file mode 100644
index e4040ca..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/images/screen08.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/solution.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/solution.zip
deleted file mode 100644
index 499b7dc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/solution.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/starter.zip b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/starter.zip
deleted file mode 100644
index bc20cab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/materials/starter.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/tutorial.css b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/tutorial.css
deleted file mode 100644
index 27036ad..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/tutorial/tutorial.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/tutorial/tutorial.html
deleted file mode 100644
index e2dc7fe..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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.facets</span>"&gt;
-  &lt;preset 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;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;/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.facets</span>"&gt;
-  &lt;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;/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/content/whatsnew150.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/whatsnew150.html
deleted file mode 100644
index c354809..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/whatsnew151.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/whatsnew151.html
deleted file mode 100644
index f6d3d8d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/content/whatsnew20.html b/plugins/org.eclipse.wst.common.project.facet.doc.api/content/whatsnew20.html
deleted file mode 100644
index 97f5f0b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/content/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/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 2c0c04e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/plugin.xml
+++ /dev/null
@@ -1,8 +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>
-</plugin>
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 5116230..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.doc.api/toc.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Faceted Project Framework Developer Guide" topic="content/description.html">
-    <topic label="Tutorial"
-       href="content/tutorial/tutorial.html">
-    </topic>
-    <topic label="Listening for Changes to Faceted Projects"
-       href="content/listeners.html">
-    </topic>	    
-    <topic label="Enabling UI Elements Based on Project Facets"
-       href="content/enabling-based-on-facets.html">
-    </topic>
-    <topic label="Questions &amp; Answers"
-       href="content/questions.html">
-    </topic>
-    <topic label="New for 1.5"
-       href="content/whatsnew150.html">
-    </topic>
-    <topic label="New for 1.5.1"
-       href="content/whatsnew151.html">
-    </topic>
-    <topic label="New for 2.0"
-       href="content/whatsnew20.html">
-    </topic>
-</toc>
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
index 09627d3..e6de155 100644
--- a/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.project.facet.ui/META-INF/MANIFEST.MF
@@ -9,11 +9,11 @@
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.project.facet.ui,
  org.eclipse.wst.common.project.facet.ui.internal;x-internal:=true
-Require-Bundle: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.ui.forms;bundle-version="[3.2.0,4.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,4.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,1.4.0)";visibility:=reexport
+Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
+ org.eclipse.ui.forms;bundle-version="[3.3.100,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/about.html b/plugins/org.eclipse.wst.common.project.facet.ui/about.html
index 73db36e..2199df3 100644
--- a/plugins/org.eclipse.wst.common.project.facet.ui/about.html
+++ b/plugins/org.eclipse.wst.common.project.facet.ui/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
index 0b3e21b..00599bd 100644
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
+++ b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/FacetsSelectionPanel.java
@@ -687,10 +687,16 @@
             return;
         }
         
+        int available = 0;
         int selected = 0;
 
         for( IProjectFacet f : category.getProjectFacets() )
         {
+            if( this.fpjwc.isFacetAvailable( f ) )
+            {
+                available++;
+            }
+            
             if( this.fpjwc.hasProjectFacet( f ) )
             {
                 selected++;
@@ -702,7 +708,7 @@
             this.treeViewer.setChecked( category, false );
             this.treeViewer.setGrayed( category, false );
         }
-        else if( selected == category.getProjectFacets().size() )
+        else if( selected == available )
         {
             this.treeViewer.setChecked( category, true );
             this.treeViewer.setGrayed( category, false );
diff --git a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/ReadOnlyComboBoxCellEditor.java b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/ReadOnlyComboBoxCellEditor.java
index b112200..69cb8ac 100644
--- a/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/ReadOnlyComboBoxCellEditor.java
+++ b/plugins/org.eclipse.wst.common.project.facet.ui/src/org/eclipse/wst/common/project/facet/ui/internal/util/ReadOnlyComboBoxCellEditor.java
@@ -1,12 +1,14 @@
-/******************************************************************************
- * Copyright (c) 2008 BEA Systems, Inc.
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
- *    Konstantin Komissarchik - initial implementation and ongoing maintenance
+ *     IBM Corporation - initial API and implementation
+ *     Tom Schindl <tom.schindl@bestsolution.at> - bugfix in 174739
+ *     Konstantin Komissarchik - mproving behavior in the read-only case 
  ******************************************************************************/
 
 package org.eclipse.wst.common.project.facet.ui.internal.util;
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 7902a48..85a169c 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
@@ -5,7 +5,7 @@
 Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core.tests;singleton:=true
 Bundle-Version: 1.3.0.qualifier
 Bundle-Localization: plugin
-Require-Bundle: org.junit,
+Require-Bundle: org.junit;bundle-version="[3.8.2,4.0.0)",
  org.eclipse.wst.common.project.facet.core,
  org.eclipse.core.runtime,
  org.eclipse.core.resources
diff --git a/tests/org.eclipse.wst.common.project.facet.core.tests/about.html b/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
index 9e73bda..0799bdb 100644
--- a/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
+++ b/tests/org.eclipse.wst.common.project.facet.core.tests/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
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
index 9e73bda..0799bdb 100644
--- a/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html
+++ b/tests/org.eclipse.wst.common.project.facet.ui.tests/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>June 06, 2007</P>
+<P>June, 2008</P>
 
 <H3>License</H3>