Discussions

Apache Geronimo 2.0.1 released by Apache Software Foundation
This release represents the latest open source Java Enterprise Edition 5.0 application server from the Apache Geronimo project, and continues the evolution of the Apache Geronimo server by adding new features and capabilities to a fully compliant and certified Java Enterprise Edition 5.0 container suitable for everything from a development environment to enterprise-level deployments.
The newly released Apache Geronimo 2.0.1 breaks new ground as the first open source Application Server to provide two certified JAX-WS Web Services implementations: Apache Axis2 and Apache CXF. This capability further highlights the flexibility of Apache Geronimo which also provides two certified web container implementations: Apache Tomcat and Jetty.
Geronimo 2.0.1 also introduces new features such as simplified development, improved diagnostics and flexible assemblies. Simplified deployment is achieved through the use of standards based programming model enhancements found in Java Enterprise Edition 5.0. This includes support for the Enterprise JavaBeans (EJB3) specification as implemented by the Apache OpenEJB and Apache OpenJPA projects.
Improved diagnostic capabilities include enhanced logging, class loader viewer as well as JMX browser which are all available from the web based console. Change logging levels on the fly as well as view existing logs with a set of filters. Looking for a class and wondering where it came from? The class loader viewer let’s you find them. Want to see or change the attributes for MBeans in the server? The JMX browser allows you to navigate the MBeans in the server in a simple tree format without having to hook up external consoles or third party products.
In addition, the Certification Authority portlet provides a user friendly interface to setup a Certification Authority, your own Public-Key Infrastructure, and use server/client Digital Certificates for securing your applications.
Flexible assemblies are realized through the project’s continued development of ”Little G” 2.0.1 — a lightweight container offering for projects that don’t need the full feature set of Java Enterprise Edition 5.0. Perfect for web-service and SOA deployments, "Little G" brings the modularity, manageability and extensibility of Apache Geronimo to a lightweight assembly that is small in footprint but full of capability.
The software can be downloaded from the Apache Geronimo web site http://geronimo.apache.org/downloads

I've been sort of following Geronimo development for the last 4 years or so - initially because I worked for a publisher interested in doing a book on it. While it always seemed interesting, my impression was that the user base was rather small in comparison to JBoss, Tomcat, etc.
Is this actually the case? Are there any specific inhibitors of its adoption? I'm hoping to hear from some real, honest-to-god Geronimo users.
-John Mark
Hyperic, Inc.
http://www.hyperic.com/

Haha... thanks for the correction! Note that I wouldn't have been the author, just the publisher. The author would be someone that has actually written code :)
Which, by the way, we never found...
In any case, that doesn't change my question. Does anyone care about Geronimo?
-John Mark

I followed the development of Geronimo in its first months. I would like much more if it wouldn't use OpenEJB.

You should take a look at the 2.0 version of Geronimo. Among the many changes, 100% of the core OpenEJB code was rewritten to be smaller, lighter weight, and really leverage the improvements in EJB 3.0.
We do more with less and have several new spins of our own such as retrofitting all of CMP 1 and CMP 2 be a small layer on top of JPA -- no more tranql, hello JPA. A major advantage to this is that you can freely mix CMP and JPA in the same app with zero complications as they both end up being just plain JPA. They use the same caches, etc. giving you complete coherence and none of the complications that can arise from using two completely different and competing persistence technologies in the same app. A must have to any user who has an existing EJB 2.x application and wants to migrate to or add JPA into the picture.

[snip] While it always seemed interesting, my impression was that the user base was rather small in comparison to JBoss, Tomcat, etc.

Is this actually the case? Are there any specific inhibitors of its adoption?

Its a fair question. I think one of the issues we faced as a project is that we came to the J2EE game too late. You already had WebSphere and WebLogic dominating the commercial space and really JBoss was the only real dominant open source player. Geronimo came in to an already saturated market so getting people to run over to simply change was difficult.
Today we're certified Java EE 5.0 before some commercial application servers as well as other open source servers. At this point I think we're in on the beginning rather than coming late to the game. Its not going to be easy as people are comfortable with their app server choices from before but Geronimo is coming to the table early and has a good opportunity.
Time will tell how much people like the server and we hope there will be many.
Hope this helps.
Matt Hogstrom

