J2EESupport
7713
Comment: [[TableOfContents]]
|
9902
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
[[TableOfContents]] = Issues to discuss at Server Team meeting = * Best technical target : modular, servlet container, monolithic J2EE ? * Maven (needed to build all modular targets : Geronimo and GlassfishV3) : is it possible to make it compatible with Debian package building in Intrepid timeframe ? * Targeting Main inclusion would push lots of packages (javalibs/mavenplugins...) in Main |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''[[BR]][[TableOfContents]]|| |
Line 9: | Line 4: |
== 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. Need to workaround Ant download || || Maintainability : || good || || Compatibility : || Servlet/JSP : 2.5/2.1 || || Current version : || 6.0.16 || || Link : || http://tomcat.apache.org/ || Notes : * Tomcat is downstream of Glassfish. * Lost contributers from Sun. |
|
Line 28: | Line 9: |
|| Packaged : || yes (5.5.25 in Universe) || || Maintainability : || good || |
|| Packaged : || Yes (5.5.25 in Universe) || || Maintainability : || Good || |
Line 50: | 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 53: | Line 53: |
|| Builds from source : || Yes (with OpenJDK + patch from Geronimo) || || Packaged : || No. Uses Maven. || || Maintainability : || fair || |
|| 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 76: | 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 JDK version check in build.xml * `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) |
* 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) |
Line 83: | Line 82: |
* Geronimo team provided patch to build under 1.6 @ https://issues.apache.org/jira/browse/GERONIMO-4089 | * Geronimo team provided patch to build under 1.6 @ https://issues.apache.org/jira/browse/GERONIMO-4089 |
Line 87: | Line 86: |
== Glassfish v3 == |
* 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 : || 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 == |
Line 91: | Line 110: |
|| Builds from source : || No ? || | || Builds from source : || No || |
Line 93: | Line 112: |
|| Maintainability : || good || | || Maintainability : || Good support from Sun || |
Line 98: | Line 117: |
== 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) || || Maintainability : || good || || Compatibility : || J2EE v5 || || Current version : || V2 UR2 || || Link : || https://glassfish.dev.java.net/ || |
* Alpha code * Only the framework and web container in V3TP2 |
Line 111: | Line 123: |
|| Builds from source : || ? || | || Builds from source : || see below || |
Line 113: | Line 125: |
|| Maintainability : || ? || | || Maintainability : || Questionable || |
Line 119: | Line 131: |
* 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...`) |
|
Line 125: | Line 144: |
|| Maintainability : || ? || | || Maintainability : || Questionable || |
Line 130: | Line 149: |
* Twice a year, a new JOnAS release is delivered | * 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 |
Line 135: | Line 174: |
|| Builds from source : || yes? || || Packaged : || yes, in Universe (5.1.14) || || Maintainability : || good upstream || |
|| Builds from source : || Yes || || Packaged : || Yes, in Universe (5.1.14) || || Maintainability : || Good upstream || |
Line 142: | Line 181: |
* More an integration component than a full-featured application server * No admin UI |
|
Line 145: | Line 187: |
|| Builds from source : || ? || || Packaged : || No || || Maintainability : || good upstream || |
|| Builds from source : || See below || || Packaged : || No. Maven pulls 94 jars, most of them are already packaged. || || Maintainability : || Good upstream || |
Line 152: | Line 194: |
* 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 |
|
Line 155: | Line 205: |
|| Builds from source : || where's the source ? || | || Builds from source : || Where's the source ? || |
Line 157: | Line 207: |
|| Maintainability : || ?? || | || Maintainability : || Questionable || |
Line 165: | Line 215: |
== JBOSS AS 5 == || Type : || J2EE application server || || License : || LGPL || || Builds from source : || ? || || Packaged : || no (only JBoss Common in Universe) || || Maintainability : || ?? || || Compatibility : || J2EE v1.5 || || Current version : || 5.0.0Beta4 || || Link : || http://www.jboss.org/jbossas/ || == JBOSS Web == || Type : || Web server, servlet container, PHP/CGI || || License : || LGPL || || Builds from source : || ? || || Packaged : || no || || Maintainability : || ?? || || Compatibility : || Servlet/JSP 2.5/2.1 || || Current version : || JBoss Web 2.1.0 + JBoss Native 2.0.4 || || Link : || http://www.jboss.org/jbossweb/ || |
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)