05 Aug 2003 : Geir Magnusson Jr., James Strachan and Richard Monson-Haefel
The Java 2, Enterprise Edition (J2EE) platform is employed widely by organizations implementing enterprise applications. It is commonly used in business-to-consumer and most recently in Web service deployments. Most of the largest business organizations today have deployed applications on a J2EE platform.
While the J2EE specification is implemented by a number of large and small vendors, there is no open source J2EE container available with a BSD or BSD-derived licence nor is there an open source project today that provides a fully compliant implementation. Verifiable compliance with the J2EE specification is important to business because it ensures that applications deployed by developers are portable and interoperable across J2EE providers. As a result organizations large and small have felt compelled to pay thousands of dollars to commercial vendors in order to deploy applications based on J2EE compliant servers.
The Apache foundation supports several projects that implement pieces of the J2EE platform such as Servlets, JSP, Tag Libraries, and a Web services stack. However, Apache does not currently support a J2EE project.
The aim of the project is to produce a large and healthy community of J2EE developers tasked with the development of an open source, certified J2EE server which is ASF licensed and passes Sun's TCK reusing the best ASF/BSD licensed code available today and adding new code to complete the J2EE stack.
We feel that this project has a good chance for success as the following project aspects are carefully considered :
However we see the J2EE Server project as a separate project to existing Apache projects, serving two primary roles
Note that the J2EE server project can happily support competition within the J2EE services stack (for example, offering choices for elements such as the servlet engine like Tomcat or Jetty, or some new JTA implementation versus Tyrex or some new JMS implementation versus OpenJMS etc).
We feel that this project has a good chance for success as the following warning signs do not apply to the project we are proposing :
There are two main aspects to this Apache project :
There are several potential initial contributions. Upon formation of the project our first action will be an open, public call for contribution and comment from the J2EE community. Because of recent circumstances in the J2EE OSS community, all code proposed for inclusion must be publicly reviewed and open to public comment.
Though would there be an issue with using JIRA?
The committers are listed below, along with the open source project(s) where they also have commit privileges.
Apache Geronimo is a new effort coordinated by the Apache Software Foundation to make a J2EE compatible container. Please read the proposal that started the project in the incubator.
For more information, please read the latest snapshot of the FAQ below or look here for the live one.
This is the official site for Geronimo while it's in the incubation phase at Apache. We have an alpha version of our future project site.
The most important step is to join the mailing list It is not necessary to post a "Hi" message or to join the project. By subscribing to the list, you're joining the project. After that, it is all down to participation.
As with all Apache projects, the usual form is to get the project's source via CVS tools, join the mailing list(s), find something to do, and submit a patch to the mailing list for their approval and application.
We assume that patch donators are familiar with CVS, diff and patch. If you are not familiar with those tools, or want additional information about how things work, here are some links:
Geronimo, if it passes the incubation stage, will become an Apache project. As an Apache project, the Apache approach to open source community and development will apply. If you aren't familar with how things are done by Apache projects, please familiarize yourself with the information available on the site. Here are some good selections from the Jakarta project site that should help you understand the Apache community process :
Apache Geronimo has two mailing lists of interest, the geronimo-dev list, where all the discussion occurs, and the geronimo-cvs list, which receives commit mails each time a commit is made to the incubator-geronimo CVS module.
You can subscribe to the mailing lists by sending an email to one or both of the following addresses :
To send a message to the Geronimo mailing list without subscribing, try the following link:
However, unless you subscribe to the list, you may not get a response. Subscribing to the list is how you join the project, and follow events.
There is also a mailing list archive, where you can catch up on prior discussion.
The project Wiki is here.
We have a number of code donations "on deck" which are being evaluated. Once those donations are processed, then they will be checked into the Apache Geronimo CVS module.
The CVS module is named
incubator-geronimo. Here is
an example of checking out Apache Geronimo with the CVS
The code can be browsed through ViewCVS at http://cvs.apache.org/viewcvs/incubator-geronimo/.
These are questions that have come up on the mailing list so far. They are unofficial, but are best efforts by community members to record useful answers.
Some questions are unanswered as yet. Have an answer? Please discuss it on the mailing list, and record the conclusion here.
Q: I'd like to find out more and help etc. What do I do next?
A: Participation on the project is via the mailing list and the source code repository. You join by joining the mailing list, and by participating in discussion. You help by contributing your ideas, enthusiasm, code, documentation, tests, and intangibles.
The fundamental tenet of the ASF is that Great Communities build great code. The emphasis is on Community; the code comes from that. If you want to help, just join the mailing list, see what needs to be done, and do it.
Q: Where is the mailing list? How do I subscribe?
A: The mailing list is email@example.com. You subscribe by sending e-mail to [firstname.lastname@example.org].
Q: Is there an archive?
A: [Apache J2EE Archives]
Q: Can you mail me if you're interested in me helping.
A: That's not how open source communities generally work. To the people who have asked to be contacted if Apache are interested, it's unlikely that this will happen with all the huge interest that this has generated. Better to stay in touch with the mailing list.
Q: Where is the Apache CVS module
A: incubator-geronimo [Browse CVS]
Q: The CVS module is empty, is there an issue
A: No. The initial committers have not publicly released the base code. Be patient.
Q: Will it involve JBoss code.
This is a new Apache project, running under Apache guidelines. The Apache Software Foundation accepts only voluntary contributions of material from authors who possess the legal right to donate it.
Q: Will it <insert some technical phrase here>?
A: It's probably worth holding these questions off for the moment. This project is bringing together members and contributions from many existing J2EE communities, and is just starting to come together.
Q: What are the rules for Geronimo?
A: See the [Apache Incubator] web site.
Q: What's the website?
A: [Apache J2EE Project]
Q: What tools do I need to learn?
A: CVS. patch. Using a mail list.
Q: Relationship to JBoss and in particular, the JBoss source base.
A: Several (former) JBoss committers are Geronimo committers. The JBoss codebase cannot, and will not, be used, at all (it is LGPL).
Q: Does Geronimo replace Tomcat, JSTL etc.
A: No. Geronimo includes other services like Tomcat or Jetty for the web container, OpenJMS for the JMS, Tyrex for the transaction manager etc. So Geroimo focusses on being the J2EE container allowing other services to drop in via JMX.
Q: What other projects will Geronimo reuse?
A: We suspect in the grand scheme of things to reuse various existing open source projects. Anything which has a suitable BSD / ASF licence is up for grabs. e.g. the following is a likely list of the things well be using (though in no way is this definitive)...
From the ASF licenced projects...
As well as some non-ASF licenced stuff which is BSD licenced
As well as the usual infrastructure...
(1) There is currently a JNDI implementation in Tomcat's CVS. It might be better to move this to Jakarta Commons so we can all work & extend it - there are various features from Jetty and OpenEjb we'd like to add?
Q: Administration Overview such as an amalgamation of many projects or one large project with subject areas.
Q: Timeline to 1.0 (what does it include).
Q: Will Geronimo be compliant with Sun's CTS.
Q: What is Geronimo's Architectural vision and what does the back plane look like (i.e., is it JMX based?).
Q: What standards are targeted and which are under active development?
Pluto is the Reference Implementation of the Java Portlet Specfication. The current version of this specification is JSR 168. Please read the proposal that started the project in the incubator.