Very true. When we started development on jbilling, Gernonimo didn't even exist. But JBoss was already pretty stable and feature-rich (verion 3.x).
I am happy that there is out there an alternative to JBoss, and (without having any experience with it) Gernoimo seems to be that alternative. I wonder how hard would it be to migrate an application such jbilling to Gernoimo. We do use some JBoss specific features for security, for example.
Another important issue is support. For an enterprise application that will run mission critical operations for a business, you need to be able to buy 'official' support. Can you get that for Geronimo?
Congratulations for the Geronimo team for this release.
Paul Casal
Sr Developer
jbilling.com
The Enterprise Open Source Billing System

Sorry, I did not meant to imply that GlassFish is not an alternative. It most probably is, I do not have any experience with it.
Paul Casal
Sr Developer
jbilling.com
The Enterprise Open Source Billing System

I wonder how hard would it be to migrate an application such jbilling to Gernoimo. We do use some JBoss specific features for security, for example.

Geronimo has a set of tools to convert various artifacts from other application servers. There is a specific set of tools that Geronimo has called J2G that converts JBoss applications to Geronimo. they are relatively new but it would be great to take them for a spin if your interested. Ping the Geronimo Dev list at dev at geronimo dot apache dot org for a current status.

Another important issue is support. For an enterprise application that will run mission critical operations for a business, you need to be able to buy 'official' support. Can you get that for Geronimo?

Personally, I think that IBM will always be viewed as disingenuous for pushing 2 different "Websphere" platforms instead of open sourcing the whole thing. I don't think they ever will, but it would be more compelling if they went the same route that Sun is with Glassfish.

Geronimo has a set of tools to convert various artifacts from other application servers. There is a specific set of tools that Geronimo has called J2G that converts JBoss applications to Geronimo. they are relatively new but it would be great to take them for a spin if your interested. Ping the Geronimo Dev list at dev at geronimo dot apache dot org for a current status.

We are quite busy actually migrating from JBoss 3 to JBoss 4 (mostly because of the web services). Yet, if someone of the Geronimo dev team would like to drive this experiment, we would be happy to help. We can commit a number of hours per week.

I don't want to be dismissive of the services those companies provide. Their support could be excellent. But still, it is not the same as support given by the Geronimo team, backed by the real developers. It might be a perception issue only, but getting support from JBoss for JBoss or from Interface21 for Spring is important when decision makers decide on a product.
Paul Casal
Sr Developer
jbilling.com
The Enterprise Open Source Billing System

We are quite busy actually migrating from JBoss 3 to JBoss 4 (mostly because of the web services). Yet, if someone of the Geronimo dev team would like to drive this experiment, we would be happy to help. We can commit a number of hours per week.

