This commit was manufactured by cvs2svn to create tag 'v20051114_2'.
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 34a5f76..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Project Facet Core (Java Support)
-Bundle-SymbolicName: org.eclipse.jst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.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 ffc172d..0000000
--- a/plugins/org.eclipse.jst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               META-INF/
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/.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 3c475c1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Project Facet Core
-Bundle-SymbolicName: org.eclipse.wst.common.project.facet.core; singleton:=true
-Bundle-Version: 1.0
-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 953f3a1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = .,\
-               plugin.xml,\
-               schemas/,\
-               META-INF/
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 a58e84a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/plugin.xml
+++ /dev/null
@@ -1,29 +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
-    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/facets.exsd b/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
deleted file mode 100644
index 8d5981f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/facets.exsd
+++ /dev/null
@@ -1,403 +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>
-         [Enter description of this extension point.]
-      </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>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="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="allow-newer" type="boolean">
-            <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>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </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 cf166bd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimeBridges.exsd
+++ /dev/null
@@ -1,92 +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>
-                  
-               </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>
-         1.0
-      </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>
-         
-      </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 71d87cc..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/schemas/runtimes.exsd
+++ /dev/null
@@ -1,295 +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>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="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 runtime component version. Requires the &lt;code&gt;id&lt;/code&gt; attribute to be present. If used in conjunction with the &lt;code&gt;allow-newer&lt;/code&gt; attribute, this specifies the lowest version that should be matched.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="allow-newer" type="boolean">
-            <annotation>
-               <documentation>
-                  If set to &lt;code&gt;true&lt;/code&gt;, this attribute specifies that versions that are newer than the specified version are also allowed. Requires the &lt;code&gt;id&lt;/code&gt; and the &lt;code&gt;version&lt;/code&gt; attributes to be present.
-               </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>
-         <all>
-            <element ref="facet"/>
-            <element ref="runtime-component"/>
-         </all>
-      </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 project facet version. Requires the &lt;code&gt;id&lt;/code&gt; attribute to be present. If used in conjunction with the &lt;code&gt;allow-newer&lt;/code&gt; attribute, this specifies the lowest version that should be matched.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="allow-newer" type="string">
-            <annotation>
-               <documentation>
-                  If set to &lt;code&gt;true&lt;/code&gt;, this attribute specifies that versions that are newer than the specified version are also allowed. Requires the &lt;code&gt;id&lt;/code&gt; and the &lt;code&gt;version&lt;/code&gt; attributes to be present.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.0
-      </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>
-         
-      </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 4adab5b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/DefaultVersionComparator.java
+++ /dev/null
@@ -1,140 +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.
- * 
- * @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 68bdbfd..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfig.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.IStatus;
-
-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 70887af..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IActionConfigFactory.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.wst.common.project.facet.core;
-
-import org.eclipse.core.runtime.CoreException;
-
-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 a1ec9b1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ICategory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the 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.
- * 
- * @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 31a631a..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IConstraint.java
+++ /dev/null
@@ -1,118 +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. 
- *  
- * @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 6b7cf62..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IDelegate.java
+++ /dev/null
@@ -1,85 +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.
- * 
- * @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();
-        public static final Type UNINSTALL = new Type();
-        public static final Type VERSION_CHANGE = new Type();
-        public static final Type RUNTIME_CHANGED = new Type();
-        
-        private Type() {}
-        
-        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();
-            }
-        }
-    }
-    
-    /**
-     * 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 f79d69b..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProject.java
+++ /dev/null
@@ -1,271 +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.
- *  
- * @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 the progress monitor
-     * @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 the progress monitor
-     * @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 the progress monitor
-     * @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();
-    
-    void setRuntime( IRuntime runtime,
-                     IProgressMonitor monitor )
-    
-        throws CoreException;
-    
-}
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 2aefe4c..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IFacetedProjectTemplate.java
+++ /dev/null
@@ -1,33 +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;
-
-/**
- * @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 1aa1fb2..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IGroup.java
+++ /dev/null
@@ -1,44 +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.
- * 
- * @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 a4b5893..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IListener.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the 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;
-
-/**
- * @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 cea1faf..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IPreset.java
+++ /dev/null
@@ -1,63 +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.
- * 
- * @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 fed55cb..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacet.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;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Contains metadata that describes a project facet. This interface is not 
- * intended to be implemented by clients.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IProjectFacet
-
-    extends IAdaptable
-    
-{
-    /**
-     * Returns the project facet identifier. 
-     * 
-     * @return the project facet identifier
-     */
-
-    String getId();
-    
-    /**
-     * Returns the id of the plugin that defines this project facet.
-     * 
-     * @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();
-    
-    /**
-     * 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;
-
-    /**
-     * 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 38e6db9..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/IProjectFacetVersion.java
+++ /dev/null
@@ -1,88 +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.
- * 
- * @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 dd75a57..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/ProjectFacetsManager.java
+++ /dev/null
@@ -1,331 +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}.
- * 
- * @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}
-     * @throws CoreException
-     */
-
-    public static IFacetedProject create( final IProject project )
-    
-        throws CoreException
-        
-    {
-        return impl.create( project );
-    }
-    
-    public static IFacetedProject create( final String name,
-                                          final IPath location,
-                                          final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        return impl.create( name, location, monitor );
-    }
-    
-    public static IFacetedProject create( final IProject project,
-    								final boolean convertIfNecessary,
-									final IProgressMonitor monitor )
-    
-    	throws CoreException
-    	
-    	{
-    		return impl.create( project, convertIfNecessary, 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 037bed3..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/VersionFormatException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core;
-
-/**
- * The exception that's thrown when version string cannot be parsed.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public class VersionFormatException 
-    
-    extends RuntimeException 
-    
-{
-    private static final long serialVersionUID = 1L;
-    
-    private final Object comparator;
-    private final String version;
-    
-    public VersionFormatException( final Object comparator,
-                                   final String version )
-    {
-        this.comparator = comparator;
-        this.version = version;
-    }
-    
-    public Object getComparator()
-    {
-        return this.comparator;
-    }
-    
-    public String getVersion()
-    {
-        return this.version;
-    }
-    
-    public String getMessage()
-    {
-        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 e114a29..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/Constraint.java
+++ /dev/null
@@ -1,244 +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.Comparator;
-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 version = (String) this.operands.get( 1 );
-            
-            final boolean allowNewer 
-                = ( (Boolean) this.operands.get( 2 ) ).booleanValue();
-            
-            final boolean soft
-                = ( (Boolean) this.operands.get( 3 ) ).booleanValue();
-            
-            if( ! soft || validateSoftDeps )
-            {
-                final IProjectFacet rf 
-                    = ProjectFacetsManager.getProjectFacet( name );
-                
-                final Comparator comp;
-                
-                try
-                {
-                    comp = rf.getVersionComparator();
-                }
-                catch( CoreException e )
-                {
-                    FacetCorePlugin.log( e );
-                    return result;
-                }
-                
-                boolean found = false;
-                
-                for( Iterator itr = facets.iterator(); itr.hasNext(); )
-                {
-                    final IProjectFacetVersion fv 
-                        = (IProjectFacetVersion) itr.next();
-                    
-                    final String fvstr = fv.getVersionString();
-                    
-                    if( fv.getProjectFacet() == rf )
-                    {
-                        final int compres = comp.compare( fvstr, version );
-                        
-                        if( ( allowNewer && compres >= 0 ) ||
-                            ( ! allowNewer && compres == 0 ) )
-                        {
-                            found = true;
-                        }
-                    }
-                }
-                
-                if( ! found )
-                {
-                    final ValidationProblem.Type ptype
-                        = allowNewer ? ValidationProblem.Type.REQUIRES :
-                          ValidationProblem.Type.REQUIRES_EXACT;
-                    
-                    final ValidationProblem problem
-                        = new ValidationProblem( ptype, this.fv, rf.getLabel(), 
-                                                 version );
-                    
-                    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/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 2ee2ff4..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.ILog;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-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 ILog log = getInstance().getLog();
-        final String msg = e.getMessage() + "";
-        
-        log.log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) );
-    }
-
-    public static void log( final String msg )
-    {
-        final ILog log = getInstance().getLog();
-        
-        log.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 e273158..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.java
+++ /dev/null
@@ -1,691 +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.HashSet;
-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.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.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>
- */
-
-public final class FacetedProject
-
-    implements IFacetedProject
-    
-{
-    private final IProject project;
-    private final HashSet facets;
-    private final Set facetsReadOnly;
-    private final HashSet fixed;
-    private final Set fixedReadOnly;
-    private IRuntime runtime;
-    private final IFile f;
-    
-    FacetedProject( final IProject project )
-    
-        throws CoreException
-        
-    {
-        this.project = project;
-        this.facets = new HashSet();
-        this.facetsReadOnly = Collections.unmodifiableSet( this.facets );
-        this.fixed = new HashSet();
-        this.fixedReadOnly = Collections.unmodifiableSet( this.fixed );
-        this.runtime = null;
-        
-        this.f = project.getFile( ".settings/" + FacetCorePlugin.PLUGIN_ID 
-                                  + ".xml" );
-        
-        open();
-    }
-    
-    public IProject getProject()
-    {
-        return this.project;
-    }
-    
-    public Set getProjectFacets()
-    {
-        return this.facetsReadOnly;
-    }
-    
-    public boolean hasProjectFacet( final IProjectFacet f )
-    {
-        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 )
-    {
-        return this.facets.contains( fv );
-    }
-    
-    public IProjectFacetVersion getInstalledVersion( final IProjectFacet f )
-    {
-        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
-        
-    {
-        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(); )
-            {
-                //if( monitor != null && monitor.isCanceled() &&
-                //    ProjectFacetsManager.get().check( this.facets ).isEmpty() )
-                //{
-                //    throw new OperationCanceledException();
-                //}
-                
-                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 );
-                }
-
-                apply( this.facets, action );
-                save();
-            }
-            
-            if( monitor != null )
-            {
-                monitor.worked( 1 );
-            }
-        }
-        finally
-        {
-            if( monitor != null )
-            {
-                monitor.done();
-            }
-        }
-    }
-    
-    public Set getFixedProjectFacets()
-    {
-        return this.fixedReadOnly;
-    }
-    
-    public void setFixedProjectFacets( final Set facets )
-    
-        throws CoreException
-        
-    {
-        this.fixed.clear();
-        this.fixed.addAll( facets );
-        
-        save();
-    }
-    
-    public IRuntime getRuntime()
-    {
-        return this.runtime;
-    }
-    
-    public void setRuntime( final IRuntime runtime,
-                            final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        if( monitor != null )
-        {
-            monitor.beginTask( "", this.facets.size() );
-        }
-        
-        try
-        {
-            if( this.runtime != runtime )
-            {
-                this.runtime = runtime;
-                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();
-            }
-        }
-    }
-    
-    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
-        
-    {
-        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 ); 
-        }
-        
-    }
-    
-    private 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 void save()
-    
-        throws CoreException
-        
-    {
-        final StringWriter w = new StringWriter();
-        final PrintWriter out = new PrintWriter( w );
-        
-        final String nl = System.getProperty( "line.separator" );
-        
-        out.print( "<faceted-project>" );
-        out.print( nl );
-        
-        if( this.runtime != null )
-        {
-            out.print( "  <runtime name=\"" );
-            out.print( this.runtime.getName() );
-            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 );
-        }
-    }
-
-    private void open()
-    
-        throws CoreException
-        
-    {
-        if( ! this.f.exists() )
-        {
-            return;
-        }
-        
-        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" ) )
-            {
-                final String rn = e.getAttribute( "name" );
-                this.runtime = RuntimeManager.getRuntime( rn );
-            }
-            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;
-        
-        static
-        {
-            initializeMessages( FacetedProject.class.getName(), 
-                                Resources.class );
-        }
-    }
-
-}
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 cb9e69e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/FacetedProject.properties
+++ /dev/null
@@ -1,6 +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.
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 6588f04..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacet.java
+++ /dev/null
@@ -1,205 +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;
-
-/**
- * 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;
-    }
-    
-    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 7303f89..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ProjectFacetsManagerImpl.java
+++ /dev/null
@@ -1,1531 +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.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;
-    
-    public ProjectFacetsManagerImpl()
-    {
-        this.facets = new IndexedSet();
-        this.categories = new IndexedSet();
-        this.presets = new IndexedSet();
-        this.templates = new IndexedSet();
-        this.groups = new IndexedSet();
-        
-        readMetadata();
-        readUserPresets();
-    }
-    
-    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 ) )
-        {
-            return new FacetedProject( project );
-        }
-
-        return null;
-    }
-    
-    public IFacetedProject create( final String name,
-                                   final IPath location,
-                                   final IProgressMonitor monitor )
-    
-        throws CoreException
-        
-    {
-        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, new SubProgressMonitor( monitor, 1 ) );
-                    
-        project.open( IResource.BACKGROUND_REFRESH,
-                      new SubProgressMonitor( monitor, 1 ) );
-
-        return create( project );
-    }
-    
-    public IFacetedProject create( final IProject project,
-    								final boolean convertIfNecessary,
-    								final IProgressMonitor monitor)
-    
-    throws CoreException
-    {
-    	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, monitor ); 
-    	}
-        project.open( IResource.BACKGROUND_REFRESH,
-                new SubProgressMonitor( monitor, 1 ) );  
-        return create( project );
-    }
-    
-    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();
-        
-        // 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, true ).isOK() &&
-                        constraint.check( fnl, true ).isOK() )
-                    {
-                        moveToEnd( actions, i );
-                    }
-                    else
-                    {
-                        apply( state, action );
-                        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 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 version = root.getAttribute( "version" );
-            
-            if( version == null )
-            {
-                reportMissingAttribute( root, "version" );
-                return null;
-            }
-            
-            final String allowNewerStr = root.getAttribute( "allow-newer" );
-            Boolean allowNewer = Boolean.FALSE;
-            
-            if( allowNewerStr != null && allowNewerStr.equals( "true" ) )
-            {
-                allowNewer = Boolean.TRUE;
-            }
-            
-            final String softStr = root.getAttribute( "soft" );
-            Boolean soft = Boolean.FALSE;
-            
-            if( softStr != null && softStr.equals( "true" ) )
-            {
-                soft = Boolean.TRUE;
-            }
-            
-            operands = new Object[] { fid, version, allowNewer, 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" );
-    }
-
-    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 e2d5180..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Konstantin Komissarchik - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.wst.common.project.facet.core.internal;
-
-import java.text.MessageFormat;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.Status;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public final class ValidationProblem 
-
-    extends Status
-    
-{
-    public static final class Type
-    {
-        public static final Type REQUIRES 
-            = new Type( Resources.requires );
-        
-        public static final Type REQUIRES_EXACT 
-            = new Type( Resources.requiresExact );
-        
-        public static final Type CONFLICTS 
-            = new Type( Resources.oneof );
-        
-        public static final Type COMPLEX 
-            = new Type( Resources.complex );
-        
-        public static final Type INSTALL_NOT_SUPPORTED 
-            = new Type( Resources.installNotSupported );
-        
-        public static final Type UNINSTALL_NOT_SUPPORTED 
-            = new Type( Resources.uninstallNotSupported );
-        
-        public static final Type VERSION_CHANGE_NOT_SUPPORTED 
-            = new Type( Resources.versionChangeNotSupported );
-
-        public static final Type MULTIPLE_ACTIONS_NOT_SUPPORTED 
-            = new Type( Resources.multipleActionsNotSupported );
-
-        public static final Type FACET_ALREADY_INSTALLED 
-            = new Type( Resources.facetAlreadyInstalled );
-
-        public static final Type CANNOT_UNINSTALL 
-            = new Type( Resources.cannotUninstall );
-
-        public static final Type CANNOT_CHANGE_VERSION
-            = new Type( Resources.cannotChangeVersion );
-        
-        public final String msg;
-        
-        private Type( final String msg ) 
-        {
-            this.msg = msg;
-        }
-
-        private String getMessageTemplate()
-        {
-            return this.msg;
-        }
-    }
-    
-    private final Type type;
-    private final Object[] params;
-    
-    public ValidationProblem( final Type type,
-                              final Object[] params )
-    {
-        super( ERROR, FacetCorePlugin.PLUGIN_ID, 0, format( type, params ), 
-               null );
-        
-        this.type = type;
-        this.params = params;
-    }
-    
-    public ValidationProblem( final Type type )
-    {
-        this( type, new Object[ 0 ] );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param )
-    {
-        this( type, new Object[] { param } );
-    }
-    
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2 )
-    {
-        this( type, new Object[] { param1, param2 } );
-    }
-
-    public ValidationProblem( final Type type,
-                              final Object param1,
-                              final Object param2,
-                              final Object param3 )
-    {
-        this( type, new Object[] { param1, param2, param3 } );
-    }
-    
-    public Type getType()
-    {
-        return this.type;
-    }
-    
-    public Object[] getParameters()
-    {
-        return this.params;
-    }
-
-    public boolean equals( final Object obj )
-    {
-        if( ! ( obj instanceof ValidationProblem ) )
-        {
-            return false;
-        }
-        else
-        {
-            final ValidationProblem prob = (ValidationProblem) obj;
-            
-            return this.type.equals( prob.type ) &&
-                   Arrays.equals( this.params, prob.params );
-        }
-    }
-    
-    public int hashCode()
-    {
-    	int hash = 0;
-        
-    	for( int i = 0; i < this.params.length; i++ ) 
-        {
-			hash = hash ^ this.params[ i ].hashCode();
-		}
-        
-        return this.type.hashCode() ^ hash;
-    }
-    
-    public String toString()
-    {
-        return getMessage();
-    }
-    
-    private static String format( final Type type,
-                                  final Object[] params )
-    {
-        return MessageFormat.format( type.getMessageTemplate(), params );
-    }
-    
-    private static final class Resources
-    
-        extends NLS
-        
-    {
-        public static String requires;
-        public static String requiresExact;
-        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 655d82f..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/ValidationProblem.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-requires = {0} requires {1} {2} or newer.
-requiresExact = {0} requires {1} {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 4645553..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/internal/VersionMatchExpr.java
+++ /dev/null
@@ -1,217 +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 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 false;
-            }
-        }
-        
-        return true;
-    }
-    
-    private static abstract class AbstractVersionOperator
-    {
-        private 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 );
-        }
-    }
-
-    private static final class LessThan
-    
-        extends AbstractVersionOperator
-        
-    {
-        public LessThan( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result < 0 );
-        }
-    }
-
-    private static final class LessThanOrEq
-    
-        extends AbstractVersionOperator
-        
-    {
-        public LessThanOrEq( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result <= 0 );
-        }
-    }
-
-    private static final class GreaterThan
-    
-        extends AbstractVersionOperator
-        
-    {
-        public GreaterThan( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result > 0 );
-        }
-    }
-
-    private static final class GreaterThanOrEq
-    
-        extends AbstractVersionOperator
-        
-    {
-        public GreaterThanOrEq( final IVersion param )
-        {
-            super( param );
-        }
-        
-        protected boolean evaluate( final int result )
-        {
-            return ( result >= 0 );
-        }
-    }
-
-}
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 6a44223..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntime.java
+++ /dev/null
@@ -1,86 +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 org.eclipse.core.runtime.IAdaptable;
-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.
- * 
- * @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 );
-    
-}
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 7d2e6df..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridge.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.runtime;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * The interface implemented by extensions wishing to expose runtimes defined
- * through other means to the project facets framework.
- * 
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
- */
-
-public interface IRuntimeBridge
-{
-    /**
-     * Returns the set of names for runtimes that this bridge wants to export.
-     * The system will try to accomodate these name choices, but may have to
-     * disambiguate names due to collisions. However, even if the runtime name
-     * is changed, the name that will be passed into the {@see bridge(String)}
-     * call will be the original name provided by this method call. 
-     * 
-     * @return the set of names for runtimes that this bridge wants to export
-     *   (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/IRuntimeBridgeOld.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridgeOld.java
deleted file mode 100644
index 6d08a63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeBridgeOld.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.eclipse.wst.common.project.facet.core.runtime;
-
-public interface IRuntimeBridgeOld
-{
-    void port();
-}
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 730e91e..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponent.java
+++ /dev/null
@@ -1,67 +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.
- * 
- * @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 93508e1..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentType.java
+++ /dev/null
@@ -1,119 +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.
- * 
- * @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();
-    
-    /**
-     * 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 f4f2431..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/IRuntimeComponentVersion.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.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.
- * 
- * @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 f36fa63..0000000
--- a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/RuntimeManager.java
+++ /dev/null
@@ -1,177 +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;
-
-/**
- * @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 40426d3..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,93 +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 org.eclipse.core.runtime.Platform;
-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 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 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();
-    }
-
-}
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 dfb95d1..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,68 +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 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;
-    
-    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 boolean supports( final IProjectFacetVersion fv )
-    {
-        return RuntimeManagerImpl.getSupportedFacets( this ).contains( fv );
-    }
-
-}
diff --git a/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java b/plugins/org.eclipse.wst.common.project.facet.core/src/org/eclipse/wst/common/project/facet/core/runtime/internal/Runtime.java
deleted file mode 100644
index 0130358..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,85 +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 boolean supports( final IProjectFacetVersion fv )
-    {
-        synchronized( this )
-        {
-            if( this.supported == null )
-            {
-                this.supported = RuntimeManagerImpl.getSupportedFacets( this );
-            }
-            
-            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 ccf6f3d..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,125 +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();
-    }
-    
-}
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 47a4e3a..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,115 +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 );
-    }
-    
-}
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 3ae2a33..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,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.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;
-        }
-    }
-    
-    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 648eabb..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,973 +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.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.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.internal.FacetCorePlugin;
-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.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 IndexedSet runtimeComponentTypes;
-    private static final IndexedSet runtimes;
-    private static final List mappings;
-    private static final Map bridges;
-    private static final Set listeners;
-    
-    static
-    {
-        runtimeComponentTypes = new IndexedSet();
-        runtimes = new IndexedSet();
-        mappings = new ArrayList();
-        bridges = new HashMap();
-        listeners = new HashSet();
-        
-        readMetadata();
-        readBridgesExtensions();
-    }
-    
-    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 IRuntime runtime )
-    {
-        final HashSet result = new HashSet();
-        
-        for( Iterator itr1 = runtime.getRuntimeComponents().iterator(); 
-             itr1.hasNext(); )
-        {
-            final IRuntimeComponent comp = (IRuntimeComponent) itr1.next();
-            
-            for( Iterator itr2 = mappings.iterator(); itr2.hasNext(); )
-            {
-                final Mapping m = (Mapping) itr2.next();
-                
-                if( m.match( comp.getRuntimeComponentVersion() ) )
-                {
-                    if( m.facetVersion == null )
-                    {
-                        result.addAll( m.facet.getVersions() );
-                    }
-                    else
-                    {
-                        result.add( m.facetVersion );
-                        
-                        if( m.facetAllowNewer )
-                        {
-                            final List sorted; 
-                            
-                            try
-                            {
-                                sorted = m.facet.getSortedVersions( true );
-                            }
-                            catch( CoreException e )
-                            {
-                                FacetCorePlugin.log( e );
-                                continue;
-                            }
-                            
-                            boolean found = false;
-                            
-                            for( Iterator itr3 = sorted.iterator(); 
-                                 itr3.hasNext(); )
-                            {
-                                if( found )
-                                {
-                                    result.add( itr3.next() );
-                                }
-                                else
-                                {
-                                    if( itr3.next() == m.facetVersion )
-                                    {
-                                        found = true;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        
-        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 String id = child.getAttribute( "id" );
-
-                if( id == null )
-                {
-                    reportMissingAttribute( child, "id" );
-                    return;
-                }
-                
-                if( ! ProjectFacetsManager.isProjectFacetDefined( id ) )
-                {
-                    final String msg
-                        = NLS.bind( ProjectFacetsManagerImpl.Resources.facetNotDefined, 
-                                    child.getNamespace(), id );
-                    
-                    FacetCorePlugin.log( msg );
-                    
-                    return;
-                }
-                
-                m.facet = ProjectFacetsManager.getProjectFacet( id );
-                
-                final String version = child.getAttribute( "version" );
-                
-                if( version != null )
-                {
-                    if( ! m.facet.hasVersion( version ) )
-                    {
-                        final String[] params
-                            = new String[] { config.getNamespace(), id, 
-                                             version };
-                        
-                        final String msg
-                            = NLS.bind( ProjectFacetsManagerImpl.Resources.facetVersionNotDefined, 
-                                        params ); 
-                        
-                        FacetCorePlugin.log( msg );
-                        
-                        return;
-                    }
-                    
-                    m.facetVersion = m.facet.getVersion( version );
-                    
-                    final String newer = child.getAttribute( "allow-newer" );
-                    
-                    if( newer != null && newer.equalsIgnoreCase( "true" ) )
-                    {
-                        m.facetAllowNewer = true;
-                    }
-                }
-            }
-            else if( childName.equals( "runtime-component" ) )
-            {
-                if( child.getAttribute( "any" ) == null )
-                {
-                    final String id = child.getAttribute( "id" );
-    
-                    if( id == null )
-                    {
-                        reportMissingAttribute( child, "id" );
-                        return;
-                    }
-                    
-                    if( ! isRuntimeComponentTypeDefined( id ) )
-                    {
-                        final String msg
-                            = NLS.bind( Resources.runtimeComponentTypeNotDefined, 
-                                        config.getNamespace(), id );
-                        
-                        FacetCorePlugin.log( msg );
-                        
-                        return;
-                    }
-                    
-                    m.runtimeCompType = getRuntimeComponentType( id );
-                    
-                    final String version = child.getAttribute( "version" );
-                    
-                    if( version != null )
-                    {
-                        if( ! m.runtimeCompType.hasVersion( version ) )
-                        {
-                            final String[] params
-                                = new String[] { config.getNamespace(), id, 
-                                                 version };
-                            
-                            final String msg
-                                = NLS.bind( Resources.runtimeComponentVersionNotDefined, 
-                                            params ); 
-                            
-                            FacetCorePlugin.log( msg );
-                            
-                            return;
-                        }
-                        
-                        m.runtimeCompVersion 
-                            = m.runtimeCompType.getVersion( version );
-                        
-                        final String newer = child.getAttribute( "allow-newer" );
-                        
-                        if( newer != null && newer.equalsIgnoreCase( "true" ) )
-                        {
-                            m.runtimeCompAllowNewer = true;
-                        }
-                    }
-                }
-            }
-        }
-        
-        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 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
-    {
-        public IProjectFacet facet;
-        public IProjectFacetVersion facetVersion;
-        public boolean facetAllowNewer;
-        public IRuntimeComponentType runtimeCompType;
-        public IRuntimeComponentVersion runtimeCompVersion;
-        public boolean runtimeCompAllowNewer;
-        
-        public boolean match( final IRuntimeComponentVersion version )
-        {
-            if( this.runtimeCompType == null )
-            {
-                return true;
-            }
-            else if( this.runtimeCompType == version.getRuntimeComponentType() )
-            {
-                if( this.runtimeCompVersion == null )
-                {
-                    return true;
-                }
-                else if( this.runtimeCompVersion == version )
-                {
-                    return true;
-                }
-                else if( this.runtimeCompAllowNewer )
-                {
-                    final Comparator comp;
-                    
-                    try
-                    {
-                        comp = this.runtimeCompType.getVersionComparator();
-                    }
-                    catch( CoreException e )
-                    {
-                        FacetCorePlugin.log( e );
-                        return false;
-                    }
-                    
-                    final String v1 = version.getVersionString();
-                    final String v2 = this.runtimeCompVersion.getVersionString();
-                    
-                    if( comp.compare( v1, v2 ) > 0 )
-                    {
-                        return true;
-                    }
-                }
-            }
-            
-            return false;
-        }
-    }
-
-    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