During the second half of twenty ten, I had the good fortune to meet and work with several developers and IBM software architects working on various Apache Software projects. One in particular is Apache Geronimo, which is the basis of WebSphere Application Server Community Edition. There has been a lot of effort placed on building the next version of the versatile application server and it's exciting to see how the assembly based platform is evolving with technology like OSGi. Java developers will enjoy reading the following discussion with the IBM open source architect, PMC Chair of Apache Geronimo, Apache Software Foundation member, Software committer on several ASF projects and IBM WebSphere Application Server Community Edition Architect. Indeed, Kevan Miller wears many hats as a devoted open source development community member and IBM technical leader.
Kevan, what is Apache Geronimo in two sentences?
Apache Geronimo is a lightweight, flexible, component-based runtime for developing and hosting of Java EE and OSGi Enterprise applications. There, I did it in one sentence.
Open source software is a key part of the solution here. How did Apache Geronimo start and what are the main goals?
The Geronimo project was started out of the desire for an Apache Licensed Java EE server built with an open, community-based development model. In 2003, the ASF (and the Apache Geronimo project) became the first Open Source Software licensee to the Java EE TCK.
The main goal of the Geronimo project is to create an open source application server from best-of-breed open source components. I think this is an important point -- from the very beginning, Apache Geronimo was designed to incorporate open source components and present them as a unified server runtime.
The notion of profiles in Java EE 6 is basic capabilities that Geronimo has been providing for 5 years. Our custom assembly feature takes this several steps further. First, you can design your own server. You don’t need to limit yourself to the relatively static notion of “profiles”. Second, you can have your applications define your server requirements. We can calculate the transitive dependencies of your applications and have those determine the functionality of your server.
So, a Geronimo server can be a full Java EE server, down to a web container, only, or even a simple JMX-based server. We have users running EJB+JMS servers (no web container), which is a bit counter to most user’s requirements, but illustrates Geronimo’s flexibility.
What’s new for Apache Geronimo?
It’s a busy time for the Geronimo community. We’re currently working on Geronimo 3.0, which will be our first Java EE 6 release. Towards this end, the community is nearing the completion of our next milestone release, 3.0-M2 release. 3.0-M2 will be Java EE 6 Web Profile compliant.
Java EE 6 brings a lot of important new function and developer capabilities. There are a lot of good new features in Java EE 6, including CDI, Bean Validation, and JAX-RS. Plus important updates to existing specs, like Servlet 3.0, EJB 3.1, JSF 2.0, and JPA 2.0.
In addition to Java EE 6, we’ve also added support for an OSGi enterprise programming model. We’ve integrated the Apache Aries project into Geronimo. Aries implements the specifications defined by the OSGi Enterprise Expert Group. Developers can now develop OSGi applications and utilize familiar Java EE technologies such as JPA, JMX, JNDI, and JTA. Using OSGi Blueprint, they’ll have a standards-based Dependency Injection container.
How does Apache Geronimo relate to WAS Community Edition?
WAS Community Edition is an IBM distribution of Apache Geronimo. We take Apache Geronimo, perform additional testing, include an IBM JDK, simple configuration options, and license and support it for IBM customers.
How about migration of applications from WAS Community Edition to WAS?
There is some migration effort required to move EE applications from CE to WAS but we're working to make it simpler and help technology overlap in 3.0. OSGi applications can be run in either environment, so developers have flexibility and options with standard based tooling.
How does Geronimo work together with other open source Java components?
Apache Geronimo is a server assembly that integrates several other open source components, as we've discussed here. Geronimo provides additional features as component plug-ins along with the web container. Here is a diagram of Geronimo with related projects that I presented at Apachecon 2010 this past fall.
Where can we find more information on the web?
See geronimo.apache.org and the WebSphere app server community edition product page.
What do you feel is the most important part of IBM’s contribution to open source?
IBM is now a sponsor of the Apache Software Foundation, which is a big deal. I believe that
open source is about building communities, and the
key contribution is the people we bring to our various projects. In no particular order, here is a sample of those dedicated people. T
hese are just a few and I’m sure I’m leaving off some important people – apologies.
• Geronimo - David Jencks, Jarek Gawor
• OpenEJB - David Blevins
Tell me more about the open source activities you are involved with?
In the WebSphere development organization, we work with a number of different open source foundations, including the Eclipse and Dojo Foundations. The majority of our work is in the Apache Software Foundation, where we're contributing to the following projects:
- Apache Http Server
- Apache Geronimo
- Apache OpenJPA
- Apache Aries
- Apache Tuscany
- Apache OpenEJB
- Apache Axis
- Apache Wink
- Apache OpenWebBeans
- Apache Bean Validation
- and others...
Where can people meet you (and team) at upcoming events?
The best place to look for us is on the Geronimo mailing lists (dev@geronimo.apache.org and user@geronimo.apache.org). We can also be found on IRC -- irc://irc.freenode.net/geronimo. See the Geronimo community page. For conferences, you’ll frequently find one or more of us at ApacheCon and the major Open Source and Java conferences. IBM Impact is coming up in April and we've proposed sessions covering OSGi and 3.0 features.
What are the current hot topics in the Java development space?
Well there are the recent Java/OpenJDK developments, of course. IBM and Oracle teaming up on OpenJDK is fundamentally positive news for the Java community. On the other hand, the Field-Of-Use licensing restrictions being maintained by Oracle on the Java TCK for open source developers is really unfortunate from an open source perspective.
What is your favorite development language and why?
Well, that’s easy -- Java. I’ve been developing almost exclusively in Java since the mid-90’s. I still sometimes forget what it was like back in the old days -- having to perform your own memory management, etc. Very glad to have said goodbye to C/C++/Objective-C days. On the other end of the spectrum, my second choice just might be Motorola 6502 assembler. In College I was doing some research into real-time speech compression/decompression -- fun times... That said, there’s some interesting work going on in JavaScript frameworks, Scala, Clojure, etc. IMO, no game-changers like Java. Not yet, anyway.
And for a quick diversion - would you please tell us about your favorite hobby, tech related or not?
I’m a retired soccer player, but still follow US college and pro leagues. Nowadays, I’m into Trail Running. I’m currently gearing up for a 20 mile trail race in February.
I share my sincere thanks to Kevan for sharing his time to discuss open source software and Java development. You can meet Kevan and myself at the IBM Impact conference in April 2011. We'll share more information here on the blog about sessions, labs, unconference topics and technical panels at IBM Impact in the coming weeks. We also want to discuss these topics on LinkedIn.
Until Next Time,
Ryan Boyles
About
Kevan Miller is an open source architect in IBM's WebSphere Application Server development team. He is also the architect for IBM's WAS Community Edition product, a member of the Apache Software Foundation, PMC Chair of the Apache Geronimo project, and a committer and PMC member of a variety of Apache projects (e.g. OpenEJB, OpenWebBeans, Incubator, etc). After 15 years at IBM's TJ Watson Research Center, Kevan starting working on open source software in IBM's Software Group. At the same time, he relocated to Chapel Hill, NC where he now lives with his wife, two daughters, flat coated retriever, cat, and hedgehog. You can follow Kevan on twitter at @kevanmiller.
Originally posted on the IBM Impact event blog for "App Infrastructure Tuesday"