[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>