Sei sulla pagina 1di 7


About Apache Geronimo

Apache Geronimo is an open source J2EE application server project developed by the Apache Software Foundation. Apache Geronimo benefits from the efforts of collaborative development by an open community of Java developers worldwide. This community of developers brings leading-edge architectural design, delivering a flexible, highly modular application server that can support web and J2EE applications.

Whether you are a developer building a departmental application or an independent software vendor needing a highly customizable, small footprint application server for a customer solution, Apache Geronimo is your best option for a community-driven open source application server. Apache Geronimo is a general runtime execution environment and certified J2EE application server that you can configure to satisfy many different infrastructure requirements.

Apache Geronimo brings together best-in-breed technologies across the broader open source community to support J2EE specifications, including:

Apache Tomcat and Jetty for Servlets 2.4 and JSP 2.0

OpenEJB for EJB 2.1

ActiveMQ for JMS 1.1

MX4J for JMX 1.2

TranQL for JDBC

Apache Axis for Web Services

HOWL (ObjectWeb) for JTA 1.0

Apache Geronimo is licensed under the Apache License, Version 2.0, one of the most flexible licenses available for open source software. This license gives you the freedom to use the technology however you wish, build derivative works for distribution, and make code contributions of your choice back to the community. Using Apache Geronimo allows you to benefit from the best of open source while participating in the innovation of open source development.

Applications, application services, and components you can run on Geronimo

The integrated services shown in Table 1 enable you to run a variety of applications, application services, and components on Geronimo. These include the following:

Web applications based on JSPs and servlets

Enterprise applications that contain JSPs, servlets, and EJBs

Relational database services

JMS-based message queue components

MDB components

Lightweight application components based on Spring

Web services

JBI service components

Is there any Integrated Development Environment (IDE) support for Geronimo?

Yes. A Geronimo plug-in for Eclipse is available from the Eclipse Web Tools Platform project (see Resources for a link to the Web page). You can learn about the features of this plug-in in the article "Create, deploy, and debug Apache Geronimo applications" (see Resources). A NetBeans plug-in is another work in progress.

Table 3. Geronimo milestone builds Milestone






M1 and


The latest feature set and closest to 1.0 release. Incorporates a Web console. You can now easily select between Tomcat and Jetty for Web-tier components. The first milestone build that supports EJBs fully through OpenEJB.

Major milestone build. All Web-tier support is in place, ActiveMQ is functional, and Derby is the built-in RDBMS. EJB support is broken. Favors Jetty over Tomcat for Web-tier deployment.

Limited circulation release offering a restrictive feature set.

Why Choose IBM Support for Apache Geronimo

IBM Support for Apache Geronimo provides expert technical support for Apache Geronimo, the open source application server project of the Apache Software Foundation. IBM Support for Apache Geronimo provides the technical support you need to confidently develop and deploy your web and J2EE applications using Apache Geronimo. As IBM WebSphere software is overkill for many small and mid-sized businesses, So, IBM made an interesting move when it acquired privately held Gluecode Software, a provider of support for the Apache Geronimo Java application server based in El Segundo, California. Gluecode offers packaging, support, and other services for Apache Geronimo. IBM needed a less sophisticated and less costly Web application server

Key Benefits:

Multiple support options - IBM Support for Apache Geronimo gives you the flexibility to choose from multiple support levels depending on your business needs. Based on your requirements for features such as access methods, technical contacts and targeted response times, you can optimize the value that you are getting from the open source community and IBM.

Direct linkage to the Apache Geronimo community - IBM is an active participant in the Apache Geronimo community. This means that we continuously work within the community to ensure that new features and capabilities are added to the Apache Geronimo project for the advancement of community goals. Additionally, all Apache Geronimo bug fixes developed by IBM will be contributed into the Apache Geronimo community.

Clear path to value-added products - Choosing Apache Geronimo gives you first-hand exposure to the constant innovation of open, community-driven technology. For a more predictable product release cycle, you have the option of choosing Gluecode Standard Edition, a free application server built on the Apache Geronimo code base. Gluecode Standard Edition is a small footprint application server that has been optimized for web application deployment. It includes only the features you require for web applications, along with value-added components such as prepackaged database drivers to simplify deployment and maintenance. Three support offerings for Gluecode Standard Edition are available for purchase.

