The Geronimo deployment plan for an enterprise application is an XML document. It is defined by the geronimo-application-1.0.xsd schema, which can be found in the schema/ subdirectory of the main Geronimo installation directory. The deployment plan for an enterprise application may be:
included in the application EAR, in which case it should be named META-INF/geronimo-application.xml
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:
META-INF/geronimo-application.xml
<?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.0" xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1" configId="MyConfigName" parentId="ParentConfigName" application-name="NameForManagementPurposes" inverseClassloading="false"> ... </application>
The attributes here are:
The main namespace for the deployment plan, which should always be http://geronimo.apache.org/xml/ns/j2ee/application-1.0
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
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
A unique name identifying this module. This name can be passed on the server command line to activate this application when the server starts.
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).
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.
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 details, see the ClassLoader API documentation).