Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ActiveMQ is an Apache implementation of a Message Bus. It's supports JMS 1.1 and is developed separately from Geronimo. More information can be found here. It's important to note with this subsystem that the code in Geronimo around ActiveMQ are just a wrappers (specifically a GBeans). There are three modules in this subsystem. The ge-activemq-rar module contains the ActiveMQ RAR (from the ActiveMQ project), the geronimo-activemq-gbean module contains the GBean wrappers around ActiveMQ and . The geronimo-activemq-gbean-management contains the interfaces for accessing the subsystem externally. Using only these interfaces outside of the ActiveMQ subsystem allows another MQ solution substituted for ActiveMQ in the future. An example of how this subsystem is used externally (specifically the externally usable interfaces) is by the console. The console accesses the subsystem through the interfaces in geronimo-activemq-gbean-management, retrieved via GBean.

...

The Application Client subsystem handles calls from standalone application applications that exist outside of the Geronimo instance. An example of this would be a CORBA call into the application server.

Core

geronimo-kernel

See Geronimo Kernel

...

The geronimo-system module contains much of the core code required to run Geronimo. Internally, Geronimo uses GBeans rather than JMX MBeans to handle communication between modules. The code to convert between GBeans to and MBeans are in this module along with an MBean Server (which basically just delegates calls to the Geronimo Kernel). Other critical pieces of this modules are the startup of the server and the runtime. The code that starts the Geronimo server is in this module things contained in this module is the code to start the Geronimo server and the runtime logging information is also here.

geronimo-transaction

This module is Geronimo's implementation of the Java Transaction API specification. The specification essentially has 4 required interfaces: UserTransaction, Transaction, TransactionManager, and XAResource. Implementations of these four interfaces are found in the geronimo-transaction module. The implementation of Transaction (TransactionImpl) is used by the application server for transaction aware processing. The UserTransaction implementation (GeronimoUserTransaction) is used by the web containers (Jetty and Tomcat) for usage in deployed web applications. TransactionManager is used when the application server manages the transactions for the application automatically (such as with some EJB operations). Finally the XAResource implementation (used through NamedXAResource in Geronimo) implements X/Open CAE Specification transaction standard.

...

JAAS is an Authentication and Authorization specification created by Sun. Geronimo has implemented this specification for use by applications deployed in Geronimo. There are two modules in this subsystem. The geronimo-security module contains the code that implements the JAAS specification. TODO: maybe break this into it's own page?

JavaMail

JavaMail is a specification put out by Sun to abstract away some of the details of creating sending an Email in Java. Geronimo wraps these standard JavaMail classes so that they can be accessed and managed via GBeans. An example of how these are wrapped is the javax.mail.Session class. The Session class manages configuration and authorization information. In Geronimo, the Session class can be accessed via org.apache.geronimo.mail.MailGBean in the geronimo-mail module. JavaMail also uses the JavaBeans Activation Framework (JAF). The JavaBeans Activation Framework is intended to help identify the contents of the various attributes in JavaBeans. In the case of the JavaMail framework, it's used for MIME types. Geronimo has extended JAF to handle data from the MIME types, these classes are in the geronimo-activation module.

...

This subsystem contains an implementation of the Java Naming and Directory Interface. The geronimo-naming module contains all of the classes to handle JNDI lookups look-ups and expose those classes via GBeans to the rest of the Geronimo server. The geronimo-naming-builder reads in deployment plans and creates new entries in the running JNDI contexts.

...

This is a small module that contains code to convert datasource configurations from the format used in BEA's Weblogic and JBoss's Application Server to Geronimo. It's only used by the console for creating new datasources.

...

The geronimo-upgrade module contains code to aid in the migration from one version of Geronimo to another. Utility code to migrate here migrates one version of a deployment plan to another can be found here.

geronimo-jmx-remoting

This module handle remote connections to the MBeanServer. It handles authentication through JAAS and will contain a reference to the current running instance of the GBean/MBean Server.

...

Jetty and Tomcat are both web containers that are available for use with Geronimo. These web containers are not maintained by the Geronimo developers however there are GBean wrappers to many of the operations for the Jetty and Tomcat servers. The code for these subsystems are meant for adapting these projects intended to adapt the containers into the Geronimo applicationenvironment.

Web Services

Modules for deploying web services inside of Geronimo. Geronimo includes the support of Axis, which is an implementation of SOAP and can be found here. The geronimo-webservice and geronimo-webservice-builder modules are more generic. The generic modules are used by the web containers, rather that using Axis directly (so the rest of the application server is not tied to Axis).