Geronimo Vs. IBM WebSphere Application Server (WAS)

Based on the number of hits this blog is getting with the search term “Geronimo vs. WAS CE”, it appears that there is some confusion about the similarities and differences between Apache Geronimo and IBM WebSphere Application Server Community Edition (WAS CE). Thought I’d try and clear up some of the confusion…

This shouldn’t be an “is A better than B?” discussion.

WAS CE is built using an open source product, Apache Geronimo. Like Apache Geronimo, WAS CE is free to download and use, and you can build it yourself from open source code. Unlike Apache Geronimo, WAS CE however does not carry an OSI- approved license, and as such, is not an open source product. WAS CE is built on an open source product. Developers are using WAS CE and Apache Geronimo; it all depends on what you’re need/comfort is.

If you want the newest stuff right away, then you’ll use Geronimo. If you want predictable release cycles, then WAS CE will fit the bill. If you want to modify the source code, fix bugs yourself or create a derivative work, then pick Geronimo. If you want integration with other IBM products and broad platform/database support, then take

a peak at WAS CE. Both are free, or optionally, supported for a fee through IBM and others, so have at it!

From a technical standpoint the WAS CE team takes Geronimo and…


Jetty: because Geronimo comes in two flavors, one with Jetty as the JSP/Servlet engine, and the other with Tomcat as the JSP/Servlet engine. WAS CE only supports Tomcat.

Apache Derby: Derby is used as an internal data store for Geronimo, but is also exposed so that users can write their application data into Derby without having to get another database or do the integration. IBM Cloudscape is IBM’s free and supported version of Derby. I’m not the Derby/Cloudscape expert, but from what I remember, they are identical at the bits/bytes level. In any case, you get Cloudscape with WAS CE mainly so IBM can provide you support for the database. If you buy support for WAS CE, you automatically get free support for the copy of Cloudscape that comes with WAS CE; no separate contract, no separate charges.

Apache Directory Server: Mainly because users told us early on that they already have a ‘company mandated’ directory server. So why give them something very few are going to need/use (we do support Apache DS though).

Servicemix: When we first made this decision it was because customers and partners had told us to be careful to introduce technology in WAS CE that was (1) fully baked and (2) was supported in the rest of the WebSphere Application Server family of products. Servicemix didn’t fit the bill at the time. This one may change with future releases of WAS CE, but don’t quote me though as I don’t have a say anymore ;-)


Integration: Hooks into other IBM products like Rational Application Developer, WebSphere MQ etc.

Growth Path: migration path from WAS CE to the rest of the WebSphere Application Server family of products.

Bundled IBM JDK: or you can download WAS CE without a JDK. You can also use the Sun JDK. (More here…)

Platform Support: Support for Red Hat RHEL, Novell SLES, Red Flag Data Center, Fedora, Mandriva, AIX, Solaris, Windows XP & 2003. (More here…) NOTE: Geronimo has different binaries for Windows & Unix (including Linux & Mac OS X), but does not make an explicit OS support statement. You can try using it with any operating system you like, if it doesn’t work, try the Geronimo mailing list for help. Or if you have paid for support, see which operating systems your support provider supports.

JDBC Drivers: Bundles JDBC drivers for Oracle, DB2, MySQL and MS SQL Server to give you broad DB support (More here…)

Directory Support: Support for Apache Directory Server, IBM Tivoli Directory Server, MS Active Directory, OpenLDAP Server. (More here…)

IBM documentation: Docs, samples and plenty of WAS CE resources on developerWorks

As you may be able to tell, there are few major technical differences between Geronimo & WAS CE. We made the decision early on to stay as close to Geronimo as we could and still be able to give IBM customers what they expect out of an IBM product. The general WAS CE vision is to do as much work as we can out in the Geronimo community. In doing this, Geronimo users and WAS CE users get to benefit from the new features etc. (like we did with the console & Eclipse plug-in).

Why Geronimo??

Both IBM and BEA are loosing deals in favor jboss, which is free - at least the license is free - and of comparable quality. I see this with our customers: with our product we support wls, was & jboss and small clients tend to choose jboss.

So what can IBM and BEA do to get a slice of this small business market? Push and open source app server and sell service arround it, of course. Because was or wls can't compete on the small business market with jboss because of their very high prices, but another open source server could.

Geronimo's most distinctive features are its:

