You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

The Geronimo deployment plan for an enterprise application is an XML document. It is defined by the geronimo-application-1.1.xsd schema, which can be found in the schema/ subdirectory of the main Geronimo installation directory. The deployment plan for an enterprise application can be included in the application EAR, in which case it should be named META-INF/geronimo-application.xml or saved as a separate file and provided to the deploy tool when the application is deployed

The deployment plan should always use the Geronimo Application namespace. Additionally, it has a required attribute to identify its configuration name, and an optional attribute to select a parent configuration. A typical enterprise application deployment plan looks like this:

1. Creating an Enterprise Application EAR

1.1. application.xml Format

2.The Enterprise Application Geronimo Deployment Plan
3.Work out Geronimo Deployment plan
4. Structure of the Deployment Plan

4.1. Customizing the Application Class Path
4.2. Configuring Application Modules
4.3. Application-Wide Security Mapping
4.4. Adding Application-Scoped Services

Warning

Creating an Enterprise Application EAR

application.xml Format

The Typical Enterprise Application Geronimo Deployment Plan

The deployment plan should always use the Geronimo Application namespace. Additionally, it has a required attribute to identify its configuration name, and an optional attribute to select a parent configuration. A typical Geronimo enterprise application deployment plan can be implemented as follows.

META-INF/geronimo-application.xml


<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.1"
  xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
  xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1"
  
  inverseClassloading="false">
  ...
</application>

The attributes are defined below

xmlns The main namespace for the deployment plan, which should always be http://geronimo.apache.org/xml/ns/j2ee/application-1.0
xmlns:sys

A secondary namespace, used to identify the common elements for third-party libraries and custom services. If present, this should always be set to http://geronimo.apache.org/xml/ns/deployment-1.0
xmlns:security

A secondary namespace, used to identify the common elements for security role settings. If present, this should always be set to http://geronimo.apache.org/xml/ns/security-1.1
configId

A unique name identifying this module. This name can be passed on the server command line to activate this application when the server starts.
parentId

Identifies the parent configuration for this application (the value specified here should match the configId for that module or application). This can be used to make the application depend on another module such as a standalone EJB JAR or J2EE Connector or another entire application (or it should otherwise be omitted or set to the usual parent for J2EE modules, geronimo/j2ee-server/1.0/car).
application-name

In the standard J2EE Management interface (JSR-77), an application will normally be identified by its configId. You can use this optional attribute to specify a different name for the application to use to identify itself and its children in the management interface. (This will be applied to all GBeans within the configuration, but the configuration GBean itself will still use the configId.) One way to use this is to deploy several database pool or JMS resource adapters in an EAR, but set the application-name to null to make all the resource adapters appear to be deployed at the top level of the server, making it easier to reference them from other applications.
inverseClassloading

