Apache Releases First Geronimo Codeset

Developers can now get their first glimpse at real code for Geronimo, ASF's Open Source J2EE project. Source and binaries are available for a free download. See why Geronimo's code release signals that another J2EE Open Source option is closer than many thought.

Tags: Geronimo, J2EE, Open Source, Magnusson, Developers, GBeans, Container,

Developers can get their first glimpse at real code for Geronimo, the Apache Software Foundation's Open Source J2EE project. Source and binaries for Geronimo's first milestone build, which includes four (4) key components, are available from the ASF website, after 9 months of development. Devs can go to: http://cvs.apache.org/dist/incubator/geronimo/for code and support info downloads.

Geronimo's milestone release is a wake-up call for Java/J2EE devs that thought that Geronimo's Open Source J2EE 1.4 stack was a far-off dream. The release is also a signal to J2EE CIOs/devs who are concerned about the high-cost and complexity of commercial J2EE app servers, that another Open Source option may be closer than they thought. [JBoss, another Open Source, but commercial, J2EE app server, is also expected to be certified this year.]

In fact, the project has progressed so well that an ASF source told Integration Developer News that, if all goes well, Geronimo could be J2EE 1.4-certified this summer.

"We're actually going to begin [self-certification] testing with the J2EE 1.4 TCK in the next couple of weeks," Geir Magnusson Jr. ASF member and Geronimo committer told Open Enterprise Trends "Assuming all goes well, we hope to be [self-]certified by August." Currently, the Geronimo project team includes 20 committers and dozens of active contributors and community members.

We asked Magnusson how many hoops Geronimo might have to jump through before becoming a certified Open Source J2EE 1.4 offerings. "If we run the tasks against the Sun-provided TCK, and it says, "Yes, you pass all the tests, then it's certified," Magnusson told us. "Once it passes the TCK, there will be no question that it complies with the J2EE spec. Further, the Geronimo team is working to make this a functional stack for production use - this is not an academic exercise."

Inside Apache Geronimo --

The Open Source J2EE 1.4 Stack

So what is Geronimo looking to provide? And, what's does the developer get in its download?

First, there are two main aspects to Apache's Geronimo project:

  • deliver a complete J2EE certified server which is fully "Apache Software Licenses and backed by a healthy Open Source community, and
  • create a fully modular J2EE stack so that the Apache community can use whichever parts of the J2EE stack they require separate from the J2EE server project.

  • Geronimo, designed as a Open Source J2EE container and services architecture, is being designed to run any sort of J2EE components a developer might warp for any other container," Magnusson said. So, what do developers get with Geronimo Milestone 1.0? Quite a lot, it turns out.

    "What we've released this week is the first public milestone on the way to certification.," Magnusson said. "It's to show people the container architecture itself -- how Geronimo will bring the various components that make up a J2EE stack together; give some visibility to how Geronimo will support operations and control."

    I kinda think of it [the download] as like fireworks," Magnusson said. "You know where the label says: 'Light and Get Away!" He goes on to explain: "We're trying to make it easy [for developers] to bring it down and get it running. All components will be included in the distribution. You will have your components and they will all be contained in the Geronimo container.

    While Magnusson cautions that developers will not see "consoles and colored GUIs," they will receive a deep look at the inner working and architecture for the GBeans (or GeronimoBeans), which are "the core granule of a managed element in a J2EE server, and the key to how components interact with each other," he said.

    "In addition, the distribution includes 4 J2EE components that demonstrate integration with the Geronimo container"

    The four Geronimo-ready Open Source components are:

  • OpenEJB, an Open Source EJB container system. Because Geronimo is running OpenEJB, a developer should be able to deploy an existing EJB into Geronimo using OpenEJB, and run the tests to see if it will work. "It should work right now," Magnusson said. "OpenEJB has been around for a long, long time."

  • MX4J, an Open Source implementation for JMX (Java Management Extensions), the open management/monitoring Java technology. Geronimo internally uses JMX, and another example how to deploy an Open Source component for Java.

  • ActiveMQ, a JMS implementation that supports the Geronimo GBean management interface using the Open Source ActiveMQ work by Codehouse. This component will provide "rudimentary JMS services that work today, under a BSD-driven [Open Source] license implementation of the JMS spec," Magnusson said. The current ActiveMQ version can do queues and topics, as well as use a number of protocol. The current ActiveMQ does not yet support persistence, but that's coming, he added.

  • Jetty, an Open Source servlet container for Geronimo. "The intent is to have both Tomcat and Jetty available and certified for Geronimo as a choice for users," he added. "Each implements in slightly different ways, and choice is good. For this release Jetty was ready and has been integrated, and that's why Jetty is included." Tomcat is still be implemented for Geronimo. But the integration of both the Jetty and Tomcat servlet containers "will need to go deeper," Magnusson noted. "We want to provide full management control of all the components in each container."

  • Inside the GBean --

    The Key to Using, Managing Assets

    The GBeans architecture lies at the heart of Geronimo's power to enable developers to move or work with their existing J2EE assets, whether Open Source or commercial, Magnusson said.

    "GBeans are designed to let you take things you have, put a GBean wrapper around them, and use that to bridge the JSR 77 lifecycle requirements which GBeans support). You can take anything lying around and get it to work with GBeans." In addition, the GBeans will let developers bring other existing Open Source Java projects into the Geronimo orbit.

    "This [GBean] support for existing components has been the goal from the beginning, that's why we've followed the requirements of J2EE 1.4 and JSR 77 support," Magnusson said. "The thinking of the Geronimo development team here was, 'Let's do it right from the beginning.'" [Ed Note: >JavaWorld published an excellent overview of the JSR 77 J2EE Management Spec.]

    Magnusson offers this description of a
    GBean: "A GBean is a class or object that Geronimo the container can manage the lifecycle of. So, for example, when you deploy parts into a container you want to start them and stop them, and they have dependencies: Such as 'Bean A' can only start up when 'Bean B' is ready to go because 'Bean B' provides services that 'Bean A' needs. So, GBeans are Geronimo's way of packaging up things are that need to be managed, and can express dependencies.

    Still missing are any deep implementations of XML or web services, as specified in J2EE 1.4. Asked whether Geronimo might just be able to adopt existing open standards-based XML, WSDL or related technologies, Magnusson said, "There's going to be some specific work to support XML and web services because you want all this stuff to be instrumented and GBean manageable. Apache itself is the owner of one or more web services implementations, such as Axis" so devs can expect that to be supported as well, he added.

    What Devs Can Do with Geronimo Milestone 1.0?

    "We don't want anyone to believe they can take their existing J2EE app and deploy it in the [Geronimo] container and have it do anything useful," Magnusson conceded. "This [version] is a really early developer release, or a 'technology showcase' release. However, that doesn't mean Geronimo M1 is just something to look at: "If somebody downloads this they are probably going to go home and write an EJB and try to deploy it" he said.

    Given how much progress the Geronimo team has made, Magnusson said the Geronimo project is looking for help in a variety of areas, including development of the core, building demo apps, helping spec an example for a use case for writing a stateless session bean, and especially documentation.

    To get involved, contact the Geronimo team, developers are invited to visit the Geronimo project site, where information on how you can get involved.