J2EESupport
7857
Comment:
|
8964
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
= 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 |
|
Line 14: | Line 9: |
|| Packaged : || No. Need to workaround Ant download || || Maintainability : || good || |
|| Packaged : || No (but not too complicated) || || Maintainability : || Good || |
Line 20: | Line 15: |
Notes : * Tomcat is downstream of Glassfish. * Lost contributers from Sun. |
* 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 28: | Line 28: |
|| Packaged : || yes (5.5.25 in Universe) || || Maintainability : || good || |
|| Packaged : || Yes (5.5.25 in Universe) || || Maintainability : || Good || |
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 || |
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 88: | Line 87: |
== Glassfish v3 == | == GlassFish v3 == |
Line 91: | Line 90: |
|| Builds from source : || No ? || | || Builds from source : || No || |
Line 98: | Line 97: |
* Alpha code * Only the framework and web container in V3TP2 |
|
Line 101: | Line 103: |
|| Builds from source : || No (being worked on) ? || || Packaged : || in Multiverse (V2 UR1) || |
|| Builds from source : || No (being worked on) || || Packaged : || in Multiverse (V2 UR1) - builds from binaries || |
Line 107: | Line 109: |
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 |
|
Line 119: | Line 130: |
* 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 |
|
Line 130: | Line 143: |
* 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` |
ContentsBRTableOfContents |
Ubuntu server J2EE support options
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
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
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 |
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
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 |
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
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 |
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
JOnAS 4
Type : |
J2EE application server (uses Tomcat or Jetty) |
License : |
LGPL 2.1 |
Builds from source : |
? |
Packaged : |
No |
Maintainability : |
? |
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
JOnAS 5
Type : |
J2EE application server |
License : |
LGPL 2.1 |
Builds from source : |
? |
Packaged : |
No |
Maintainability : |
? |
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
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 : |
Jetty 6.1
Type : |
Servlet container |
License : |
Apache 2.0 |
Builds from source : |
? |
Packaged : |
No |
Maintainability : |
good upstream |
Compatibility : |
Servlet/JSP 2.5/2.1 |
Current version : |
6.1.10 |
Link : |
Resin 3.1 Open Source version
Type : |
Java/PHP application server |
License : |
GPL |
Builds from source : |
where's the source ? |
Packaged : |
No |
Maintainability : |
?? |
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
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 : |
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 : |
J2EESupport (last edited 2009-03-18 07:41:03 by terbium)