J2EESupport
4307
Comment:
|
9902
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''[[BR]][[TableOfContents]]|| |
|
Line 3: | Line 5: |
== Tomcat 6 == || Type : || Servlet container || || Builds from source : || Yes, with openjdk (not with gcj -- missing J2SE 1.5 Socket.setPerformancePreferences methods) || || Packaged : || no. Need to workaround Ant download || || Maintainability : || good || || Compatibility : || Servlet/JSP 2.5/2.1 || || Release cycle logic : || none || || Version : || 6.0.16 || Notes : * Tomcat is downstream of Glassfish. * Lost contributers from Sun. |
|
Line 18: | Line 7: |
|| Builds from source : || yes || || Packaged : || yes (5.5.25 in Universe) || || Maintainability : || good || |
|| License : || Apache License v 2.0 || || Builds from source : || Yes || || Packaged : || Yes (5.5.25 in Universe) || || Maintainability : || Good || |
Line 22: | Line 12: |
|| Release cycle logic : || none, bugfixes only || || Version : || 5.5.26 || |
|| Current version : || 5.5.26 || || Link : || http://tomcat.apache.org/ || |
Line 41: | Line 31: |
== Tomcat 6 == || Type : || Servlet container || || License : || Apache License v 2.0 || || Builds from source : || Yes, with openjdk (not with gcj -- missing J2SE 1.5 Socket.setPerformancePreferences methods) || || Packaged : || No (but not too complicated) || || Maintainability : || Good || || Compatibility : || Servlet/JSP : 2.5/2.1 || || Current version : || 6.0.16 || || Link : || http://tomcat.apache.org/ || * Tomcat is now downstream of Glassfish, lost contributors from Sun. * Used by developers and as a servlet container inside other products, rarely in production by itself. Random packaging notes : * Fix `commons-daemon.home=${base.path}` in build.properties * Needs libecj-java as additional build dep + force `jdt.jar=/usr/share/java/ecj.jar` * Needs to pull native connectors source as well and edit `tomcat-native.tar.gz=...` * No need to copy all jars to lib/ at packaging time, use the depends ones |
|
Line 42: | Line 51: |
|| Type : || Modular (Servlet container or J2EE application server, uses Tomcat or JeTTY) || || Builds from source : || not with OpenJDK6 || || Packaged : || no. Uses Maven. || || Maintainability : || fair || |
|| Type : || Modular (Servlet container or J2EE application server, uses Tomcat or Jetty) || || License : || Apache License v 2.0 || || Builds from source : || Yes (with OpenJDK + patch from Geronimo). Uses maven. || || Packaged : || No. Lots of missing deps (Geronimo's maven build process pulls 517 jar/war/car) || || Maintainability : || Good, reactive upstream || |
Line 47: | Line 57: |
|| Release cycle logic : || "release often" (every 2-4 months) || || Version : || 2.1.1 || |
|| Current version : || 2.1.1 || || Link : || http://geronimo.apache.org/ || |
Line 51: | Line 61: |
* Robust | * "release often" (every 2-4 months) |
Line 53: | Line 63: |
* Increasing marketshare | |
Line 57: | Line 66: |
Running Geronimo binary : * Does not run with OpenJDK-6 (keystore issue). Requires Sun JDK >=1.5 |
Running Geronimo : * Running instructions recommend Sun JDK >=1.5 * tomcat6-j2EE version does not run with OpenJDK-6 * Invalid keystore format issue : http://pastebin.ca/1032465 * Known issue in OpenJDK : http://www.nabble.com/OpenJDK---Glassfish-Client-td17512837.html * jetty6-j2EE version runs with OpenJDK-6 |
Line 63: | Line 76: |
* Maven-based build process pulls lots of deps in ~/.m2 -> difficulty to debianize * Very (really) slow using gcj - aborted * Fails to build using openjdk-6-jdk, even if overriding the version check * Geronimo recommends building with Sun's JDK 1.5. == Glassfish v3 == || Type : || Modular (Servlet container or J2EE application server) || || Builds from source : || No ? || || Packaged : || No (uses Maven) || || Maintainability : || good || || Compatibility : || J2EE v5 || || Release cycle logic : || || || Version : || Does not exist yet (August ?) || Notes : * Includes Felix |
* Building with gcj * Very (really) slow - aborted * Building with OpenJDK-6 * Need to override JDK version check in build.xml * Fails with `org.apache.geronimo.axis2.pojo.POJOWebServiceContext is not abstract and does not override abstract method <T>getEndpointReference(java.lang.Class<T>,org.w3c.dom.Element...) in javax.xml.ws.WebServiceContext` : JDK 1.6 incompatibility (new getEndpointReference abstract method in jax-ws) * Build instructions require Sun's JDK 1.5. * Geronimo team provided patch to build under 1.6 @ https://issues.apache.org/jira/browse/GERONIMO-4089 * Very reactive help on FreeNode #geronimo, by Kevan Miller (kevan) and Jarek Gawor (jgawor) * Builds with `MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256m"` in ~/.mavenrc * Tests at the end of the build fail with loader constraint violation error : http://pastebin.ca/1032462 * Runs OK, tests are OK when run separately |
Line 82: | Line 90: |
|| Builds from source : || no (being worked on) ? || || Packaged : || in Multiverse (v2) || || Maintainability : || good || |
|| License : || CDDLv1 + GPLv2 with exceptions (see [http://wiki.java.net/bin/view/Projects/GlassFishCodeDependencies here]) || || Builds from source : || No (being worked on) || || Packaged : || in Multiverse (V2 UR1) - builds from binaries || || Maintainability : || Good support from Sun || |
Line 86: | Line 95: |
|| Release cycle logic : || || || Version : || || == JBOSS == |
|| Current version : || V2 UR2 || || Link : || https://glassfish.dev.java.net/ || Two sources in multiverse : * glassfish (builds from source : glassfish-activation, glassfish-appserv, glassfish-jmac-api, glassfish-mail, glassfish-javaee, glassfish-toplink-essentials) : incomplete GlassFish with the build-from-source bits * glassfishv2 (builds from binary blobs : glassfishv2-bin, glassfishv2, glassfishv2-doc) : complete GF by Sun Running glassfishv2 : * Install fails at configure glassfish-v2 : missing English.pm in @INC while running /usr/share/glassfishv2/config/install/install.pl (missing libtimedate-perl package in depends) * Invalid keystore format running with OpenJDK-6 (same error as Glassfish), runs OK with Sun's JDK * Good admin UI, but ''way'' too much Sun-branded == GlassFish v3 == || Type : || Modular (Servlet container or J2EE application server) || || License : || CDDLv1 + GPLv2 with exceptions (see [https://glassfish.dev.java.net/downloads/v3/tp2-third-party-readme.txt here]) || || Builds from source : || No || || Packaged : || No (uses Maven) || || Maintainability : || Good support from Sun || || Compatibility : || J2EE v5 || || Current version : || V3TP2 (incomplete : see http://wiki.glassfish.java.net/Wiki.jsp?page=GlassFishV3TP2Content ) || || Link : || https://glassfish.dev.java.net/ || * Alpha code * Only the framework and web container in V3TP2 == JOnAS 4 == || Type : || J2EE application server (uses Tomcat or Jetty) || || License : || LGPL 2.1 || || Builds from source : || see below || || Packaged : || No || || Maintainability : || Questionable || || Compatibility : || J2EE v1.4 || || Current version : || 4.9.2 (released May 23, 2008) || || Link : || http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/ || * Twice a year, a new JOnAS release is delivered * Can make use of pristine Tomcat 5.5 or Jetty 5.1 * Looks less ''finished'' than Geronimo, more a research testbed than an enterprise-ready solution Building JonAS4 : * "Source" package includes 134 pre-built jars, difficult to tell if they all build from source * Sources build with gcj * Does not build using OpenJDK-6 (`org.objectweb.jonas.dbm.JManagedConnection is not abstract and does not override abstract method...`) == JOnAS 5 == |
Line 92: | Line 141: |
|| Builds from source : || ? || || Packaged : || no. Only JBoss Common in Universe || || Maintainability : || ?? || || Compatibility : || J2EE v1.4 as of JBOSS 4 || || Release cycle logic : || ~ twice a year || || Version : || 5.0 "really soon" || Notes * Questionable maintenance relationship. == JeTTY 6 == || Type : || Servlet container || || License : || Apache 2.0 || || Builds from source : || ? || || Packaged : || yes, in Universe || || Maintainability : || good upstream || || Compatibility : || Servlet/JSP 2.5/2.1 || || Release cycle logic : || || || Version : || || == JOnAS == || Type : || J2EE application server || || Builds from source : || ? || || Packaged : || no || || Maintainability : || ? || || Compatibility : || J2EE v1.4 as of JOnAS 4.4 || || Release cycle logic : || || || Version : || || Notes : * Decreasing marketshare * Not sure of upstream maintainability. == Resin == || Type : || ? || |
|| License : || LGPL 2.1 || |
Line 129: | Line 144: |
|| Maintainability : || ? || || Compatibility : || ? || || Release cycle logic : || || || Version : || || |
|| Maintainability : || Questionable || || Compatibility : || Release version 5.1 (Nov 08) targets J2EEv5 compliance || || Current version : || 5.0.3RC (no stable release yet) || || Link : || http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/ || * New architecture, OSGi based (like Glassfish v3) * Can't make it start * `NoClassDefFoundError: org/ow2/jonas/commands/admin/ClientAdmin` == JBOSS AS 5 == || Type : || J2EE application server || || License : || LGPL || || Builds from source : || see below || || Packaged : || No (only JBoss Common in Universe) || || Maintainability : || Questionable || || Compatibility : || J2EE v1.5 || || Current version : || 5.0.0Beta4 || || Link : || http://www.jboss.org/jbossas/ || * Market leader for FOSS J2EE appservers * Admin UI makes use of Java applets, seems less accessible than Geronimo's one Building JBOSS AS : * "Source" package includes 295 pre-built jars, difficult to tell if they all build from source * JBOSS AS sources don't build with our current Ant (1.7) * JBOSS AS sources build OK with Ant 1.6.5 == Jetty 5.1 == || Type : || Servlet container || || License : || Apache 2.0 || || Builds from source : || Yes || || Packaged : || Yes, in Universe (5.1.14) || || Maintainability : || Good upstream || || Compatibility : || Servlet/JSP 2.4/2.0 || || Current version : || 5.1.14 || || Link : || http://www.mortbay.org/jetty-6/ || * More an integration component than a full-featured application server * No admin UI == Jetty 6.1 == || Type : || Servlet container || || License : || Apache 2.0 || || Builds from source : || See below || || Packaged : || No. Maven pulls 94 jars, most of them are already packaged. || || Maintainability : || Good upstream || || Compatibility : || Servlet/JSP 2.5/2.1 || || Current version : || 6.1.10 || || Link : || http://www.mortbay.org/jetty-6/ || * More an integration component than a full-featured application server * No admin UI Building 6.1 from source : * Does not build with gcj * Uses maven + a cvs task at one point to pull even more * Compilation fails with OpenJDK-6, complaining about Sun proprietary API and [that] may be removed in a future release == Resin 3.1 Open Source version == || Type : || Java/PHP application server || || License : || GPL || || Builds from source : || Where's the source ? || || Packaged : || No || || Maintainability : || Questionable || || Compatibility : || No certification, but J2EEv5 features (Servlet 2.5 / JSP 2.1 / EJB 3.0) || || Current version : || 3.1.6 || || Link : || http://caucho.com/resin/doc/ || * Enterprise-ready version is "Resin Professional", not open source * Difficulty to find anything on their website * Need partnership with Caucho if we choose that option |
ContentsBRTableOfContents |
Ubuntu server J2EE support options
Tomcat 5.5
Type : |
Servlet container |
License : |
Apache License v 2.0 |
Builds from source : |
Yes |
Packaged : |
Yes (5.5.25 in Universe) |
Maintainability : |
Good |
Compatibility : |
Servlet/JSP 2.4/2.0 |
Current version : |
5.5.26 |
Link : |
Current package problems :
- dependency on JRE (java2-runtime), should be on JDK (java2-compiler) (LP: #179447, #112626)
- file permissions incompatible with admin interface (LP: #234127, #220871)
- incompatibility with openjdk (LP: #229404, #212521)
- 5.5.26 needed to fix CVE-2007-5333 (LP: #220540, #228665)
Additional packages needed in main to build :
- libcommons-daemon-java
- libcommons-digester-java
- libcommons-el-java
- libcommons-fileupload-java
- libcommons-httpclient-java
- libcommons-launcher-java
- libcommons-modeler-java
- libstruts1.2-java
Tomcat 6
Type : |
Servlet container |
License : |
Apache License v 2.0 |
Builds from source : |
Yes, with openjdk (not with gcj -- missing J2SE 1.5 Socket.setPerformancePreferences methods) |
Packaged : |
No (but not too complicated) |
Maintainability : |
Good |
Compatibility : |
Servlet/JSP : 2.5/2.1 |
Current version : |
6.0.16 |
Link : |
- Tomcat is now downstream of Glassfish, lost contributors from Sun.
- Used by developers and as a servlet container inside other products, rarely in production by itself.
Random packaging notes :
Fix commons-daemon.home=${base.path} in build.properties
Needs libecj-java as additional build dep + force jdt.jar=/usr/share/java/ecj.jar
Needs to pull native connectors source as well and edit tomcat-native.tar.gz=...
- No need to copy all jars to lib/ at packaging time, use the depends ones
Geronimo
Type : |
Modular (Servlet container or J2EE application server, uses Tomcat or Jetty) |
License : |
Apache License v 2.0 |
Builds from source : |
Yes (with OpenJDK + patch from Geronimo). Uses maven. |
Packaged : |
No. Lots of missing deps (Geronimo's maven build process pulls 517 jar/war/car) |
Maintainability : |
Good, reactive upstream |
Compatibility : |
J2EE v5 since Geronimo 2.0.1 |
Current version : |
2.1.1 |
Link : |
Notes :
- "release often" (every 2-4 months)
- Right featureset/Ubuntu-style management options
- Modular design. Technologically on par with JBoss and Glassfish v+1.
- Good upstream maintenance relationship.
Running Geronimo :
Running instructions recommend Sun JDK >=1.5
- tomcat6-j2EE version does not run with OpenJDK-6
Invalid keystore format issue : http://pastebin.ca/1032465
Known issue in OpenJDK : http://www.nabble.com/OpenJDK---Glassfish-Client-td17512837.html
- jetty6-j2EE version runs with OpenJDK-6
- Nice admin UI
Building Geronimo :
- Should be built as modular packages with a few metapackages (geronimo-miniG-tomcat, geronimo-J2EE-tomcat...)
- Building with gcj
- Very (really) slow - aborted
- Building with OpenJDK-6
- Need to override JDK version check in build.xml
Fails with org.apache.geronimo.axis2.pojo.POJOWebServiceContext is not abstract and does not override abstract method <T>getEndpointReference(java.lang.Class<T>,org.w3c.dom.Element...) in javax.xml.ws.WebServiceContext : JDK 1.6 incompatibility (new getEndpointReference abstract method in jax-ws)
- Build instructions require Sun's JDK 1.5.
Geronimo team provided patch to build under 1.6 @ https://issues.apache.org/jira/browse/GERONIMO-4089
Very reactive help on FreeNode #geronimo, by Kevan Miller (kevan) and Jarek Gawor (jgawor)
Builds with MAVEN_OPTS="-Xmx768m -XX:MaxPermSize=256m" in ~/.mavenrc
Tests at the end of the build fail with loader constraint violation error : http://pastebin.ca/1032462
- Runs OK, tests are OK when run separately
GlassFish v2
Type : |
J2EE application server |
License : |
CDDLv1 + GPLv2 with exceptions (see [http://wiki.java.net/bin/view/Projects/GlassFishCodeDependencies here]) |
Builds from source : |
No (being worked on) |
Packaged : |
in Multiverse (V2 UR1) - builds from binaries |
Maintainability : |
Good support from Sun |
Compatibility : |
J2EE v5 |
Current version : |
V2 UR2 |
Link : |
Two sources in multiverse :
glassfish (builds from source : glassfish-activation, glassfish-appserv, glassfish-jmac-api, glassfish-mail, glassfish-javaee, glassfish-toplink-essentials) : incomplete GlassFish with the build-from-source bits
- glassfishv2 (builds from binary blobs : glassfishv2-bin, glassfishv2, glassfishv2-doc) : complete GF by Sun
Running glassfishv2 :
- Install fails at configure glassfish-v2 : missing English.pm in @INC while running /usr/share/glassfishv2/config/install/install.pl (missing libtimedate-perl package in depends)
- Invalid keystore format running with OpenJDK-6 (same error as Glassfish), runs OK with Sun's JDK
Good admin UI, but way too much Sun-branded
GlassFish v3
Type : |
Modular (Servlet container or J2EE application server) |
License : |
CDDLv1 + GPLv2 with exceptions (see [https://glassfish.dev.java.net/downloads/v3/tp2-third-party-readme.txt here]) |
Builds from source : |
No |
Packaged : |
No (uses Maven) |
Maintainability : |
Good support from Sun |
Compatibility : |
J2EE v5 |
Current version : |
V3TP2 (incomplete : see http://wiki.glassfish.java.net/Wiki.jsp?page=GlassFishV3TP2Content ) |
Link : |
- Alpha code
- Only the framework and web container in V3TP2
JOnAS 4
Type : |
J2EE application server (uses Tomcat or Jetty) |
License : |
LGPL 2.1 |
Builds from source : |
see below |
Packaged : |
No |
Maintainability : |
Questionable |
Compatibility : |
J2EE v1.4 |
Current version : |
4.9.2 (released May 23, 2008) |
Link : |
- Twice a year, a new JOnAS release is delivered
- Can make use of pristine Tomcat 5.5 or Jetty 5.1
Looks less finished than Geronimo, more a research testbed than an enterprise-ready solution
Building JonAS4 :
- "Source" package includes 134 pre-built jars, difficult to tell if they all build from source
- Sources build with gcj
Does not build using OpenJDK-6 (org.objectweb.jonas.dbm.JManagedConnection is not abstract and does not override abstract method...)
JOnAS 5
Type : |
J2EE application server |
License : |
LGPL 2.1 |
Builds from source : |
? |
Packaged : |
No |
Maintainability : |
Questionable |
Compatibility : |
Release version 5.1 (Nov 08) targets J2EEv5 compliance |
Current version : |
5.0.3RC (no stable release yet) |
Link : |
- New architecture, OSGi based (like Glassfish v3)
- Can't make it start
NoClassDefFoundError: org/ow2/jonas/commands/admin/ClientAdmin
JBOSS AS 5
Type : |
J2EE application server |
License : |
LGPL |
Builds from source : |
see below |
Packaged : |
No (only JBoss Common in Universe) |
Maintainability : |
Questionable |
Compatibility : |
J2EE v1.5 |
Current version : |
5.0.0Beta4 |
Link : |
- Market leader for FOSS J2EE appservers
- Admin UI makes use of Java applets, seems less accessible than Geronimo's one
Building JBOSS AS :
- "Source" package includes 295 pre-built jars, difficult to tell if they all build from source
- JBOSS AS sources don't build with our current Ant (1.7)
- JBOSS AS sources build OK with Ant 1.6.5
Jetty 5.1
Type : |
Servlet container |
License : |
Apache 2.0 |
Builds from source : |
Yes |
Packaged : |
Yes, in Universe (5.1.14) |
Maintainability : |
Good upstream |
Compatibility : |
Servlet/JSP 2.4/2.0 |
Current version : |
5.1.14 |
Link : |
- More an integration component than a full-featured application server
- No admin UI
Jetty 6.1
Type : |
Servlet container |
License : |
Apache 2.0 |
Builds from source : |
See below |
Packaged : |
No. Maven pulls 94 jars, most of them are already packaged. |
Maintainability : |
Good upstream |
Compatibility : |
Servlet/JSP 2.5/2.1 |
Current version : |
6.1.10 |
Link : |
- More an integration component than a full-featured application server
- No admin UI
Building 6.1 from source :
- Does not build with gcj
- Uses maven + a cvs task at one point to pull even more
- Compilation fails with OpenJDK-6, complaining about Sun proprietary API and [that] may be removed in a future release
Resin 3.1 Open Source version
Type : |
Java/PHP application server |
License : |
GPL |
Builds from source : |
Where's the source ? |
Packaged : |
No |
Maintainability : |
Questionable |
Compatibility : |
No certification, but J2EEv5 features (Servlet 2.5 / JSP 2.1 / EJB 3.0) |
Current version : |
3.1.6 |
Link : |
- Enterprise-ready version is "Resin Professional", not open source
- Difficulty to find anything on their website
- Need partnership with Caucho if we choose that option
J2EESupport (last edited 2009-03-18 07:41:03 by terbium)