[185022] Remove JST references from HTTP server
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/JavaServerPlugin.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/JavaServerPlugin.java
index cf07924..958de35 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/JavaServerPlugin.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/JavaServerPlugin.java
@@ -217,7 +217,7 @@
 	 *
 	 * @param runtimeType a runtime type
 	 * @return the runtime classpath provider instance, or <code>null</code> if
-	 *   there is no runtime classpath provider with the given id
+	 *   there is no runtime classpath provider that supports the given id
 	 */
 	public static RuntimeClasspathProviderWrapper findRuntimeClasspathProvider(IRuntimeType runtimeType) {
 		if (runtimeType == null)
@@ -236,6 +236,32 @@
 	}
 
 	/**
+	 * Returns the runtime classpath provider that supports the given runtime type id,
+	 * or <code>null</code> if none. This convenience method searches the list of known
+	 * runtime classpath providers ({@link #getRuntimeClasspathProviders()}) for the one
+	 * with a matching runtime type id. The id may not be null.
+	 *
+	 * @param id a runtime type id
+	 * @return the runtime classpath provider instance, or <code>null</code> if
+	 *   there is no runtime classpath provider that supports the given id
+	 */
+	public static RuntimeClasspathProviderWrapper findRuntimeClasspathProviderBySupport(String id) {
+		if (id == null)
+			throw new IllegalArgumentException();
+		
+		if (runtimeClasspathProviders == null)
+			loadRuntimeClasspathProviders();
+		
+		Iterator iterator = runtimeClasspathProviders.iterator();
+		while (iterator.hasNext()) {
+			RuntimeClasspathProviderWrapper runtimeClasspathProvider = (RuntimeClasspathProviderWrapper) iterator.next();
+			if (runtimeClasspathProvider.supportsRuntimeType(id))
+				return runtimeClasspathProvider;
+		}
+		return null;
+	}
+
+	/**
 	 * Returns the runtime classpath provider with the given id, or <code>null</code>
 	 * if none. This convenience method searches the list of known runtime
 	 * classpath providers ({@link #getRuntimeClasspathProviders()}) for the one with
@@ -249,7 +275,7 @@
 	public static RuntimeClasspathProviderWrapper findRuntimeClasspathProvider(String id) {
 		if (id == null)
 			throw new IllegalArgumentException();
-
+		
 		if (runtimeClasspathProviders == null)
 			loadRuntimeClasspathProviders();
 		
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
index 72a6a61..86aafe9 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProvider.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2005, 2006 BEA Systems, Inc.
+ * Copyright (c) 2005, 2007 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
@@ -15,6 +15,7 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.JavaCore;
@@ -36,23 +37,28 @@
 
 	private IRuntimeComponent rc;
 
-	public RuntimeClasspathProvider(final IRuntimeComponent rc) {
+	public RuntimeClasspathProvider(IRuntimeComponent rc) {
 		this.rc = rc;
 	}
 
-	public List getClasspathEntries(final IProjectFacetVersion fv) {
+	public List getClasspathEntries(IProjectFacetVersion fv) {
 		IProjectFacet pf = fv.getProjectFacet();
 		if (pf == null)
 			return null;
 		
 		if (pf.equals(WEB_FACET) || pf.equals(EJB_FACET) || pf.equals(EAR_FACET) ||
 				pf.equals(UTILITY_FACET) || pf.equals(CONNECTOR_FACET) || pf.equals(APP_CLIENT_FACET)) {
-			String s = rc.getProperty(JRERuntimeComponentProvider.CLASSPATH);
-			if (s == null || s.length() == 0)
+			String runtimeTypeId = rc.getProperty("type-id");
+			String runtimeId = rc.getProperty("id");
+			if (runtimeTypeId == null || runtimeId == null)
 				return null;
-			
-			IClasspathEntry cpentry = JavaCore.newContainerEntry(new Path(s));
-			return Collections.singletonList(cpentry);
+			RuntimeClasspathProviderWrapper rcpw = JavaServerPlugin.findRuntimeClasspathProviderBySupport(runtimeTypeId);
+			if (rcpw != null) {
+				IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
+				path = path.append(rcpw.getId()).append(runtimeId);
+				IClasspathEntry cpentry = JavaCore.newContainerEntry(path);
+				return Collections.singletonList(cpentry);
+			}
 		}
 		
 		return null;
@@ -61,7 +67,7 @@
 	public static final class Factory implements IAdapterFactory {
 		private static final Class[] ADAPTER_TYPES = { IClasspathProvider.class };
 
-		public Object getAdapter(final Object adaptable, final Class adapterType) {
+		public Object getAdapter(Object adaptable, Class adapterType) {
 			IRuntimeComponent rc = (IRuntimeComponent) adaptable;
 			return new RuntimeClasspathProvider(rc);
 		}
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
index d607002..40f78b9 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/RuntimeClasspathProviderWrapper.java
@@ -91,10 +91,21 @@
 	public boolean supportsRuntimeType(IRuntimeType runtimeType) {
 		if (runtimeType == null)
 			return false;
-		String id = runtimeType.getId();
+		return supportsRuntimeType(runtimeType.getId());
+	}
+
+	/**
+	 * Returns true if the given server resource type (given by the
+	 * id) can be opened with this editor. This result is based on
+	 * the result of the getServerResources() method.
+	 *
+	 * @param id a runtime type id
+	 * @return boolean
+	 */
+	public boolean supportsRuntimeType(String id) {
 		if (id == null || id.length() == 0)
 			return false;
-
+		
 		String[] s = getRuntimeTypeIds();
 		if (s == null)
 			return false;
diff --git a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
index f2e96f9..adb5156 100644
--- a/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
+++ b/plugins/org.eclipse.jst.server.core/src/org/eclipse/jst/server/core/internal/StandardJreClasspathProvider.java
@@ -15,7 +15,6 @@
 import java.util.List;
 
 import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.JavaCore;
@@ -38,15 +37,12 @@
 
 	public List getClasspathEntries(IProjectFacetVersion fv) {
 		if (fv.getProjectFacet() == JAVA_FACET) {
-			String runtimeTypeId = rc.getProperty("type-id");
-			String runtimeId = rc.getProperty("id");
-			RuntimeClasspathProviderWrapper rcpw = JavaServerPlugin.findRuntimeClasspathProvider(runtimeTypeId);
-			if (rcpw != null) {
-				IPath path = new Path(RuntimeClasspathContainer.SERVER_CONTAINER);
-				path = path.append(rcpw.getId()).append(runtimeId);
-				IClasspathEntry cpentry = JavaCore.newContainerEntry(path);
-				return Collections.singletonList(cpentry);
-			}
+			String s = rc.getProperty(JRERuntimeComponentProvider.CLASSPATH);
+			if (s == null || s.length() == 0)
+				return null;
+			
+			IClasspathEntry cpentry = JavaCore.newContainerEntry(new Path(s));
+			return Collections.singletonList(cpentry);
 		}
 		
 		return null;
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeBridge.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeBridge.java
index ee9db90..8355ce8 100644
--- a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeBridge.java
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/internal/facets/RuntimeBridge.java
@@ -73,6 +73,15 @@
 		size = rfms.length;
 		for (int i = 0; i < size; i++)
 			addMapping(rfms[i].getRuntimeTypeId(), rfms[i].getRuntimeComponent(), rfms[i].getVersion());
+		
+		// generic runtimes
+		addMapping("org.eclipse.jst.server.generic.runtime.jboss323", "org.eclipse.jst.server.generic.runtime.jboss", "3.2.3");
+
+		addMapping("org.eclipse.jst.server.generic.runtime.jonas4", "org.eclipse.jst.server.generic.runtime.jonas", "4.0");
+		
+		addMapping("org.eclipse.jst.server.generic.runtime.oracle1013", "org.eclipse.jst.server.generic.runtime.oracle", "10.1.3");
+		
+		addMapping("org.eclipse.jst.server.generic.runtime.websphere.6", "org.eclipse.jst.server.generic.runtime.websphere", "6.0");
 	}
 
 	public Set getExportedRuntimeNames() throws CoreException {