If set to true, the class loader for this application tries to load a class before checking whether the class is available from its parent class loader. If omitted or set to false, the normal (check parent first) class loader delegation behavior is used (for more detail

Work out Geronimo Deployment plan

This section will be discussed the details of how Geronimo deployment plan for EAR has implemented for different type of applications accordingly.The Sample Application section of the Geronimo user guide has been heavily used to discusses the deployment plan in depth.

HelloWord EAR application

The article deployment plan level-1 gives an primary understand to the user in basics of Geronimo v1.1 specific deployment plan for an EAR and go head to work with complex applications.Further details about application can be find the original location as at http://cwiki.apache.org/GMOxDOC11/deployment-plans-level-1.html.Therefore here are deployment plans used in this sample application.

Geronimo requires that every EAR file has a standard META-INF/application.xml deployment descriptor. This may be configured for J2EE 1.2, J2EE 1.3, or J2EE 1.4, and should follow the appropriate XML format and following is the application.xml for the above application.

application.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<application>
<display-name>HelloWorldEar</display-name>
<module>
<web>
<web-uri>helloworld.war</web-uri>
<context-root>/hello</context-root>
</web>
</module>
</application>

This deployment plan define the war module in <web><web-uri>helloworld.war<web-uri> and the root context of it.The geronimo-application.xml is the geronimo specific plan for above application.

geronimo-application.xml

<application application-name="HelloWorldEar"
              xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.1" 
              xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1" 
              xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1">
  <sys:environment>
    <sys:moduleId>
      <sys:groupId>default</sys:groupId>
      <sys:artifactId>HelloWorldEar_HelloWorldEar</sys:artifactId>
      <sys:version>1-default</sys:version>
      <sys:type>car</sys:type>
    </sys:moduleId>
    <sys:dependencies/>
    <sys:hidden-classes/>
    <sys:non-overridable-classes/>
  </sys:environment>
</application>

Deployment plan for geronimo-application.xml and openejb-jar.xml

The following sample is an Email address book which covers how to deploy the J2EE Applications on computer running Apache Geronimo v1.1.AddressBook samples has used JSP,Struts EJB and mysql as the data base.Here, it is assumed that you have the basic knowledge and experience of playing with EBJ,JSP and servlets with other application servers.
AddresBook samples use JSP primarily for presentation logic and the HTML code.Servlets form the controller layer of a typical Model-View-Controller(MVC)architecture serve as an interface between the presentation and the model layers.
The three tire architecture and layers are shown in the picture.

Following diagram shows how the code is organized in the application

AddressBook
       |_org.apache.geronimo.sample.addressbook.ejb
       |                                           |_AddressBookEntryBean.java
       |                                           |_AddressBookSessionBean.java
       |_org.apache.geronimo.sample.addressbook.struts
       |                                           |_AddressBookEntryForm.java
       |                                           |_CreateEntry.java
       |                                           |_EditEntry.java
       |                                           |_ListAddress.java
       |                                           |_SaveEntry.java
       |_org.apache.geronimo.sample.addressbook.pages
       |                                           |_EditAddressBook.jsp
       |                                           |_footer.jsp
       |                                           |_ListAddressBookPage.jsp
       |                                           |_navigation.jsp
       |                                           |_site-template.jsp
       |
       |_resource
          |_ear
          |   |_META_INF
          |   |   |_application.xml
          |   |   |_geronimo-application.xml
          |   |_mysql-plan.xml
          |   |_tranql-connector-1.0-SNAPSHOT.rar
          |
          |_ejb
          |  |_META_INF
          |      |_openejb-jar.xml
          |_merge
          |   |_README.txt
          |   |_servlets.xml
          |   |_servlets-mappings.xml
          |   |_struts-controller.xml
          |   |_strust-data-sources.xml
          |   |_struts-forms.xml
          |   |_struts-plugins.xml
          |   |_taglibs.xml
          |
          |_webapp
             |_images
             |_pages
             |_style
             |
             |_WEB_INF
             |  |_classes
             |   |      |_resources
             |   |          |_application.properties
             |   |_conf
             |   |    |_struts-config.xml
             |   |    |_validation.xml
             |   |
             |   |_tld
             |       |_geronimo-jetty.xml
             |       |_tiles-defs.xml
             |       |_validator-rules.xml
             |_index.jsp


JSP and Struts
The Struts action classes are in the AddressBook/src/org/apache/geronimo/sample/addressbook/struts directory. The JSPs are in the AddressBook/src/webapp/pages directory.

EJB
Apache Geronimo uses OpenEJB as the EJB container system. The example contains two EJBs:

  1. Container-managed entity EJB
  2. Stateless session EJB

Deploying an Application-Scoped Connection Pool

An Application scoped connection pool is visible only to the application that deployed it.To deploy an application-scoped connection pool,you need to follow these steps.

  1. Specify the connector module in the application deployment descriptor.
  2. Specify the connector deployment plan in the Geronimo-specfic application deployment descriptor.
  3. Package the application EAR.
  4. Specify the the Connector Module in the Application Deployment Descriptor

The Application deployment descriptor(AddressBook/resources/ear/META-INF/application.xml)should define the TranQL connector module,as shown here.

<application 
       xmlns="http://java.sun.com/xml/ns/j2ee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
       http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
       version="1.4">
    <module>
        <ejb>addressbook-ejb.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>addressbook.war</web-uri>
            <context-root>/addressbook</context-root>
        </web>
    </module>
    <module>
	    <connector>tranql-connector-1.1.rar</connector>
    </module>
</application>

It's a must to package the connector RAR file along with the application EAR file.

Specify the Connector Deployment Plan in the Geronimo Application Deployment Descriptor

Specify the connector deployment plan file in the Geronimo application deployment Descriptor(AddressBook/resources/ear/ear/META-INF/geronimo-application.xml)as shown here.

Deployment plan for RAR Module

Deployment plan for JAR containing EJB Module

Deploying and Undeploying the AddressBook sample

Conclusion

  • No labels