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 <code>any</code> attribute should not be used.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="version" type="string">
- <annotation>
- <documentation>
- Specifies the runtime component version. Requires the <code>id</code> attribute to be present. If used in conjunction with the <code>allow-newer</code> attribute, this specifies the lowest version that should be matched.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="allow-newer" type="boolean">
- <annotation>
- <documentation>
- If set to <code>true</code>, this attribute specifies that versions that are newer than the specified version are also allowed. Requires the <code>id</code> and the <code>version</code> 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 <code>id</code>, <code>version</code>, and <code>allow-newer</code> attributes should not be used.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="factory">
- <annotation>
- <documentation>
- Specifies the adapter factory. The factory has to implement <code>org.eclipse.core.runtime.IAdapterFactory</code> 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 <code>id</code> attribute to be present. If used in conjunction with the <code>allow-newer</code> attribute, this specifies the lowest version that should be matched.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="allow-newer" type="string">
- <annotation>
- <documentation>
- If set to <code>true</code>, this attribute specifies that versions that are newer than the specified version are also allowed. Requires the <code>id</code> and the <code>version</code> 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