Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 359639

Summary: Introduce concept of "Workspace default server runtime environment"
Product: [WebTools] WTP ServerTools Reporter: arjan tijms <arjan.tijms>
Component: jst.serverAssignee: jst.server <jst.server-inbox>
Status: NEW --- QA Contact: Elson Yuen <eyuen7>
Severity: enhancement    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description arjan tijms CLA 2011-10-01 10:53:22 EDT
Build Identifier: 20110916-0149

In Eclipse JDT there is the concept of a "Workspace default JRE". Projects referencing this are portable between different machines where the actual JRE name is different.

Unfortunately such a concept does not seem to exist for the server runtime environment. E.g. a project created for the JBoss AS 6.0 server adaptor from JBoss tools 3.2 will by default contain a hardcoded reference to the name "JBoss 6.0 Runtime". Importing such a project in an Eclipse instance that has the same adaptor from JBoss tools 3.3 available will fail, since by default it's called "JBoss 6.x Runtime" there.

The same holds for moving pure Java EE projects between Eclipse instances or workspaces that have server adaptors for different but compatible servers installed, like Glassfish 3.1 and JBoss AS 6.

Introducing the concept of the "Workspace default server runtime environment" should solve this problem. Eclipse WTP can check if a given project is compliant with such a default server runtime environment via the versions given by the facets in the projects.

Perhaps simply omitting the <runtime> element in org.eclipse.wst.common.project.facet.core.xml would be the best signal that the project uses the default. In analogy with "org.eclipse.jdt.launching.JRE_CONTAINER" vs e.g. "org.eclipse.jdt.launching.JRE_CONTAINERorg.eclipse.jdt.internal.launching.macosx.MacOSXType/Java SE 6 (MacOS X Default)" in .classpath, just "org.eclipse.jst.server.core.container" could perhaps be used for the default server container.


Reproducible: Always