This commit was manufactured by cvs2svn to create tag 'v20060116_0031'.
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.classpath b/plugins/org.eclipse.jst.common.project.facet.core/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore b/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore
deleted file mode 100644
index 9a8b684..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-@dot
-build.xml
-temp.folder
-src.zip
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/.project b/plugins/org.eclipse.jst.common.project.facet.core/.project
deleted file mode 100644
index 9729cc8..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.common.project.facet.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 376fcaf..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.0.0
-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
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.jdt.core,
- org.eclipse.wst.common.project.facet.core
-Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/build.properties b/plugins/org.eclipse.jst.common.project.facet.core/build.properties
deleted file mode 100644
index ba3b5d9..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               META-INF/,\
-               plugin.properties,\
-               component.xml
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/component.xml b/plugins/org.eclipse.jst.common.project.facet.core/component.xml
deleted file mode 100644
index cdb37d8..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/component.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.jst.common.project.facet">
-  <description url=""></description>
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.jst.common.project.facet.core" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties
deleted file mode 100644
index 6ced20f..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Project Facet Core (Java Support)
-providerName = Eclipse.org
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
deleted file mode 100644
index 16ef38b..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension point="org.eclipse.core.runtime.adapters">
-    <factory 
-      class="org.eclipse.jst.common.project.facet.core.internal.RuntimeClasspathProvider$Factory" 
-      adaptableType="org.eclipse.wst.common.project.facet.core.runtime.IRuntime">
-      <adapter type="org.eclipse.jst.common.project.facet.core.IClasspathProvider"/>
-    </factory>
-  </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
deleted file mode 100644
index e5173b5..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.java
+++ /dev/null
@@ -1,467 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.osgi.util.NLS;
-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.runtime.IRuntime;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * <p>A utility used in conjunction with IClasspathProvider in order to manage
- * the bookkeeping when project facets are installed and uninstalled, and when
- * the bound runtime changes. This utility tracks which classpath entries were
- * added to the project by which facet and stores this information in a project
- * metadata file. This enables the classpath entries to be removed without
- * knowing what they are. It is only necessary to know which facet added them.
- * This utility supports the case where the same classpath entry is added by
- * multiple project facets. In this situation, a classpath entry is only
- * removed when the removal has been requested for all of the facets that added
- * it.</p>
- * 
- * <p>Typically the project facet author will write something like this in the
- * install delegate:</p>
- * 
- * <pre>
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * <p>And something like this in the uninstall delegate:</p>
- * 
- * <pre>
- * ClasspathHelper.removeClasspathEntries( project, fv );
- * </pre>
- * 
- * <p>And something like this in the runtime changed delegate:</p>
- * 
- * <pre>
- * ClasspathHelper.removeClasspathEntries( project, fv );
- * 
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * <p>And something like this in the version change delegate:</p>
- * 
- * <pre>
- * final IProjectFacetVersion oldver
- *   = fproj.getInstalledVersion( fv.getProjectFacet() );
- * 
- * ClasspathHelper.removeClasspathEntries( project, oldver );
- * 
- * if( ! ClasspathHelper.addClasspathEntries( project, fv )
- * {
- *     // Handle the case when there is no bound runtime or when the bound
- *     // runtime cannot provide classpath entries for this facet.
- *     
- *     final List alternate = ...;
- *     ClasspathHelper.addClasspathEntries( project, fv, alternate );
- * }
- * </pre>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ClasspathHelper
-{
-    private static final String PLUGIN_ID
-        = "org.eclipse.jst.common.project.facet.core";
-    
-    private static final Object SYSTEM_OWNER = new Object();
-    
-    private ClasspathHelper() {}
-    
-    /**
-     * Convenience method for adding to the project the classpath entries
-     * provided for the specified project facet by the runtime bound to the
-     * project. The entries are marked as belonging to the specified project
-     * facet.
-     *   
-     * @param project the project
-     * @param fv the project facet version that will own these entries
-     * @return <code>true</code> if classpath entries were added, or
-     *   <code>false</code> if there is no runtime bound to the project or if
-     *   it cannot provide classpath entries for the specified facet
-     * @throws CoreException if failed while adding the classpath entries
-     */
-    
-    public static boolean addClasspathEntries( final IProject project,
-                                               final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IFacetedProject fproj 
-            = ProjectFacetsManager.create( project );
-    
-        final IRuntime runtime = fproj.getRuntime();
-        
-        if( runtime != null )
-        {
-            final IClasspathProvider cpprov 
-                = (IClasspathProvider) runtime.getAdapter( IClasspathProvider.class );
-            
-            final List cpentries = cpprov.getClasspathEntries( fv );
-            
-            if( cpentries != null )
-            {
-                addClasspathEntries( project, fv, cpentries );
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    /**
-     * Add the provided classpath entries to project and marks them as belonging
-     * to the specified project facet.
-     * 
-     * @param project the project
-     * @param fv the project facet version that will own these entries
-     * @param cpentries the classpath entries (element type: 
-     *   {@see IClasspathEntry})
-     * @throws CoreException if failed while adding the classpath entries
-     */
-    
-    public static void addClasspathEntries( final IProject project,
-                                            final IProjectFacetVersion fv,
-                                            final List cpentries )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            final IJavaProject jproj = JavaCore.create( project );
-            final List cp = getClasspath( jproj );
-            boolean cpchanged = false;
-
-            final Map prefs = readPreferences( project );
-            
-            for( Iterator itr = cpentries.iterator(); itr.hasNext(); )
-            {
-                final IClasspathEntry cpentry = (IClasspathEntry) itr.next();
-                final IPath path = cpentry.getPath();
-                
-                final boolean contains = cp.contains( cpentry );
-                
-                Set owners = (Set) prefs.get( path );
-                
-                if( owners == null )
-                {
-                    owners = new HashSet();
-
-                    if( contains )
-                    {
-                        owners.add( SYSTEM_OWNER );
-                    }
-                    
-                    prefs.put( path, owners );
-                }
-                
-                owners.add( fv );
-                
-                if( ! contains )
-                {
-                    cp.add( cpentry );
-                    cpchanged = true;
-                }
-            }
-            
-            if( cpchanged )
-            {
-                setClasspath( jproj, cp );
-            }
-            
-            writePreferences( project, prefs );
-        }
-        catch( BackingStoreException e )
-        {
-            final IStatus st
-                = new Status( IStatus.ERROR, PLUGIN_ID, 0, 
-                              Resources.failedWritingPreferences, e );
-            
-            throw new CoreException( st );
-        }
-    }
-    
-    /**
-     * Removes the classpath entries belonging to the specified project facet.
-     * Any entries that also belong to another facet are left in place.
-     * 
-     * @param project the project
-     * @param fv the project facet that owns the entries that should be removed
-     * @throws CoreException if failed while removing classpath entries
-     */
-    
-    public static void removeClasspathEntries( final IProject project,
-                                               final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        try
-        {
-            final IJavaProject jproj = JavaCore.create( project );
-            final List cp = getClasspath( jproj );
-            boolean cpchanged = false;
-
-            final Map prefs = readPreferences( project );
-            
-            for( Iterator itr1 = prefs.entrySet().iterator(); itr1.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr1.next();
-                final IPath path = (IPath) entry.getKey();
-                final Set owners = (Set) entry.getValue();
-                
-                if( owners.contains( fv ) )
-                {
-                    owners.remove( fv );
-                    
-                    if( owners.size() == 0 )
-                    {
-                        itr1.remove();
-                        
-                        for( Iterator itr2 = cp.iterator(); itr2.hasNext(); )
-                        {
-                            final IClasspathEntry cpentry
-                                = (IClasspathEntry) itr2.next();
-                            
-                            if( cpentry.getPath().equals( path ) )
-                            {
-                                itr2.remove();
-                                cpchanged = true;
-                                break;
-                            }
-                        }
-                    }
-                }
-            }
-
-            if( cpchanged )
-            {
-                setClasspath( jproj, cp );
-            }
-            
-            writePreferences( project, prefs );
-        }
-        catch( BackingStoreException e )
-        {
-            final IStatus st
-                = new Status( IStatus.ERROR, PLUGIN_ID, 0, 
-                              Resources.failedWritingPreferences, e );
-            
-            throw new CoreException( st );
-        }
-    }
-    
-    private static List getClasspath( final IJavaProject jproj )
-    
-        throws CoreException
-        
-    {
-        final ArrayList list = new ArrayList();
-        final IClasspathEntry[] cp = jproj.getRawClasspath();
-        
-        for( int i = 0; i < cp.length; i++ )
-        {
-            list.add( cp[ i ] );
-        }
-        
-        return list;
-    }
-    
-    private static void setClasspath( final IJavaProject jproj,
-                                      final List cp )
-    
-        throws CoreException
-        
-    {
-        final IClasspathEntry[] newcp
-            = (IClasspathEntry[]) cp.toArray( new IClasspathEntry[ cp.size() ] );
-        
-        jproj.setRawClasspath( newcp, null );
-    }
-    
-    private static Map readPreferences( final IProject project )
-    
-        throws BackingStoreException
-        
-    {
-        final Preferences root = getPreferencesNode( project );
-        final Map result = new HashMap();
-        
-        final String[] keys = root.childrenNames();
-        
-        for( int i = 0; i < keys.length; i++ )
-        {
-            final String key = keys[ i ];
-            final Preferences node = root.node( key );
-            
-            final String owners = node.get( "owners", null );
-            final String[] split = owners.split( ";" );
-            final Set set = new HashSet();
-            
-            for( int j = 0; j < split.length; j++ )
-            {
-                final String segment = split[ j ];
-                
-                if( segment.equals( "#system#" ) )
-                {
-                    set.add( SYSTEM_OWNER );
-                }
-                else
-                {
-                    final IProjectFacetVersion fv 
-                        = parseFeatureVersion( segment );
-                    
-                    set.add( fv );
-                }
-            }
-            
-            result.put( decode( key ), set );
-        }
-        
-        return result;
-    }
-    
-    private static void writePreferences( final IProject project,
-                                          final Map prefs )
-    
-        throws BackingStoreException
-        
-    {
-        final Preferences root = getPreferencesNode( project );
-        final String[] children = root.childrenNames();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            root.node( children[ i ] ).removeNode();
-        }
-        
-        for( Iterator itr1 = prefs.entrySet().iterator(); itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final IPath path = (IPath) entry.getKey();
-            final Set owners = (Set) entry.getValue();
-            
-            final StringBuffer buf = new StringBuffer();
-            
-            for( Iterator itr2 = owners.iterator(); itr2.hasNext(); )
-            {
-                final Object owner = itr2.next();
-
-                if( buf.length() > 0 ) 
-                {
-                    buf.append( ';' );
-                }
-                
-                if( owner == SYSTEM_OWNER )
-                {
-                    buf.append( "#system#" );
-                }
-                else
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) owner;
-                    
-                    buf.append( fv.getProjectFacet().getId() );
-                    buf.append( ':' );
-                    buf.append( fv.getVersionString() );
-                }
-            }
-
-            final Preferences node = root.node( encode( path ) );
-            node.put( "owners", buf.toString() );
-        }
-        
-        root.flush();
-    }
-    
-    
-    private static Preferences getPreferencesNode( final IProject project )
-    {
-        final ProjectScope scope = new ProjectScope( project );
-        final IEclipsePreferences pluginRoot = scope.getNode( PLUGIN_ID );
-        return pluginRoot.node( "classpath.helper" );
-    }
-    
-    private static IProjectFacetVersion parseFeatureVersion( final String str )
-    {
-        final int colon = str.indexOf( ':' );
-        final String id = str.substring( 0, colon );
-        final String ver = str.substring( colon + 1 );
-        
-        return ProjectFacetsManager.getProjectFacet( id ).getVersion( ver );
-    }
-    
-    private static String encode( final IPath path )
-    {
-        return path.toString().replaceAll( "/", "::" );
-    }
-    
-    private static IPath decode( final String path )
-    {
-        return new Path( path.replaceAll( "::", "/" ) );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedWritingPreferences;
-        
-        static
-        {
-            initializeMessages( ClasspathHelper.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.properties b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.properties
deleted file mode 100644
index cb5aee1..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/ClasspathHelper.properties
+++ /dev/null
@@ -1 +0,0 @@
-failedWritingPreferences = Failed while writing preferences.
\ 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/IClasspathProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/IClasspathProvider.java
deleted file mode 100644
index 7e66ad7..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/IClasspathProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core;
-
-import java.util.List;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The iterface implemented by a runtime component adapter in order to provide
- * classpath entries for project facets. For convenience, the runtime can also
- * be adapted to this interface. That adapter will delegate to the runtime 
- * components in the order that they are listed in the runtime. The first one 
- * that can provide classpath entries for the specified project facet wins. 
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IClasspathProvider
-{
-    /**
-     * Returns the classpath entries for the specified project facet.
-     * 
-     * @param fv the project facet version
-     * @return returns the classpath entries for the specified project facet
-     *   (element type: {@see org.eclipse.jdt.core.IClasspathEntry}), or
-     *   <code>null</code> if this provider does not provide classpath entries
-     *   for the given project facet
-     */
-    
-    List getClasspathEntries( IProjectFacetVersion fv );
-    
-}
diff --git a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java b/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java
deleted file mode 100644
index 8e1545c..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/src/org/eclipse/jst/common/project/facet/core/internal/RuntimeClasspathProvider.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jst.common.project.facet.core.internal;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jst.common.project.facet.core.IClasspathProvider;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeClasspathProvider
-
-    implements IClasspathProvider
-    
-{
-    private final IRuntime r;
-    
-    public RuntimeClasspathProvider( final IRuntime r )
-    {
-        this.r = r;
-    }
-
-    public List getClasspathEntries( final IProjectFacetVersion fv )
-    {
-        for( Iterator itr = this.r.getRuntimeComponents().iterator(); 
-             itr.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr.next();
-            
-            final IClasspathProvider cpprov 
-                = (IClasspathProvider) rc.getAdapter( IClasspathProvider.class );
-            
-            if( cpprov != null )
-            {
-                final List cp = cpprov.getClasspathEntries( fv );
-                
-                if( cp != null )
-                {
-                    return cp;
-                }
-            }
-        }
-        
-        return null;
-    }
-    
-    public static final class Factory
-    
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES
-            = { IClasspathProvider.class };
-        
-        public Object getAdapter( final Object adaptable, 
-                                  final Class adapterType )
-        {
-            if( adapterType == IClasspathProvider.class )
-            {
-                return new RuntimeClasspathProvider( (IRuntime) adaptable );
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.classpath b/plugins/org.eclipse.wst.common.project.facet.core/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore b/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
deleted file mode 100644
index 364cb6f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-build.xml
-facet-core.jar
-temp.folder
-@dot
-src.zip
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.options b/plugins/org.eclipse.wst.common.project.facet.core/.options
deleted file mode 100644
index 09a74d5..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.common.project.facet.core/delegate/calls = false
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.project b/plugins/org.eclipse.wst.common.project.facet.core/.project
deleted file mode 100644
index 3e9e5cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.common.project.facet.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 77b1606..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Thu Sep 01 15:33:21 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 43b43e3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Vendor: %providerName
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.0.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.common.project.facet.core,
- org.eclipse.wst.common.project.facet.core.internal;x-internal:=true,
- org.eclipse.wst.common.project.facet.core.runtime,
- org.eclipse.wst.common.project.facet.core.runtime.internal;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources
-Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/build.properties b/plugins/org.eclipse.wst.common.project.facet.core/build.properties
deleted file mode 100644
index fa370ea..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               schemas/,\
-               META-INF/,\
-               plugin.properties,\
-               component.xml,\
-               .options
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/component.xml b/plugins/org.eclipse.wst.common.project.facet.core/component.xml
deleted file mode 100644
index 661e4ed..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/component.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<component xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.common.project.facet">
-  <description url=""></description>
-  <component-depends unrestricted="true"></component-depends>
-  <plugin id="org.eclipse.wst.common.project.facet.core" fragment="false"/>
-  <plugin id="org.eclipse.wst.common.project.facet.ui" fragment="false"/>
-</component>
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
deleted file mode 100644
index 480e609..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-pluginName = Project Facet Core
-providerName = Eclipse.org
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml b/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
deleted file mode 100644
index 1c78a9a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension-point 
-    id="facets"
-    name="Project Facets Extension Point"
-    schema="schemas/facets.exsd"/>
-
-  <extension-point 
-    id="runtimes"
-    name="Runtimes Extension Point"
-    schema="schemas/runtimes.exsd"/>
-
-  <extension-point 
-    id="runtimeBridges"
-    name="Runtime Bridges Extension Point"
-    schema="schemas/runtimeBridges.exsd"/>
-
-  <extension-point 
-    id="defaultFacets"
-    name="Default Facets Extension Point"
-    schema="schemas/defaultFacets.exsd"/>
-  
-  <extension
-    id="nature"
-    point="org.eclipse.core.resources.natures">
-    <runtime>
-      <run class="org.eclipse.wst.common.project.facet.core.internal.FacetedProjectNature"/>
-    </runtime>
-  </extension>
-  
-</plugin>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
deleted file mode 100644
index d246766..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/defaultFacets.exsd
+++ /dev/null
@@ -1,148 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="defaultFacets" name="Default Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         Used to specify which facets (and which versions of those facets) should be selected by default when a runtime that includes the specified runtime component is selected. Multiple extensions referring to the same runtime component (type and version) will be merged. This allows a party not affiliated with the runtime vendor to specify that a certain additional facet should be preselected when the runtime containing the specified runtime component is selected.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="default-facets"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="default-facets">
-      <complexType>
-         <sequence>
-            <element ref="runtime-component"/>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Specifies the runtime component type id and version that these defaults are for.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  runtime component type id
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,&lt;1.0,&gt;=5.3&quot;, where the comas function as an OR.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Specifies project facet id and version
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  project facet id
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  project facet version
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 BEA Systems, Inc. and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
deleted file mode 100644
index 1ffed54..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ /dev/null
@@ -1,400 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="facets" name="Project Facets Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="project-facet"/>
-            <element ref="project-facet-version"/>
-            <element ref="category"/>
-            <element ref="preset"/>
-            <element ref="template"/>
-            <element ref="action"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="label" type="string">
-   </element>
-
-   <element name="description" type="string">
-   </element>
-
-   <element name="icon" type="string">
-   </element>
-
-   <element name="and">
-      <complexType>
-         <choice minOccurs="2" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="or">
-      <complexType>
-         <choice minOccurs="2" maxOccurs="unbounded">
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="requires">
-      <complexType>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="soft" type="boolean">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="conflicts">
-      <complexType>
-         <attribute name="group" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="constraint">
-      <complexType>
-         <choice>
-            <element ref="and"/>
-            <element ref="or"/>
-            <element ref="requires"/>
-            <element ref="conflicts"/>
-         </choice>
-      </complexType>
-   </element>
-
-   <element name="group-member">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet">
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="icon" minOccurs="0" maxOccurs="1"/>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-            <element name="category" type="string">
-            </element>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="project-facet-version">
-      <complexType>
-         <sequence>
-            <element ref="constraint" minOccurs="0" maxOccurs="1"/>
-            <element ref="group-member" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="action" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="facet" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="category">
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element ref="description" minOccurs="0" maxOccurs="1"/>
-            <element ref="icon" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="preset">
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element name="facet">
-               <complexType>
-                  <attribute name="id" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           
-                        </documentation>
-                     </annotation>
-                  </attribute>
-                  <attribute name="version" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="template">
-      <complexType>
-         <sequence>
-            <element ref="label"/>
-            <element name="fixed">
-               <complexType>
-                  <attribute name="facet" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-            <element name="preset">
-               <complexType>
-                  <attribute name="id" type="string" use="required">
-                     <annotation>
-                        <documentation>
-                           
-                        </documentation>
-                     </annotation>
-                  </attribute>
-               </complexType>
-            </element>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="action">
-      <complexType>
-         <all>
-            <element ref="config-factory" minOccurs="0" maxOccurs="1"/>
-            <element ref="delegate"/>
-         </all>
-         <attribute name="type" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-            <simpleType>
-               <restriction base="string">
-                  <enumeration value="install">
-                  </enumeration>
-                  <enumeration value="uninstall">
-                  </enumeration>
-                  <enumeration value="version-change">
-                  </enumeration>
-                  <enumeration value="runtime-changed">
-                  </enumeration>
-               </restriction>
-            </simpleType>
-         </attribute>
-         <attribute name="facet" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="config-factory">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="delegate">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 BEA Systems, Inc. and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
deleted file mode 100644
index 5d51c1e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimeBridges" name="Runtime Bridges Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="bridge"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="bridge">
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 BEA Systems, Inc. and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
deleted file mode 100644
index bf3cf36..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
+++ /dev/null
@@ -1,285 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.common.project.facet.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.common.project.facet.core" id="runtimes" name="Runtimes Extension Point"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <choice>
-            <element ref="runtime-component-type"/>
-            <element ref="runtime-component-version"/>
-            <element ref="adapter"/>
-            <element ref="supported"/>
-         </choice>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="runtime-component-type">
-      <annotation>
-         <documentation>
-            Defines a runtime component type.
-         </documentation>
-      </annotation>
-      <complexType>
-         <all>
-            <element ref="version-comparator" minOccurs="0" maxOccurs="1"/>
-            <element ref="icon" minOccurs="0" maxOccurs="1"/>
-         </all>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id that will be used to reference this runtime component type.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="version-comparator">
-      <annotation>
-         <documentation>
-            Specifies the version comparator. If not specified, the default version comparator will be used. The default version comparator is capable of handing numerical versions that use decimal notation.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="icon" type="string">
-      <annotation>
-         <documentation>
-            Specifies the location of the icon that should be used with this runtime component type.
-         </documentation>
-      </annotation>
-   </element>
-
-   <element name="runtime-component-version">
-      <annotation>
-         <documentation>
-            Defines a runtime component version.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the runtime component type that this is a version of.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The version string.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="adapter">
-      <annotation>
-         <documentation>
-            Registers an adapter to be used with some set of runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <all>
-            <element ref="runtime-component"/>
-            <element ref="factory"/>
-            <element ref="type"/>
-         </all>
-      </complexType>
-   </element>
-
-   <element name="runtime-component">
-      <annotation>
-         <documentation>
-            Used to reference multiple runtime component types and versions.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the runtime component type id. If this attribute is used, the &lt;code&gt;any&lt;/code&gt; attribute should not be used.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the runtime component version. The expression should be of the form &quot;2.2,2.5,&lt;1.0,&gt;=5.3&quot;, where the comas function as an OR.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="any" type="string">
-            <annotation>
-               <documentation>
-                  Used to indicate that all runtime component types and versions should be matched. If this attribute is used, the &lt;code&gt;id&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, and &lt;code&gt;allow-newer&lt;/code&gt; attributes should not be used.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <annotation>
-         <documentation>
-            Specifies the adapter factory. The factory has to implement &lt;code&gt;org.eclipse.core.runtime.IAdapterFactory&lt;/code&gt; interface.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="type">
-      <annotation>
-         <documentation>
-            Specifies the type that this adapter will be adapting to.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class name.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="supported">
-      <annotation>
-         <documentation>
-            Specifies that these project facets are supported by these runtimes.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="facet" minOccurs="1" maxOccurs="unbounded"/>
-            <element ref="runtime-component" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-      </complexType>
-   </element>
-
-   <element name="facet">
-      <annotation>
-         <documentation>
-            Used to reference one or more version of a project facet.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Specifies the project facet id.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string">
-            <annotation>
-               <documentation>
-                  Specifies the match expression for the project facet version. The expression should be of the form &quot;2.2,2.5,&lt;1.0,&gt;=5.3&quot;, where the comas function as an OR.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 BEA Systems, Inc. and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
deleted file mode 100644
index cdd39a3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.StringTokenizer;
-
-/**
- * The default version comparator that will be used when one is not explicitly 
- * specified. The default version comparator can handle version strings using 
- * the standard decimal notation. It can also be subclassed to modify the 
- * separators that are used or to provide custom parsing for a version segment.
- *
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class DefaultVersionComparator
-
-    implements Comparator
-    
-{
-    public final int compare( final Object obj1,
-                              final Object obj2 )
-    
-        throws VersionFormatException
-        
-    {
-        final Comparable[] parsed1 = parse( (String) obj1 );
-        final Comparable[] parsed2 = parse( (String) obj2 );
-        
-        for( int i = 0; i < parsed1.length && i < parsed2.length; i++ )
-        {
-            final int res = parsed1[ i ].compareTo( parsed2[ i ] );
-            if( res != 0 ) return res;
-        }
-        
-        if( parsed1.length > parsed2.length )
-        {
-            return 1;
-        }
-        else if( parsed1.length < parsed2.length )
-        {
-            return -1;
-        }
-        else
-        {
-            return 0;
-        }
-    }
-    
-    /**
-     * Returns the string containing the separator characters that should be
-     * used when breaking the version string into segments. The default
-     * implementation returns ".". Subclasses can override this method.
-     * 
-     * @return the separator characters
-     */
-    
-    protected String getSeparators()
-    {
-        return ".";
-    }
-    
-    /**
-     * Parses a segment of the version string. The default implementation parses
-     * the first segment as an integer (leading zeroes are ignored) and the
-     * rest of the segments as decimals (leading zeroes are kept). Subclasses 
-     * can override this method to provide custom parsing for any number of 
-     * segments.
-     * 
-     * @param version the full version string
-     * @param segment the version segment
-     * @param position the position of the segment in the version string
-     * @return the parsed representation of the segment as a {@see Comparable}
-     * @throws VersionFormatException if encountered an error while parsing
-     */
-    
-    protected Comparable parse( final String version,
-                                final String segment,
-                                final int position )
-    
-        throws VersionFormatException
-        
-    {
-        try
-        {
-            if( position == 0 )
-            {
-                return new Integer( segment );
-            }
-            else
-            {
-                return new BigDecimal( "." + segment );
-            }
-        }
-        catch( NumberFormatException e )
-        {
-            throw new VersionFormatException( this, version );
-        }
-    }
-    
-    /**
-     * Parses the version string.
-     * 
-     * @param ver the version string
-     * @return an array containing the parsed representation of the version
-     */
-    
-    private Comparable[] parse( final String ver )
-    {
-        final ArrayList segments = new ArrayList();
-        
-        for( StringTokenizer t = new StringTokenizer( ver, getSeparators() );
-             t.hasMoreTokens(); )
-        {
-            segments.add( t.nextToken() );
-        }
-        
-        final Comparable[] parsed = new Comparable[ segments.size() ];
-        
-        for( int i = 0, n = segments.size(); i < n; i++ )
-        {
-            parsed[ i ] = parse( ver, (String) segments.get( i ), i );
-        }
-        
-        return parsed;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
deleted file mode 100644
index 9d803e9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfig
-{
-    void setVersion( IProjectFacetVersion fv );
-    void setProjectName( String pjname );
-    IStatus validate();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
deleted file mode 100644
index 07d16eb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IActionConfigFactory
-{
-    Object create()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
deleted file mode 100644
index 38d1c63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Models a grouping of project facets that are intended to be selected and 
- * deselected as a set. This interface is not intended to be implemented by 
- * clients.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface ICategory
-
-    extends IAdaptable
-    
-{
-    String getId();
-    String getPluginId();
-    String getLabel();
-    String getDescription();
-    
-    /**
-     * Returns the project facets that compose this category.
-     * 
-     * @return the member project facets (element type: {@see IProjectFacet})
-     */
-    
-    Set getProjectFacets();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
deleted file mode 100644
index 4f92cf6..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Models a single constraint in the constraint expression. 
- *  
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IConstraint 
-{
-    /**
-     * The enumeration of operator types.
-     *  
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-    
-    static final class Type
-    {
-        public static final Type AND = new Type();
-        public static final Type OR = new Type();
-        public static final Type REQUIRES = new Type();
-        public static final Type CONFLICTS = new Type();
-
-        public static Type get( final String str )
-        {
-            if( str.equals( "and" ) )
-            {
-                return AND;
-            }
-            else if( str.equals( "or" ) )
-            {
-                return OR;
-            }
-            else if( str.equals( "requires" ) )
-            {
-                return REQUIRES;
-            }
-            else if( str.equals( "conflicts" ) )
-            {
-                return CONFLICTS;
-            }
-            else
-            {
-                throw new IllegalArgumentException();
-            }
-        }
-        
-        private Type() {};
-    }
-    
-    /**
-     * Returns the operator type
-     * 
-     * @return the operator type
-     */
-    
-    Type getType();
-    
-    /**
-     * Returns the list operands.
-     * 
-     * @return the list of operands (element type: {@link Object})
-     */
-    
-    List getOperands();
-    
-    /**
-     * Returns the operand at the specified position.
-     * 
-     * @param index the position of the operand in the list of operands
-     * @return the operand
-     */
-    
-    Object getOperand( int index );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets (element type:
-     *   {@link IProjectFacetVersion})
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
-     */
-    
-    IStatus check( Collection facets );
-    
-    /**
-     * Checks this constraint against the given set of project facets.
-     * 
-     * @param facets a set of project facets (element type:
-     *   {@link IProjectFacetVersion})
-     * @param validateSoftDependencies if <code>true</code> soft dependencies
-     *   will be treated as required
-     * @return a status object with severity of {@see IStatus#OK} if the
-     *   constraint was satisfied or otherwise a {@see MultiStatus} composed of
-     *   {@see ValidationProblem} status objects
-     */
-
-    IStatus check( Collection facets,
-                   boolean validateSoftDependencies );
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
deleted file mode 100644
index 04bc05a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * This interface is implemented in order to provide logic associated with
- * a particular event in project facet's life cycle, such as install or 
- * uninstall.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IDelegate 
-{
-    /**
-     * The delegate type enumeration.
-     *  
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-    
-    public static final class Type
-    {
-        public static final Type INSTALL = new Type( "INSTALL" );
-        public static final Type UNINSTALL = new Type( "UNINSTALL" );
-        public static final Type VERSION_CHANGE = new Type( "VERSION_CHANGE" );
-        public static final Type RUNTIME_CHANGED = new Type( "RUNTIME_CHANGED" );
-        
-        private final String code;
-        
-        private Type( final String code )
-        {
-            this.code = code;
-        }
-        
-        public static Type get( final Action.Type t )
-        {
-            if( t == Action.Type.INSTALL )
-            {
-                return INSTALL;
-            }
-            else if( t == Action.Type.UNINSTALL )
-            {
-                return UNINSTALL;
-            }
-            else if( t == Action.Type.VERSION_CHANGE )
-            {
-                return VERSION_CHANGE;
-            }
-            else
-            {
-                throw new IllegalArgumentException();
-            }
-        }
-        
-        public String toString()
-        {
-            return this.code;
-        }
-    }
-    
-    /**
-     * The method that's called to execute the delegate.
-     * 
-     * @param project the workspace project
-     * @param fv the project facet version that this delegate is handling; this
-     *   is useful when sharing the delegate among several versions of the same
-     *   project facet or even different project facets
-     * @param config the configuration object, or <code>null</code> if defaults
-     *   should be used
-     * @param monitor the progress monitor
-     * @throws CoreException if the delegate fails for any reason
-     */
-    
-    void execute( IProject project,
-                  IProjectFacetVersion fv,
-                  Object config,
-                  IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
deleted file mode 100644
index c8ae54e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ /dev/null
@@ -1,288 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * This interface is used for manipulating the set of facets installed on a
- * project. Use {@see ProjectFacetsManager#create(IProject)} to get an instance 
- * of this interface.
- *  
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProject 
-{
-    /**
-     * Represents a single action such as installing or uninstalling a project
-     * facet.
-     *  
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-    
-    public static final class Action
-    {
-        /**
-         * The action type enumeration.
-         *  
-         * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-         */
-        
-        public static final class Type
-        {
-            public static final Type INSTALL = new Type( "INSTALL" );
-            public static final Type UNINSTALL = new Type( "UNINSTALL" );
-            
-            public static final Type VERSION_CHANGE 
-                = new Type( "VERSION_CHANGE" );
-            
-            private final String code;
-            
-            private Type( final String code )
-            {
-                this.code = code;
-            }
-            
-            public String toString()
-            {
-                return this.code;
-            }
-        }
-        
-        private final Type type;
-        private final IProjectFacetVersion fv;
-        private final Object config;
-        
-        /**
-         * Creates a new action.
-         * 
-         * @param type action type
-         * @param fv the the project facet version
-         * @param config the configuration object, or <code>null</code>
-         */
-        
-        public Action( final Type type,
-                       final IProjectFacetVersion fv,
-                       final Object config )
-        {
-            if( type == null || fv == null )
-            {
-                throw new IllegalArgumentException();
-            }
-            
-            this.type = type;
-            this.fv = fv;
-            this.config = config;
-        }
-        
-        /**
-         * Returns the action type
-         * 
-         * @return the action type
-         */
-        
-        public Type getType()
-        {
-            return this.type;
-        }
-        
-        /**
-         * Returns the descriptor for the project facet version that this 
-         * action will be manipulating.
-         * 
-         * @return the descriptor for the project facet version that this action 
-         *   will be manipulating
-         */
-        
-        public IProjectFacetVersion getProjectFacetVersion()
-        {
-            return this.fv;
-        }
-        
-        /**
-         * Returns the configuration object associated with this action, if any.
-         * 
-         * @return the configuration object associated with this action, or
-         *   <code>null</code>
-         */
-        
-        public Object getConfig()
-        {
-            return this.config;
-        }
-        
-        public boolean equals( final Object obj )
-        {
-            if( ! ( obj instanceof Action ) )
-            {
-                return false;
-            }
-            else
-            {
-                final Action action = (Action) obj;
-                
-                return this.type == action.type && 
-                       this.fv.equals( action.fv );
-            }
-        }
-        
-        public int hashCode()
-        {
-            return this.type.hashCode() ^ this.fv.hashCode();
-        }
-        
-        public String toString()
-        {
-            return this.type.toString() + "[" + this.fv.toString() + "]";
-        }
-    }
-    
-    IProject getProject();
-    
-    /**
-     * Returns the set of project facets currently installed on this project.
-     * 
-     * @return the set of project facets currently installed on this project 
-     *   (element type: {@see IProjectFacetVersion})
-     */
-    
-    Set getProjectFacets();
-    
-    /**
-     * Determines whether any version of the specified project facet is 
-     * installed on this project.
-     * 
-     * @param f the project facet descriptor
-     * @return <code>true</code> if any version of the specified project facet 
-     *   is installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacet f );
-    
-    /**
-     * Determines whether the specfied project facet version is installed on 
-     * this project.
-     * 
-     * @param fv the project facet version descriptor
-     * @return <code>true</code> if the specified project facet version is 
-     *   installed on this project, <code>false</code> otherwise
-     */
-    
-    boolean hasProjectFacet( IProjectFacetVersion fv );
-    
-    IProjectFacetVersion getInstalledVersion( IProjectFacet f );
-    
-    /**
-     * Installs a project facet on this project. This method is equivalent to 
-     * calling the {@see #modify(Set, IProgressMonitor)} method with a single 
-     * install action.
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   installed
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during install
-     */
-    
-    void installProjectFacet( IProjectFacetVersion fv,
-                              Object config,
-                              IProgressMonitor monitor)
-    
-        throws CoreException;
-    
-    /**
-     * Uninstalls a project facet from this project. This method is equivalent 
-     * to calling the {@see #modify(Set, IProgressMonitor)} method with a single
-     * uninstall action.
-     * 
-     * @param fv the descriptor of the project facet version that should be 
-     *   uninstalled
-     * @param config the associated configuration object, or <code>null</code>
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong during uninstall
-     */
-    
-    void uninstallProjectFacet( IProjectFacetVersion fv,
-                                Object config,
-                                IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * Modifies the set of project facets installed on this project by 
-     * performing a series of actions such as install and uninstall. 
-     * 
-     * @param actions the set of actions to apply to the project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @throws CoreException if anything goes wrong while applying actions
-     */
-    
-    void modify( Set actions,
-                 IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @return the set of fixed project facets for this project (element type:
-     *   {@see IProjectFacet})
-     */
-    
-    Set getFixedProjectFacets();
-    
-    /**
-     * Sets the set of fixed project facets for this project. Fixed facets 
-     * cannot be uninstalled, but the installed version can be changed.
-     * 
-     * @param facets the set of project facets to mark as fixed (element type:
-     *   {@see IProjectFacet})
-     * @throws CoreException if failed while updating the set of fixed project
-     *   facets
-     */
-
-    void setFixedProjectFacets( Set facets )
-    
-        throws CoreException;
-    
-    IRuntime getRuntime();
-    
-    /**
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     */
-    
-    void setRuntime( IRuntime runtime,
-                     IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-    void addListener( IFacetedProjectListener listener );
-    void removeListener( IFacetedProjectListener listener );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
deleted file mode 100644
index 45cf67f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectListener
-{
-    void projectChanged();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
deleted file mode 100644
index 176f858..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IFacetedProjectTemplate
-{
-    String getId();
-    String getLabel();
-    
-    /**
-     * 
-     * @return the set of fixed project facets (element type: 
-     *   {@see IProjectFacet})
-     */
-    
-    Set getFixedProjectFacets();
-    IPreset getInitialPreset();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
deleted file mode 100644
index 5dd8fc9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A group is a named collection collection of {@see IProjectFacetVersion} 
- * objects. It's used for a variety of purposes including as a parameter to 
- * the "one-of" constraint. A given project facet version can belong to
- * several groups.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IGroup 
-{
-    /**
-     * Returns the id of this set.
-     * 
-     * @return the id of this set
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the set of member project facets.
-     * 
-     * @return the set of member project facets (element type: {@link 
-     * IProjectFacetVersion})
-     */
-    
-    Set getMembers();
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
deleted file mode 100644
index 9cef741..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IListener
-{
-    void handle();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
deleted file mode 100644
index 7d5baa2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Set;
-
-/**
- * A preset is a user convenience mechanism for quickly selecting a predefined 
- * set of project facets. Presets can be defined by plugin writers through the
- * supplied extension point as well as by end users. When a user preset is
- * created, the metadata describing it is stored in the workspace.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IPreset
-{
-    /**
-     * Returns the id of the preset.
-     * 
-     * @return the id of the preset
-     */
-    
-    String getId();
-
-    /**
-     * Returns the preset label. The label should be used when presenting the
-     * preset to the user.
-     * 
-     * @return the preset label
-     */
-    
-    String getLabel();
-    
-    /**
-     * Returns the project facets that are part of this preset.
-     * 
-     * @return project facets that are part of this preset (element type: 
-     *   {@link IProjectFacetVersion})
-     */
-
-    Set getProjectFacets();
-    
-    /**
-     * Indicates whether the preset is user defined. A user-defined preset is
-     * stored in the workspace and can be deleted.
-     * 
-     * @return <code>true</code> if the preset is user-defined,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean isUserDefined();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
deleted file mode 100644
index f7f4ffe..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * Contains metadata that describes a project facet. This interface is not 
- * intended to be implemented by clients.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacet
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the project facet identifier. 
-     * 
-     * @return the project facet identifier
-     */
-
-    String getId();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet.
-     * 
-     * @return the id of the plugin that defines this project facet
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns the project facet label. The label should be used when presenting
-     * the project facet to the user.
-     * 
-     * @return the project facet label
-     */
-
-    String getLabel();
-    
-    /**
-     * Returns the project facet description.
-     * 
-     * @return the project facet description
-     */
-
-    String getDescription();
-    
-    /**
-     * Returns the category, if any, that this project facet belongs to.
-     * 
-     * @return the category that this project facet belongs to, or 
-     *   <code>null</code>
-     */
-    
-    ICategory getCategory();
-    
-    /**
-     * Returns the descriptors of all versions of this project facet.
-     * 
-     * @return the descriptors of all versions of this project facet (element
-     *   type: {@see IProjectFacetVersion})
-     */
-    
-    Set getVersions();
-    
-    Set getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified project facet version exists.
-     * 
-     * @param version the verson string
-     * @return <code>true</code> if the specified project facet version exists,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the descriptor of the given project facet version.
-     * 
-     * @param version the version string
-     * @return the descriptor of the given project facet version, or 
-     *   <code>null</code>
-     */
-        
-    IProjectFacetVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of the project facet as specified by the 
-     * version comparator.
-     * 
-     * @return returns the latest version of the project facet
-     */
-    
-    IProjectFacetVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException;
-    
-    IProjectFacetVersion getLatestSupportedVersion( IRuntime runtime )
-    
-        throws CoreException;
-
-    /**
-     * Returns a sorted list containing the descriptors of all versions of this 
-     * project facet. 
-     * 
-     * @param ascending whether version descriptors should be sorted in 
-     *   ascending order
-     * @return a sorted list containing the descriptors of all versions of this 
-     *   project facet (element type: {@see IProjectFacetVersion})
-     * @throws VersionFormatException if failed while parsing a version string
-     */
-    
-    List getSortedVersions( boolean ascending )
-    
-        throws VersionFormatException, CoreException;
-    
-    /**
-     * Returns the version comparator specified for this project facet. If no 
-     * version comparator is specified, this method will return an instance of 
-     * the {@see DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this project facet
-     */
-    
-    Comparator getVersionComparator()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
deleted file mode 100644
index 75e0100..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-
-/**
- * Contains metadata that describes a specific version of a project facet. This 
- * interface is not intended to be implemented by by clients.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacetVersion
-{
-    /**
-     * Returns the project facet descriptor.
-     * 
-     * @return the project facet descriptor
-     */
-    
-    IProjectFacet getProjectFacet();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-    /**
-     * Returns the constraint that has to be satisfied prior to installing this
-     * project facet.
-     * 
-     * @return the constraint that has to be satisfied prior to installing this 
-     *   project facet
-     */
-    
-    IConstraint getConstraint();
-    
-    /**
-     * Determines whether this project facet version supports a particular 
-     * action type. For instance, some project facets may not be uninstallable, 
-     * in which case they will not support <code>Action.Type.UNINSTALL</code>.
-     * 
-     * @param type action type
-     * @return <code>true</code> if this project facet supports the provided 
-     *   action type, <code>false</code> otherwise
-     */
-    
-    boolean supports( Action.Type type );
-    
-    /**
-     * Creates a new instance of the config object associated with the specified
-     * action on this facet. Will return <code>null</code> if the action 
-     * requires no config.
-     * 
-     * @param type the type of the action.
-     * @param pjname the name of the project that this action will be executed
-     *   on
-     * @return the action config object, or <code>null</code>
-     * @throws CoreException if this project facet version does not support the
-     *   specified action type or if failed while creating the action config
-     *   object
-     */
-    
-    Object createActionConfig( Action.Type type,
-                               String pjname )
-    
-        throws CoreException;
-    
-    boolean isSameActionConfig( Action.Type type,
-                                IProjectFacetVersion fv )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
deleted file mode 100644
index f8ed0cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetsManagerImpl;
-
-/**
- * This is the entry point to the project facet framework API. From here, you 
- * can (among other things) list available project facets and create instances 
- * of {@see IFacetedProject}.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManager 
-{
-    private static ProjectFacetsManagerImpl impl 
-        = new ProjectFacetsManagerImpl();
-    
-    private ProjectFacetsManager() {}
-    
-    /**
-     * Returns all of the available project facets.
-     * 
-     * @return a set containing all of the available project facets (element 
-     *   type: {@link IProjectFacet})
-     */
-    
-    public static Set getProjectFacets()
-    {
-        return impl.getProjectFacets();
-    }
-
-    /**
-     * Determines whether a given project facet id is recognized.
-     * 
-     * @param id the id of the project facet
-     * @return <code>true</code> if the project facet id is recognized, 
-     *   <code>false</code> otherwise 
-     */
-    
-    public static boolean isProjectFacetDefined( final String id )
-    {
-        return impl.isProjectFacetDefined( id );
-    }
-    
-    /**
-     * Returns the project facet descriptor corresponding to the specified id.
-     * 
-     * @param id the id of the project facet
-     * @return the project facet descriptor
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static IProjectFacet getProjectFacet( final String id )
-    {
-        return impl.getProjectFacet( id );
-    }
-    
-    /**
-     * Returns all of the categories.
-     * 
-     * @return a set containing all of the categories (element type: {@link 
-     *   ICategory})
-     */
-    
-    public static Set getCategories()
-    {
-        return impl.getCategories();
-    }
-
-    /**
-     * Determines whether a given category id is recognized.
-     * 
-     * @param id the id of the category
-     * @return <code>true</code> if the category id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isCategoryDefined( final String id )
-    {
-        return impl.isCategoryDefined( id );
-    }
-    
-    /**
-     * Returns the category corresponding to the specified id.
-     * 
-     * @param id the id of the category
-     * @return the category
-     * @throws IllegalArgumentException if id is not found
-     */
-    
-    public static ICategory getCategory( final String id )
-    {
-        return impl.getCategory( id );
-    }
-    
-    /**
-     * Returns all of the presets.
-     * 
-     * @return a set conaining all of the presets (element type: 
-     *   {@link IPreset})
-     */
-    
-    public static Set getPresets()
-    {
-        return impl.getPresets();
-    }
-    
-    /**
-     * Determines whether a given preset id is recognized.
-     * 
-     * @param id the preset id
-     * @return <code>true</code> if the preset id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isPresetDefined( final String id )
-    {
-        return impl.isPresetDefined( id );
-    }
-    
-    /**
-     * Returns the preset corresponding to the specified id.
-     * 
-     * @param id the preset id
-     * @return the preset
-     * @throws IllegalArgumentException if the preset is not found
-     */
-    
-    public static IPreset getPreset( final String id )
-    {
-        return impl.getPreset( id );
-    }
-    
-    /**
-     * Defines a new preset. User-defined presets are stored in the workspace. 
-     * 
-     * @param name the name of the preset
-     * @param facets the set of project facets that the preset should contain
-     *   (element type: {@see IProjectFacetVersion})
-     * @return the preset
-     */
-    
-    public static IPreset definePreset( final String name,
-                                        final Set facets )
-    {
-        return impl.definePreset( name, facets );
-    }
-    
-    /**
-     * Deletes a preset. Note that only user-defined presets can be deleted.
-     * 
-     * @param preset the preset
-     * @return <code>true</code> if the preset was deleted, or 
-     *   <code>false</code> if the preset was not found or was not user-defined 
-     */
-    
-    public static boolean deletePreset( final IPreset preset )
-    {
-        return impl.deletePreset( preset );
-    }
-    
-    /**
-     * Returns all of the faceted project templates.
-     * 
-     * @return a set conaining all of the faceted project templates (element 
-     *   type: {@link IFacetedProjectTemplate})
-     */
-    
-    public static Set getTemplates()
-    {
-        return impl.getTemplates();
-    }
-    
-    /**
-     * Determines whether a given template id is recognized.
-     * 
-     * @param id the template id
-     * @return <code>true</code> if the template id is recognized,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isTemplateDefined( final String id )
-    {
-        return impl.isTemplateDefined( id );
-    }
-    
-    /**
-     * Returns the faceted project template corresponding to the specified id.
-     * 
-     * @param id the template id
-     * @return the faceted project templte
-     * @throws IllegalArgumentException if the template is not found
-     */
-    
-    public static IFacetedProjectTemplate getTemplate( final String id )
-    {
-        return impl.getTemplate( id );
-    }
-    
-    /**
-     * Returns all of the groups.
-     * 
-     * @return a set containing all of the groups (element type: {@link IGroup})
-     */
-    
-    public static Set getGroups()
-    {
-        return impl.getGroups();
-    }
-
-    /**
-     * Determines whether a given group id is recognized.
-     * 
-     * @param id the group id
-     * @return <code>true</code> if the group id is recognized, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isGroupDefined( final String id )
-    {
-        return impl.isGroupDefined( id );
-    }
-    
-    /**
-     * Returns the group corresponding to the specified id.
-     * 
-     * @param id the group id
-     * @return the group descriptor
-     * @throws IllegalArgumentException if the group id is not found 
-     */
-    
-    public static IGroup getGroup( final String id )
-    {
-        return impl.getGroup( id );
-    }
-    
-    /**
-     * Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project.
-     *  
-     * @param project an Eclipse project
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project );
-    }
-    
-    /**
-     * Creates a wrapper around an <code>IProject</code> that exposes API for
-     * manipulating the set of project facets installed on a project. The
-     * project will be made into a faceted project if necessary.
-     *  
-     * @param project an Eclipse project
-     * @param convertIfNecessary whether the project should be converted into a
-     *   faceted project
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}, or <code>null</code>
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project,
-                                          final boolean convertIfNecessary,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project, convertIfNecessary, monitor );
-    }
-
-    /**
-     * Creates a new faceted project.
-     * 
-     * @param name project name
-     * @param location 
-     * @param monitor a progress monitor, or null if progress reporting and 
-     *   cancellation are not desired
-     * @return an instance of {@link IFacetedProject}
-     * @throws CoreException
-     */
-    
-    public static IFacetedProject create( final String name,
-                                          final IPath location,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( name, location, monitor );
-    }
-    
-    /**
-     * Checks the validity of applying the specified set of actions to the
-     * specified set of base project facets. Returns the union of all validation
-     * problems that are found.
-     *
-     * @param base the set of project facets that the actions will be applied to
-     *   (element type: {@link IProjectFacetVersion})
-     * @param actions the set of actions to evaluate (element type: {@link 
-     *   Action})
-     * @return a status object with severity of {@see IStatus#OK} if all of the
-     *   constraints were satisfied or otherwise a {@see MultiStatus} composed
-     *   of {@see ValidationProblem} status objects
-     */
-    
-    public static IStatus check( final Set base,
-                                 final Set actions )
-    {
-        return impl.check( base, actions );
-    }
-    
-    /**
-     * Sorts actions in the order that they should be applied to a project such
-     * that project facet constraints are not violated.
-     * 
-     * @param base the set of project facets that the actions will be applied to
-     *   (element type: {@link IProjectFacetVersion})
-     * @param actions the list of actions to sort (element type: {@link 
-     *   Action}); this list will be modified
-     */
-    
-    public static void sort( final Set base,
-                             final List actions )
-    {
-        impl.sort( base, actions );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
deleted file mode 100644
index 8e89e59..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * The exception that's thrown when version string cannot be parsed.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class VersionFormatException 
-    
-    extends RuntimeException 
-    
-{
-    private static final long serialVersionUID = 1L;
-    
-    private final Object comparator;
-    private final String version;
-    
-    public VersionFormatException( final Object comparator,
-                                   final String version )
-    {
-        this.comparator = comparator;
-        this.version = version;
-    }
-    
-    public Object getComparator()
-    {
-        return this.comparator;
-    }
-    
-    public String getVersion()
-    {
-        return this.version;
-    }
-    
-    public String getMessage()
-    {
-        final String msg 
-            = "Could not parse \"" + this.version + "\" with " +
-              this.comparator.getClass().getName() + ".";
-        
-        return msg;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
deleted file mode 100644
index b3a327b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Category.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Category 
-
-    implements ICategory 
-    
-{
-    private String id = null;
-    private String plugin = null;
-    private String label = null;
-    private String description = null;
-    private HashSet facets = new HashSet();
-    private Set facetsReadOnly = Collections.unmodifiableSet( this.facets );
-    
-    Category() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacet f )
-    {
-        this.facets.add( f );
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
deleted file mode 100644
index 9fa1096..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Constraint
-
-    implements IConstraint
-    
-{
-    private final IProjectFacetVersion fv;
-    private final Type type;
-    private final List operands;
-    
-    Constraint( final IProjectFacetVersion fv,
-                final Type type,
-                final Object[] operands )
-    {
-        this.fv = fv;
-        this.type = type;
-        
-        final ArrayList temp = new ArrayList();
-        
-        for( int i = 0; i < operands.length; i++ )
-        {
-            temp.add( operands[ i ] );
-        }
-        
-        this.operands = Collections.unmodifiableList( temp );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public List getOperands()
-    {
-        return this.operands;
-    }
-    
-    public Object getOperand( final int index )
-    {
-        return this.operands.get( index );
-    }
-    
-    public IStatus check( final Collection facets )
-    {
-        return check( facets, false );
-    }
-    
-    public IStatus check( final Collection facets,
-                          final boolean validateSoftDeps )
-    {
-        final MultiStatus result = createMultiStatus(); 
-        
-        if( this.type == Type.AND )
-        {
-            for( Iterator itr = this.operands.iterator(); itr.hasNext(); )
-            {
-                final IConstraint operand 
-                    = (IConstraint) itr.next();
-                
-                final IStatus st = operand.check( facets, validateSoftDeps );
-                
-                if( st.getSeverity() != IStatus.OK )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        else if( this.type == Type.OR )
-        {
-            boolean someBranchWorks = false;
-            
-            for( Iterator itr = this.operands.iterator(); itr.hasNext();  )
-            {
-                final IConstraint operand
-                    = (IConstraint) itr.next();
-                
-                if( operand.check( facets, validateSoftDeps ).isOK() )
-                {
-                    someBranchWorks = true;
-                    break;
-                }
-            }
-            
-            if( ! someBranchWorks )
-            {
-                final ValidationProblem problem
-                    = new ValidationProblem( ValidationProblem.Type.COMPLEX,
-                                             this.fv );
-                
-                result.add( problem );
-            }
-        }
-        else if( this.type == Type.REQUIRES )
-        {
-            final String name = (String) this.operands.get( 0 );
-            final String vexprstr = (String) this.operands.get( 1 );
-            
-            final boolean soft
-                = ( (Boolean) this.operands.get( 2 ) ).booleanValue();
-            
-            if( ! soft || validateSoftDeps )
-            {
-                final IProjectFacet rf 
-                    = ProjectFacetsManager.getProjectFacet( name );
-
-                final VersionMatchExpr vexpr;
-                
-                try
-                {
-                    vexpr = new VersionMatchExpr( rf, vexprstr );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return result;
-                }
-                
-                boolean found = false;
-                
-                for( Iterator itr = facets.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    if( fv.getProjectFacet() == rf )
-                    {
-                        try
-                        {
-                            if( vexpr.evaluate( (IVersion) fv ) )
-                            {
-                                found = true;
-                            }
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                        
-                        break;
-                    }
-                }
-                
-                if( ! found )
-                {
-                    final ValidationProblem.Type ptype;
-                    final String vstr;
-                    
-                    if( vexpr.isSingleVersionMatch() )
-                    {
-                        ptype = ValidationProblem.Type.REQUIRES_EXACT;
-                        vstr = vexpr.toString();
-                    }
-                    else if( vexpr.isSimpleAllowNewer() )
-                    {
-                        ptype = ValidationProblem.Type.REQUIRES_ALLOW_NEWER;
-                        vstr = vexpr.getFirstVersion();
-                    }
-                    else
-                    {
-                        ptype = ValidationProblem.Type.REQUIRES_EXPR;
-                        vstr = vexpr.toString();
-                    }
-                    
-                    final ValidationProblem problem
-                        = new ValidationProblem( ptype, this.fv, rf.getLabel(), 
-                                                 vstr );
-                    
-                    result.add( problem );
-                }
-            }
-        }
-        else if( this.type == Type.CONFLICTS )
-        {
-            final String gid = (String) this.operands.get( 0 );
-            final IGroup group = ProjectFacetsManager.getGroup( gid );
-            
-            for( Iterator itr = group.getMembers().iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion member
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( member != this.fv && facets.contains( member ) )
-                {
-                    final ValidationProblem.Type t 
-                        = ValidationProblem.Type.CONFLICTS;
-                            
-                    final ValidationProblem problem
-                        = new ValidationProblem( t, this.fv, member );
-                    
-                    result.add( problem );
-                }
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return result;
-    }
-    
-    static MultiStatus createMultiStatus()
-    {
-        return createMultiStatus( new IStatus[ 0 ] );
-    }
-
-    static MultiStatus createMultiStatus( final IStatus[] children )
-    {
-        return new MultiStatus( FacetCorePlugin.PLUGIN_ID, 0, children, 
-                                Resources.validationProblems, null );
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String validationProblems;
-        
-        static
-        {
-            initializeMessages( Constraint.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
deleted file mode 100644
index 9b2f33c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.properties
+++ /dev/null
@@ -1 +0,0 @@
-validationProblems = One or more constraints have not been satisfied.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java
deleted file mode 100644
index a266174..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/CopyOnWriteSet.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.AbstractSet;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class CopyOnWriteSet
-
-    extends AbstractSet
-    
-{
-    private Set base;
-    private Set baseReadOnly;
-    
-    public CopyOnWriteSet()
-    {
-        this.base = new HashSet();
-        this.baseReadOnly = null;
-    }
-    
-    public boolean add( final Object obj )
-    {
-        copy();
-        return this.base.add( obj );
-    }
-
-    public boolean addAll( final Collection collection )
-    {
-        copy();
-        return this.base.addAll( collection );
-    }
-    
-    public boolean remove( final Object obj )
-    {
-        copy();
-        return this.base.remove( obj );
-    }
-    
-    public boolean removeAll( final Collection collection )
-    {
-        copy();
-        return this.base.removeAll( collection );
-    }
-
-    public boolean retainAll( final Collection collection )
-    {
-        copy();
-        return this.base.retainAll( collection );
-    }
-    
-    public void clear()
-    {
-        if( this.baseReadOnly != null )
-        {
-            this.base = new HashSet();
-            this.baseReadOnly = null;
-        }
-        else
-        {
-            this.base.clear();
-        }
-    }
-
-    public int size()
-    {
-        return this.base.size();
-    }
-
-    public Iterator iterator()
-    {
-        return new CopyOnWriteIterator( this.base.iterator() );
-    }
-    
-    public Set getReadOnlySet()
-    {
-        if( this.baseReadOnly == null )
-        {
-            this.baseReadOnly = Collections.unmodifiableSet( this.base );
-        }
-        
-        return this.baseReadOnly;
-    }
-    
-    private void copy()
-    {
-        if( this.baseReadOnly != null )
-        {
-            this.base = new HashSet( this.base );
-            this.baseReadOnly = null;
-        }
-    }
-    
-    private final class CopyOnWriteIterator
-    
-        implements Iterator
-        
-    {
-        private final Iterator itr;
-        private Object current;
-        
-        public CopyOnWriteIterator( final Iterator itr )
-        {
-            this.itr = itr;
-            this.current = null;
-        }
-        
-        public void remove()
-        {
-            CopyOnWriteSet.this.remove( this.current );
-        }
-
-        public boolean hasNext()
-        {
-            return this.itr.hasNext();
-        }
-
-        public Object next()
-        {
-            this.current = this.itr.next();
-            return this.current;
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
deleted file mode 100644
index e14eccb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetCorePlugin 
-
-    extends Plugin 
-    
-{
-    public static final String PLUGIN_ID = "org.eclipse.wst.common.project.facet.core";
-    
-    private static FacetCorePlugin plugin;
-    
-    public FacetCorePlugin() 
-    {
-        super();
-        plugin = this;
-    }
-    
-    public static FacetCorePlugin getInstance()
-    {
-        return plugin;
-    }
-    
-    public static void log( final Exception e )
-    {
-        final String msg = e.getMessage() + "";
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-
-    public static void log( final IStatus status )
-    {
-        getInstance().getLog().log( status );
-    }
-    
-    public static void log( final String msg )
-    {
-        log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, null ) );
-    }
-    
-    public static IStatus createErrorStatus( final String msg )
-    {
-        return createErrorStatus( msg, null );
-    }
-
-    public static IStatus createErrorStatus( final String msg,
-                                             final Exception e )
-    {
-        return new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, msg, e );
-    }
-    
-    public static Object instantiate( final String pluginId,
-                                      final String clname,
-                                      final Class interfc )
-    
-        throws CoreException
-        
-    {
-        final Bundle bundle = Platform.getBundle( pluginId );
-        
-        final Object obj;
-        
-        try
-        {
-            final Class cl = bundle.loadClass( clname );
-            obj = cl.newInstance();
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = NLS.bind( Resources.failedToCreate, clname );
-            
-            throw new CoreException( createErrorStatus( msg, e ) );
-        }
-        
-        if( ! interfc.isAssignableFrom( obj.getClass() ) )
-        {
-            final String msg
-                = NLS.bind( Resources.doesNotImplement, clname, 
-                            interfc.getClass().getName() );
-            
-            throw new CoreException( createErrorStatus( msg ) );
-        }
-        
-        return obj;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedToCreate;
-        public static String doesNotImplement;
-        
-        static
-        {
-            initializeMessages( FacetCorePlugin.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties
deleted file mode 100644
index 94219a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetCorePlugin.properties
+++ /dev/null
@@ -1 +0,0 @@
-failedToCreate = Failed to instantiate class {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
deleted file mode 100644
index 98e5c09..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
+++ /dev/null
@@ -1,969 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-/* 
- * Synchronization Notes
- * 
- * 1. There is an internal lock object that's used to synchronize access to
- *    the data structure. By synchronizing on an internal object, outside code
- *    cannot cause a deadlock by synchronizing on the FacetedProject object.
- *    
- * 2. Readers synchronize on the lock object for the duration of the method
- *    call. This protects the readers from writers and makes sure that reader
- *    is not reading stale data from thread's local memory.
- *    
- * 3. All collections that are returned by the reader methods are guaranteed
- *    to not change after the fact. This is implemented through a copy-on-write 
- *    policy.
- * 
- * 4. Writers synchronize on the lock object briefly at the start of the method 
- *    and mark the FacetedProject as being modified. If the project is already
- *    being modified, the new writer will wait. Inside the bodies of the
- *    modifier methods, the writer thread is only synchronized on the lock
- *    object while modifying the internal datastructures. These synchronization
- *    sections are kept short and they never span over code that might modify
- *    file system resources. This is done to prevent deadlocks. Once the write
- *    is complete, the writer thread synchronizes on the lock object, resets the 
- *    "being modified" flag, and notifies any writers that may be waiting. 
- */
-
-public final class FacetedProject
-
-    implements IFacetedProject
-    
-{
-    private static final String TRACING_DELEGATE_CALLS
-        = FacetCorePlugin.PLUGIN_ID + "/delegate/calls";
-    
-    private final IProject project;
-    private final CopyOnWriteSet facets;
-    private final CopyOnWriteSet fixed;
-    private String runtimeName;
-    IFile f;
-    private long fLastModified = -1;
-    private final List listeners;
-    private final Object lock = new Object();
-    private boolean isBeingModified = false;
-    private Thread modifierThread = null;
-    
-    FacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        this.project = project;
-        this.facets = new CopyOnWriteSet();
-        this.fixed = new CopyOnWriteSet();
-        this.listeners = new ArrayList();
-        
-        this.f = project.getFile( ".settings/" + FacetCorePlugin.PLUGIN_ID 
-                                  + ".xml" );
-        
-        refresh();
-    }
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public Set getProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.getReadOnlySet();
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacetVersion fv )
-    {
-        synchronized( this.lock )
-        {
-            return this.facets.contains( fv );
-        }
-    }
-    
-    public IProjectFacetVersion getInstalledVersion( final IProjectFacet f )
-    {
-        synchronized( this.lock )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion fv 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( fv.getProjectFacet() == f )
-                {
-                    return fv;
-                }
-            }
-            
-            return null;
-        }
-    }
-
-    public void installProjectFacet( final IProjectFacetVersion fv,
-                                     final Object config,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.INSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-
-    public void uninstallProjectFacet( final IProjectFacetVersion fv,
-                                       final Object config,
-                                       final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final Action action 
-            = new Action( Action.Type.UNINSTALL, fv, config );
-            
-        modify( Collections.singleton( action ), monitor );
-    }
-    
-    public void modify( final Set actions,
-                        final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginModification();
-        
-        try
-        {
-            final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-            {
-                public void run( final IProgressMonitor monitor ) 
-                
-                    throws CoreException
-                    
-                {
-                    modifyInternal( actions, monitor );
-                }
-            };
-            
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, monitor );
-        }
-        finally
-        {
-            endModification();
-        }
-        
-        notifyListeners();
-    }
-        
-    private void modifyInternal( final Set actions,
-                                 final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", actions.size() + 1 );
-        }
-        
-        try
-        {
-            final IStatus st 
-                = ProjectFacetsManager.check( this.facets, actions );
-            
-            if( ! st.isOK() )
-            {
-                throw new CoreException( st );
-            }
-            
-            // Sort the actions into the order of execution.
-            
-            final List copy = new ArrayList( actions );
-            ProjectFacetsManager.sort( this.facets, copy );
-            
-            // Update and check the action configs.
-            
-            for( int i = 0, n = copy.size(); i < n; i++ )
-            {
-                Action action = (Action) copy.get( i );
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                Object config = action.getConfig();
-                
-                if( config == null )
-                {
-                    config = fv.createActionConfig( action.getType(), 
-                                                    this.project.getName() );
-                    
-                    if( config != null )
-                    {
-                        action = new Action( action.getType(), fv, config );
-                        copy.set( i, action );
-                    }
-                }
-                
-                if( config != null )
-                {
-                    IActionConfig cfg = null;
-                    
-                    if( config instanceof IActionConfig )
-                    {
-                        cfg = (IActionConfig) config;
-                    }
-                    else
-                    {
-                        final IAdapterManager m = Platform.getAdapterManager();
-                        cfg = (IActionConfig) m.loadAdapter( config, IActionConfig.class.getName() );
-                    }
-                    
-                    if( cfg != null )
-                    {
-                        cfg.setProjectName( this.project.getName() );
-                        cfg.setVersion( fv );
-                        
-                        final IStatus status = cfg.validate();
-                        
-                        if( status.getSeverity() != IStatus.OK )
-                        {
-                            throw new CoreException( status );
-                        }
-                    }
-                }
-            }
-            
-            // Execute the actions.
-            
-            for( Iterator itr = copy.iterator(); itr.hasNext(); )
-            {
-                final Action action = (Action) itr.next();
-                final Action.Type type = action.getType();
-                
-                final ProjectFacetVersion fv 
-                    = (ProjectFacetVersion) action.getProjectFacetVersion();
-                
-                final IDelegate delegate 
-                    = fv.getDelegate( IDelegate.Type.get( type ) );
-                
-                if( delegate == null )
-                {
-                    if( monitor != null )
-                    {
-                        monitor.worked( 1 );
-                    }
-                }
-                else
-                {
-                    final SubProgressMonitor submonitor
-                        = monitor == null 
-                          ? null : new SubProgressMonitor( monitor, 1 );
-                    
-                    callDelegate( this.project, fv, action.getConfig(),
-                                  IDelegate.Type.get( type ), delegate,
-                                  submonitor );
-                }
-        
-                synchronized( this.lock )
-                {
-                    apply( action );
-                }
-                
-                save();
-            }
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public Set getFixedProjectFacets()
-    {
-        synchronized( this.lock )
-        {
-            return this.fixed.getReadOnlySet();
-        }
-    }
-    
-    public void setFixedProjectFacets( final Set facets )
-    
-        throws CoreException
-        
-    {
-        beginModification();
-        
-        try
-        {
-            final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-            {
-                public void run( final IProgressMonitor monitor ) 
-                
-                    throws CoreException
-                    
-                {
-                    synchronized( FacetedProject.this.lock )
-                    {
-                        FacetedProject.this.fixed.clear();
-                        FacetedProject.this.fixed.addAll( facets );
-                    }
-                        
-                    save();
-                }
-            };
-            
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        }
-        finally
-        {
-            endModification();
-        }
-        
-        notifyListeners();
-    }
-    
-    public IRuntime getRuntime()
-    {
-        synchronized( this.lock )
-        {
-            if( RuntimeManager.isRuntimeDefined( this.runtimeName ) )
-            {
-                return RuntimeManager.getRuntime( this.runtimeName );
-            }
-            else
-            {
-                return null;
-            }
-        }
-    }
-    
-    public void setRuntime( final IRuntime runtime,
-                            final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        beginModification();
-        
-        try
-        {
-            final IWorkspaceRunnable wr = new IWorkspaceRunnable()
-            {
-                public void run( final IProgressMonitor monitor ) 
-                
-                    throws CoreException
-                    
-                {
-                    setRuntimeInternal( runtime, monitor );
-                }
-            };
-            
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            ws.run( wr, ws.getRoot(), IWorkspace.AVOID_UPDATE, null );
-        }
-        finally
-        {
-            endModification();
-        }
-        
-        notifyListeners();
-    }
-    
-    private void setRuntimeInternal( final IRuntime runtime,
-                                     final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", this.facets.size() );
-        }
-        
-        try
-        {
-            this.runtimeName = ( runtime == null ? null : runtime.getName() );
-            save();
-
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final ProjectFacetVersion fv
-                    = (ProjectFacetVersion) itr.next();
-                
-                final IDelegate delegate
-                    = fv.getDelegate( IDelegate.Type.RUNTIME_CHANGED );
-                
-                if( delegate == null )
-                {
-                    if( monitor != null )
-                    {
-                        monitor.worked( 1 );
-                    }
-                }
-                else
-                {
-                    final SubProgressMonitor submonitor
-                        = monitor == null 
-                          ? null : new SubProgressMonitor( monitor, 1 );
-                    
-                    callDelegate( this.project, fv, null,
-                                  IDelegate.Type.RUNTIME_CHANGED, delegate,
-                                  submonitor );
-                }
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public void addListener( final IFacetedProjectListener listener )
-    {
-        synchronized( this.listeners )
-        {
-            this.listeners.add( listener );
-        }
-    }
-    
-    public void removeListener( final IFacetedProjectListener listener )
-    {
-        synchronized( this.listeners )
-        {
-            this.listeners.remove( listener );
-        }
-    }
-    
-    private void notifyListeners()
-    {
-        synchronized( this.listeners )
-        {
-            for( Iterator itr = this.listeners.iterator(); itr.hasNext(); )
-            {
-                try
-                {
-                    ( (IFacetedProjectListener) itr.next() ).projectChanged();
-                }
-                catch( Exception e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-    }
-    
-    private void beginModification()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            while( this.isBeingModified )
-            {
-                if( this.modifierThread == Thread.currentThread() )
-                {
-                    final String msg = Resources.illegalModificationMsg;
-                    final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                    
-                    throw new CoreException( st );
-                }
-                
-                try
-                {
-                    this.lock.wait();
-                }
-                catch( InterruptedException e ) {}
-            }
-            
-            this.isBeingModified = true;
-            this.modifierThread = Thread.currentThread();
-        }
-    }
-    
-    private void endModification()
-    {
-        synchronized( this.lock )
-        {
-            this.isBeingModified = false;
-            this.modifierThread = null;
-            this.lock.notifyAll();
-        }
-    }
-    
-    private static void callDelegate( final IProject project,
-                                      final IProjectFacetVersion fv,
-                                      final Object config,
-                                      final IDelegate.Type type,
-                                      final IDelegate delegate,
-                                      final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        final String tracingDelegateCallsStr
-            = Platform.getDebugOption( TRACING_DELEGATE_CALLS );
-        
-        final boolean tracingDelegateCalls 
-            = tracingDelegateCallsStr == null ? false 
-              : tracingDelegateCallsStr.equals( "true" ); 
-        
-        long timeStarted = -1;
-        
-        if( tracingDelegateCalls )
-        {
-            final String msg
-                = Resources.bind( Resources.tracingDelegateStarting,
-                                  fv.getProjectFacet().getId(),
-                                  fv.getVersionString(), type.toString(),
-                                  delegate.getClass().getName() );
-            
-            System.out.println( msg );
-            
-            timeStarted = System.currentTimeMillis();
-        }
-        
-        try
-        {
-            delegate.execute( project, fv, config, monitor ); 
-        }
-        catch( Exception e )
-        {
-            final String msg;
-            
-            if( type == IDelegate.Type.INSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnInstall, fv );
-            }
-            else if( type == IDelegate.Type.UNINSTALL )
-            {
-                msg = NLS.bind( Resources.failedOnUninstall, fv );
-            }
-            else if( type == IDelegate.Type.VERSION_CHANGE )
-            {
-                msg = NLS.bind( Resources.failedOnVersionChange, 
-                                fv.getProjectFacet().getLabel(), 
-                                fv.getVersionString() );
-            }
-            else if( type == IDelegate.Type.RUNTIME_CHANGED )
-            {
-                msg = NLS.bind( Resources.failedOnRuntimeChanged, fv );
-            }
-            else
-            {
-                msg = "Unknown delegate type!";
-            }
-            
-            final IStatus status
-                = new Status( IStatus.ERROR, FacetCorePlugin.PLUGIN_ID, 0, 
-                              msg, e );
-
-            throw new CoreException( status ); 
-        }
-        
-        if( tracingDelegateCalls )
-        {
-            final long duration = System.currentTimeMillis() - timeStarted;
-            
-            final String msg 
-                = NLS.bind( Resources.tracingDelegateFinished, 
-                            String.valueOf( duration ) );
-            
-            System.out.println( msg );
-        }
-    }
-    
-    private void apply( final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            this.facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            this.facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion x 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    itr.remove();
-                    break;
-                }
-            }
-            
-            this.facets.add( fv );
-        }
-    }
-    
-    private void save()
-    
-        throws CoreException
-        
-    {
-        final StringWriter w = new StringWriter();
-        final PrintWriter out = new PrintWriter( w );
-        
-        final String nl = System.getProperty( "line.separator" );
-        
-        out.print( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" );
-        out.print( nl );
-        out.print( "<faceted-project>" );
-        out.print( nl );
-        
-        if( this.runtimeName != null )
-        {
-            out.print( "  <runtime name=\"" );
-            out.print( this.runtimeName );
-            out.print( "\"/>" );
-            out.print( nl );
-        }
-        
-        for( Iterator itr = this.fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            out.print( "  <fixed facet=\"" );
-            out.print( f.getId() );
-            out.print( "\"/>" );
-            out.print( nl );
-        }
-        
-        for( Iterator itr = this.facets.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv
-                = (IProjectFacetVersion) itr.next();
-            
-            out.print( "  <installed facet=\"" );
-            out.print( fv.getProjectFacet().getId() );
-            out.print( "\" version=\"" );
-            out.print( fv.getVersionString() );
-            out.print( "\"/>" );
-            out.print( nl );
-        }
-        
-        out.print( "</faceted-project>" );
-        out.print( nl );
-        
-        final InputStream in 
-            = new ByteArrayInputStream( w.getBuffer().toString().getBytes() );
-        
-        if( this.f.exists() )
-        {
-            this.f.setContents( in, true, false, null );
-        }
-        else
-        {
-            final IFolder parent = (IFolder) this.f.getParent();
-            
-            if( ! parent.exists() )
-            {
-                parent.create( true, true, null );
-            }
-            
-            this.f.create( in, true, null );
-        }
-        
-        this.fLastModified = this.f.getLocation().toFile().lastModified();
-    }
-
-    public void refresh()
-    
-        throws CoreException
-        
-    {
-        synchronized( this.lock )
-        {
-            if( this.f.exists() && 
-                this.f.getLocation().toFile().lastModified() == this.fLastModified )
-            {
-                return;
-            }
-            
-            this.facets.clear();
-            this.fixed.clear();
-            this.runtimeName = null;
-            
-            if( ! this.f.exists() )
-            {
-                this.fLastModified = -1;
-                return;
-            }
-            
-            this.fLastModified = this.f.getLocation().toFile().lastModified();
-            
-            final Element root = parse( this.f.getLocation().toFile() );
-            final Element[] elements = children( root );
-            
-            for( int i = 0; i < elements.length; i++ )
-            {
-                final Element e = elements[ i ];
-                final String name = e.getNodeName();
-                
-                if( name.equals( "runtime" ) )
-                {
-                    this.runtimeName = e.getAttribute( "name" );
-                }
-                else if( name.equals( "fixed" ) )
-                {
-                    final String id = e.getAttribute( "facet" );
-                    
-                    if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.facetNotDefined, id );
-                        
-                        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                        
-                        throw new CoreException( st );
-                    }
-                    
-                    final IProjectFacet f
-                        = ProjectFacetsManager.getProjectFacet( id );
-                    
-                    this.fixed.add( f );
-                }
-                else if( name.equals( "installed" ) )
-                {
-                    final String id = e.getAttribute( "facet" );
-                    final String version = e.getAttribute( "version" );
-                    
-                    if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.facetNotDefined, id );
-                        
-                        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                        
-                        throw new CoreException( st );
-                    }
-                    
-                    final IProjectFacet f
-                        = ProjectFacetsManager.getProjectFacet( id );
-                    
-                    if( ! f.hasVersion( version ) )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.facetVersionNotDefined, id,
-                                        version );
-                        
-                        final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-                        
-                        throw new CoreException( st );
-                    }
-                    
-                    final IProjectFacetVersion fv = f.getVersion( version );
-                    
-                    this.facets.add( fv );
-                }
-            }
-        }
-    }
-    
-    private static Element parse( final File f )
-    {
-        final DocumentBuilder docbuilder;
-        
-        try
-        {
-            final DocumentBuilderFactory factory 
-                = DocumentBuilderFactory.newInstance();
-            
-            factory.setValidating( false );
-            
-            docbuilder = factory.newDocumentBuilder();
-            
-            docbuilder.setEntityResolver
-            (
-                new EntityResolver()
-                {
-                    public InputSource resolveEntity( final String publicID, 
-                                                      final String systemID )
-                    {
-                        return new InputSource( new StringReader( "" ) );
-                    }
-                }
-            );
-        }
-        catch( ParserConfigurationException e )
-        {
-            throw new RuntimeException( e );
-        }
-
-        InputStream in = null;
-
-        try
-        {
-            in = new BufferedInputStream( new FileInputStream( f ) );
-            return docbuilder.parse( in ).getDocumentElement();
-        }
-        catch( Exception e )
-        {
-            throw new RuntimeException( e );
-        }
-        finally
-        {
-            if( in != null )
-            {
-                try
-                {
-                    in.close();
-                }
-                catch( IOException e ) {}
-            }
-        }
-    }
-    
-    private Element[] children( final Element element )
-    {
-        final List list = new ArrayList();
-        final NodeList nl = element.getChildNodes();
-        
-        for( int i = 0, n = nl.getLength(); i < n; i++ )
-        {
-            final Node node = nl.item( i );
-            
-            if( node.getNodeType() == Node.ELEMENT_NODE )
-            {
-                list.add( node );
-            }
-        }
-        
-        return (Element[]) list.toArray( new Element[ list.size() ] );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedOnInstall;
-        public static String failedOnUninstall;
-        public static String failedOnVersionChange;
-        public static String failedOnRuntimeChanged;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String illegalModificationMsg;
-        public static String tracingDelegateStarting;
-        public static String tracingDelegateFinished;
-        
-        static
-        {
-            initializeMessages( FacetedProject.class.getName(), 
-                                Resources.class );
-        }
-        
-        public static final String bind( final String msg,
-                                         final String arg1,
-                                         final String arg2,
-                                         final String arg3,
-                                         final String arg4 )
-        {
-            return NLS.bind( msg, new Object[] { arg1, arg2, arg3, arg4 } );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
deleted file mode 100644
index dcf4e05..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-failedOnInstall = Failed while installing {0}.
-failedOnUninstall = Failed while uninstalling {0}.
-failedOnVersionChange = Failed while changing version of {0} to {1}.
-failedOnRuntimeChanged = Failed while {0} was reacting to changed runtime.
-facetNotDefined = Facet {0} is not defined.
-facetVersionNotDefined = Version {1} of facet {0} is not defined.
-illegalModificationMsg = Cannot modify faceted project from within a facet delegate.
-tracingDelegateStarting = \
-\Calling project facet delegate:\n\
-\  facet: {0} : {1}\n\
-\  type:  {2}\n\
-\  class: {3}
-tracingDelegateFinished = Project facet delegate completed successfully in {0} ms.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
deleted file mode 100644
index daaabcb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectNature.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectNature;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectNature
-
-    implements IProjectNature
-
-{
-    public static final String NATURE_ID 
-        = "org.eclipse.wst.common.project.facet.core.nature";
-    
-    private IProject project;
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public void setProject( final IProject project )
-    {
-        this.project = project;
-    }
-    
-    public void configure() {}
-    
-    public void deconfigure() {}
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
deleted file mode 100644
index 08e11be..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProjectTemplate.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class FacetedProjectTemplate
-
-    implements IFacetedProjectTemplate
-    
-{
-    private String id;
-    private String label;
-    private final Set fixed = new HashSet();
-    private final Set fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-    private IPreset preset;
-    
-    FacetedProjectTemplate() {}
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public Set getFixedProjectFacets()
-    {
-        return this.fixedReadOnly;
-    }
-    
-    void addFixedProjectFacet( final IProjectFacet facet )
-    {
-        this.fixed.add( facet );
-    }
-
-    public IPreset getInitialPreset()
-    {
-        return this.preset;
-    }
-    
-    void setInitialPreset( final IPreset preset )
-    {
-        this.preset = preset;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
deleted file mode 100644
index b91e369..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Group.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@see IGroup} interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Group 
-
-    implements IGroup 
-    
-{
-    private String id = null;
-    
-    private final Set members = new HashSet();
-    
-    private final Set membersReadOnly 
-        = Collections.unmodifiableSet( this.members );
-    
-    Group() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public Set getMembers()
-    {
-        return this.membersReadOnly;
-    }
-    
-    void addMember( final IProjectFacetVersion fv )
-    {
-        this.members.add( fv );
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java
deleted file mode 100644
index 72b7b8e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IVersion.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract interface IVersion
-{
-    String getVersionString();
-    Versionable getVersionable();
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java
deleted file mode 100644
index 8101f76..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/IndexedSet.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class IndexedSet
-
-    extends HashSet
-    
-{
-    private static final long serialVersionUID = 1L;
-    private final Set unmodifiable = Collections.unmodifiableSet( this );
-    private final HashMap index = new HashMap();
-    
-    public void add( final Object key,
-                     final Object value )
-    {
-        add( value );
-        this.index.put( key, value );
-    }
-    
-    public boolean delete( final Object key )
-    {
-        final Object value = index.get( key );
-        
-        if( value == null )
-        {
-            return false;
-        }
-        else
-        {
-            remove( value );
-            this.index.remove( key );
-            return true;
-        }
-    }
-    
-    public Object get( final Object key )
-    {
-        return this.index.get( key );
-    }
-    
-    public boolean containsKey( final Object key )
-    {
-        return this.index.containsKey( key );
-    }
-    
-    public Set getUnmodifiable()
-    {
-        return this.unmodifiable;
-    }
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java
deleted file mode 100644
index 38b8d64..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Preset.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * The implementation of the {@see IPreset} interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Preset
-
-    implements IPreset
-    
-{
-    private String id;
-    private String label;
-    
-    private final Set facets = new HashSet();
-    
-    private final Set facetsReadOnly 
-        = Collections.unmodifiableSet( this.facets );
-    
-    private boolean isUserDefined = false;
-    
-    Preset() {}
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-
-    public String getLabel()
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    void addProjectFacet( final IProjectFacetVersion fv )
-    {
-        this.facets.add( fv );
-    }
-    
-    void addProjectFacet( final Set facets )
-    {
-        this.facets.addAll( facets );
-    }
-    
-    public boolean isUserDefined()
-    {
-        return this.isUserDefined;
-    }
-    
-    void setUserDefined( final boolean isUserDefined )
-    {
-        this.isUserDefined = isUserDefined;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
deleted file mode 100644
index 5e71b14..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-
-/**
- * The implementation of the <code>IProjectFacet</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacet 
-
-    extends Versionable
-    implements IProjectFacet 
-    
-{
-    private static final IVersionAdapter VERSION_ADAPTER = new IVersionAdapter()
-    {
-        public String adapt( final Object obj )
-        {
-            return ( (IProjectFacetVersion) obj ).getVersionString();
-        }
-    };
-    
-    private String id;
-    private String plugin;
-    private String label;
-    private String description;
-    private ICategory category;
-    private final List actionDefinitions = new ArrayList();
-    
-    ProjectFacet() {}
-    
-    public String getId() 
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public String getLabel() 
-    {
-        return this.label;
-    }
-    
-    void setLabel( final String label )
-    {
-        this.label = label;
-    }
-
-    public String getDescription() 
-    {
-        return this.description;
-    }
-    
-    void setDescription( final String description )
-    {
-        this.description = description;
-    }
-    
-    public ICategory getCategory()
-    {
-        return this.category;
-    }
-    
-    void setCategory( final ICategory category )
-    {
-        this.category = category;
-    }
-    
-    public IProjectFacetVersion getVersion( final String version )
-    {
-        final IProjectFacetVersion fv
-            = (IProjectFacetVersion) this.versions.get( version );
-        
-        if( fv == null )
-        {
-            final String msg 
-                = "Could not find version " + version + " of project facet " 
-                  + this.id + ".";
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return fv;
-    }
-    
-    void addVersion( final IProjectFacetVersion version )
-    {
-        this.versions.add( version.getVersionString(), version );
-    }
-
-    public IProjectFacetVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        final Comparator comp = getVersionComparator( true, VERSION_ADAPTER );
-        final Object max = Collections.max( this.versions, comp );
-        
-        return (IProjectFacetVersion) max;
-    }
-    
-    public IProjectFacetVersion getLatestSupportedVersion( final IRuntime r )
-    
-        throws CoreException
-        
-    {
-        for( Iterator itr = getSortedVersions( false ).iterator(); 
-             itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv = (IProjectFacetVersion) itr.next();
-            
-            if( r.supports( fv ) )
-            {
-                return fv;
-            }
-        }
-        
-        return null;
-    }
-    
-    protected IVersionAdapter getVersionAdapter()
-    {
-        return VERSION_ADAPTER;
-    }
-    
-    ActionDefinition getActionDefinition( final IProjectFacetVersion fv,
-                                          final IDelegate.Type type )
-    
-        throws CoreException
-        
-    {
-        ActionDefinition result = null;
-        
-        for( Iterator itr = this.actionDefinitions.iterator(); itr.hasNext(); )
-        {
-            final ActionDefinition def = (ActionDefinition) itr.next();
-            
-            if( def.type == type && 
-                def.versionMatchExpr.evaluate( (IVersion) fv ) )
-            {
-                if( result == null )
-                {
-                    result = def;
-                }
-                else
-                {
-                    // TODO: Throw better error.
-                    throw new RuntimeException();
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    void addActionDefinition( final ActionDefinition actionDefinition )
-    {
-        this.actionDefinitions.add( actionDefinition );
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( ProjectFacetsManagerImpl.Resources.facetVersionNotDefinedNoPlugin,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.label;
-    }
-    
-    static final class ActionDefinition
-    {
-        public IDelegate.Type type;
-        public VersionMatchExpr versionMatchExpr;
-        public String delegateClassName;
-        public String configFactoryClassName;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
deleted file mode 100644
index 5c401e2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IActionConfig;
-import org.eclipse.wst.common.project.facet.core.IActionConfigFactory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacet.ActionDefinition;
-import org.osgi.framework.Bundle;
-
-/**
- * The implementation of the <code>IProjectFacetVersion</code> interface.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetVersion 
-
-    implements IProjectFacetVersion, IVersion 
-    
-{
-    private ProjectFacet facet;
-    private String version;
-    private IConstraint constraint;
-    private String plugin;
-    private final HashMap delegates = new HashMap();
-    
-    ProjectFacetVersion() {}
-    
-    public IProjectFacet getProjectFacet() 
-    {
-        return this.facet;
-    }
-    
-    void setProjectFacet( final ProjectFacet facet )
-    {
-        this.facet = facet;
-    }
-
-    public String getVersionString() 
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable getVersionable()
-    {
-        return (Versionable) this.facet;
-    }
-
-    public IConstraint getConstraint()
-    {
-        if( this.constraint == null )
-        {
-            this.constraint = new Constraint( this, IConstraint.Type.AND, new Object[ 0 ] );
-        }
-        
-        return this.constraint;
-    }
-    
-    void setConstraint( final IConstraint constraint )
-    {
-        this.constraint = constraint;
-    }
-    
-    void setPlugin( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    public boolean supports( final Action.Type type )
-    {
-        try
-        {
-            return this.facet.getActionDefinition( this, IDelegate.Type.get( type ) ) != null;
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return false;
-        }
-    }
-    
-    public Object createActionConfig( final Action.Type type,
-                                      final String pjname )
-    
-        throws CoreException
-        
-    {
-        if( ! supports( type ) )
-        {
-            final String msg 
-                = NLS.bind( Resources.actionNotSupported, toString(), 
-                            type.toString() );
-            
-            throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-        }
-        
-        final ActionDefinition def
-            = this.facet.getActionDefinition( this, IDelegate.Type.get( type ) );
-        
-        if( def == null || def.configFactoryClassName == null )
-        {
-            return null;
-        }
-        else
-        {
-            final String clname = def.configFactoryClassName;
-            final Object temp = create( clname );
-            
-            if( ! ( temp instanceof IActionConfigFactory ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.notInstanceOf, clname,
-                                IActionConfigFactory.class.getName() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-            }
-            
-            final Object config = ( (IActionConfigFactory) temp ).create();
-            
-            IActionConfig cfg = null;
-            
-            if( config instanceof IActionConfig )
-            {
-                cfg = (IActionConfig) config;
-            }
-            else
-            {
-                final IAdapterManager m = Platform.getAdapterManager();
-                cfg = (IActionConfig) m.loadAdapter( config, IActionConfig.class.getName() );
-            }
-            
-            if( cfg != null )
-            {
-                cfg.setProjectName( pjname );
-                cfg.setVersion( this );
-            }
-            
-            return config;
-        }
-    }
-    
-    public boolean isSameActionConfig( final Action.Type type,
-                                       final IProjectFacetVersion fv )
-    
-        throws CoreException
-        
-    {
-        final IDelegate.Type t = IDelegate.Type.get( type );
-        
-        return this.facet.getActionDefinition( fv, t )
-               == this.facet.getActionDefinition( this, t );
-    }
-    
-    IDelegate getDelegate( final IDelegate.Type type )
-    
-        throws CoreException
-        
-    {
-        Object delegate = this.delegates.get( type );
-        
-        if( delegate == null )
-        {
-            final ActionDefinition def
-                = this.facet.getActionDefinition( this, type );
-            
-            if( def == null )
-            {
-                return null;
-            }
-            
-            final String clname = def.delegateClassName;
-            delegate = create( clname );
-            
-            if( ! ( delegate instanceof IDelegate ) )
-            {
-                final String msg
-                    = NLS.bind( Resources.notInstanceOf, clname,
-                                IDelegate.class.getName() );
-                
-                throw new CoreException( FacetCorePlugin.createErrorStatus( msg ) );
-            }
-            
-            this.delegates.put( type, delegate );
-        }
-        
-        return (IDelegate) delegate;
-    }
-    
-    private Object create( final String clname )
-    
-        throws CoreException
-        
-    {
-        final Bundle bundle = Platform.getBundle( this.plugin );
-        
-        try
-        {
-            final Class cl = bundle.loadClass( clname );
-            return cl.newInstance();
-        }
-        catch( Exception e )
-        {
-            final String msg
-                = NLS.bind( Resources.failedToCreate, clname );
-            
-            final IStatus st = FacetCorePlugin.createErrorStatus( msg, e );
-            
-            throw new CoreException( st );
-        }
-    }
-    
-    public String toString()
-    {
-        return this.facet.getLabel() + " " + this.version;
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String actionNotSupported;
-        public static String notInstanceOf;
-        public static String failedToCreate;
-        
-        static
-        {
-            initializeMessages( ProjectFacetVersion.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
deleted file mode 100644
index 391e1f9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetVersion.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-actionNotSupported = Project facet {0} does not support action type {1}.
-notInstanceOf = Class {0} is not an instance of {1}.
-failedToCreate = Failed to instantiate class {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java
deleted file mode 100644
index 480d93b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java
+++ /dev/null
@@ -1,1637 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.ICategory;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IDelegate;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IPreset;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject.Action;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacet.ActionDefinition;
-import org.osgi.service.prefs.BackingStoreException;
-import org.osgi.service.prefs.Preferences;
-
-/**
- * The implementation of the {@see ProjectFacetsManager} abstract class.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ProjectFacetsManagerImpl
-{
-    private static final String EXTENSION_ID = "facets";
-    
-    private final IndexedSet facets;
-    private final IndexedSet categories;
-    private final IndexedSet presets;
-    private final IndexedSet templates;
-    private final IndexedSet groups;
-    private final Map projects;
-    
-    public ProjectFacetsManagerImpl()
-    {
-        this.facets = new IndexedSet();
-        this.categories = new IndexedSet();
-        this.presets = new IndexedSet();
-        this.templates = new IndexedSet();
-        this.groups = new IndexedSet();
-        this.projects = new HashMap();
-        
-        readMetadata();
-        readUserPresets();
-        
-        final IWorkspace ws = ResourcesPlugin.getWorkspace();
-        final IResourceChangeListener ls = new ResourceChangeListener();
-        ws.addResourceChangeListener( ls, IResourceChangeEvent.POST_CHANGE );
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facets.getUnmodifiable();
-    }
-    
-    public boolean isProjectFacetDefined( final String id )
-    {
-        return this.facets.containsKey( id );
-    }
-    
-    public IProjectFacet getProjectFacet( final String id )
-    {
-        final IProjectFacet f 
-            = (IProjectFacet) this.facets.get( id );
-        
-        if( f == null )
-        {
-            final String msg = "Could not find project facet " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return f;
-    }
-    
-    public Set getCategories()
-    {
-        return this.categories.getUnmodifiable();
-    }
-
-    public boolean isCategoryDefined( final String id )
-    {
-        return this.categories.containsKey( id );
-    }
-    
-    public ICategory getCategory( final String id )
-    {
-        final ICategory category 
-            = (ICategory) this.categories.get( id );
-        
-        if( category == null )
-        {
-            final String msg = "Could not find category " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return category;
-    }
-    
-    public Set getPresets()
-    {
-        return this.presets.getUnmodifiable();
-    }
-    
-    public boolean isPresetDefined( final String id )
-    {
-        return this.presets.containsKey( id );
-    }
-    
-    public IPreset getPreset( final String id )
-    {
-        final IPreset preset = (IPreset) this.presets.get( id );
-        
-        if( preset == null )
-        {
-            final String msg = "Could not find preset " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return preset;
-    }
-    
-    public IPreset definePreset( final String name,
-                                 final Set facets )
-    {
-        return definePreset( name, facets, true );
-    }
-
-    private IPreset definePreset( final String name,
-                                  final Set facets,
-                                  final boolean save )
-    {
-        synchronized( this.presets )
-        {
-            String id;
-            int i = 0;
-            
-            do
-            {
-                id = ".usr." + i;
-                i++;
-            }
-            while( this.presets.containsKey( id ) );
-            
-            final Preset preset = new Preset();
-            
-            preset.setId( id );
-            preset.setLabel( name );
-            preset.addProjectFacet( facets );
-            preset.setUserDefined( true );
-            
-            this.presets.add( id, preset );
-            
-            if( save )
-            {
-                saveUserPresets();
-            }
-            
-            return preset;
-        }
-    }
-    
-    public boolean deletePreset( final IPreset preset )
-    {
-        synchronized( this.presets )
-        {
-            if( ! preset.isUserDefined() )
-            {
-                return false;
-            }
-            
-            final boolean res = this.presets.delete( preset.getId() );
-            
-            if( res )
-            {
-                saveUserPresets();
-            }
-            
-            return res;
-        }
-    }
-    
-    public Set getTemplates()
-    {
-        return this.templates.getUnmodifiable();
-    }
-    
-    public boolean isTemplateDefined( final String id )
-    {
-        return this.templates.containsKey( id );
-    }
-    
-    public IFacetedProjectTemplate getTemplate( final String id )
-    {
-        final IFacetedProjectTemplate template 
-            = (IFacetedProjectTemplate) this.templates.get( id );
-        
-        if( template == null )
-        {
-            final String msg = "Could not find template " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return template;
-    }
-    
-    public Set getGroups()
-    {
-        return this.groups.getUnmodifiable();
-    }
-    
-    public boolean isGroupDefined( final String id )
-    {
-        return this.groups.containsKey( id );
-    }
-    
-    public IGroup getGroup( final String id )
-    {
-        final IGroup group = (IGroup) this.groups.get( id );
-        
-        if( group == null )
-        {
-            final String msg = "Could not find group " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return group;
-    }
-
-    public IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        if( project.isNatureEnabled( FacetedProjectNature.NATURE_ID ) )
-        {
-            synchronized( this.projects )
-            {
-                FacetedProject fproj 
-                    = (FacetedProject) this.projects.get( project.getName() );
-                
-                if( fproj == null )
-                {
-                    fproj = new FacetedProject( project );
-                    this.projects.put( project.getName(), fproj );
-                }
-                
-                return fproj;
-            }
-        }
-
-        return null;
-    }
-
-    public IFacetedProject create( final IProject project,
-                                   final boolean convertIfNecessary,
-                                   final IProgressMonitor monitor)
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 2 );
-        }
-        
-        try
-        {
-            if( project.exists() && convertIfNecessary )
-            {
-                IProjectDescription description = project.getDescription();
-                String[] prevNatures = description.getNatureIds();
-                String[] newNatures = new String[ prevNatures.length + 1 ];
-                System.arraycopy( prevNatures, 0, newNatures, 0, prevNatures.length );
-                newNatures[ prevNatures.length ] = FacetedProjectNature.NATURE_ID;
-                description.setNatureIds( newNatures );
-                
-                project.setDescription( description, submon( monitor, 1 ) );
-            }
-            
-            project.open( IResource.BACKGROUND_REFRESH, submon( monitor, 1 ) );
-            
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IFacetedProject create( final String name,
-                                   final IPath location,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", 2 );
-        }
-        
-        try
-        {
-            final IWorkspace ws = ResourcesPlugin.getWorkspace();
-            final IProject project = ws.getRoot().getProject( name );
-            
-            final IProjectDescription desc
-                = ws.newProjectDescription( name );
-    
-            desc.setLocation( location );
-            desc.setNatureIds( new String[] { FacetedProjectNature.NATURE_ID } );
-                    
-            project.create( desc, submon( monitor, 1 ) );
-            project.open( IResource.BACKGROUND_REFRESH, submon( monitor, 1 ) );
-    
-            return create( project );
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public IStatus check( final Set base,
-                          final Set actions )
-    {
-        MultiStatus result = Constraint.createMultiStatus();
-        
-        // Verify that all of the actions are supported.
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( ! action.getProjectFacetVersion().supports( action.getType() ) )
-            {
-                final ValidationProblem.Type ptype;
-                
-                if( action.getType() == Action.Type.INSTALL )
-                {
-                    ptype = ValidationProblem.Type.INSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.UNINSTALL )
-                {
-                    ptype = ValidationProblem.Type.UNINSTALL_NOT_SUPPORTED;
-                }
-                else if( action.getType() == Action.Type.VERSION_CHANGE )
-                {
-                    ptype = ValidationProblem.Type.VERSION_CHANGE_NOT_SUPPORTED;
-                }
-                else
-                {
-                    throw new IllegalStateException();
-                }
-                
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                
-                final ValidationProblem vp
-                    = new ValidationProblem( ptype, 
-                                             fv.getProjectFacet().getLabel(),
-                                             fv.getVersionString() );
-                
-                result.add( vp );
-            }
-        }
-        
-        // Multiple actions on the same facet are not supported in the same
-        // batch. The only exception is an uninstall of a previosly-installed
-        // version followed by an install of a new version.
-        
-        final Map facetToActionsMap = new HashMap();
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            final IProjectFacet f
-                = action.getProjectFacetVersion().getProjectFacet();
-            
-            Set group = (Set) facetToActionsMap.get( f );
-            
-            if( group == null )
-            {
-                group = new HashSet();
-                facetToActionsMap.put( f, group );
-            }
-            
-            group.add( action );
-        }
-        
-        for( Iterator itr1 = facetToActionsMap.entrySet().iterator(); 
-             itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final Set group = (Set) entry.getValue();
-            
-            if( group.size() > 1 )
-            {
-                boolean bad = true;
-                
-                if( group.size() == 2 )
-                {
-                    Action install = null;
-                    Action uninstall = null;
-                    
-                    for( Iterator itr2 = group.iterator(); itr2.hasNext(); )
-                    {
-                        final Action action = (Action) itr2.next();
-                        
-                        if( action.getType() == Action.Type.INSTALL )
-                        {
-                            install = action;
-                        }
-                        else if( action.getType() == Action.Type.UNINSTALL )
-                        {
-                            uninstall = action;
-                        }
-                        else
-                        {
-                            break;
-                        }
-                    }
-                    
-                    if( install != null && uninstall != null )
-                    {
-                        if( base.contains( uninstall.getProjectFacetVersion() ) )
-                        {
-                            bad = false;
-                        }
-                    }
-                }
-                
-                if( bad )
-                {
-                    final ValidationProblem.Type ptype 
-                        = ValidationProblem.Type.MULTIPLE_ACTIONS_NOT_SUPPORTED;
-                    
-                    result.add( new ValidationProblem( ptype ) );
-                    
-                    break;
-                }
-            }
-        }
-        
-        // Check for attempts to uninstall or change version of facets that
-        // haven't been installed. Also check for attempts to install a facet
-        // that's already installed.
-        
-        for( Iterator itr1 = actions.iterator(); itr1.hasNext(); )
-        {
-            final Action action = (Action) itr1.next();
-            final IProjectFacetVersion fv = action.getProjectFacetVersion();
-            final IProjectFacet f = fv.getProjectFacet();
-
-            ValidationProblem.Type ptype = null;
-            
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                if( ! base.contains( fv ) )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_UNINSTALL;
-                }
-            }
-            else
-            {
-                IProjectFacetVersion existing = null;
-                
-                for( Iterator itr2 = base.iterator(); itr2.hasNext(); )
-                {
-                    final IProjectFacetVersion temp
-                        = (IProjectFacetVersion) itr2.next();
-                    
-                    if( temp.getProjectFacet() == f )
-                    {
-                        existing = temp;
-                        break;
-                    }
-                }
-                
-                if( action.getType() == Action.Type.VERSION_CHANGE && 
-                    existing == null )
-                {
-                    ptype = ValidationProblem.Type.CANNOT_CHANGE_VERSION;
-                }
-                else if( action.getType() == Action.Type.INSTALL &&
-                         existing != null )
-                {
-                    ptype = ValidationProblem.Type.FACET_ALREADY_INSTALLED;
-                }
-            }
-            
-            if( ptype != null )
-            {
-                result.add( new ValidationProblem( ptype, f.getLabel(),
-                                                   fv.getVersionString() ) );
-            }
-        }
-        
-        // Abort at this point if there are any validation problems.
-        
-        if( ! result.isOK() )
-        {
-            return result;
-        }
-        
-        // Apply all the uninstall actions.
-        
-        final Set all = new HashSet( base );
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() == Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Apply all the install and version change actions.
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            final Action action = (Action) itr.next();
-            
-            if( action.getType() != Action.Type.UNINSTALL )
-            {
-                apply( all, action );
-            }
-        }
-        
-        // Check the contrains on all of the facets.
-        
-        for( Iterator itr = all.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacetVersion fv
-                = (IProjectFacetVersion) itr.next();
-            
-            final IConstraint constraint = fv.getConstraint();
-            
-            if( constraint != null )
-            {
-                final IStatus st = constraint.check( all );
-                
-                if( ! st.isOK() )
-                {
-                    result.addAll( st );
-                }
-            }
-        }
-        
-        // Eliminate symmetric conflicts problem entries.
-        
-        final Set problems = new HashSet();
-        IStatus[] children = result.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            problems.add( children[ i ] );
-        }
-        
-        final Set toremove = new HashSet();
-        
-        for( Iterator itr = problems.iterator(); itr.hasNext(); )
-        {
-            final ValidationProblem problem = (ValidationProblem) itr.next();
-            
-            if( toremove.contains( problem ) )
-            {
-                itr.remove();
-            }
-            else
-            {
-                if( problem.getType() == ValidationProblem.Type.CONFLICTS )
-                {
-                    final Object[] p = problem.getParameters();
-                    
-                    final ValidationProblem reverse
-                        = new ValidationProblem( ValidationProblem.Type.CONFLICTS,
-                                                 new Object[] { p[ 1 ], p[ 0 ] } );
-                    
-                    toremove.add( reverse );
-                }
-            }
-        }
-        
-        if( children.length != problems.size() )
-        {
-            children 
-                = (IStatus[]) problems.toArray( new IStatus[ problems.size() ] );
-            
-            result = Constraint.createMultiStatus( children );
-        }
-        
-        // Return the problems to the caller.
-        
-        return result;
-    }
-    
-    public void sort( final Set base,
-                      final List actions )
-    {
-        final int count = actions.size();
-        
-        // Before sorting, check that the constraints can be met. Otherwise
-        // the sort algorithm will not terminate.
-        
-        final IStatus st = check( base, new HashSet( actions ) );
-        
-        if( ! st.isOK() )
-        {
-            FacetCorePlugin.log( st );
-            return;
-        }
-        
-        // Step 1 : Pre-sort all uninstall actions to the front of the list.
-        
-        for( int i = 0, j = 0; j < count; j++ )
-        {
-            final Action action = (Action) actions.get( j );
-            
-            if( action.getType() == Action.Type.UNINSTALL && i != j )
-            {
-                actions.set( j, actions.get( i ) );
-                actions.set( i, action );
-                i++;
-            }
-        }
-        
-        // Step 2 : Sort based on the constraints.
-        
-        final HashSet fnl = new HashSet( base );
-        
-        for( Iterator itr = actions.iterator(); itr.hasNext(); )
-        {
-            apply( fnl, (Action) itr.next() );
-        }
-        
-        boolean makeAnotherPass = true;
-        
-        while( makeAnotherPass )
-        {
-            makeAnotherPass = false;
-            
-            HashSet state = new HashSet( base );
-            
-            for( int i = 0; i < count; )
-            {
-                final Action action = (Action) actions.get( i );
-                final Action.Type type = action.getType();
-                final IProjectFacetVersion fv = action.getProjectFacetVersion();
-                final IConstraint constraint = fv.getConstraint();
-                
-                if( type == Action.Type.UNINSTALL )
-                {
-                    if( ! constraint.check( state, true ).isOK() &&
-                        constraint.check( base, true ).isOK() )
-                    {
-                        moveToFront( actions, i );
-                        makeAnotherPass = true;
-                        break;
-                    }
-                    else
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                }
-                else if( type == Action.Type.VERSION_CHANGE )
-                {
-                    final HashSet copy = new HashSet( state );
-                    apply( state, action );
-                    
-                    if( ! constraint.check( copy, true ).isOK() &&
-                        constraint.check( fnl, true ).isOK() )
-                    {
-                        moveToEnd( actions, i );
-                    }
-                    else
-                    {
-                        state = copy;
-                        i++;
-                    }
-                }
-                else
-                {
-                    if( constraint.check( state ).isOK() &&
-                        ! ( ! constraint.check( state, true ).isOK() &&
-                            constraint.check( fnl, true ).isOK() ) )
-                    {
-                        apply( state, action );
-                        i++;
-                    }
-                    else
-                    {
-                        moveToEnd( actions, i );
-                    }
-                }
-            }
-        }
-    }
-    
-    static void apply( final Set facets,
-                       final Action action )
-    {
-        final Action.Type type = action.getType();
-        final IProjectFacetVersion fv = action.getProjectFacetVersion();
-        
-        if( type == Action.Type.INSTALL )
-        {
-            facets.add( fv );
-        }
-        else if( type == Action.Type.UNINSTALL )
-        {
-            facets.remove( fv );
-        }
-        else if( type == Action.Type.VERSION_CHANGE )
-        {
-            for( Iterator itr = facets.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacetVersion x 
-                    = (IProjectFacetVersion) itr.next();
-                
-                if( x.getProjectFacet() == fv.getProjectFacet() )
-                {
-                    itr.remove();
-                    break;
-                }
-            }
-            
-            facets.add( fv );
-        }
-    }
-    
-    private static IProgressMonitor submon( final IProgressMonitor monitor,
-                                            final int ticks )
-    {
-        if( monitor == null )
-        {
-            return null;
-        }
-        else
-        {
-            return new SubProgressMonitor( monitor, ticks );
-        }
-    }
-    
-    private static void moveToFront( final List actions,
-                                     final int index )
-    {
-        final Action action = (Action) actions.get( index );
-        
-        for( int i = index; i > 0; i-- )
-        {
-            actions.set( i, actions.get( i - 1 ) );
-        }
-        
-        actions.set( 0, action );
-    }
-    
-    private static void moveToEnd( final List actions,
-                                   final int index )
-    {
-        final Action action = (Action) actions.get( index );
-        
-        for( int i = index + 1, n = actions.size(); i < n; i++ )
-        {
-            actions.set( i - 1, actions.get( i ) );
-        }
-        
-        actions.set( actions.size() - 1, action );
-    }
-    
-    private void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" );
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "category" ) )
-            {
-                readCategory( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "project-facet" ) )
-            {
-                readProjectFacet( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "project-facet-version" ) )
-            {
-                readProjectFacetVersion( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "action" ) )
-            {
-                readAction( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "preset" ) )
-            {
-                readPreset( config );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "template" ) )
-            {
-                readTemplate( config );
-            }
-        }
-    }
-    
-    private void readCategory( final IConfigurationElement config )
-    {
-        final Category category = new Category();
-        category.setPluginId( config.getDeclaringExtension().getNamespace() );
-        
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return;
-        }
-
-        category.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "label" ) )
-            {
-                category.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( "description" ) )
-            {
-                category.setDescription( child.getValue().trim() );
-            }
-        }
-        
-        this.categories.add( id, category );
-    }
-    
-    private void readProjectFacet( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return;
-        }
-        
-        final ProjectFacet descriptor = new ProjectFacet();
-        descriptor.setId( id );
-        descriptor.setPluginId( config.getDeclaringExtension().getNamespace() );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "label" ) )
-            {
-                descriptor.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( "description" ) )
-            {
-                descriptor.setDescription( child.getValue().trim() );
-            }
-            else if( childName.equals( "version-comparator" ) )
-            {
-                final String clname = child.getAttribute( "class" );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, "class" );
-                    return;
-                }
-                
-                descriptor.setVersionComparator( clname );
-            }
-            else if( childName.equals( "category" ) )
-            {
-                final String catname = child.getValue().trim();
-                
-                final Category category 
-                    = (Category) this.categories.get( catname );
-                
-                if( category == null )
-                {
-                    final String msg
-                        = NLS.bind( Resources.categoryNotDefined, 
-                                    child.getNamespace(), catname );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                descriptor.setCategory( category );
-                category.addProjectFacet( descriptor );
-            }
-        }
-        
-        this.facets.add( id, descriptor );
-    }
-    
-    private void readProjectFacetVersion( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( "facet" );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, "facet" );
-            return;
-        }
-        
-        final String ver = config.getAttribute( "version" );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, "version" );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            final String msg
-                = NLS.bind( Resources.facetNotDefined, 
-                            config.getNamespace(), fid );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final ProjectFacetVersion fv
-            = new ProjectFacetVersion();
-        
-        fv.setProjectFacet( f );
-        fv.setVersionString( ver );
-        fv.setPlugin( config.getDeclaringExtension().getNamespace() );
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "constraint" ) )
-            {
-                final IConfigurationElement[] ops = child.getChildren();
-                final ArrayList parsed = new ArrayList();
-                
-                for( int j = 0; j < ops.length; j++ )
-                {
-                    final IConstraint op = readConstraint( ops[ j ], fv );
-                    
-                    if( op != null )
-                    {
-                        parsed.add( op );
-                    }
-                }
-                
-                if( parsed.size() == 1 )
-                {
-                    fv.setConstraint( (IConstraint) parsed.get( 0 ) );
-                }
-                else if( parsed.size() > 1 )
-                {
-                    final IConstraint and 
-                        = new Constraint( fv, IConstraint.Type.AND, 
-                                          parsed.toArray() );
-                    
-                    fv.setConstraint( and );
-                }
-            }
-            else if( childName.equals( "group-member" ) )
-            {
-                final String id = child.getAttribute( "id" );
-                
-                if( id == null )
-                {
-                    reportMissingAttribute( child, "id" );
-                    return;
-                }
-                
-                Group group = (Group) this.groups.get( id );
-                
-                if( group == null )
-                {
-                    group = new Group();
-                    group.setId( id );
-                    
-                    this.groups.add( id, group );
-                }
-                
-                group.addMember( fv );
-            }
-        }
-        
-        f.addVersion( fv );
-
-        // This has to happen after facet version is registered.
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "action" ) )
-            {
-                readAction( child, f, ver );
-            }
-        }
-    }
-    
-    private void readAction( final IConfigurationElement config )
-    {
-        final String fid = config.getAttribute( "facet" );
-
-        if( fid == null )
-        {
-            reportMissingAttribute( config, "facet" );
-            return;
-        }
-        
-        final ProjectFacet f = (ProjectFacet) this.facets.get( fid );
-        
-        if( f == null )
-        {
-            final String msg
-                = NLS.bind( Resources.facetNotDefined, 
-                            config.getNamespace(), fid );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final String ver = config.getAttribute( "version" );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, "version" );
-            return;
-        }
-        
-        readAction( config, f, ver );
-    }
-
-    private void readAction( final IConfigurationElement config,
-                             final ProjectFacet f,
-                             final String version )
-    {
-        final ActionDefinition def = new ActionDefinition();
-        
-        final String type = config.getAttribute( "type" );
-        
-        if( type == null )
-        {
-            reportMissingAttribute( config, "type" );
-            return;
-        }
-        else if( type.equals( "install" ) )
-        {
-            def.type = IDelegate.Type.INSTALL;
-        }
-        else if( type.equals( "uninstall" ) )
-        {
-            def.type = IDelegate.Type.UNINSTALL;
-        }
-        else if( type.equals( "version-change" ) )
-        {
-            def.type = IDelegate.Type.VERSION_CHANGE; 
-        }
-        else if( type.equals( "runtime-changed" ) )
-        {
-            def.type = IDelegate.Type.RUNTIME_CHANGED;
-        }
-        else
-        {
-            final String msg
-                = NLS.bind( Resources.invalidActionType, config.getNamespace(),
-                            type );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        try
-        {
-            def.versionMatchExpr = new VersionMatchExpr( f, version );
-        }
-        catch( CoreException e )
-        {
-            FacetCorePlugin.log( e );
-            return;
-        }
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "config-factory" ) )
-            {
-                final String clname = child.getAttribute( "class" );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, "class" );
-                    return;
-                }
-                
-                def.configFactoryClassName = clname;
-            }
-            else if( childName.equals( "delegate" ) )
-            {
-                final String clname = child.getAttribute( "class" );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, "class" );
-                    return;
-                }
-                
-                def.delegateClassName = clname;
-            }
-        }
-        
-        f.addActionDefinition( def );
-    }
-    
-    private IConstraint readConstraint( final IConfigurationElement root,
-                                        final ProjectFacetVersion fv )
-    {
-        final IConstraint.Type type
-            = IConstraint.Type.get( root.getName() );
-        
-        final Object[] operands;
-     
-        if( type == IConstraint.Type.AND ||
-            type == IConstraint.Type.OR )
-        {
-            final IConfigurationElement[] children = root.getChildren();
-            operands = new IConstraint[ children.length ];
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                operands[ i ] = readConstraint( children[ i ], fv );
-            }
-        }
-        else if( type == IConstraint.Type.REQUIRES )
-        {
-            final String fid = root.getAttribute( "facet" );
-            
-            if( fid == null )
-            {
-                reportMissingAttribute( root, "facet" );
-                return null;
-            }
-
-            final String vexpr = root.getAttribute( "version" );
-            
-            if( vexpr == null )
-            {
-                reportMissingAttribute( root, "version" );
-                return null;
-            }
-            
-            final String softStr = root.getAttribute( "soft" );
-            Boolean soft = Boolean.FALSE;
-            
-            if( softStr != null && softStr.equals( "true" ) )
-            {
-                soft = Boolean.TRUE;
-            }
-            
-            operands = new Object[] { fid, vexpr, soft };
-        }
-        else if( type == IConstraint.Type.CONFLICTS )
-        {
-            final String group = root.getAttribute( "group" );
-            
-            if( group == null )
-            {
-                reportMissingAttribute( root, "group" );
-                return null;
-            }
-
-            operands = new Object[] { group };
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-        
-        return new Constraint( fv, type, operands );
-    }
-    
-    private void readTemplate( final IConfigurationElement config )
-    {
-        final FacetedProjectTemplate template = new FacetedProjectTemplate();
-        
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return;
-        }
-
-        template.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "label" ) )
-            {
-                template.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( "fixed" ) )
-            {
-                final String fid = child.getAttribute( "facet" );
-                
-                if( fid == null )
-                {
-                    reportMissingAttribute( child, "facet" );
-                    return;
-                }
-                
-                if( ! isProjectFacetDefined( fid ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.facetNotDefined, 
-                                    child.getNamespace(), fid );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                template.addFixedProjectFacet( getProjectFacet( fid ) );
-            }
-            else if( childName.equals( "preset" ) )
-            {
-                final String pid = child.getAttribute( "id" );
-                
-                if( pid == null )
-                {
-                    reportMissingAttribute( child, "id" );
-                    return;
-                }
-                
-                if( ! isPresetDefined( pid ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.presetNotDefined, 
-                                    child.getNamespace(), pid );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                template.setInitialPreset( getPreset( pid ) );
-            }
-        }
-        
-        this.templates.add( id, template );
-    }
-    
-    private void readPreset( final IConfigurationElement config )
-    {
-        final Preset preset = new Preset();
-        
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return;
-        }
-
-        preset.setId( id );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "label" ) )
-            {
-                preset.setLabel( child.getValue().trim() );
-            }
-            else if( childName.equals( "facet" ) )
-            {
-                final String fid = child.getAttribute( "id" );
-                
-                if( fid == null )
-                {
-                    reportMissingAttribute( child, "id" );
-                    return;
-                }
-                
-                final String fver = child.getAttribute( "version" );
-                
-                if( fver == null )
-                {
-                    reportMissingAttribute( child, "version" );
-                    return;
-                }
-                
-                final IProjectFacetVersion fv
-                    = getProjectFacet( fid ).getVersion( fver );
-                
-                preset.addProjectFacet( fv );
-            }
-        }
-        
-        this.presets.add( id, preset );
-    }
-    
-    private static void reportMissingAttribute( final IConfigurationElement el,
-                                                final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getNamespace(), el.getName(), attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-    
-    private void saveUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            
-            final String[] children = root.childrenNames();
-            
-            for( int i = 0; i < children.length; i++ )
-            {
-                root.node( children[ i ] ).removeNode();
-            }
-            
-            for( Iterator itr = this.presets.iterator(); itr.hasNext(); )
-            {
-                final IPreset preset = (IPreset) itr.next();
-                
-                if( preset.isUserDefined() )
-                {
-                    final Preferences pnode = root.node( preset.getId() );
-                    pnode.put( "label", preset.getLabel() );
-                    
-                    int counter = 1;
-                    
-                    for( Iterator itr2 = preset.getProjectFacets().iterator(); 
-                         itr2.hasNext(); )
-                    {
-                        final IProjectFacetVersion f
-                            = (IProjectFacetVersion) itr2.next();
-                        
-                        final Preferences fnode 
-                            = pnode.node( String.valueOf( counter ) );
-                        
-                        fnode.put( "id", f.getProjectFacet().getId() );
-                        fnode.put( "version", f.getVersionString() );
-                        
-                        counter++;
-                    }
-                }
-            }
-        
-            root.flush();
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private void readUserPresets()
-    {
-        try
-        {
-            final Preferences root = getUserPresetsPreferences();
-            final String[] pkeys = root.childrenNames();
-            
-            for( int i = 0; i < pkeys.length; i++ )
-            {
-                final Preferences pnode = root.node( pkeys[ i ] );
-                final String label = pnode.get( "label", null );
-                
-                if( label == null )
-                {
-                    break;
-                }
-                
-                final String[] fkeys = pnode.childrenNames();
-                HashSet facets = new HashSet();
-                
-                for( int j = 0; j < fkeys.length; j++ )
-                {
-                    final Preferences fnode = pnode.node( fkeys[ j ] );
-                    final String id = fnode.get( "id", null );
-                    final String version = fnode.get( "version", null );
-                    
-                    if( id == null || version == null )
-                    {
-                        facets = null;
-                        break;
-                    }
-                    
-                    if( isProjectFacetDefined( id ) )
-                    {
-                        final IProjectFacet f = getProjectFacet( id );
-                        
-                        if( f.hasVersion( version ) )
-                        {
-                            facets.add( f.getVersion( version ) );
-                        }
-                        else
-                        {
-                            facets = null;
-                            break;
-                        }
-                    }
-                    else
-                    {
-                        facets = null;
-                        break;
-                    }
-                }
-
-                if( facets != null )
-                {
-                    definePreset( label, facets, false );
-                }
-            }
-        }
-        catch( BackingStoreException e )
-        {
-            FacetCorePlugin.log( e );
-        }
-    }
-    
-    private static Preferences getUserPresetsPreferences()
-    {
-        final InstanceScope scope = new InstanceScope();
-        
-        final IEclipsePreferences pluginRoot 
-            = scope.getNode( FacetCorePlugin.PLUGIN_ID );
-        
-        return pluginRoot.node( "user.presets" );
-    }
-    
-    private final class ResourceChangeListener
-    
-        implements IResourceChangeListener
-        
-    {
-        public void resourceChanged( final IResourceChangeEvent event )
-        {
-            final IResourceDelta delta = event.getDelta();
-            
-            synchronized( projects )
-            {
-                for( Iterator itr = projects.values().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final FacetedProject fproj = (FacetedProject) itr.next();
-                    
-                    final IResourceDelta subdelta 
-                        = delta.findMember( fproj.f.getFullPath() );
-                    
-                    if( subdelta != null )
-                    {
-                        try
-                        {
-                            fproj.refresh();
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e );
-                        }
-                    }
-                }
-            }
-        }
-        
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String categoryNotDefined;
-        public static String facetNotDefined;
-        public static String facetVersionNotDefined;
-        public static String facetVersionNotDefinedNoPlugin;
-        public static String presetNotDefined;
-        public static String invalidActionType;
-        
-        static
-        {
-            initializeMessages( ProjectFacetsManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties
deleted file mode 100644
index a74fe54..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-categoryNotDefined = Category {1} has not been defined. It is used in plugin {0}.
-facetNotDefined = Project facet {1} has not been defined. It is used in plugin {0}.
-facetVersionNotDefined = Version {2} of project facet {1} has not been defined. It is used in plugin {0}.
-facetVersionNotDefinedNoPlugin = Version {1} of project facet {0} has not been defined.
-presetNotDefined = Preset {1} has not been defined. It is used in plugin {0}.
-invalidActionType = "{1}" is an invalid action type. It is used in plugin {0}.
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
deleted file mode 100644
index 3734a7d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.text.MessageFormat;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ValidationProblem 
-
-    extends Status
-    
-{
-    public static final class Type
-    {
-        public static final Type REQUIRES_EXACT 
-            = new Type( Resources.requiresExact );
-
-        public static final Type REQUIRES_ALLOW_NEWER 
-            = new Type( Resources.requiresAllowNewer );
-    
-        public static final Type REQUIRES_EXPR 
-            = new Type( Resources.requiresExpr );
-        
-        public static final Type CONFLICTS 
-            = new Type( Resources.oneof );
-        
-        public static final Type COMPLEX 
-            = new Type( Resources.complex );
-        
-        public static final Type INSTALL_NOT_SUPPORTED 
-            = new Type( Resources.installNotSupported );
-        
-        public static final Type UNINSTALL_NOT_SUPPORTED 
-            = new Type( Resources.uninstallNotSupported );
-        
-        public static final Type VERSION_CHANGE_NOT_SUPPORTED 
-            = new Type( Resources.versionChangeNotSupported );
-
-        public static final Type MULTIPLE_ACTIONS_NOT_SUPPORTED 
-            = new Type( Resources.multipleActionsNotSupported );
-
-        public static final Type FACET_ALREADY_INSTALLED 
-            = new Type( Resources.facetAlreadyInstalled );
-
-        public static final Type CANNOT_UNINSTALL 
-            = new Type( Resources.cannotUninstall );
-
-        public static final Type CANNOT_CHANGE_VERSION
-            = new Type( Resources.cannotChangeVersion );
-        
-        public final String msg;
-        
-        private Type( final String msg ) 
-        {
-            this.msg = msg;
-        }
-
-        private String getMessageTemplate()
-        {
-            return this.msg;
-        }
-    }
-    
-    private final Type type;
-    private final Object[] params;
-    
-    public ValidationProblem( final Type type,
-                              final Object[] params )
-    {
-        super( ERROR, FacetCorePlugin.PLUGIN_ID, 0, format( type, params ), 
-               null );
-        
-        this.type = type;
-        this.params = params;
-    }
-    
-    public ValidationProblem( final Type type )
-    {
-        this( type, new Object[ 0 ] );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param )
-    {
-        this( type, new Object[] { param } );
-    }
-    
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2 )
-    {
-        this( type, new Object[] { param1, param2 } );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2,
-                              final Object param3 )
-    {
-        this( type, new Object[] { param1, param2, param3 } );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public Object[] getParameters()
-    {
-        return this.params;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( ! ( obj instanceof ValidationProblem ) )
-        {
-            return false;
-        }
-        else
-        {
-            final ValidationProblem prob = (ValidationProblem) obj;
-            
-            return this.type.equals( prob.type ) &&
-                   Arrays.equals( this.params, prob.params );
-        }
-    }
-    
-    public int hashCode()
-    {
-    	int hash = 0;
-        
-    	for( int i = 0; i < this.params.length; i++ ) 
-        {
-			hash = hash ^ this.params[ i ].hashCode();
-		}
-        
-        return this.type.hashCode() ^ hash;
-    }
-    
-    public String toString()
-    {
-        return getMessage();
-    }
-    
-    private static String format( final Type type,
-                                  final Object[] params )
-    {
-        return MessageFormat.format( type.getMessageTemplate(), params );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String requiresExact;
-        public static String requiresAllowNewer;
-        public static String requiresExpr;
-        public static String oneof;
-        public static String complex;
-        public static String installNotSupported;
-        public static String uninstallNotSupported;
-        public static String versionChangeNotSupported;
-        public static String multipleActionsNotSupported;
-        public static String facetAlreadyInstalled;
-        public static String cannotUninstall;
-        public static String cannotChangeVersion;
-        
-        static
-        {
-            initializeMessages( ValidationProblem.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
deleted file mode 100644
index e01024d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-requiresExact = {0} requires {1} {2}.
-requiresAllowNewer = {0} requires {1} {2} or newer.
-requiresExpr = {0} requires {1} with version matching {2}.
-oneof = {0} and {1} cannot both be selected.
-complex = Constraints for {0} have not been met.
-installNotSupported = {0} {1} cannot be installed.
-uninstallNotSupported = {0} {1} cannot be uninstalled.
-versionChangeNotSupported = Cannot change version of project facet {0} to {1}.
-multipleActionsNotSupported = Multiple actions on the same project facet are not supported in the same batch. The only exception is an uninstall of a previosly-installed version followed by an install of a new version.
-facetAlreadyInstalled = Cannot install project facet {0} {1}. Some version of this project facet is already installed.
-cannotUninstall = Cannot uninstall project facet {0} {1} because it has not been installed.
-cannotChangeVersion = Cannot change version of project facet {0} to {1} because no version of this project facet is currently installed.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionMatchExpr.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionMatchExpr.java
deleted file mode 100644
index b7c6bb9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionMatchExpr.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class VersionMatchExpr
-{
-    private final Versionable versionable;
-    private final List subexprs = new ArrayList();
-    
-    public VersionMatchExpr( final Object versionable,
-                             final String expr )
-    
-        throws CoreException
-        
-    {
-        this( (Versionable) versionable, expr );
-    }
-    
-    public VersionMatchExpr( final Versionable versionable,
-                             final String expr )
-    
-        throws CoreException
-        
-    {
-        this.versionable = versionable;
-        
-        final String[] subexprs = expr.split( "," );
-        
-        for( int i = 0; i < subexprs.length; i++ )
-        {
-            final String subexpr = subexprs[ i ].trim();
-            final AbstractVersionOperator op;
-            
-            if( subexpr.startsWith( "<=" ) )
-            {
-                op = new LessThanOrEq( parseVersion( subexpr, 2 ) );
-            }
-            else if( subexpr.startsWith( "<" ) )
-            {
-                op = new LessThan( parseVersion( subexpr, 1 ) );
-            }
-            else if( subexpr.startsWith( ">=" ) )
-            {
-                op = new GreaterThanOrEq( parseVersion( subexpr, 2 ) );
-            }
-            else if( subexpr.startsWith( ">" ) )
-            {
-                op = new GreaterThan( parseVersion( subexpr, 1 ) );
-            }
-            else
-            {
-                op = new Equals( parseVersion( subexpr, 0 ) );
-            }
-            
-            this.subexprs.add( op );
-        }
-    }
-    
-    private IVersion parseVersion( final String str,
-                                   final int offset )
-    
-        throws CoreException
-        
-    {
-        final String verstr = str.substring( offset ).trim();
-        
-        if( ! this.versionable.hasVersion( verstr ) )
-        {
-            final String msg 
-                = this.versionable.createVersionNotFoundErrMsg( verstr );
-            
-            final IStatus st = FacetCorePlugin.createErrorStatus( msg );
-            
-            throw new CoreException( st );
-        }
-        else
-        {
-            return this.versionable.getVersionInternal( verstr );
-        }
-    }
-    
-    public boolean evaluate( final IVersion ver )
-    
-        throws CoreException
-        
-    {
-        for( Iterator itr = this.subexprs.iterator(); itr.hasNext(); )
-        {
-            if( ( (AbstractVersionOperator) itr.next() ).evaluate( ver ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public boolean isSingleVersionMatch()
-    {
-        return this.subexprs.size() == 1 && 
-               this.subexprs.get( 0 ) instanceof Equals;
-    }
-
-    public boolean isSimpleAllowNewer()
-    {
-        return this.subexprs.size() == 1 && 
-               this.subexprs.get( 0 ) instanceof GreaterThanOrEq;
-    }
-    
-    public String getFirstVersion()
-    {
-        return ( (AbstractVersionOperator) this.subexprs.get( 0 ) ).param.getVersionString();
-    }
-    
-    public String toString()
-    {
-        final StringBuffer buf = new StringBuffer();
-        
-        for( Iterator itr = subexprs.iterator(); itr.hasNext(); )
-        {
-            if( buf.length() > 0 ) buf.append( ',' );
-            buf.append( itr.next().toString() );
-        }
-        
-        return buf.toString();
-    }
-    
-    private static abstract class AbstractVersionOperator
-    {
-        protected final IVersion param;
-        
-        public AbstractVersionOperator( final IVersion param )
-        {
-            this.param = param;
-        }
-        
-        public boolean evaluate( final IVersion fv )
-        
-            throws CoreException
-            
-        {
-            final Comparator comp 
-                = this.param.getVersionable().getVersionComparator();
-            
-            final int result
-                = comp.compare( fv.getVersionString(), 
-                                param.getVersionString() );
-            
-            return evaluate( result );
-        }
-        
-        protected abstract boolean evaluate( int result );
-    }
-    
-    private static final class Equals
-    
-        extends AbstractVersionOperator
-        
-    {
-        public Equals( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result == 0 );
-        }
-        
-        public String toString()
-        {
-            return this.param.getVersionString();
-        }
-    }
-
-    private static final class LessThan
-    
-        extends AbstractVersionOperator
-        
-    {
-        public LessThan( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result < 0 );
-        }
-        
-        public String toString()
-        {
-            return "<" + this.param.getVersionString();
-        }
-    }
-
-    private static final class LessThanOrEq
-    
-        extends AbstractVersionOperator
-        
-    {
-        public LessThanOrEq( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result <= 0 );
-        }
-        
-        public String toString()
-        {
-            return "<=" + this.param.getVersionString();
-        }
-    }
-
-    private static final class GreaterThan
-    
-        extends AbstractVersionOperator
-        
-    {
-        public GreaterThan( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result > 0 );
-        }
-        
-        public String toString()
-        {
-            return ">" + this.param.getVersionString();
-        }
-    }
-
-    private static final class GreaterThanOrEq
-    
-        extends AbstractVersionOperator
-        
-    {
-        public GreaterThanOrEq( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result >= 0 );
-        }
-        
-        public String toString()
-        {
-            return ">=" + this.param.getVersionString();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java
deleted file mode 100644
index acdd174..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.DefaultVersionComparator;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.osgi.framework.Bundle;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class Versionable
-{
-    private static final Comparator DEFAULT_VERSION_COMPARATOR
-        = new DefaultVersionComparator();
-
-    protected final IndexedSet versions = new IndexedSet();
-    private String versionComparatorClass;
-    private Comparator versionComparator;
-    
-    public abstract String getPluginId();
-    
-    public Set getVersions()
-    {
-        return this.versions.getUnmodifiable();
-    }
-    
-    public Set getVersions( final String expr )
-    
-        throws CoreException
-        
-    {
-        final VersionMatchExpr prepared = new VersionMatchExpr( this, expr );
-        final Set result = new HashSet();
-            
-        for( Iterator itr = this.versions.iterator(); itr.hasNext(); )
-        {
-            final IVersion ver = (IVersion) itr.next();
-            
-            if( prepared.evaluate( ver ) )
-            {
-                result.add( ver );
-            }
-        }
-        
-        return result;
-    }
-    
-    public IVersion getVersionInternal( final String version )
-    {
-        return (IVersion) this.versions.get( version );
-    }
-    
-    public boolean hasVersion( final String version )
-    {
-        return this.versions.containsKey( version );
-    }
-
-    public List getSortedVersions( final boolean ascending )
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        final ArrayList list = new ArrayList( this.versions );
-        final IVersionAdapter adapter = getVersionAdapter();
-              
-        Collections.sort( list, getVersionComparator( ascending, adapter ) );
-        
-        return list;
-    }
-    
-    public Comparator getVersionComparator()
-    
-        throws CoreException
-        
-    {
-        return getVersionComparator( true, null );
-    }
-    
-    protected Comparator getVersionComparator( final boolean ascending,
-                                               final IVersionAdapter adapter )
-    
-        throws CoreException
-        
-    {
-        Comparator comp;
-        
-        if( this.versionComparatorClass == null )
-        {
-            comp = DEFAULT_VERSION_COMPARATOR;
-        }
-        else
-        {
-            if( this.versionComparator == null )
-            {
-                final Bundle bundle = Platform.getBundle( getPluginId() );
-                
-                try
-                {
-                    final Class cl 
-                        = bundle.loadClass( this.versionComparatorClass );
-                    
-                    this.versionComparator = (Comparator) cl.newInstance();
-                }
-                catch( Exception e )
-                {
-                    final String msg
-                        = NLS.bind( Resources.failedToCreate, 
-                                    this.versionComparatorClass );
-                    
-                    final IStatus st 
-                        = FacetCorePlugin.createErrorStatus( msg, e );
-                    
-                    throw new CoreException( st );
-                }
-            }
-            
-            comp = this.versionComparator;
-        }
-        
-        if( adapter != null )
-        {
-            final Comparator base = comp;
-            
-            comp = new Comparator()
-            {
-                public int compare( final Object obj1, 
-                                    final Object obj2 ) 
-                {
-                    final String ver1 = adapter.adapt( obj1 );
-                    final String ver2 = adapter.adapt( obj2 );
-                    return base.compare( ver1, ver2 );
-                }
-            };
-        }
-        
-        if( ! ascending )
-        {
-            final Comparator base = comp;
-            
-            comp = new Comparator()
-            {
-                public int compare( final Object obj1,
-                                    final Object obj2 )
-                {
-                    return base.compare( obj1, obj2 ) * -1;
-                }
-            };
-        }
-        
-        return comp;
-    }
-    
-    public void setVersionComparator( final String clname )
-    {
-        this.versionComparatorClass = clname;
-    }
-    
-    public abstract String createVersionNotFoundErrMsg( String verstr );
-    
-    protected abstract IVersionAdapter getVersionAdapter();
-    
-    protected static interface IVersionAdapter
-    {
-        String adapt( Object obj );
-    }
-
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String failedToCreate;
-        
-        static
-        {
-            initializeMessages( Versionable.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties
deleted file mode 100644
index 94219a0..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Versionable.properties
+++ /dev/null
@@ -1 +0,0 @@
-failedToCreate = Failed to instantiate class {0}.
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
deleted file mode 100644
index e17f09d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-
-/**
- * Represents a configured instance of a runtime. A runtime instance is composed
- * of multiple runtime components.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntime
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the name of this runtime. The runtime name is unique within the
-     * workspace.
-     * 
-     * @return the name of this runtime
-     */
-    
-    String getName();
-    
-    /**
-     * Returns the runtime components that comprise this runtime. Note that the
-     * order is important since for some operations components are consoluted
-     * in order and the first one capable of performing the opeation wins.
-     *  
-     * @return the runtime components that comprise this runtime (element type: 
-     *   {@see IRuntimeComponent})
-     */
-    
-    List getRuntimeComponents();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on how the runtime was created and what
-     * component types/versions it's comprised of.
-     * 
-     * @return the properties associated with this runtime (key type: 
-     *   {@see String}, value type: {@see String})
-     */
-    
-    Map getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-    /**
-     * Determines whether this runtime supports the specified project facet.
-     * The runtime supports a project facet if any of it's components support
-     * the project facet. The support mappings are specified using the
-     * <code>org.eclipse.wst.common.project.facet.core.runtime</code> extension
-     * point.
-     * 
-     * @param fv the project facet version
-     * @return <code>true</code> if this runtime supports the specified facet,
-     *   <code>false</code> otherwise
-     */
-    
-    boolean supports( IProjectFacetVersion fv );
-    
-    boolean supports( IProjectFacet f );
-    
-    /**
-     * Returns the facets (and the versions) that should be selected by default 
-     * when this runtime is selected. This information is drawn from what's
-     * specified through the <code>org.eclipse.wst.common.project.facet.core.defaultFacets</code>
-     * extension point. The returned list is filtered by removing facets that
-     * would conflict with the specified fixed facets. Note that the returned 
-     * set will always include the fixed facets. If the default version for any 
-     * fixed facet is not explicitly specified through the above extension 
-     * point, the latest version will be used.
-     * 
-     * @param fixed the fixed facets (element type: {@see IProjectFacet})
-     * @return the default facets (element type: {@see IProjectFacetVersion})
-     * @throws CoreException if failed for any reason
-     */
-    
-    Set getDefaultFacets( final Set fixed )
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
deleted file mode 100644
index 051173e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * The interface implemented by extensions wishing to expose runtimes defined
- * through other means to the project facets framework.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeBridge
-{
-    /**
-     * Returns the set of names for runtimes that this bridge wants to export.
-     * The system will try to accomodate these name choices, but may have to
-     * disambiguate names due to collisions. However, even if the runtime name
-     * is changed, the name that will be passed into the {@see bridge(String)}
-     * call will be the original name provided by this method call. 
-     * 
-     * @return the set of names for runtimes that this bridge wants to export
-     *   (element type: {@see String})
-     * @throws CoreException if failed while bridging
-     */
-    
-    Set getExportedRuntimeNames()
-        
-        throws CoreException;
-    
-    /**
-     * Returns a stub that represents the bridged runtime. The system will
-     * wrap this stub and expose it to the clients through the {@see IRuntime}
-     * interface.
-     * 
-     * @param name the name of the bridged runtime (as returned by the
-     *   {@see getExportedRuntimeNames()}) method
-     * @return a stub that represents the bridged runtime
-     * @throws CoreException if failed while bridging
-     */
-    
-    IStub bridge( String name )
-    
-        throws CoreException;
-    
-    /**
-     * Represents a single bridged runtime. The system will wrap this interface
-     * and expose it to clients as {@see IRuntime}. All relevant calls will be
-     * delegated to this interface.
-     * 
-     * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
-     */
-
-    public interface IStub
-    {
-        /**
-         * Returns the runtime components that comprise this runtime. Note that 
-         * the order is important since for some operations components are 
-         * consoluted in order and the first one capable of performing the o
-         * peation wins.
-         *  
-         * @return the runtime components that comprise this runtime (element 
-         *   type: {@see IRuntimeComponent})
-         */
-        
-        List getRuntimeComponents();
-        
-        /**
-         * Returns the properties associated with this runtime component. The
-         * contents will vary dependending on how the runtime was created and 
-         * what component types/versions it's comprised of.
-         * 
-         * @return the properties associated with this runtime (key type: 
-         *   {@see String}, value type: {@see String})
-         */
-        
-        Map getProperties();
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
deleted file mode 100644
index 85eb989..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Represents a configured instance of a runtime component type and version. A
- * runtime insance is composed of multiple runtime components.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponent
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type that this is an instance of.
-     * 
-     * @return the runtime component type that this is an instance of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the runtime component version that this is an instance of.
-     * 
-     * @return the runtime component version that this is an instance of
-     */
-    
-    IRuntimeComponentVersion getRuntimeComponentVersion();
-    
-    /**
-     * Returns the properties associated with this runtime component. The
-     * contents will vary dependending on the component type/version, but 
-     * usually this will at least contain the path to the location on disk where 
-     * the runtime is installed.
-     * 
-     * @return the properties associated with this runtime component (key
-     *   type: {@see String}, value type: {@see String})
-     */
-    
-    Map getProperties();
-    
-    /**
-     * Returns the value of the specified property.
-     * 
-     * @param name the property name
-     * @return the property value, or <code>null</code>
-     */
-    
-    String getProperty( String name );
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
deleted file mode 100644
index 5c24ad9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-
-/**
- * Represents the type of a runtime component. A runtime instance is composed of
- * multiple runtime components, each of which has a type and a version.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentType
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the runtime component type id.
-     * 
-     * @return the runtime component type id
-     */
-    
-    String getId();
-    
-    /**
-     * Returns the plugin id of where this runtime component type is defined.
-     * 
-     * @return the plugin id of where this runtime component type is defined
-     */
-    
-    String getPluginId();
-    
-    /**
-     * Returns all of the versions of this runtime component type.
-     * 
-     * @return all of the versions of this runtime component type (element
-     *   type: {@see IRuntimeComponentVersion})
-     */
-    
-    Set getVersions();
-    
-    Set getVersions( String expr )
-    
-        throws CoreException;
-    
-    /**
-     * Determines whether the specified version of this runtime component type
-     * exists.
-     * 
-     * @param version the version string
-     * @return <code>true</code> if the specified version exists, 
-     *   <code>false</code> otherwise
-     */
-    
-    boolean hasVersion( String version );
-    
-    /**
-     * Returns the {@see IRuntimeComponentVersion} object corresponding to the
-     * provided version string.
-     * 
-     * @param version the version string
-     * @return the {@see IRuntimeComponentVersion} object corresponding to the
-     *   provided version string
-     * @throws IllegalArgumentException if the version does not exist
-     */
-    
-    IRuntimeComponentVersion getVersion( String version );
-    
-    /**
-     * Returns the latest version of this runtime component as specified by the 
-     * version comparator.
-     * 
-     * @return returns the latest version of this runtime component
-     */
-
-    IRuntimeComponentVersion getLatestVersion()
-    
-        throws CoreException;
-    
-    /**
-     * Returns a sorted list containing all of the versions of this runtime
-     * component type. The sort order is determined by the version comparator. 
-     * 
-     * @param ascending whether versions should be sorted in ascending order
-     * @return a sorted list containing all of the versions of this runtime 
-     *   component type (element type: {@see IRuntimeComponentVersion})
-     * @throws VersionFormatException if failed while parsing a version string
-     */
-    
-    List getSortedVersions( boolean ascending )
-    
-        throws CoreException;
-    
-    /**
-     * Returns the version comparator specified for this runtime component type.
-     * If no version comparator is specified, this method will return an 
-     * instance of the {@see DefaultVersionComparator}.
-     * 
-     * @return the version comparator specified for this runtime component type
-     */
-    
-    Comparator getVersionComparator()
-    
-        throws CoreException;
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
deleted file mode 100644
index f0fced8..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-/**
- * Represents a version of a runtime component. A runtime instance is composed 
- * of multiple runtime components, each of which has a type and a version.
- * 
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeComponentVersion
-{
-    /**
-     * Returns the runtime component type that this is a version of.
-     * 
-     * @return returns the runtime component type that this is a version of
-     */
-    
-    IRuntimeComponentType getRuntimeComponentType();
-    
-    /**
-     * Returns the version string.
-     * 
-     * @return the version string
-     */
-    
-    String getVersionString();
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
deleted file mode 100644
index 731d61d..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.runtime.internal.RuntimeManagerImpl;
-
-/**
- * <p><i>This class is part of an interim API that is still under development 
- * and expected to change significantly before reaching stability. It is being 
- * made available at this early stage to solicit feedback from pioneering 
- * adopters on the understanding that any code that uses this API will almost 
- * certainly be broken (repeatedly) as the API evolves.</i></p>
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManager 
-{
-    private RuntimeManager() {}
-    
-    /**
-     * Returns all of the available runtime component types.
-     * 
-     * @return all of the available runtime component types (element type: 
-     *   {@link IRuntimeComponentType})
-     */
-    
-    public static Set getRuntimeComponentTypes()
-    {
-        return RuntimeManagerImpl.getRuntimeComponentTypes();
-    }
-    
-    /**
-     * Determines whether the specified runtime component type exists.
-     * 
-     * @param id the runtime component type id
-     * @return <code>true</code> if the specified runtime component type exists,
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return RuntimeManagerImpl.isRuntimeComponentTypeDefined( id );
-    }
-    
-    /**
-     * Returns the {@see IRuntimeComponentType} object corresponding to the
-     * specified runtime component type id.
-     * 
-     * @param id the runtime componenet type id
-     * @return the {@see IRuntimeComponentType} object corresponding to the
-     *   specified runtime componenet type id
-     * @throws IllegalArgumentException if the runtime component type id is not
-     *   recognized
-     */
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        return RuntimeManagerImpl.getRuntimeComponentType( id );
-    }
-    
-    /**
-     * Returns all of the defined runtimes.
-     * 
-     * @return all of the defined runtimes (element type: {@link IRuntime})
-     */
-    
-    public static Set getRuntimes()
-    {
-        return RuntimeManagerImpl.getRuntimes();
-    }
-    
-    /**
-     * Returns the runtimes that support all of the specified facets.
-     * 
-     * @param facets the facets that need to be supported (element type: 
-     *   {@link IProjectFacetVersion})
-     * @return the runtimes that support all of the specified facets (element 
-     *   type: {@link IRuntime})
-     */
-    
-    public static Set getRuntimes( final Set facets )
-    {
-        return RuntimeManagerImpl.getRuntimes( facets );
-    }
-    
-    
-    /**
-     * Determines whether the specified runtime has been defined.
-     * 
-     * @param name the runtime name
-     * @return <code>true</code> if the specified runtime is defined, 
-     *   <code>false</code> otherwise
-     */
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        return RuntimeManagerImpl.isRuntimeDefined( name );
-    }
-    
-    /**
-     * Returns the runtime corresponding to the specified name.
-     * 
-     * @param name the runtime name
-     * @return the runtime corresponding to the specified name
-     * @throws IllegalArgumentException if the runtime name is not recognized
-     */
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        return RuntimeManagerImpl.getRuntime( name );
-    }
-    
-    /**
-     * Defines a new runtime.
-     * 
-     * @param name the runtime name
-     * @param components the list of runtime componenets (element type: 
-     *   {@see IRuntimeComponent})
-     * @param properties the runtime properties (key type: {@see String}, value
-     *   type: {@see String})
-     * @return the new runtime
-     */
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List components,
-                                          final Map properties )
-    {
-        return RuntimeManagerImpl.defineRuntime( name, components, properties );
-    }
-    
-    /**
-     * Deletes the runtime from the registry.
-     * 
-     * @param runtime the runtime to delete
-     */
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        RuntimeManagerImpl.deleteRuntime( runtime );
-    }
-    
-    /**
-     * Creates a new runtime componenet. This method is intended to be used in
-     * conjunction with the {@see defineRuntime(String,List,Map)} method.
-     * 
-     * @param rcv the runtime component version
-     * @param properties the runtime component properties (key type:
-     *   {@see String}, value type: {@see String})
-     * @return the new runtime component
-     */
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map properties )
-    {
-        return RuntimeManagerImpl.createRuntimeComponent( rcv, properties );
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.addRuntimeListener( listener );
-    }
-
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        RuntimeManagerImpl.removeRuntimeListener( listener );
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
deleted file mode 100644
index 10d29cf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/AbstractRuntime.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public abstract class AbstractRuntime
-
-    implements IRuntime
-    
-{
-    private String name;
-    
-    /**
-     * This class should not be subclassed outside this package.
-     */
-    
-    AbstractRuntime() {}
-    
-    public final String getName()
-    {
-        return this.name;
-    }
-    
-    final void setName( final String name )
-    {
-        this.name = name;
-    }
-
-    public final String getProperty( final String key )
-    {
-        return (String) getProperties().get( key );
-    }
-    
-    public final Object getAdapter( final Class adapter )
-    {
-        final String t = adapter.getName();
-        Object res = Platform.getAdapterManager().loadAdapter( this, t );
-        
-        if( res == null )
-        {
-            for( Iterator itr = getRuntimeComponents().iterator(); 
-                 itr.hasNext(); )
-            {
-                res = ( (IRuntimeComponent) itr.next() ).getAdapter( adapter );
-                
-                if( res != null )
-                {
-                    return res;
-                }
-            }
-        }
-        
-        return res;
-    }
-    
-    
-    public boolean supports( final IProjectFacet f )
-    {
-        for( Iterator itr = f.getVersions().iterator(); itr.hasNext(); )
-        {
-            if( supports( (IProjectFacetVersion) itr.next() ) )
-            {
-                return true;
-            }
-        }
-        
-        return false;
-    }
-    
-    public Set getDefaultFacets( final Set fixed )
-    
-        throws CoreException
-        
-    {
-        // 1. Get the complete list.
-        
-        final Map facets = new HashMap();
-        
-        for( Iterator itr1 = getRuntimeComponents().iterator(); itr1.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr1.next();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            for( Iterator itr2 = RuntimeManagerImpl.getDefaultFacets( rcv ).iterator();
-                 itr2.hasNext(); )
-            {
-                final IProjectFacetVersion fv = (IProjectFacetVersion) itr2.next();
-                
-                if( ! facets.containsKey( fv.getProjectFacet() ) )
-                {
-                    facets.put( fv.getProjectFacet(), fv );
-                }
-            }
-        }
-        
-        // 2. Remove the facets that conflict with fixed facets.
-        
-        final ConflictingFacetsFilter filter 
-            = new ConflictingFacetsFilter( fixed );
-        
-        for( Iterator itr = facets.values().iterator(); itr.hasNext(); )
-        {
-            if( ! filter.check( (IProjectFacetVersion) itr.next() ) )
-            {
-                itr.remove();
-            }
-        }
-        
-        // 3. Make sure that the result includes all of the fixed facets.
-        
-        Map toadd = null;
-        
-        for( Iterator itr = fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            if( ! facets.containsKey( f ) )
-            {
-                if( toadd == null )
-                {
-                    toadd = new HashMap();
-                }
-                
-                toadd.put( f, f.getLatestSupportedVersion( this ) );
-            }
-        }
-        
-        if( toadd != null )
-        {
-            facets.putAll( toadd );
-        }
-        
-        // 4. Return the result.
-        
-        return new HashSet( facets.values() );
-    }
-
-    public final boolean equals( final Object obj )
-    {
-        if( obj instanceof IRuntime )
-        {
-            final IRuntime r = (IRuntime) obj;
-            
-            return getName().equals( r.getName() ) && 
-                   getRuntimeComponents().equals( r.getRuntimeComponents() ) &&
-                   getProperties().equals( r.getProperties() );
-        }
-        
-        return false;
-    }
-    
-    public final int hashCode()
-    {
-        return this.name.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.name;
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java
deleted file mode 100644
index 18c91ab..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/BridgedRuntime.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class BridgedRuntime
-
-    extends AbstractRuntime
-    
-{
-    private final String bridgeId;
-    private final String nativeRuntimeId;
-    private final IRuntimeBridge.IStub stub;
-    private Set supported;
-    private List composition;
-    
-    BridgedRuntime( final String bridgeId,
-                    final String nativeRuntimeId,
-                    final IRuntimeBridge.IStub stub )
-    {
-        this.bridgeId = bridgeId;
-        this.nativeRuntimeId = nativeRuntimeId;
-        this.stub = stub;
-    }
-    
-    String getBridgeId()
-    {
-        return this.bridgeId;
-    }
-    
-    String getNativeRuntimeId()
-    {
-        return this.nativeRuntimeId;
-    }
-    
-    public List getRuntimeComponents()
-    {
-        return Collections.unmodifiableList( this.stub.getRuntimeComponents() );
-    }
-    
-    public Map getProperties()
-    {
-        return Collections.unmodifiableMap( this.stub.getProperties() );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        final List comp = this.stub.getRuntimeComponents();
-        
-        if( this.supported == null || ! this.composition.equals( comp ) )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( comp );
-            this.composition = comp;
-        }
-        
-        return this.supported.contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/ConflictingFacetsFilter.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/ConflictingFacetsFilter.java
deleted file mode 100644
index c75b9cd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/ConflictingFacetsFilter.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.common.project.facet.core.IConstraint;
-import org.eclipse.wst.common.project.facet.core.IGroup;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ConflictingFacetsFilter 
-{
-    private final Set fixed;
-    
-    public ConflictingFacetsFilter( final Set fixed )
-    {
-        this.fixed = fixed;
-    }
-    
-    public boolean check( final IProjectFacetVersion fv )
-    {
-        for( Iterator itr = this.fixed.iterator(); itr.hasNext(); )
-        {
-            final IProjectFacet f = (IProjectFacet) itr.next();
-            
-            if( f.getVersions().contains( fv ) )
-            {
-                return true;
-            }
-        }
-        
-        return check( fv.getConstraint() );
-    }
-    
-    private boolean check( final IConstraint op )
-    {
-        if( op.getType() == IConstraint.Type.AND )
-        {
-            for( Iterator itr = op.getOperands().iterator(); itr.hasNext(); )
-            {
-                if( ! check( (IConstraint) itr.next() ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        else if( op.getType() == IConstraint.Type.OR )
-        {
-            for( Iterator itr = op.getOperands().iterator(); itr.hasNext(); )
-            {
-                if( check( (IConstraint) itr.next() ) )
-                {
-                    return true;
-                }
-            }
-            
-            return false;
-        }
-        else if( op.getType() == IConstraint.Type.CONFLICTS )
-        {
-            final String gid = (String) op.getOperand( 0 );
-            final IGroup group = ProjectFacetsManager.getGroup( gid );
-            
-            for( Iterator itr = this.fixed.iterator(); itr.hasNext(); )
-            {
-                final IProjectFacet f = (IProjectFacet) itr.next();
-                
-                if( group.getMembers().containsAll( f.getVersions() ) )
-                {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        else if( op.getType() == IConstraint.Type.REQUIRES )
-        {
-            final String name = (String) op.getOperand( 0 );
-            final String vexpr = (String) op.getOperand( 1 );
-            
-            final boolean soft
-                = ( (Boolean) op.getOperand( 2 ) ).booleanValue();
-        
-            if( soft )
-            {
-                return true;
-            }
-            else
-            {
-                final IProjectFacet rf 
-                    = ProjectFacetsManager.getProjectFacet( name );
-                
-                try
-                {
-                    for( Iterator itr = rf.getVersions( vexpr ).iterator();
-                         itr.hasNext(); )
-                    {
-                        final IProjectFacetVersion fv 
-                            = (IProjectFacetVersion) itr.next();
-                        
-                        if( check( fv ) )
-                        {
-                            return true;
-                        }
-                    }
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return false;
-                }
-                
-            
-                return false;
-            }
-        }
-        else
-        {
-            throw new IllegalStateException();
-        }
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
deleted file mode 100644
index 1e2eb15..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class Runtime
-
-    extends AbstractRuntime
-    
-{
-    private final List components = new ArrayList();
-    
-    private final List componentsReadOnly 
-        = Collections.unmodifiableList( this.components );
-    
-    private final Map properties = new HashMap();
-    
-    private final Map propertiesReadOnly
-        = Collections.unmodifiableMap( this.properties );
-    
-    private Set supported = null;
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-    
-    Runtime() {}
-    
-    public List getRuntimeComponents()
-    {
-        return this.componentsReadOnly;
-    }
-    
-    void addRuntimeComponent( final IRuntimeComponent component )
-    {
-        this.components.add( component );
-    }
-
-    public Map getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public synchronized boolean supports( final IProjectFacetVersion fv )
-    {
-        if( this.supported == null )
-        {
-            this.supported = RuntimeManagerImpl.getSupportedFacets( components );
-        }
-            
-        return this.supported.contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
deleted file mode 100644
index 596bc57..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponent.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IAdapterManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponent
-
-    implements IRuntimeComponent
-    
-{
-    private RuntimeComponentVersion rcv;
-    
-    private final Map properties = new HashMap();
-    
-    private final Map propertiesReadOnly 
-        = Collections.unmodifiableMap( this.properties );
-    
-    /**
-     * This class should not be instantiated outside this package.
-     */
-
-    RuntimeComponent() {}
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.rcv.getRuntimeComponentType();
-    }
-
-    public IRuntimeComponentVersion getRuntimeComponentVersion()
-    {
-        return this.rcv;
-    }
-    
-    void setRuntimeComponentVersion( final IRuntimeComponentVersion rcv )
-    {
-        this.rcv = (RuntimeComponentVersion) rcv;
-    }
-
-    public Map getProperties()
-    {
-        return this.propertiesReadOnly;
-    }
-
-    public String getProperty( final String key )
-    {
-        return (String) this.properties.get( key );
-    }
-    
-    void setProperty( final String key,
-                      final String value )
-    {
-        this.properties.put( key, value );
-    }
-
-    public Object getAdapter( final Class type )
-    {
-        final IAdapterManager manager = Platform.getAdapterManager();
-        Object res = manager.loadAdapter( this, type.getName() );
-        
-        if( res == null )
-        {
-            IAdapterFactory factory = null;
-            
-            try
-            {
-                factory = rcv.getAdapterFactory( type );
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-            
-            if( factory != null )
-            {
-                res = factory.getAdapter( this, type );
-            }
-        }
-        
-        return res;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( obj instanceof RuntimeComponent )
-        {
-            final RuntimeComponent rc = (RuntimeComponent) obj;
-            
-            return this.rcv == rc.rcv && 
-                   this.properties.equals( rc.properties );
-        }
-        
-        return false;
-    }
-    
-    public int hashCode()
-    {
-        return this.rcv.hashCode();
-    }
-    
-    public String toString()
-    {
-        return this.rcv.toString();
-    }
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java
deleted file mode 100644
index ff1c8d4..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentType.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.Collections;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.internal.Versionable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentType
-
-    extends Versionable
-    implements IRuntimeComponentType
-    
-{
-    private static final IVersionAdapter VERSION_ADAPTER = new IVersionAdapter()
-    {
-        public String adapt( final Object obj )
-        {
-            return ( (IRuntimeComponentVersion) obj ).getVersionString();
-        }
-    };
-
-    private String id;
-    private String plugin;
-    
-    public String getId()
-    {
-        return this.id;
-    }
-    
-    void setId( final String id )
-    {
-        this.id = id;
-    }
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-    
-    void addVersion( final IRuntimeComponentVersion ver )
-    {
-        this.versions.add( ver.getVersionString(), ver );
-    }
-
-    public IRuntimeComponentVersion getVersion( final String version )
-    {
-        final IRuntimeComponentVersion rcv
-            = (IRuntimeComponentVersion) this.versions.get( version );
-        
-        if( rcv == null )
-        {
-            final String msg 
-                = "Could not find version " + version + " of runtime component " 
-                  + this.id + ".";
-            
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return rcv;
-    }
-
-    public IRuntimeComponentVersion getLatestVersion()
-    
-        throws VersionFormatException, CoreException
-        
-    {
-        final Comparator comp = getVersionComparator( true, VERSION_ADAPTER );
-        final Object max = Collections.max( this.versions, comp );
-        
-        return (IRuntimeComponentVersion) max;
-    }
-    
-    public Object getAdapter( final Class type )
-    {
-        return Platform.getAdapterManager().loadAdapter( this, type.getName() );
-    }
-
-    protected IVersionAdapter getVersionAdapter()
-    {
-        return VERSION_ADAPTER;
-    }
-    
-    public String createVersionNotFoundErrMsg( final String verstr )
-    {
-        return NLS.bind( RuntimeManagerImpl.Resources.runtimeComponentVersionNotDefinedNoPlugin,
-                         this.id, verstr );
-    }
-    
-    public String toString()
-    {
-        return this.id;
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
deleted file mode 100644
index eba553c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeComponentVersion.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.Versionable;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeComponentVersion
-
-    implements IRuntimeComponentVersion, IVersion
-    
-{
-    private String plugin;
-    private IRuntimeComponentType type;
-    private String version;
-    private final HashMap adapterFactories = new HashMap();
-    
-    public String getPluginId()
-    {
-        return this.plugin;
-    }
-    
-    void setPluginId( final String plugin )
-    {
-        this.plugin = plugin;
-    }
-
-    public IRuntimeComponentType getRuntimeComponentType()
-    {
-        return this.type;
-    }
-    
-    void setRuntimeComponentType( final IRuntimeComponentType type )
-    {
-        this.type = type;
-    }
-
-    public String getVersionString()
-    {
-        return this.version;
-    }
-    
-    void setVersionString( final String version )
-    {
-        this.version = version;
-    }
-    
-    public Versionable getVersionable()
-    {
-        return (Versionable) this.type;
-    }
-
-    public IAdapterFactory getAdapterFactory( final Class type )
-    
-        throws CoreException
-        
-    {
-        synchronized( this.adapterFactories )
-        {
-            Object factory = this.adapterFactories.get( type.getName() );
-            
-            if( factory == null )
-            {
-                return null;
-            }
-            
-            if( factory instanceof PluginAndClass )
-            {
-                final PluginAndClass ref = (PluginAndClass) factory;
-                
-                factory = FacetCorePlugin.instantiate( ref.plugin, ref.clname,
-                                                       IAdapterFactory.class );
-
-                this.adapterFactories.put( type.getName(), factory );
-            }
-            
-            return (IAdapterFactory) factory;
-        }
-    }
-    
-    public String toString()
-    {
-        return this.type.getId() + " " + this.version;
-    }
-
-    void addAdapterFactory( final String type,
-                            final String plugin,
-                            final String factory )
-    {
-        synchronized( this.adapterFactories )
-        {
-            this.adapterFactories.put( type, new PluginAndClass( plugin, factory ) );
-        }
-    }
-    
-    private static final class PluginAndClass
-    {
-        public final String plugin;
-        public final String clname;
-        
-        public PluginAndClass( final String plugin,
-                               final String clname )
-        {
-            this.plugin = plugin;
-            this.clname = clname;
-        }
-    }
-    
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
deleted file mode 100644
index f1fc364..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.java
+++ /dev/null
@@ -1,1110 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.runtime.internal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.common.project.facet.core.IListener;
-import org.eclipse.wst.common.project.facet.core.IProjectFacet;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.common.project.facet.core.VersionFormatException;
-import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
-import org.eclipse.wst.common.project.facet.core.internal.IVersion;
-import org.eclipse.wst.common.project.facet.core.internal.IndexedSet;
-import org.eclipse.wst.common.project.facet.core.internal.ProjectFacetsManagerImpl;
-import org.eclipse.wst.common.project.facet.core.internal.VersionMatchExpr;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeBridge;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentType;
-import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponentVersion;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class RuntimeManagerImpl
-{
-    private static final String EXTENSION_ID = "runtimes";
-    private static final String BRIDGES_EXTENSION_ID = "runtimeBridges";
-    private static final String DEFAULT_FACETS_EXTENSION_ID = "defaultFacets";
-    
-    private static final IndexedSet runtimeComponentTypes;
-    private static final IndexedSet runtimes;
-    private static final List mappings;
-    private static final Map bridges;
-    private static final List defaultFacets;
-    private static final Set listeners;
-    
-    static
-    {
-        runtimeComponentTypes = new IndexedSet();
-        runtimes = new IndexedSet();
-        mappings = new ArrayList();
-        bridges = new HashMap();
-        defaultFacets = new ArrayList();
-        listeners = new HashSet();
-        
-        readMetadata();
-        readBridgesExtensions();
-        readDefaultFacetsExtensions();
-    }
-    
-    private RuntimeManagerImpl() {}
-    
-    public static Set getRuntimeComponentTypes()
-    {
-        return runtimeComponentTypes.getUnmodifiable();
-    }
-    
-    public static boolean isRuntimeComponentTypeDefined( final String id )
-    {
-        return runtimeComponentTypes.containsKey( id );
-    }
-    
-    public static IRuntimeComponentType getRuntimeComponentType( final String id )
-    {
-        final IRuntimeComponentType rc 
-            = (IRuntimeComponentType) runtimeComponentTypes.get( id );
-        
-        if( rc == null )
-        {
-            final String msg = "Could not find runtime component type " + id + ".";
-            throw new IllegalArgumentException( msg );
-        }
-        
-        return rc;
-    }
-    
-    public static IRuntimeComponent createRuntimeComponent( final IRuntimeComponentVersion rcv,
-                                                            final Map properties )
-    {
-        final RuntimeComponent rc = new RuntimeComponent();
-        
-        rc.setRuntimeComponentVersion( rcv );
-        
-        if( properties != null )
-        {
-            for( Iterator itr = properties.entrySet().iterator(); 
-                 itr.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr.next();
-                
-                rc.setProperty( (String) entry.getKey(), 
-                                (String) entry.getValue() );
-            }
-        }
-        
-        return rc;
-    }
-    
-    public static Set getRuntimes()
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return (Set) runtimes.clone();
-        }
-    }
-    
-    public static Set getRuntimes( final Set facets )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final HashSet result = new HashSet();
-            
-            for( Iterator itr1 = runtimes.iterator(); itr1.hasNext(); )
-            {
-                final IRuntime r = (IRuntime) itr1.next();
-                boolean supports = true;
-                
-                for( Iterator itr2 = facets.iterator(); itr2.hasNext(); )
-                {
-                    if( ! r.supports( (IProjectFacetVersion) itr2.next() ) )
-                    {
-                        supports = false;
-                        break;
-                    }
-                }
-                
-                if( supports )
-                {
-                    result.add( r );
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    public static boolean isRuntimeDefined( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            return runtimes.containsKey( name );
-        }
-    }
-    
-    public static IRuntime getRuntime( final String name )
-    {
-        synchronized( runtimes )
-        {
-            bridge();
-            
-            final IRuntime runtime = (IRuntime) runtimes.get( name );
-            
-            if( runtime == null )
-            {
-                final String msg = "Could not find runtime " + name + ".";
-                throw new IllegalArgumentException( msg );
-            }
-            
-            return runtime;
-        }
-    }
-    
-    public static IRuntime defineRuntime( final String name,
-                                          final List components,
-                                          final Map properties )
-    {
-        synchronized( runtimes )
-        {
-            final Runtime r = new Runtime();
-            
-            r.setName( name );
-            
-            for( Iterator itr = components.iterator(); itr.hasNext(); )
-            {
-                r.addRuntimeComponent( (IRuntimeComponent) itr.next() );
-            }
-            
-            if( properties != null )
-            {
-                for( Iterator itr = properties.entrySet().iterator(); 
-                     itr.hasNext(); )
-                {
-                    final Map.Entry entry = (Map.Entry) itr.next();
-                    
-                    r.setProperty( (String) entry.getKey(), 
-                                   (String) entry.getValue() );
-                }
-            }
-            
-            runtimes.add( r.getName(), r );
-            
-            notifyRuntimeListeners();
-            
-            return r;
-        }
-    }
-    
-    public static void deleteRuntime( final IRuntime runtime )
-    {
-        synchronized( runtimes )
-        {
-            if( runtimes.delete( runtime.getName() ) )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    public static void addRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.add( listener );
-        }
-    }
-    
-    public static void removeRuntimeListener( final IListener listener )
-    {
-        synchronized( listeners )
-        {
-            listeners.remove( listener );
-        }
-    }
-    
-    private static void notifyRuntimeListeners()
-    {
-        for( Iterator itr = listeners.iterator(); itr.hasNext(); )
-        {
-            try
-            {
-                ( (IListener) itr.next() ).handle();
-            }
-            catch( Exception e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-    }
-    
-    static Set getSupportedFacets( final List composition )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr1 = composition.iterator(); itr1.hasNext(); )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) itr1.next();
-            
-            for( Iterator itr2 = mappings.iterator(); itr2.hasNext(); )
-            {
-                final Mapping m = (Mapping) itr2.next();
-                
-                try
-                {
-                    result.addAll( m.getSupportedFacets( rc ) );                    
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e.getStatus() );
-                }
-                catch( VersionFormatException e )
-                {
-                    FacetCorePlugin.log( e );
-                }
-            }
-        }
-        
-        return result;
-    }
-    
-    static Set getDefaultFacets( final IRuntimeComponentVersion rcv )
-    {
-        final Set result = new HashSet();
-        
-        for( Iterator itr = defaultFacets.iterator(); itr.hasNext(); )
-        {
-            final DefaultFacetsEntry dfe = (DefaultFacetsEntry) itr.next();
-            
-            try
-            {
-                if( dfe.match( rcv ) )
-                {
-                    result.addAll( dfe.facets );
-                }
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-            }
-        }
-        
-        return result;
-    }
-    
-    private static void bridge()
-    {
-        boolean modified = false;
-        
-        for( Iterator itr1 = bridges.entrySet().iterator(); itr1.hasNext(); )
-        {
-            final Map.Entry entry = (Map.Entry) itr1.next();
-            final String brid = (String) entry.getKey();
-            final IRuntimeBridge br = (IRuntimeBridge) entry.getValue();
-            
-            // Find the runtimes belonging to this bridge that are currently
-            // in the system.
-            
-            final HashMap existing = new HashMap();
-            
-            for( Iterator itr2 = runtimes.iterator(); itr2.hasNext(); )
-            {
-                final Object obj = itr2.next();
-                
-                if( obj instanceof BridgedRuntime )
-                {
-                    final BridgedRuntime bridged = (BridgedRuntime) obj;
-                    
-                    if( bridged.getBridgeId().equals( brid ) )
-                    {
-                        existing.put( bridged.getNativeRuntimeId(), bridged );
-                    }
-                }
-            }
-            
-            // Get the new set of exported runtimes.
-            
-            final Set exported;
-            
-            try
-            {
-                exported = br.getExportedRuntimeNames();
-            }
-            catch( CoreException e )
-            {
-                FacetCorePlugin.log( e );
-                
-                for( Iterator itr2 = existing.values().iterator(); 
-                     itr2.hasNext(); )
-                {
-                    runtimes.remove( ( (IRuntime) itr2 ).getName() );
-                    modified = true;
-                }
-                
-                continue;
-            }
-            
-            // Remove the absolete entries.
-            
-            for( Iterator itr2 = existing.values().iterator(); itr2.hasNext(); )
-            {
-                final BridgedRuntime r = (BridgedRuntime) itr2.next();
-                
-                if( ! exported.contains( r.getNativeRuntimeId() ) )
-                {
-                    runtimes.delete( r.getName() );
-                    modified = true;
-                }
-            }
-            
-            // Create the new entries.
-            
-            for( Iterator itr2 = exported.iterator(); itr2.hasNext(); )
-            {
-                final String id = (String) itr2.next();
-                
-                if( ! existing.containsKey( id ) )
-                {
-                    try
-                    {
-                        final IRuntimeBridge.IStub stub = br.bridge( id );
-                        
-                        final BridgedRuntime r 
-                            = new BridgedRuntime( brid, id, stub );
-                        
-                        r.setName( createUniqueRuntimeName( id ) );
-                        
-                        runtimes.add( r.getName(), r );
-                        modified = true;
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                    }
-                }
-            }
-            
-            if( modified )
-            {
-                notifyRuntimeListeners();
-            }
-        }
-    }
-    
-    private static String createUniqueRuntimeName( final String suggestion )
-    {
-        String name = suggestion;
-        
-        for( int i = 1; runtimes.contains( name ); i++ )
-        {
-            name = suggestion + " (" + i + ")";
-        }
-        
-        return name;
-    }
-    
-    private static void readMetadata()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" );
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "runtime-component-type" ) )
-            {
-                readRuntimeComponentType( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "runtime-component-version" ) )
-            {
-                readRuntimeComponentVersion( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "adapter" ) )
-            {
-                readAdapter( config );
-            }
-        }
-
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "supported" ) )
-            {
-                readMapping( config );
-            }
-        }
-    }
-    
-    private static void readRuntimeComponentType( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return;
-        }
-        
-        final RuntimeComponentType rct = new RuntimeComponentType();
-        rct.setId( id );
-        rct.setPluginId( config.getDeclaringExtension().getNamespace() );
-
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "version-comparator" ) )
-            {
-                final String clname = child.getAttribute( "class" );
-                
-                if( clname == null )
-                {
-                    reportMissingAttribute( child, "class" );
-                    return;
-                }
-                
-                rct.setVersionComparator( clname );
-            }
-        }
-        
-        runtimeComponentTypes.add( id, rct );
-    }
-    
-    private static void readRuntimeComponentVersion( final IConfigurationElement config )
-    {
-        final String type = config.getAttribute( "type" );
-
-        if( type == null )
-        {
-            reportMissingAttribute( config, "type" );
-            return;
-        }
-        
-        final String ver = config.getAttribute( "version" );
-
-        if( ver == null )
-        {
-            reportMissingAttribute( config, "version" );
-            return;
-        }
-        
-        final RuntimeComponentType rct 
-            = (RuntimeComponentType) runtimeComponentTypes.get( type );
-        
-        if( rct == null )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, 
-                            config.getNamespace(), type );
-            
-            FacetCorePlugin.log( msg );
-            
-            return;
-        }
-        
-        final RuntimeComponentVersion rcv = new RuntimeComponentVersion();
-        
-        rcv.setRuntimeComponentType( rct );
-        rcv.setVersionString( ver );
-        rcv.setPluginId( config.getDeclaringExtension().getNamespace() );
-        
-        rct.addVersion( rcv );
-    }
-    
-    private static void readAdapter( final IConfigurationElement config )
-    {
-        IRuntimeComponentType rctype = null;
-        IRuntimeComponentVersion rcversion = null;
-        String factory = null;
-        final List types = new ArrayList();
-        
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "runtime-component" ) )
-            {
-                final String id = child.getAttribute( "id" );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( child, "id" );
-                    return;
-                }
-                
-                if( ! isRuntimeComponentTypeDefined( id ) )
-                {
-                    final String msg
-                        = NLS.bind( Resources.runtimeComponentTypeNotDefined, 
-                                    child.getNamespace(), id );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                rctype = getRuntimeComponentType( id );
-                
-                final String version = child.getAttribute( "version" );
-                
-                if( version != null )
-                {
-                    if( ! rctype.hasVersion( version ) )
-                    {
-                        final String[] params
-                            = new String[] { config.getNamespace(), id, 
-                                             version };
-                        
-                        final String msg
-                            = NLS.bind( Resources.runtimeComponentVersionNotDefined, 
-                                        params ); 
-                        
-                        FacetCorePlugin.log( msg );
-                        
-                        return;
-                    }
-                    
-                    rcversion = rctype.getVersion( version );
-                }
-            }
-            else if( childName.equals( "factory" ) )
-            {
-                factory = child.getAttribute( "class" );
-
-                if( factory == null )
-                {
-                    reportMissingAttribute( child, "class" );
-                    return;
-                }
-            }
-            else if( childName.equals( "type" ) )
-            {
-                final String type = child.getAttribute( "class" );
-
-                if( type == null )
-                {
-                    reportMissingAttribute( child, "class" );
-                    return;
-                }
-                else
-                {
-                    types.add( type );
-                }
-            }
-        }
-        
-        final Set versions;
-        
-        if( rcversion == null )
-        {
-            versions = rctype.getVersions();
-        }
-        else
-        {
-            versions = Collections.singleton( rcversion );
-        }
-        
-        final String plugin = config.getDeclaringExtension().getNamespace();
-        
-        for( Iterator itr1 = versions.iterator(); itr1.hasNext(); )
-        {
-            final RuntimeComponentVersion rcv
-                = (RuntimeComponentVersion) itr1.next();
-            
-            for( Iterator itr2 = types.iterator(); itr2.hasNext(); )
-            {
-                rcv.addAdapterFactory( (String) itr2.next(), plugin, factory );
-            }
-        }
-    }
-    
-    private static void readMapping( final IConfigurationElement config )
-    {
-        final Mapping m = new Mapping();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "facet" ) )
-            {
-                final IProjectFacet f = readProjectFacetRef( child );
-                
-                if( f == null )
-                {
-                    return;
-                }
-                
-                final String v = child.getAttribute( "version" );
-                VersionMatchExpr expr = null;
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        expr = new VersionMatchExpr( f, v );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e.getStatus() );
-                        return;
-                    }
-                }
-                
-                m.facets.put( f, expr );
-            }
-            else if( childName.equals( "runtime-component" ) )
-            {
-                if( child.getAttribute( "any" ) == null )
-                {
-                    final IRuntimeComponentType rct 
-                        = readRuntimeComponentTypeRef( child );
-                    
-                    if( rct == null )
-                    {
-                        return;
-                    }
-                    
-                    final String v = child.getAttribute( "version" );
-                    VersionMatchExpr expr = null;
-                    
-                    if( v != null )
-                    {
-                        try
-                        {
-                            expr = new VersionMatchExpr( rct, v );
-                        }
-                        catch( CoreException e )
-                        {
-                            FacetCorePlugin.log( e.getStatus() );
-                            return;
-                        }
-                    }
-                    
-                    m.runtimeComponents.put( rct, expr );
-                }
-            }
-        }
-        
-        mappings.add( m );
-    }
-    
-    private static void readBridgesExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          BRIDGES_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" );
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "bridge" ) )
-            {
-                final String id = config.getAttribute( "id" );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( config, "id" );
-                    return;
-                }
-                
-                final String clname = config.getAttribute( "class" );
-
-                if( clname == null )
-                {
-                    reportMissingAttribute( config, "class" );
-                    return;
-                }
-                
-                final String pluginId = config.getNamespace();
-                
-                final Object br;
-                
-                try
-                {
-                    br = FacetCorePlugin.instantiate( pluginId, clname,
-                                                      IRuntimeBridge.class );
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    continue;
-                }
-                
-                bridges.put( id, br );
-            }
-        }
-    }
-
-    private static void readDefaultFacetsExtensions()
-    {
-        final IExtensionRegistry registry = Platform.getExtensionRegistry();
-        
-        final IExtensionPoint point 
-            = registry.getExtensionPoint( FacetCorePlugin.PLUGIN_ID, 
-                                          DEFAULT_FACETS_EXTENSION_ID );
-        
-        if( point == null )
-        {
-            throw new RuntimeException( "Extension point not found!" );
-        }
-        
-        final ArrayList cfgels = new ArrayList();
-        final IExtension[] extensions = point.getExtensions();
-        
-        for( int i = 0; i < extensions.length; i++ )
-        {
-            final IConfigurationElement[] elements 
-                = extensions[ i ].getConfigurationElements();
-            
-            for( int j = 0; j < elements.length; j++ )
-            {
-                cfgels.add( elements[ j ] );
-            }
-        }
-        
-        for( int i = 0, n = cfgels.size(); i < n; i++ )
-        {
-            final IConfigurationElement config
-                = (IConfigurationElement) cfgels.get( i );
-            
-            if( config.getName().equals( "default-facets" ) )
-            {
-                readDefaultFacets( config );
-            }
-        }
-    }
-    
-    private static void readDefaultFacets( final IConfigurationElement config )
-    {
-        final DefaultFacetsEntry dfe = new DefaultFacetsEntry();
-        final IConfigurationElement[] children = config.getChildren();
-        
-        for( int i = 0; i < children.length; i++ )
-        {
-            final IConfigurationElement child = children[ i ];
-            final String childName = child.getName();
-            
-            if( childName.equals( "runtime-component" ) )
-            {
-                dfe.rct = readRuntimeComponentTypeRef( child );
-                
-                if( dfe.rct == null )
-                {
-                    return;
-                }
-                
-                final String v = child.getAttribute( "version" );
-                
-                if( v != null )
-                {
-                    try
-                    {
-                        dfe.rcvexpr = new VersionMatchExpr( dfe.rct, v );
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e.getStatus() );
-                        return;
-                    }
-                }
-            }
-            else if( childName.equals( "facet" ) )
-            {
-                final IProjectFacet f = readProjectFacetRef( child );
-                
-                if( f == null )
-                {
-                    return;
-                }
-                
-                final String ver = child.getAttribute( "version" );
-                
-                if( ver == null )
-                {
-                    reportMissingAttribute( child, "version" );
-                    return;
-                }
-                
-                if( ! f.hasVersion( ver ) )
-                {
-                    final String[] args
-                        = new String[] { config.getNamespace(), f.getId(), ver };
-                        
-                    final String msg
-                        = NLS.bind( ProjectFacetsManagerImpl.Resources.facetVersionNotDefined, 
-                                    args );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                dfe.facets.add( f.getVersion( ver ) );
-            }
-        }
-        
-        if( dfe.rct == null )
-        {
-            return;
-        }
-        
-        defaultFacets.add( dfe );
-    }
-    
-    private static IRuntimeComponentType readRuntimeComponentTypeRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( "id" );
-        
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return null;
-        }
-        
-        if( ! isRuntimeComponentTypeDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( Resources.runtimeComponentTypeNotDefined, 
-                            config.getNamespace(), id );
-            
-            FacetCorePlugin.log( msg );
-            
-            return null;
-        }
-        
-        return getRuntimeComponentType( id );
-    }
-    
-    private static IProjectFacet readProjectFacetRef( final IConfigurationElement config )
-    {
-        final String id = config.getAttribute( "id" );
-
-        if( id == null )
-        {
-            reportMissingAttribute( config, "id" );
-            return null;
-        }
-        
-        if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-        {
-            final String msg
-                = NLS.bind( ProjectFacetsManagerImpl.Resources.facetNotDefined, 
-                            config.getNamespace(), id );
-            
-            FacetCorePlugin.log( msg );
-            
-            return null;
-        }
-        
-        return ProjectFacetsManager.getProjectFacet( id );
-    }
-    
-    private static void reportMissingAttribute( final IConfigurationElement el,
-                                                final String attribute )
-    {
-        final String[] params 
-            = new String[] { el.getNamespace(), el.getName(), attribute };
-        
-        final String msg = NLS.bind( Resources.missingAttribute, params ); 
-    
-        FacetCorePlugin.log( msg );
-    }
-    
-    private static final class Mapping
-    {
-        // IProjectFacet -> VersionMatchExpr
-        public final Map facets = new HashMap();
-        
-        // IRuntimeComponentType -> VersionMatchExpr
-        public final Map runtimeComponents = new HashMap();
-        
-        private Set getSupportedFacets( final IRuntimeComponent rc )
-        
-            throws CoreException
-            
-        {
-            final IRuntimeComponentType rct = rc.getRuntimeComponentType();
-            final IRuntimeComponentVersion rcv = rc.getRuntimeComponentVersion();
-            
-            if( this.runtimeComponents.containsKey( rct ) )
-            {
-                final VersionMatchExpr expr 
-                    = (VersionMatchExpr) this.runtimeComponents.get( rct );
-                
-                if( expr != null && ! expr.evaluate( (IVersion) rcv ) )
-                {
-                    return Collections.EMPTY_SET;
-                }
-            }
-            else if( ! this.runtimeComponents.isEmpty() )
-            {
-                return Collections.EMPTY_SET;
-            }
-            
-            final Set result = new HashSet();
-            
-            for( Iterator itr1 = this.facets.entrySet().iterator(); 
-                 itr1.hasNext(); )
-            {
-                final Map.Entry entry = (Map.Entry) itr1.next();
-                final IProjectFacet f = (IProjectFacet) entry.getKey();
-                final VersionMatchExpr expr = (VersionMatchExpr) entry.getValue();
-                
-                for( Iterator itr2 = f.getVersions().iterator(); 
-                     itr2.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr2.next();
-                    
-                    if( expr == null || expr.evaluate( (IVersion) fv ) )
-                    {
-                        result.add( fv );
-                    }
-                }
-            }
-            
-            return result;
-        }
-    }
-    
-    private static final class DefaultFacetsEntry
-    {
-        public IRuntimeComponentType rct;
-        public VersionMatchExpr rcvexpr;
-        public final Set facets = new HashSet();
-        
-        public boolean match( final IRuntimeComponentVersion rcv )
-        
-            throws CoreException
-            
-        {
-            if( rcv.getRuntimeComponentType() != this.rct )
-            {
-                return false;
-            }
-            else
-            {
-                return this.rcvexpr.evaluate( (IVersion) rcv );
-            }
-        }
-    }
-
-    public static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String missingAttribute;
-        public static String runtimeComponentTypeNotDefined;
-        public static String runtimeComponentVersionNotDefined;
-        public static String runtimeComponentVersionNotDefinedNoPlugin;
-        
-        static
-        {
-            initializeMessages( RuntimeManagerImpl.class.getName(), 
-                                Resources.class );
-        }
-    }
-    
-}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
deleted file mode 100644
index 3f2a5bc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/RuntimeManagerImpl.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-missingAttribute = An extension element <{1}> in plugin {0} is missing a required attribute {2}.
-runtimeComponentTypeNotDefined = Runtime component type {1} has not been defined. It is used in plugin {0}.
-runtimeComponentVersionNotDefined = Version {2} of runtime component type {1} has not been defined. It is used in plugin {0}.
-runtimeComponentVersionNotDefinedNoPlugin = Version {1} of runtime component type {0} has not been defined.
\ No newline at end of file