The Caboteria / Tech Web / TechNotes > ProgrammingNotes > JavaNotes / GeronimoNotes (revision 10)
The Apache group's j2ee server is called Geronimo. Here are some notes.

The home page is http://geronimo.apache.org/ and there's a wiki at http://wiki.apache.org/geronimo/.

Concepts

GBean

Geronimo is modular; it consists of a kernel and a set of components that implement the features needed to implement the J2EE specification. GBean (short for "Geronimo Bean") is the kernel-component interface. There's no GBean interface per se, but each GBean has a corresponding GBeanInfo object that describes the GBean and tells the kernel how to interact with it. Some GBeans implement GBeanLifecycle which allows them to get called when lifecycle events (start, stop, fail) happen. The source code for the GBeanTest class shows how a GBean is used.

GBeans are tracked using an MBeanServer (an MBean directory?).

Misc

Startup

Needs to be run from the target directory (classpaths are relative to that dir). Runs using a standalone application jar called server.jar. The startup class specified in MANIFEST.MF is o.a.g.system.main.Daemon. The Daemon is a command-line wrapper around o.a.g.kernel.Kernel. The daemon first unserializes the META-INF/config.ser from server.jar using Configuration.loadGMBeanState(). The format of config.ser is a leading int that indicates how many attribute name/value pairs follow, then a leading int that indicates how many setReferencePatterns() parameter pairs follow:

        int attributeCount = ois.readInt();
        for (int i = 0; i < attributeCount; i++) {
            gbean.setAttribute((String) ois.readObject(), ois.readObject());
        }
        int endpointCount = ois.readInt();
        for (int i = 0; i < endpointCount; i++) {
            gbean.setReferencePatterns((String) ois.readObject(), (Set) ois.readObject());
        }

Deployment

wiki page here: http://wiki.apache.org/geronimo/Deployment

j2ee xml descriptor files (and their geronimo counterparts) are unmarshalled into java classes using apache xmlbeans (http://xml.apache.org/xmlbeans).

For resource adapters, the ConnectorModuleBuilder class builds the configuration that gets deployed at run-time.

http://nagoya.apache.org/jira/browse/GERONIMO-262 - NPE while deploying trivial RA

Stack trace at startup (setting a RA parameter), heavily edited to remove the gbean/mbean cruft:

        at skeleton.ra.spread.AdapterImpl.setConfigParameter(AdapterImpl.java:84)
        at org.apache.geronimo.connector.ResourceAdapterWrapper.setAttribute(ResourceAdapterWrapper.java:130)
        at mx4j.server.MX4JMBeanServer.registerMBean(MX4JMBeanServer.java:729)
        at org.apache.geronimo.kernel.Kernel.loadGBean(Kernel.java:255)
        at org.apache.geronimo.kernel.config.Configuration.doStart(Configuration.java:176)
        at org.apache.geronimo.gbean.jmx.GBeanMBean.doStart(GBeanMBean.java:593)
        at org.apache.geronimo.gbean.jmx.AbstractManagedObject.startRecursive(AbstractManagedObject.java:303)
        at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
        at org.apache.geronimo.gbean.jmx.AbstractManagedObject.startRecursive(AbstractManagedObject.java:310)
        at org.apache.geronimo.kernel.Kernel.startRecursiveGBean(Kernel.java:275)
        at org.apache.geronimo.system.main.Daemon.main(Daemon.java:137)

Edit | Attach | Print version | History: r26 | r12 < r11 < r10 < r9 | Backlinks | Raw View | Raw edit | More topic actions...
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding The Caboteria? Send feedback