[113553] Facet support
diff --git a/plugins/org.eclipse.jst.server.core/plugin.xml b/plugins/org.eclipse.jst.server.core/plugin.xml
index 5bbf1da..dbc06cf 100644
--- a/plugins/org.eclipse.jst.server.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.core/plugin.xml
@@ -89,80 +89,6 @@
   </extension>
 
   <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
-    <runtime-component-type
-       id="org.eclipse.jst.server.tomcat">
-      <!-- <icon>images/tomcat.gif</icon> -->
-    </runtime-component-type>
-
-    <runtime-component-version
-       type="org.eclipse.jst.server.tomcat"
-       version="3.2"/>
-
-    <runtime-component-version
-       type="org.eclipse.jst.server.tomcat"
-       version="4.0"/>
-
-    <runtime-component-version
-       type="org.eclipse.jst.server.tomcat"
-       version="4.1"/>
-
-    <runtime-component-version
-       type="org.eclipse.jst.server.tomcat"
-       version="5.0"/>
-
-    <runtime-component-version
-       type="org.eclipse.jst.server.tomcat"
-       version="5.5"/>
-
-    <adapter>
-      <runtime-component
-         id="org.eclipse.jst.server.tomcat"/>
-      <factory
-         class="org.eclipse.jst.server.core.internal.TomcatClasspathProvider$Factory"/>
-      <type
-         class="org.eclipse.wst.common.project.facet.core.runtime.classpath.IClasspathProvider"/>
-    </adapter>
-
-    <supported>
-      <runtime-component
-         id="org.eclipse.jst.server.tomcat"
-         version="3.2"
-         allow-newer="true"/>
-      <facet
-         id="jst.web"
-         version="2.2"/>
-    </supported>
-
-    <supported>
-      <runtime-component
-         id="org.eclipse.jst.server.tomcat"
-         version="4.0"
-         allow-newer="true"/>
-      <facet
-         id="jst.web"
-         version="2.3"/>
-    </supported>
-
-    <supported>
-      <runtime-component
-         id="org.eclipse.jst.server.tomcat"
-         version="4.1"
-         allow-newer="true"/>
-      <facet
-         id="jst.web"
-         version="2.4"/>
-    </supported>
-
-    <supported>
-      <runtime-component
-         id="org.eclipse.jst.server.tomcat"
-         version="5.5"
-         allow-newer="true"/>
-      <facet
-         id="jst.web"
-         version="2.4"/>
-    </supported>
-
     <runtime-component-type id="standard.jre">
       <!-- <icon>images/jre.gif</icon> -->
     </runtime-component-type>
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/FacetUtil.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/FacetUtil.java
new file mode 100644
index 0000000..9d9e406
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/FacetUtil.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.server.core;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.wst.common.project.facet.core.runtime.RuntimeManager;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.ServerCore;
+/**
+ * Utility class for converting between facet runtimes and server runtimes.
+ */
+public class FacetUtil {
+	/**
+	 * Returns the server runtime that corresponds to a facet runtime, or null
+	 * if none could be found.
+	 * 
+	 * @param runtime a facet runtime
+	 * @return the server runtime that corresponds to the facet runtime, or
+	 *    <code>null</code> if none could be found.
+	 */
+	public static IRuntime getRuntime(org.eclipse.wst.common.project.facet.core.runtime.IRuntime runtime) {
+		if (runtime == null)
+			throw new IllegalArgumentException();
+		
+		String id = runtime.getProperty("id");
+		
+		IRuntime[] runtimes = ServerCore.getRuntimes();
+		int size = runtimes.length;
+		for (int i = 0; i < size; i++) {
+			if (id.equals(runtimes[i].getId()))
+				return runtimes[i];
+		}
+		
+		return null;
+	}
+
+	/**
+	 * Returns the facet runtime that corresponds to a server runtime, or null
+	 * if none could be found.
+	 * 
+	 * @param runtime a server runtime
+	 * @return the facet runtime that corresponds to the server runtime, or
+	 *    <code>null</code> if none could be found.
+	 */
+	public static org.eclipse.wst.common.project.facet.core.runtime.IRuntime getRuntime(IRuntime runtime) {
+		if (runtime == null)
+			throw new IllegalArgumentException();
+		
+		String id = runtime.getId();
+		RuntimeManager.bridge();
+		
+		Set runtimes = RuntimeManager.getRuntimes();
+		Iterator iterator = runtimes.iterator();
+		while (iterator.hasNext()) {
+			org.eclipse.wst.common.project.facet.core.runtime.IRuntime runtime2 = (org.eclipse.wst.common.project.facet.core.runtime.IRuntime) iterator.next();
+			if (id.equals(runtime2.getProperty("id")))
+				return runtime2;
+		}
+		return null;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
index 3fb02dc..dc75711 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeBridge.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
+ *    IBM Corporation - Support for all server types
  ******************************************************************************/
 package org.eclipse.jst.server.core.internal;
 
@@ -44,53 +45,71 @@
 		
 		mappings.put("org.eclipse.jst.server.tomcat.runtime.55", RuntimeManager
 				.getRuntimeComponentType("org.eclipse.jst.server.tomcat").getVersion("5.5"));
+		
+		// generic runtimes
+		mappings.put("org.eclipse.jst.server.generic.runtime.weblogic81", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.weblogic").getVersion("8.1"));
+		
+		mappings.put("org.eclipse.jst.server.generic.runtime.weblogic90", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.weblogic").getVersion("9.0"));
+		
+		mappings.put("org.eclipse.jst.server.generic.runtime.jboss323", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.jboss").getVersion("3.2.3"));
+		
+		mappings.put("org.eclipse.jst.server.generic.runtime.jonas4", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.jonas").getVersion("4.0"));
+		
+		mappings.put("org.eclipse.jst.server.generic.runtime.oracle1013dp4", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.oracle").getVersion("1013dp4"));
+		
+		mappings.put("org.eclipse.jst.server.generic.runtime.websphere.6", RuntimeManager
+				.getRuntimeComponentType("org.eclipse.jst.server.generic.runtime.websphere").getVersion("6.0"));
 	}
 
 	public void port() {
-		final IRuntime[] runtimes = ServerCore.getRuntimes();
-
+		IRuntime[] runtimes = ServerCore.getRuntimes();
+		
 		for (int i = 0; i < runtimes.length; i++) {
-			final IRuntime runtime = runtimes[i];
-			final String name = runtime.getName();
-
-			if (!RuntimeManager.isRuntimeDefined(name)) {
-				final String type = runtime.getRuntimeType().getId();
-				final IRuntimeComponentVersion mapped = (IRuntimeComponentVersion)
-						mappings.get(type);
+			IRuntime runtime = runtimes[i];
+			String typeId = runtime.getRuntimeType().getId();
+			
+			if (!RuntimeManager.isRuntimeDefined(typeId)) {
+				IRuntimeComponentVersion mapped = (IRuntimeComponentVersion) mappings.get(typeId);
 				
 				if (mapped != null) {
-					final List components = new ArrayList();
+					List components = new ArrayList(2);
+					String name = runtime.getName();
 					
-					Map properties;
-					
-					properties = new HashMap();
+					// define server runtime component
+					Map properties = new HashMap();
 					properties.put("location", runtime.getLocation().toPortableString());
 					properties.put("name", name);
-					
+					properties.put("id", runtime.getId());
 					components.add(RuntimeManager.createRuntimeComponent(mapped, properties));
 					
+					// define JRE component
 					IJavaRuntime gr = (IJavaRuntime) runtime.loadAdapter(IJavaRuntime.class, null);
 					IVMInstall vmInstall = gr.getVMInstall();
 					IVMInstall2 vmInstall2 = (IVMInstall2) vmInstall;
 					
-					final String jvmver = vmInstall2.getJavaVersion();
-					final IRuntimeComponentVersion rcv;
+					String jvmver = vmInstall2.getJavaVersion();
+					IRuntimeComponentVersion rcv;
 					
 					if (jvmver.startsWith("1.4")) {
-						rcv = RuntimeManager.getRuntimeComponentType("standard.jre")
-								.getVersion("1.4");
+						rcv = RuntimeManager.getRuntimeComponentType("standard.jre").getVersion("1.4");
 					} else if (jvmver.startsWith("1.5")) {
-						rcv = RuntimeManager.getRuntimeComponentType("standard.jre")
-								.getVersion("5.0");
-					} else {
+						rcv = RuntimeManager.getRuntimeComponentType("standard.jre").getVersion("5.0");
+					} else
 						continue;
-					}
-
+					
 					properties = new HashMap();
 					properties.put("name", vmInstall.getName());
 					components.add(RuntimeManager.createRuntimeComponent(rcv, properties));
-
-					RuntimeManager.defineRuntime(name, components, null);
+					
+					// define facet runtime
+					properties = new HashMap();
+					properties.put("id", runtime.getId());
+					RuntimeManager.defineRuntime(name, components, properties);
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/TomcatClasspathProvider.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
similarity index 68%
rename from plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/TomcatClasspathProvider.java
rename to plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
index 04d0500..8ffcf43 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/TomcatClasspathProvider.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
@@ -7,6 +7,7 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
+ *    IBM Corporation - Support for all server types
  ******************************************************************************/
 package org.eclipse.jst.server.core.internal;
 
@@ -26,22 +27,28 @@
 /**
  * 
  */
-public final class TomcatClasspathProvider implements IClasspathProvider {
+public final class RuntimeClasspathProvider implements IClasspathProvider {
 	private static final IProjectFacet WEB_FEATURE = ProjectFacetsManager.getProjectFacet("jst.web");
+	private static final IProjectFacet EJB_FEATURE = ProjectFacetsManager.getProjectFacet("jst.ejb");
+	private static final IProjectFacet EAR_FEATURE = ProjectFacetsManager.getProjectFacet("jst.ear");
 
 	private final IRuntimeComponent rc;
 
-	public TomcatClasspathProvider(final IRuntimeComponent rc) {
+	public RuntimeClasspathProvider(final IRuntimeComponent rc) {
 		this.rc = rc;
 	}
 
 	public List getClasspathEntries(final IProjectFacetVersion fv) {
-		if (fv.getProjectFacet() == WEB_FEATURE) {
-			IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER + "/org.eclipse.jst.server.tomcat.runtimeTarget");
+		if (fv.getProjectFacet() == WEB_FEATURE || fv.getProjectFacet() == EJB_FEATURE ||
+				fv.getProjectFacet() == EAR_FEATURE) {
+			IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
+			if (rc.getRuntimeComponentType().getId().indexOf("tomcat") < 0)
+				path.append("org.eclipse.jst.server.generic.runtimeTarget");
+			else
+				path.append("org.eclipse.jst.server.tomcat.runtimeTarget");
 			path = path.append(rc.getProperty("name"));
 			
-			final IClasspathEntry cpentry = JavaCore.newContainerEntry(path);
-			
+			IClasspathEntry cpentry = JavaCore.newContainerEntry(path);
 			return Collections.singletonList(cpentry);
 		}
 		
@@ -52,8 +59,8 @@
 		private static final Class[] ADAPTER_TYPES = { IClasspathProvider.class };
 
 		public Object getAdapter(final Object adaptable, final Class adapterType) {
-			final IRuntimeComponent rc = (IRuntimeComponent) adaptable;
-			return new TomcatClasspathProvider(rc);
+			IRuntimeComponent rc = (IRuntimeComponent) adaptable;
+			return new RuntimeClasspathProvider(rc);
 		}
 
 		public Class[] getAdapterList() {
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
index 65cab72..b4d6f57 100644
--- a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
@@ -7,8 +7,8 @@
  *
  * Contributors:
  *    Konstantin Komissarchik - initial API and implementation
+ *    IBM Corporation - Cleanup
  ******************************************************************************/
-
 package org.eclipse.jst.server.core.internal;
 
 import java.util.Collections;
@@ -25,66 +25,44 @@
 import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
 import org.eclipse.wst.common.project.facet.core.runtime.IRuntimeComponent;
 import org.eclipse.wst.common.project.facet.core.runtime.classpath.IClasspathProvider;
-
 /**
- * @author <a href="mailto:kosta@bea.com">Konstantin Komissarchik</a>
+ * 
  */
+public final class StandardJreClasspathProvider implements IClasspathProvider {
+	private static final IProjectFacet JAVA_FEATURE = ProjectFacetsManager
+		.getProjectFacet("jst.java");
 
-public final class StandardJreClasspathProvider
+	private static final String STANDARD_VM_TYPE = "org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType";
 
-    implements IClasspathProvider
-    
-{
-    private static final IProjectFacet JAVA_FEATURE
-        = ProjectFacetsManager.getProjectFacet( "jst.java" );
-    
-    private static final String STANDARD_VM_TYPE
-        = "org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType";
+	private final IRuntimeComponent rc;
 
-    
-    private final IRuntimeComponent rc;
-    
-    public StandardJreClasspathProvider( final IRuntimeComponent rc )
-    {
-        this.rc = rc;
-    }
+	public StandardJreClasspathProvider(final IRuntimeComponent rc) {
+		this.rc = rc;
+	}
 
-    public List getClasspathEntries( final IProjectFacetVersion fv )
-    {
-        if( fv.getProjectFacet() == JAVA_FEATURE )
-        {
-            IPath path = new Path( JavaRuntime.JRE_CONTAINER );
-            path = path.append( STANDARD_VM_TYPE );
-            path = path.append( rc.getProperty( "name" ) );
-            
-            final IClasspathEntry cpentry = JavaCore.newContainerEntry( path );
-            
-            return Collections.singletonList( cpentry );
-        }
-        
-        return null;
-    }
-    
-    public static final class Factory
+	public List getClasspathEntries(final IProjectFacetVersion fv) {
+		if (fv.getProjectFacet() == JAVA_FEATURE) {
+			IPath path = new Path(JavaRuntime.JRE_CONTAINER);
+			path = path.append(STANDARD_VM_TYPE);
+			path = path.append(rc.getProperty("name"));
 
-        implements IAdapterFactory
-        
-    {
-        private static final Class[] ADAPTER_TYPES
-            = { IClasspathProvider.class };
-                        
-        public Object getAdapter( final Object adaptable, 
-                                  final Class adapterType )
-        {
-            final IRuntimeComponent rc = (IRuntimeComponent) adaptable;
-            return new StandardJreClasspathProvider( rc );
-        }
-    
-        public Class[] getAdapterList()
-        {
-            return ADAPTER_TYPES;
-        }
-    }
-    
+			IClasspathEntry cpentry = JavaCore.newContainerEntry(path);
+			return Collections.singletonList(cpentry);
+		}
 
-}
+		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) {
+			IRuntimeComponent rc = (IRuntimeComponent) adaptable;
+			return new StandardJreClasspathProvider(rc);
+		}
+
+		public Class[] getAdapterList() {
+			return ADAPTER_TYPES;
+		}
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerRuntime.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerRuntime.java
index 20b8076..c0a388e 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerRuntime.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerRuntime.java
@@ -39,6 +39,7 @@
 import org.eclipse.jdt.launching.IVMInstall;
 import org.eclipse.jdt.launching.IVMInstallType;
 import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jst.server.core.IJavaRuntime;
 import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
 import org.eclipse.jst.server.generic.servertype.definition.Classpath;
 import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
@@ -48,7 +49,7 @@
  *
  * @author Gorkem Ercan
  */
-public class GenericServerRuntime extends RuntimeDelegate 
+public class GenericServerRuntime extends RuntimeDelegate implements IJavaRuntime
 {
 	private static final String PROP_VM_INSTALL_TYPE_ID = "vm-install-type-id";
 	private static final String PROP_VM_INSTALL_ID = "vm-install-id";
diff --git a/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
index 7a0c057..14d6617 100644
--- a/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.server.generic.ui/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
  org.eclipse.wst.server.ui,
  org.eclipse.debug.ui,
  org.eclipse.jdt.debug.ui,
+ org.eclipse.jst.server.core,
  org.eclipse.jst.server.generic.core,
  org.eclipse.wst.server.core
 Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml b/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
index e31c34d..d02b539 100644
--- a/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.tomcat.core/plugin.xml
@@ -198,4 +198,79 @@
         class="org.eclipse.jst.server.tomcat.core.internal.PublishTask"/>
   </extension>
 
+  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
+    <runtime-component-type
+       id="org.eclipse.jst.server.tomcat">
+      <!-- <icon>images/tomcat.gif</icon> -->
+    </runtime-component-type>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.tomcat"
+       version="3.2"/>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.tomcat"
+       version="4.0"/>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.tomcat"
+       version="4.1"/>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.tomcat"
+       version="5.0"/>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.tomcat"
+       version="5.5"/>
+
+    <adapter>
+      <runtime-component
+         id="org.eclipse.jst.server.tomcat"/>
+      <factory
+         class="org.eclipse.jst.server.core.internal.RuntimeClasspathProvider$Factory"/>
+      <type
+         class="org.eclipse.wst.common.project.facet.core.runtime.classpath.IClasspathProvider"/>
+    </adapter>
+
+    <supported>
+      <runtime-component
+         id="org.eclipse.jst.server.tomcat"
+         version="3.2"
+         allow-newer="true"/>
+      <facet
+         id="jst.web"
+         version="2.2"/>
+    </supported>
+
+    <supported>
+      <runtime-component
+         id="org.eclipse.jst.server.tomcat"
+         version="4.0"
+         allow-newer="true"/>
+      <facet
+         id="jst.web"
+         version="2.3"/>
+    </supported>
+
+    <supported>
+      <runtime-component
+         id="org.eclipse.jst.server.tomcat"
+         version="4.1"
+         allow-newer="true"/>
+      <facet
+         id="jst.web"
+         version="2.4"/>
+    </supported>
+
+    <supported>
+      <runtime-component
+         id="org.eclipse.jst.server.tomcat"
+         version="5.5"
+         allow-newer="true"/>
+      <facet
+         id="jst.web"
+         version="2.4"/>
+    </supported>
+  </extension>
 </plugin>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.websphere.core/plugin.xml b/plugins/org.eclipse.jst.server.websphere.core/plugin.xml
index 16c7315..233de9c 100644
--- a/plugins/org.eclipse.jst.server.websphere.core/plugin.xml
+++ b/plugins/org.eclipse.jst.server.websphere.core/plugin.xml
@@ -85,4 +85,40 @@
             id="org.eclipse.jst.server.generic.websphere.antpublisher"/>
    </extension>
 
+  <extension point="org.eclipse.wst.common.project.facet.core.runtimes">
+    <runtime-component-type
+       id="org.eclipse.jst.server.generic.runtime.websphere">
+    </runtime-component-type>
+
+    <runtime-component-version
+       type="org.eclipse.jst.server.generic.runtime.websphere"
+       version="6.0"/>
+
+    <adapter>
+      <runtime-component
+         id="org.eclipse.jst.server.generic.runtime.websphere"/>
+      <factory
+         class="org.eclipse.jst.server.core.internal.RuntimeClasspathProvider$Factory"/>
+      <type
+         class="org.eclipse.wst.common.project.facet.core.runtime.classpath.IClasspathProvider"/>
+    </adapter>
+
+    <supported>
+      <runtime-component
+         id="org.eclipse.jst.server.generic.runtime.websphere"
+         version="6.0"/>
+      <facet
+         id="jst.web"
+         version="2.2"
+         allow-newer="true"/>
+      <facet
+         id="jst.ejb"
+         version="1.1"
+         allow-newer="true"/>
+      <facet
+         id="jst.ear"
+         version="1.2"
+         allow-newer="true"/>
+    </supported>
+  </extension>
 </plugin>