May 4, 2004

First Geronimo code released, cert tests set for May

Author: Vance McCarthy

Geronimo, Apache's open source J2EE project, is quietly making a ton of progress. Late last week, after nine months of development work, Apache released its first set of code for Geronimo. Further, Geronimo devs say they will begin self-certification J2EE tests this month, with hopes they'll be fully compliant this summer.

The code release, dubbed Geronimo Milestone 1.0, is wakeup call to J2EE CIOs/devs worried over the expense and complexity of commercial J2EE app servers. To them, the message is: An Apache open source (and certified) J2EE stack may be a lot closer than they may think.

First glimpse at real code this week

Open Enterprise Trends spoke in depth with a Geronimo committer and found that devs get more than the code for the Geronimo open source servlet container; they also get four popular open source components to use with it, including Open EJB.

This week, developers can get their first glimpse at real code for Geronimo, the Apache Software Foundation's open source J2EE project. Source, binaries, and support for Geronimo's first milestone build, which includes four key components, are available from the ASF Web site.

Attendees at this week's TheServerSide Java Symposium in Las Vegas will also get the chance to see a detailed presentation on Geronimo's current downloads and timetables.

Geronimo's milestone release is a wakeup call for Java/J2EE devs who thought 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 open source options may be closer than they thought.

In fact, the project has progressed so well that an ASF source said 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," said Geir Magnusson Jr., ASF member and Geronimo committer. "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 offering. "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

So what is Geronimo looking to provide? There are two main aspects to Apache's Geronimo project

  • to deliver a complete J2EE certified server which is fully "Apache Software Licenses and backed by a healthy open source community; and
  • to 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 an 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?' 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.

More on page 2 ...

In addition, the distribution includes four J2EE components that demonstrate integration with the Geronimo container. They 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; it's another example of 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 said. "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," Magnusson said. 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.'"

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 you 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. Devs are also invited to visit Apache's Jakarta site to contact Magnusson directly.

Vance McCarthy is editor in chief of Open Enterprise Trends. This article is reprinted by special arrangement with the publisher and author.

Click Here!