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

Compare with Current View Page History

« Previous Version 5 Next »

Overview

The Geronimo deployment plan for a Java EE application, which is usually packaged as a JAR file, is called "geronimo-application-client.xml". The geronimo-application-client.xml deployment plan is an optional file, but is typically used when deploying a client application JAR file that uses the Geronimo client application container. It is used to specify a moduleId for the deployed module, any third party dependencies, a callback handler definition, any message destinations, resources, additional GBeans, and references to any GBeans, EJBs, services, or resources.

Packaging

The geronimo-application-client.xml deployment plan can be packaged as follows:

  1. Embedded in an JAR file. In this case, a geronimo-application-client.xml file must be placed in the /META-INF directory of the JAR.
  2. Maintained separately from the JAR file. In this case, the path to the file must be provided to the appropriate Geronimo deployer (e.g., command-line or console). Note that in this case, the filename can be named something other than geronimo-application-client.xml but must adhere to the same schema.
  3. Embedded in an application EAR file and referenced by an <alt-dd> element of the EAR deployment plan.

Schema

The geronimo-application-client.xml deployment plan is defined by the geronimo-application-client-2.0.xsd schema located in the <geronimo_home>/schema/ subdirectory of the main Geronimo installation directory. The geronimo-application-client-2.0.xsd schema is briefly described here:

http://geronimo.apache.org/schemas-2.1/docs/geronimo-application-client-2.0.xsd.html

Top-level elements

The top-most element in the geronimo-application-client-2.0.xsd is <application-client> element. The top-level elements of the <application-client> element are described below:

<sys:client-environment>

The <sys:client-environment> elements use the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html. The <sys:client-environment> is used to specify the environment for the client application JVM and contains the following elements:

  • The <moduleId> element is used to provide the configuration name for the web application as deployed in the Geronimo server. It contains elements for the groupId, artifactId, version and module type. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.
  • The <dependencies> element is used to provide the configurations and third party libraries on which the web module is dependent upon. These configurations and libraries are made available to the web module via the Geronimo classloader hierarchy.
  • The <hidden-classes> element can be used to specify a list of classes which will never be loaded from parent ClassLoaders of this module. For example, if Log4J was listed here, the module would never see Geronimo's copy of Log4J. If the module provided it's own Log4J JAR it would use that, otherwise it would not be able to load Log4J at all.
  • The <non-overridable-classes> element can be used to specify a list of classes which will only be loaded from parent ClassLoaders of this module (never from the module's own ClassLoader). For example, this is used to prevent a web application from redefining "javax.servlet", so those classes will always be loaded from the server instead of from the web application's own ClassPath.
  • The <inverse-classloading> element can be used to specify that standard classloader delegation is to be reversed for this module.
  • The <suppress-default-environment> element can be used to suppress inheritance of environment by module (i.e., any default environment built by a Geronimo builder when deploying the plan will be suppressed).

<sys:server-environment>

The <sys:server-environment> elements use the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html. The <sys:server-environment> is used so specify the environment for the server-side support module and contains the following elements:

  • The <moduleId> element is used to provide the configuration name for the web application as deployed in the Geronimo server. It contains elements for the groupId, artifactId, version and module type. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.
  • The <dependencies> element is used to provide the configurations and third party libraries on which the web module is dependent upon. These configurations and libraries are made available to the web module via the Geronimo classloader hierarchy.
  • The <hidden-classes> element can be used to specify a list of classes which will never be loaded from parent ClassLoaders of this module. For example, if Log4J was listed here, the module would never see Geronimo's copy of Log4J. If the module provided it's own Log4J JAR it would use that, otherwise it would not be able to load Log4J at all.
  • The <non-overridable-classes> element can be used to specify a list of classes which will only be loaded from parent ClassLoaders of this module (never from the module's own ClassLoader). For example, this is used to prevent a web application from redefining "javax.servlet", so those classes will always be loaded from the server instead of from the web application's own ClassPath.
  • The <inverse-classloading> element can be used to specify that standard classloader delegation is to be reversed for this module.
  • The <suppress-default-environment> element can be used to suppress inheritance of environment by module (i.e., any default environment built by a Geronimo builder when deploying the plan will be suppressed).
<sys:client-environment> and < sys:server-environment> example
<application-client
 xmlns=http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0
 xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">

    <dep:client-environment>
        <dep:moduleId>
            <dep:groupId>JEE5</dep:groupId>
            <dep:artifactId>EXAMPLEClient</dep:artifactId>
            <dep:version>2.1</dep:version>
            <dep:type>car</dep:type>
        </dep:moduleId>
    </dep:client-environment>

    <dep:server-environment>
        <dep:moduleId>
            <dep:groupId>JEE5</dep:groupId>
	    <dep:artifactId>EXAMPLEClientServer</dep:artifactId>
	    <dep:version>2.1</dep:version>
	    <dep:type>car</dep:type>
        </dep:moduleId>
    </dep:server-environment>
    
</application-client>

<naming:gbean-ref>

The <naming:gbean-ref> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving GBean references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to map GBean references to GBeans in other applications using the ref-name provided in the GBean deployment descriptor.

<naming:ejb-ref>

The <naming:ejb-ref> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving EJB references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to map EJB references to EJB's in other applications using remote home and remote interface. The application which contains the EJB being referenced should either be in same EAR or should be included in dependency list of this application. Also note as the EJB's referenced are in a different JVM all the Client interfaces should also be included in current application.

<naming:service-ref>

The <naming:service-ref> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for
resolving EJB references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to map service references to service's in other applications. The application which contains the EJB being referenced should either be in same EAR or should be included in dependency list of this application.

<naming:resource-ref>

The <naming:resource-ref> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving EJB references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to map resource references to resources's like JDBC resources, JMS resources, etc. configured outside the current application.

<naming:resource-env-ref>

The <naming:resource-env-ref> XML element uses the Geronimo Naming namespace, which is used to identify the common elements for resolving EJB references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to map resource references to administrative objects deployed as a part of connectors.

<naming:message-destination>

The <naming:message-destination> XML element uses the Geronimo Naming namespace, which is used to identify the common elements
for resolving EJB references, resource references, and Web services references, and is described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-naming-1.2.xsd.html. It is used to configure a JMS queue or topic which acts like a destination for the messages delivered.

<sec:default-subject>

The <sec:default-subject> element uses the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-security-2.0.xsd.html.

<realm-name>

The <realm-name> element uses the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-application-client-2.0.xsd.html. It names the security realm used for JAAS login.

<callback-handler>

The <resource> element uses the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-application-client-2.0.xsd.html. It specifies the name of a callback class provided by the application for JAAS authentication. This class must implement the javax.security.auth.callback.CallbackHandler interface and follow its specification, as this class will be used by the application client container to collect authentication information from the user.

<resource>

The <resource> element uses the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-application-client-2.0.xsd.html. It contains the definition of all the module-scoped connector resources. The connector resource can be both external and internal to the application client.

<sys:service>

The <sys:service> element uses the Geronimo deployment namespace described at http://geronimo.apache.org/schemas-2.1/docs/geronimo-module-1.2.xsd.html. It is an empty generic element to be extended by GBean and other module types.

  • No labels