Modular GBean-based architecture, which allows users to remove unneeded services and build very lightweight configurations of the server

Non-Profit ASF leadership, which provides legal protection, ensures stability across the loss of individual contributors and insulates the project from commercial conflicts of interest

Diverse support community, in which companies compete freely and openly to provide services, with none enjoying any particular trademark advantage

Exploring Geronimo's GBean Framework

Geronimo is built around an Inversion of Control (IoC) kernel that consumes and manages components called GBeans. The GBean framework is the vehicle by which new behaviors are added to the Geronimo kernel. Almost everything in Geronimo—including containers, adapters, and applications—is a GBean.

The Geronimo GBean framework facilitates Java-based execution environments by defining their capabilities through a configuration of components known as GBeans. At the heart of each execution environment is a GBean component known as the kernel that consumes and manages other GBeans.

The kernel manages GBean dependencies, state, and lifecycle. A GBean relies on the kernel to "inject" dependencies into the GBean at runtime according to rules defined in a configuration file called a deployment plan. The following code is an example of a GBean declaration within a deployment plan:

The Lifecycle of a GBean

Geronimo GBeans handle lifecycle events and maintain states and association dependencies. Geronimo's IoC execution environment revolves around a web of GBeans and relies on being able to query the current state of each GBean. In addition, the execution environment must be able to save the state of each GBean and restore that state as needed. This need is met by the GBean framework's persistence sub-system.

Integrating a GBean into Geronimo

With the GBean class defined, you must compile and encapsulate it within an archive file (.ear, .war, .jar, etc.). The archive must contain the deployment plan for the GBean, and that plan must conform one of the deployment schemas found in the /schema directory. This example deploys the TestGBean as a standalone module; therefore it must conform to the geronimo-module-1.x.xsd schema.

Manage Apache Geronimo with JMX

The Java™ community has embraced the Java Management Extension (JMX) specification and framework as the standard for systems, applications, and resource management. The Apache Geronimo platform has been designed with manageability as a top priority, and JMX is one of the primary contributing technologies. Discover how to manage the Geronimo platform using JMX.

Apache Geronimo, which is built on a general-purpose Inversion of Control (IoC) kernel that supports the JMX framework, oversees a collection of managed components called Geronimo Beans (GBeans). Geronimo was created with JMX as the underlying kernel infrastructure, so it shares several similarities with JMX Managed Beans (MBeans). This structure has changed slightly over time, because using JMX as the framework for locating objects, interobject communication, method interception, and so on was seen as a stretch for JMX. However, the legacy of JMX is still evident in the Geronimo architecture, especially in the GBean framework.

JMX has become the de facto standard for managing resources within the Java platform, Java 2 Platform, Enterprise Edition (J2EE), and Java Enterprise Edition (Java EE). JMX defines a standard for dynamically instrumenting Java classes, interfaces, and runtime objects with attributes and operations that you can use for management purposes. JMX can instrument and manage any resource -- such as an application, device, or service -- that you can abstract using the Java programming language. Each managed resource is referred to as an MBean. JMX defines four types of MBeans:

Standard MBeans: Use Java interfaces to define their management attributes and operations.

Dynamic MBeans: Use runtime discovery to define their management attributes and operations.

Model MBeans: Act as proxies for objects that expose manageable operations and attributes.

Open MBeans: Use a predefined metadata vocabulary to expose the manageable attributes and operations of classes and objects.

Supportive with others :--

1.) PHP has been a popular scripting language for some time. However, with the growing buzz over Java technology and Apache Geronimo, a J2EE-certified application server, many experienced developers shy away from using PHP with Geronimo, because only JavaServer Pages (JSP) is supported out of the box. The PHP Java Bridge solves this problem by providing full support for PHP on Geronimo and for sharing sessions across both PHP and JSP scripts. 2.) Geronimo will feature support for EJB, messaging, and security. Clustering will be added to Geronimo at some point as well.

Drawbacks of Geronimo Server:--


This Server is not recommended for high load deployments. As of Now a


new Release (2007-04-29) of Geronimo a great milestone but this is also not suitable for high load deployments. Performance problems due to high server load or high communication


latency for remote clients. Availability problems caused by server downtime or lack of connectivity. Clients, in portions of the network that are temporarily disconnected from the server, cannot be serviced.