Paul,
I am one of the contributors that has done some work on the J2G tools, and I would definitely be interested in giving it a go against jbilling to see how it fares, with the added benefit of you guys potentially ending up with a Geronimo deployable =)
I'll see about doing some tooling around with it in my free cycles myself, and see what I come up with, I would definitely be interested in working with some of your people where possible as well, that is if it's something jbilling has an interest in. As Matt mentioned, our dev at geronimo dot apache dot org list is a great way to get assistance, as well as our IRC channel (irc://irc.freenode.net/geronimo) . In short, I'm willing to work more closely with you or your team on this endeavor.

Around a year ago we had to select a Java/J2EE platform for the company I worked for, and we went with Geronimo (1.1 at the time).
I think anyone using any J2EE product has to realise that they are complex, and you need to play for a bit to get your head around it before you like it or not.... (i.e. there will always be problems - you need to work out if you prefer product x's problems of product y's)
for me the deciding factor was that Geronimo closely resembled other projects I respect and admire (Spring, Maven) - it started with a strong set of architectural principles and it has been well executed.... I had more faith in the Geronimo guys keeing it clean and ironing out their problems than I do with other projects.
Michael.

The newly released Apache Geronimo 2.0.1 breaks new ground as the first open source Application Server to provide two certified JAX-WS Web Services implementations: Apache Axis2 and Apache CXF. This capability further highlights the flexibility of Apache Geronimo which also provides two certified web container implementations: Apache Tomcat and Jetty.

I wonder, would it also be possible to provide two implementations for JSF? As you might know MyFaces 1.2 has just been released and still needs to undergo some practical testing and probably some bug updates. Therefor it would perhaps be safer for now to run with the SUN RI.

I wonder, would it also be possible to provide two implementations for JSF?

Geronimo's architecture allows for this in a manner that is very similar to how the servlet and web services containers are interchangeable. In fact I seem to recall some discussion on the project mailing list about how this could be accomplished.

As you might know MyFaces 1.2 has just been released and still needs to undergo some practical testing and probably some bug updates. Therefor it would perhaps be safer for now to run with the SUN RI.

While the release of MyFaces 1.2 was fairly recent I wouldn't necessarily consider it to be unsafe or unready. Like Geronimo, MyFaces ensures compatibility with the specification by passing a very rigorous set of tests in the Technology Compatibility Kit (TCK). This TSS thread provides a good comparision between MyFaces and the JSF RI http://www.theserverside.com/news/thread.tss?thread_id=46244
--Paul

hi,
I am using MyFaces 1.2 and it was stable enough for me.
I guess the main reason sun RI is not used is licensing issues (sun uses GPL, Apache uses Apache)
but every on can easily replace JSF implementation jar files with each other, or you can even bundle JSF implementation jar files in your web application.

Thank you guys.
I use Geronimo for my projects. I find it quite friendly and easy to use. No problems with docs and information. And in some sense Geronimo is sexy as well - even though it's 50M zipped looks neat :)
I would say Geronimo vs. JBoss is in some sense like Weblogic vs. Websphere. Easy of use and transparency vs. deep dark arogant technology.

I've seen Geronimo promoted by IBM is two different ways.
One as an entry level tool, sort of a "WebSphere" light, even though they really have absolutely nothing in common.
And the other way as a pre-integrated Tomcat + other services. So while it may be a JEE server, it's not really presented as that by that specific IBM campaign, aiming more at the "light weight" server crowd.
I think the latter is a more interesting promotion.
Spring has shown that you don't need a JEE server to get Enterprise services. But you do have to integrate and install a bunch of disparate bits. One thing that's nice about a JEE container is all of that integration is done for you in a single jar file.
Geronimo, as I understand it, is perhaps a bit more modular than the monolithic servers like BEA or even Glassfish. JBoss is also modular (which leads in part to its complexity).
Glassfish v3 is going more modular, and JEE 6 is going towards "profiles". So in the future, we may well have a "JEE container profile" that's nothing more than, say, Tomcat and JMS. They're also blurring the lines between the Web tier and the Application tier by potentially supporting simply dropping a Session Bean in to a WAR, and voila, WarEE, or something.
This is all good.
I wish I had time to look at Geronimo and its modular nature. We just took our JEE EJB 3 framework and ported it from GFv2 to Jetty. It's not 100%, of course, but it gives us source code portability for our primary services between a WAR deployment and an EJB, multi-tier deployment. Jetty, JAX-WS RI, Toplink JPA, and Stateless Session Beans. Even if not 100%, it's enough for the needs of the application we were writing, and lets us keep 90% of our code.
I'd like to think that something like Geronimo might have been a good fit, but I simply didn't want to take the time risk to figure it out, as I have no experience with it.
The code is just getting easier and easier to integrate this way today, and the rise of more formal modular systems will help that immensely I think, and Geronimo is smack in the middle of that space.
But they have Glassfish to keep up with, and those guys are moving hard and fast with a solid product (have you seen the new GFv2 and Postgres benchmarks? Pretty shiny!).

Apart from all the good features of Geronimo, 3 things I like the most.
1. Downloadable binary size, ~ 40MB
This is very important for infrastucture admin's to provision Server instances on demand.
2. Startup speed, ~ 10 seconds
Server startup speed is very essential for developers in development mode. They cannot wait for a long time for server to initialize.
3. Minimum Memory, ~ 32MB
Geronimo runs very well with just 32 MB of memory. This is very useful for developers running Geronimo and other tools like Eclipse on their desktops.
-satya

downloaded the 2.0.1 jetty based version.
cannot deploy my apps, getting NPE at geronimo startup.
ok, lets try to add useless but specialized geronimo deployment descriptors to the application .. got same result
o
k, let's try to create a web app with just an empty index.jsp with the geronimo-web.xml descriptor. same result, NPE.
ok, lets try to add from scratch the geronimo basic sample application (dbtester). same result, NPE.
ok, let's move to trash this version and let's try with the tomcat version
just start the newly installed tomcat based geronimo version and you get: ... [**********> ] 34% 8s Starting org.apache.gero...16:17:44,676 ERROR [[/]] "Restricted listeners property file not found
super, 1 hour lost just to understand that the final 2.0.1 version is a kind of alpha version ...
and this stuff is supposed to be a jboss competitor ???

Of course to be perfectly honest you have to compare Geronimo 2 to Jboss AS 5, which is still in beta. By the time Jboss AS 5 is finally released, Geronimo 2 might have ironed out all of its initial bugs.

Paolo,
Without some details regarding your NPE, it's impossible to know what might be going wrong. Lots of people are using 2.0.1 without a problem. Not clear to me if you're getting an NPE during server startup or during application deployment or both.
The "Restricted listeners property file not found" is an error message which is being created by Tomcat. The message can be ignored.
Would be happy to help resolve your problem -- please drop an email to user at geronimo dot apache dot org or visit us on irc://irc.freenode.net/geronimo
--kevan

Hi Kevan,
just to let everybody know what it is happening.
Environment OS X 10.4.10
java version "1.5.0_07"
JAVA_HOME=/Library/Java/Home
but i also tried to set it to
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
with same results
I get NPE during geronimo startup with brand new jetty version just with one single deploy of any application.
i tried to deploy applications both with myeclipse and manually (don't remember how, not very expert with geronimo).
In order to give you a full stack trace, i need to redo the tests. i will do it and send you by email the results
thanks
Paolo

kevan, i sent an email to mailing list
anyway this is the top of the stack trace
=========================================
Geronimo Application Server started
23:16:07,293 ERROR [Deployer] Deployment failed due to
java.lang.NullPointerException
at org.apache.geronimo.deployment.CopyResourceContext.addFile(CopyResourceContext.java:144)
at org.apache.geronimo.deployment.DeploymentContext.addFile(DeploymentContext.java:461)
at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.installModule(AbstractWebModuleBuilder.java:288)
at org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder$$FastClassByCGLIB$$8523248f.invoke()
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)

Thanks Kevan, setting the JAVA_HOME did do the trick :-)
Take a look at JBoss, Jetty or Tomcat how they manage to run fine on OS X without letting the user do any special setup like JAVA_HOME. Results in a better first-run experience.
S.

Hi Stefan,
Glad to hear it...
I think you'd find a marked similarity between our startup scripts and Tomcat's. Major difference being that Tomcat does not configure the java.ext.dirs property based on your JRE_HOME/JAVA_HOME settings.
At present, we do require a valid JRE_HOME/JAVA_HOME to be configured. I've created a Jira (https://issues.apache.org/jira/browse/GERONIMO-3446) to improve our behavior in this regard...

hi, I am using MyFaces 1.2 and it was stable enough for me. I guess the main reason sun RI is not used is licensing issues (sun uses GPL, Apache uses Apache) but every on can easily replace JSF implementation jar files with each other, or you can even bundle JSF implementation jar files in your web application. - <a href="Fiumicinohttp://www.airport-car-hire-italy.co.uk/">Fiumicino>

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.