Apache Geronimo >  Index >  Development >  XML Schemas >  Apache Geronimo v3.0 XML Schemas User List | Dev List | Wiki | Issue Tracker  
  Overview
Home
License
ASF
Project Policies
Downloads
Documentation
News Archive
  Search
Powered by Google Search
  Community
Events
Get Involved
Committers
Mailing Lists
Discussion Forums
IRC
FAQ
Wiki
Found a Bug?
Service and Support
ASF Sponsorship
ASF Thanks!
  Development
Javadoc
XML Schemas
Source Code
Coding Standards
Issue Tracker
Related Projects
Sample Applications
  Subprojects
Development Tools
GBuild
GShell
XBean

Documentation for geronimo-module-1.2

Table of Contents

top

Schema Document Properties

Target Namespace http://geronimo.apache.org/xml/ns/deployment-1.2
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Documentation This is an XML Schema Definition for Geronimo service deployment plan. This deployment plan is used for deploying service modules which contains non-application GBeans like thread pool, the tomcat/jetty container, security manager, etc. In case the Service deployment plan is provided internally in the java archive, it should be named META-INF/geronimo-service.xml. In case the Service deployment plan is provided externally, the deployment descriptor can be named anything and provided to the deploy tool. All the Service deployment plan must specify the top level element as module with namespace specified as xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2". The default location for this document is http://geronimo.apache.org/xml/ns/deployment-1.2 Typical Geronimo Service Deployment plan will look like this: <?xml version="1.0" encoding="UTF-8"?> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.2"> <environment> ... </environment> <gbean> ... </gbean> </module>

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
sys http://geronimo.apache.org/xml/ns/deployment-1.2
xs http://www.w3.org/2001/XMLSchema
Schema Component Representation
<xs:schema targetNamespace="http://geronimo.apache.org/xml/ns/deployment-1.2" elementFormDefault="qualified" attributeFormDefault="unqualified">
...
</xs:schema>
top

Global Declarations

Element: client-environment

Name client-environment
Type sys:environmentType
Nillable no
Abstract no
Documentation The client-environment element is used only by Application Client modules to provide client module environment setting. It defines elements to store information like moduleId, dependencies, and classloader Info for the client-side application module. This information is used to identify the module in the client container only and it should not be directly used by deployment process.
XML Instance Representation
<sys:client-environment>
<sys:moduleId> sys:artifactType </sys:moduleId> [0..1]

'"moduleId" holds elements for the groupId, artifactId, and version of the module version can be ommitted in which case a timestamp is used. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.'

<sys:dependencies> sys:dependenciesType </sys:dependencies> [0..1]

'"dependencies" holds all classloader and dependency information for the module'

<sys:bundle-activator> xs:string </sys:bundle-activator> [0..1]
<sys:bundle-classPath> xs:string </sys:bundle-classPath> [0..*]
<sys:import-package> xs:string </sys:import-package> [0..*]
<sys:export-package> xs:string </sys:export-package> [0..*]
<sys:require-bundle> xs:string </sys:require-bundle> [0..*]
<sys:dynamic-import-package> xs:string </sys:dynamic-import-package> [0..*]
<sys:hidden-classes> sys:classFilterType </sys:hidden-classes> [0..1]

'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 classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, if you specify two filter elements containing \"java.util\" and \"java.lang\" then you would really screw up your application. :)'

<sys:non-overridable-classes> sys:classFilterType </sys:non-overridable-classes> [0..1]

'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 web application\'s own ClassPath. The classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, specifying two filter elements containing \"javax.servlet\" and \"javax.ejb\" would protect some of the core J2EE classes from being overridden.'

<sys:private-classes> sys:classFilterType </sys:private-classes> [0..1]

'A list of classes which will only be loaded from the ClassLoader of this module or from parent ClassLoaders. This is used to prevent children configurations to see specific classes from its parents. The same effect can be achieved by using hidden-classes. However, private-classes is the preferred approach to hide specific classes from all children configurations.'

<sys:inverse-classloading> sys:emptyType </sys:inverse-classloading> [0..1]

'If the \"inverse-classloading\" element is specified, the standard class loading delegation model is to be reversed for this module.'

<sys:suppress-default-environment> sys:emptyType </sys:suppress-default-environment> [0..1]

'If the \"suppress-default-environment\" element is specified then any default environment build by a builder when deploying the plan will be suppressed. An example of where this is useful is when deploying a connector on an app client in a separate (standalone) module (not as part of a client plan). The connector builder defaultEnvironment includes some server modules that won\'t work on an app client, so you need to suppress the default environment and supply a complete environment including all parents for a non-app-client module you want to run on an app client'

</sys:client-environment>
Diagram
h-235423471 h1117401704 h-1917807771 h-1917807771 h-1917807771 h-2097257630 h-2097257630
Schema Component Representation
<xs:element name="client-environment" type=" sys:environmentType "/>
top

Element: dependencies

Name dependencies
Type sys:dependenciesType
Nillable no
Abstract no
XML Instance Representation
<sys:dependencies>
<sys:dependency> sys:dependencyType </sys:dependency> [0..*]

'"dependency" holds an artifact locating an artifact in a repository. Depending on the type of artifact and value of the import element, the artifact may be included in the current classpath, be loaded as a parent, may require the services in the artifact to be started, or may not be added to the classpath.'

</sys:dependencies>
Diagram
h1955101898
Schema Component Representation
<xs:element name="dependencies" type=" sys:dependenciesType "/>
top

Element: environment

Name environment
Used by (from the same schema document) Complex Type moduleType
Type sys:environmentType
Nillable no
Abstract no
Documentation The environment element defines elements to store information like moduleId, dependencies, and classloader Info for the module. This element is used in all the Services and application modules deployment plans.
XML Instance Representation
<sys:environment>
<sys:moduleId> sys:artifactType </sys:moduleId> [0..1]

'"moduleId" holds elements for the groupId, artifactId, and version of the module version can be ommitted in which case a timestamp is used. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.'

<sys:dependencies> sys:dependenciesType </sys:dependencies> [0..1]

'"dependencies" holds all classloader and dependency information for the module'

<sys:bundle-activator> xs:string </sys:bundle-activator> [0..1]
<sys:bundle-classPath> xs:string </sys:bundle-classPath> [0..*]
<sys:import-package> xs:string </sys:import-package> [0..*]
<sys:export-package> xs:string </sys:export-package> [0..*]
<sys:require-bundle> xs:string </sys:require-bundle> [0..*]
<sys:dynamic-import-package> xs:string </sys:dynamic-import-package> [0..*]
<sys:hidden-classes> sys:classFilterType </sys:hidden-classes> [0..1]

'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 classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, if you specify two filter elements containing \"java.util\" and \"java.lang\" then you would really screw up your application. :)'

<sys:non-overridable-classes> sys:classFilterType </sys:non-overridable-classes> [0..1]

'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 web application\'s own ClassPath. The classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, specifying two filter elements containing \"javax.servlet\" and \"javax.ejb\" would protect some of the core J2EE classes from being overridden.'

<sys:private-classes> sys:classFilterType </sys:private-classes> [0..1]

'A list of classes which will only be loaded from the ClassLoader of this module or from parent ClassLoaders. This is used to prevent children configurations to see specific classes from its parents. The same effect can be achieved by using hidden-classes. However, private-classes is the preferred approach to hide specific classes from all children configurations.'

<sys:inverse-classloading> sys:emptyType </sys:inverse-classloading> [0..1]

'If the \"inverse-classloading\" element is specified, the standard class loading delegation model is to be reversed for this module.'

<sys:suppress-default-environment> sys:emptyType </sys:suppress-default-environment> [0..1]

'If the \"suppress-default-environment\" element is specified then any default environment build by a builder when deploying the plan will be suppressed. An example of where this is useful is when deploying a connector on an app client in a separate (standalone) module (not as part of a client plan). The connector builder defaultEnvironment includes some server modules that won\'t work on an app client, so you need to suppress the default environment and supply a complete environment including all parents for a non-app-client module you want to run on an app client'

</sys:environment>
Diagram
h-235423471 h1117401704 h-1917807771 h-1917807771 h-1917807771 h-2097257630 h-2097257630
Schema Component Representation
<xs:element name="environment" type=" sys:environmentType ">
<-- TODO figure out why this doesn't work <xs:key name="name-key-key"> <xs:annotation> <xs:documentation> name-key-key assures that key-values for the names of services in this module will have unique key names. </xs:documentation> </xs:annotation> <xs:selector xpath="sys:name-key"/> <xs:field xpath="sys:name-key/key"/> </xs:key> -->
</xs:element>
top

Element: gbean

  • This element can be used wherever the following element is referenced:
Name gbean
Type sys:gbeanType
Nillable no
Abstract no
Documentation Adds a new custom component to the server. The component will be deployed when this application module is deployed, but it is not in any way protected, so once it is up and running, other modules can refer to it normally.
XML Instance Representation
<sys:gbean
name=" xs:string [1]

'A unique name for this GBean within this module, this name will be used as a name component in AbstractName, hence AbstractName will be unique server wide.'

"

class=" xs:string [1]

'The fully-qualified name of the class containing the GBeanInfo for this GBean.'

"
>
Start Choice [0..*]
<sys:attribute> sys:attributeType </sys:attribute> [1]

'The attribute provide the name-value pair of various attributes for this GBean. The value of the attributes is specified by value of this element.'

<sys:xml-attribute> sys:xml-attributeType </sys:xml-attribute> [1]

'The xml-attribute specifies the value of particular attribute in XML format, which will be interpreted by a component running in the system, which convert it to single value for this attribute.'

<sys:reference> sys:referenceType </sys:reference> [1]

'The \"reference\" element specifies the value of a particular reference for this GBean in simplest form. It holds the reference to the GBean that matches the single pattern specified here, if no value is specified it will refer to all the matching GBeans.'

<sys:references> sys:referencesType </sys:references> [1]

'The \"references\" element specifies the value of a particular reference for this GBean matching multiple pattern elements.'

<sys:xml-reference> sys:xml-attributeType </sys:xml-reference> [1]

'The xml-reference specifies the value of particular reference in XML format, which will be interpreted by a component running in the system, which convert it to single value for this reference.'

<sys:dependency> sys:patternType </sys:dependency> [1]

'The element \"dependency\" is used to resolve dependencies at GBean level. This is normally only used if for some reason the GBeans within a module must be started in a certain order that is not reflected in the references between them.'

End Choice
</sys:gbean>
Diagram
h85315698
Schema Component Representation
<xs:element name="gbean" type=" sys:gbeanType " substitutionGroup="sys:service"/>
top

Element: module

Name module
Type sys:moduleType
Nillable no
Abstract no
Documentation The module element is the root element of the deployment plan for the Geronimo Service module. Note that the sub-elements of this element should be as in the given order in a sequence. It includes two basic sections, environment section to provide information like moduleName, dependencies, etc. and gbean section to provide information about individual beans contained in this module.
XML Instance Representation
<sys:module>
<sys:environment> ... </sys:environment> [1]

'Reference to environment element defined later in this xsd.'

<sys:service> ... </sys:service> [0..*]

'Reference to service element defined later in this xsd.'

</sys:module>
Diagram
h1508775248 h85315698
Schema Component Representation
<xs:element name="module" type=" sys:moduleType "/>
top

Element: server-environment

Name server-environment
Type sys:environmentType
Nillable no
Abstract no
Documentation The server-environment element is used only by Application Client modules to define server side module environment settings. It defines elements to store information like moduleId, dependencies, and classloader Info for the server-side of client application module. This information is used to identify the module in the server environment only.
XML Instance Representation
<sys:server-environment>
<sys:moduleId> sys:artifactType </sys:moduleId> [0..1]

'"moduleId" holds elements for the groupId, artifactId, and version of the module version can be ommitted in which case a timestamp is used. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.'

<sys:dependencies> sys:dependenciesType </sys:dependencies> [0..1]

'"dependencies" holds all classloader and dependency information for the module'

<sys:bundle-activator> xs:string </sys:bundle-activator> [0..1]
<sys:bundle-classPath> xs:string </sys:bundle-classPath> [0..*]
<sys:import-package> xs:string </sys:import-package> [0..*]
<sys:export-package> xs:string </sys:export-package> [0..*]
<sys:require-bundle> xs:string </sys:require-bundle> [0..*]
<sys:dynamic-import-package> xs:string </sys:dynamic-import-package> [0..*]
<sys:hidden-classes> sys:classFilterType </sys:hidden-classes> [0..1]

'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 classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, if you specify two filter elements containing \"java.util\" and \"java.lang\" then you would really screw up your application. :)'

<sys:non-overridable-classes> sys:classFilterType </sys:non-overridable-classes> [0..1]

'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 web application\'s own ClassPath. The classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, specifying two filter elements containing \"javax.servlet\" and \"javax.ejb\" would protect some of the core J2EE classes from being overridden.'

<sys:private-classes> sys:classFilterType </sys:private-classes> [0..1]

'A list of classes which will only be loaded from the ClassLoader of this module or from parent ClassLoaders. This is used to prevent children configurations to see specific classes from its parents. The same effect can be achieved by using hidden-classes. However, private-classes is the preferred approach to hide specific classes from all children configurations.'

<sys:inverse-classloading> sys:emptyType </sys:inverse-classloading> [0..1]

'If the \"inverse-classloading\" element is specified, the standard class loading delegation model is to be reversed for this module.'

<sys:suppress-default-environment> sys:emptyType </sys:suppress-default-environment> [0..1]

'If the \"suppress-default-environment\" element is specified then any default environment build by a builder when deploying the plan will be suppressed. An example of where this is useful is when deploying a connector on an app client in a separate (standalone) module (not as part of a client plan). The connector builder defaultEnvironment includes some server modules that won\'t work on an app client, so you need to suppress the default environment and supply a complete environment including all parents for a non-app-client module you want to run on an app client'

</sys:server-environment>
Diagram
h-235423471 h1117401704 h-1917807771 h-1917807771 h-1917807771 h-2097257630 h-2097257630
Schema Component Representation
<xs:element name="server-environment" type=" sys:environmentType "/>
top

Element: service

  • The following elements can be used wherever this element is referenced:
Name service
Used by (from the same schema document) Complex Type moduleType
Type sys:abstract-serviceType
Nillable no
Abstract no
Documentation An empty generic element to be extended by gbean and other module types.
XML Instance Representation
<sys:service/>
Diagram
h-601039468
Schema Component Representation
<xs:element name="service" type=" sys:abstract-serviceType "/>
top

Global Definitions

Complex Type: abstract-serviceType

Super-types: None
Sub-types:
Name abstract-serviceType
Used by (from the same schema document) Element service
Abstract yes
XML Instance Representation
<.../>
Diagram
Schema Component Representation
<xs:complexType name="abstract-serviceType" abstract="true">
<xs:sequence/>
</xs:complexType>
top

Complex Type: artifactType

Super-types: None
Sub-types:
Name artifactType
Used by (from the same schema document) Complex Type environmentType
Abstract no
Documentation Refers to either another module running in the server, or an entry in the server's Repository. In either case this effectively uses a URI. When this is pointing to a repository entry, the URI must have a form acceptable to the repository, which is currently a URI consisting of Maven-style identifiers separated by slashes (groupId/artifactId/version/type, for example, the URI "postgresql/postgresql-8.0-jdbc/313/jar" for a file like "repository/postgresql/postgresql-8.0-jdbc-313.jar"). When this is pointing to a module, the URI should match the module's moduleId. This also looks like a Maven-style URI discussed above. The artifactType element can take either a straight URI (as in the examples above), or maven-style identifier fragments (groupId, type, artifactId, and version), which it will compose into a URI by adding up the fragments with slashes in between. There is a correspondence between the xml format and a URI. For example, the URI postgresql/postgresql-8.0-jdbc/313/jar corresponds to the xml: <groupId>postgresql</groupId> <artifactId>postgresql-8.0-jdbc</artifactId> <version>313</version> <type>jar</type>
XML Instance Representation
<...>
<sys:groupId> xs:string </sys:groupId> [0..1]

'The name for group containing this module. By default, it is considered \'default\' for declaration and wild card \'*\' for dependencies.'

<sys:artifactId> xs:string </sys:artifactId> [1]

'The name for module in a specified group. All the artifactId\'s should be unique within a group. If no articfactId is provided it will be defaulted to file name of the module file.'

<sys:version> xs:string </sys:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted to numeric timestamp generated by System.currentTimeMillis() at deploy time. In case of dependencies latest available version will be used.'

<sys:type> xs:string </sys:type> [0..1]

'This element defines the type of the module. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted appropriately by the deployer depending upon type of deployed module.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="artifactType">
<xs:sequence>
<-- TODO not sure if groupId can in fact be optional -->
<xs:element name="groupId" type=" xs:string " minOccurs="0"/>
<xs:element name="artifactId" type=" xs:string "/>
<xs:element name="version" type=" xs:string " minOccurs="0"/>
<xs:element name="type" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: attributeType

Super-types: xs:string < attributeType (by extension)
Sub-types: None
Name attributeType
Used by (from the same schema document) Complex Type gbeanType
Abstract no
XML Instance Representation
<...
name=" xs:string [0..1]

'The name for the current attribute. This name should be same as specified in GBeanInfo for this GBean.'

"

type=" xs:string [0..1]

'The type of the current attribute. Again this should be same as one provided in GBeanInfo hence optional.'

"
>
xs:string
</...>
Diagram
Schema Component Representation
<xs:complexType name="attributeType">
<xs:simpleContent>
<xs:extension base=" xs:string ">
<xs:attribute name="name" type=" xs:string "/>
<xs:attribute name="type" type=" xs:string "/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
top

Complex Type: classFilterType

Super-types: None
Sub-types: None
Name classFilterType
Used by (from the same schema document) Complex Type environmentType , Complex Type environmentType , Complex Type environmentType
Abstract no
XML Instance Representation
<...>
<sys:filter> xs:string </sys:filter> [0..*]

'A fully-qualified class name or prefix to be filtered.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="classFilterType">
<xs:sequence>
<xs:element name="filter" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: dependenciesType

Super-types: None
Sub-types: None
Name dependenciesType
Used by (from the same schema document) Complex Type environmentType , Element dependencies
Abstract no
XML Instance Representation
<...>
<sys:dependency> sys:dependencyType </sys:dependency> [0..*]

'"dependency" holds an artifact locating an artifact in a repository. Depending on the type of artifact and value of the import element, the artifact may be included in the current classpath, be loaded as a parent, may require the services in the artifact to be started, or may not be added to the classpath.'

</...>
Diagram
h1955101898
Schema Component Representation
<xs:complexType name="dependenciesType">
<xs:sequence>
<xs:element name="dependency" type=" sys:dependencyType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: dependencyType

Super-types: artifactType < dependencyType (by extension)
Sub-types: None
Name dependencyType
Used by (from the same schema document) Complex Type dependenciesType
Abstract no
XML Instance Representation
<...>
<sys:groupId> xs:string </sys:groupId> [0..1]

'The name for group containing this module. By default, it is considered \'default\' for declaration and wild card \'*\' for dependencies.'

<sys:artifactId> xs:string </sys:artifactId> [1]

'The name for module in a specified group. All the artifactId\'s should be unique within a group. If no articfactId is provided it will be defaulted to file name of the module file.'

<sys:version> xs:string </sys:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted to numeric timestamp generated by System.currentTimeMillis() at deploy time. In case of dependencies latest available version will be used.'

<sys:type> xs:string </sys:type> [0..1]

'This element defines the type of the module. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted appropriately by the deployer depending upon type of deployed module.'

<sys:import> sys:importType </sys:import> [0..1]

'The import element is restrictive element to defined type of dependency. The default (when omitted) is to include the specified dependency in the classloader (as a parent or URL). If defined as \"classes\" means that the classes must be included in the current module\'s classloader but the dependency does not need to be started. Specifying \"services\" means that the dependency (a module) must be started before the current module, but it is not included as a parent classloader.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="dependencyType">
<xs:complexContent>
<xs:extension base=" sys:artifactType ">
<xs:sequence>
<xs:element name="import" type=" sys:importType " minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
top

Complex Type: emptyType

Super-types: None
Sub-types: None
Name emptyType
Used by (from the same schema document) Complex Type environmentType , Complex Type environmentType
Abstract no
XML Instance Representation
<.../>
Diagram
Schema Component Representation
<xs:complexType name="emptyType"/>
top

Complex Type: environmentType

Super-types: None
Sub-types: None
Name environmentType
Used by (from the same schema document) Element environment , Element client-environment , Element server-environment
Abstract no
XML Instance Representation
<...>
<sys:moduleId> sys:artifactType </sys:moduleId> [0..1]

'"moduleId" holds elements for the groupId, artifactId, and version of the module version can be ommitted in which case a timestamp is used. Module IDs are normally printed with slashes between the four components, such as GroupID/ArtifactID/Version/Type.'

<sys:dependencies> sys:dependenciesType </sys:dependencies> [0..1]

'"dependencies" holds all classloader and dependency information for the module'

<sys:bundle-activator> xs:string </sys:bundle-activator> [0..1]
<sys:bundle-classPath> xs:string </sys:bundle-classPath> [0..*]
<sys:import-package> xs:string </sys:import-package> [0..*]
<sys:export-package> xs:string </sys:export-package> [0..*]
<sys:require-bundle> xs:string </sys:require-bundle> [0..*]
<sys:dynamic-import-package> xs:string </sys:dynamic-import-package> [0..*]
<sys:hidden-classes> sys:classFilterType </sys:hidden-classes> [0..1]

'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 classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, if you specify two filter elements containing \"java.util\" and \"java.lang\" then you would really screw up your application. :)'

<sys:non-overridable-classes> sys:classFilterType </sys:non-overridable-classes> [0..1]

'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 web application\'s own ClassPath. The classes are specified in zero or more child \"filter\" elements where each filter element specifies a fully-qualified class name or prefix. Essentially, any class that starts with one of the prefixes listed here will be treated as hidden. For example, specifying two filter elements containing \"javax.servlet\" and \"javax.ejb\" would protect some of the core J2EE classes from being overridden.'

<sys:private-classes> sys:classFilterType </sys:private-classes> [0..1]

'A list of classes which will only be loaded from the ClassLoader of this module or from parent ClassLoaders. This is used to prevent children configurations to see specific classes from its parents. The same effect can be achieved by using hidden-classes. However, private-classes is the preferred approach to hide specific classes from all children configurations.'

<sys:inverse-classloading> sys:emptyType </sys:inverse-classloading> [0..1]

'If the \"inverse-classloading\" element is specified, the standard class loading delegation model is to be reversed for this module.'

<sys:suppress-default-environment> sys:emptyType </sys:suppress-default-environment> [0..1]

'If the \"suppress-default-environment\" element is specified then any default environment build by a builder when deploying the plan will be suppressed. An example of where this is useful is when deploying a connector on an app client in a separate (standalone) module (not as part of a client plan). The connector builder defaultEnvironment includes some server modules that won\'t work on an app client, so you need to suppress the default environment and supply a complete environment including all parents for a non-app-client module you want to run on an app client'

</...>
Diagram
h-235423471 h1117401704 h-1917807771 h-1917807771 h-1917807771 h-2097257630 h-2097257630
Schema Component Representation
<xs:complexType name="environmentType">
<xs:sequence>
<xs:element name="moduleId" type=" sys:artifactType " minOccurs="0"/>
<xs:element name="dependencies" type=" sys:dependenciesType " minOccurs="0"/>
<xs:element name="bundle-activator" type=" xs:string " minOccurs="0"/>
<xs:element name="bundle-classPath" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="import-package" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="export-package" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="require-bundle" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="dynamic-import-package" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="hidden-classes" type=" sys:classFilterType " minOccurs="0"/>
<xs:element name="non-overridable-classes" type=" sys:classFilterType " minOccurs="0"/>
<xs:element name="private-classes" type=" sys:classFilterType " minOccurs="0"/>
<xs:element name="inverse-classloading" type=" sys:emptyType " minOccurs="0"/>
<xs:element name="suppress-default-environment" type=" sys:emptyType " minOccurs="0"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: gbeanType

Super-types: abstract-serviceType < gbeanType (by extension)
Sub-types: None
Name gbeanType
Used by (from the same schema document) Element gbean
Abstract no
XML Instance Representation
<...
name=" xs:string [1]

'A unique name for this GBean within this module, this name will be used as a name component in AbstractName, hence AbstractName will be unique server wide.'

"

class=" xs:string [1]

'The fully-qualified name of the class containing the GBeanInfo for this GBean.'

"
>
Start Choice [0..*]
<sys:attribute> sys:attributeType </sys:attribute> [1]

'The attribute provide the name-value pair of various attributes for this GBean. The value of the attributes is specified by value of this element.'

<sys:xml-attribute> sys:xml-attributeType </sys:xml-attribute> [1]

'The xml-attribute specifies the value of particular attribute in XML format, which will be interpreted by a component running in the system, which convert it to single value for this attribute.'

<sys:reference> sys:referenceType </sys:reference> [1]

'The \"reference\" element specifies the value of a particular reference for this GBean in simplest form. It holds the reference to the GBean that matches the single pattern specified here, if no value is specified it will refer to all the matching GBeans.'

<sys:references> sys:referencesType </sys:references> [1]

'The \"references\" element specifies the value of a particular reference for this GBean matching multiple pattern elements.'

<sys:xml-reference> sys:xml-attributeType </sys:xml-reference> [1]

'The xml-reference specifies the value of particular reference in XML format, which will be interpreted by a component running in the system, which convert it to single value for this reference.'

<sys:dependency> sys:patternType </sys:dependency> [1]

'The element \"dependency\" is used to resolve dependencies at GBean level. This is normally only used if for some reason the GBeans within a module must be started in a certain order that is not reflected in the references between them.'

End Choice
</...>
Diagram
Schema Component Representation
<xs:complexType name="gbeanType">
<xs:complexContent>
<xs:extension base=" sys:abstract-serviceType ">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="attribute" type=" sys:attributeType "/>
<xs:element name="xml-attribute" type=" sys:xml-attributeType "/>
<xs:element name="reference" type=" sys:referenceType "/>
<xs:element name="references" type=" sys:referencesType "/>
<xs:element name="xml-reference" type=" sys:xml-attributeType "/>
<xs:element name="dependency" type=" sys:patternType "/>
</xs:choice>
<xs:attribute name="name" type=" xs:string " use="required"/>
<xs:attribute name="class" type=" xs:string " use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
top

Complex Type: moduleType

Super-types: None
Sub-types: None
Name moduleType
Used by (from the same schema document) Element module
Abstract no
XML Instance Representation
<...>
<sys:environment> ... </sys:environment> [1]

'Reference to environment element defined later in this xsd.'

<sys:service> ... </sys:service> [0..*]

'Reference to service element defined later in this xsd.'

</...>
Diagram
h1508775248 h85315698
Schema Component Representation
<xs:complexType name="moduleType">
<xs:sequence>
<xs:element ref=" sys:environment "/>
<xs:element ref=" sys:service " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: patternType

Super-types: None
Sub-types:
Name patternType
Used by (from the same schema document) Complex Type gbeanType , Complex Type referencesType
Abstract no
Documentation This group contains the components of an abstract name
XML Instance Representation
<...>
<sys:groupId> xs:string </sys:groupId> [0..1]

'The name for group containing module to match. By default is it considered wild card \'*\'.'

<sys:artifactId> xs:string </sys:artifactId> [0..1]

'The name for module in a specified group to be matched.'

<sys:version> xs:string </sys:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted latest available version matching other criterions.'

<sys:module> xs:string </sys:module> [0..1]

'The value specified here should match the file name of the module referenced.'

<sys:type> xs:string </sys:type> [0..1]

'This element defines the type of the module to be matched. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted wild card char \'*\'.'

<sys:name> xs:string </sys:name> [0..1]

'The name element to identify the referenced GBean by name.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="patternType">
<xs:sequence>
<xs:sequence>
<xs:element name="groupId" type=" xs:string " minOccurs="0"/>
<xs:element name="artifactId" type=" xs:string " minOccurs="0"/>
<xs:element name="version" type=" xs:string " minOccurs="0"/>
<xs:element name="module" type=" xs:string " minOccurs="0"/>
<xs:element name="type" type=" xs:string " minOccurs="0"/>
<xs:element name="name" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:sequence>
</xs:complexType>
top

Complex Type: referenceType

Super-types: patternType < referenceType (by extension)
Sub-types: None
Name referenceType
Used by (from the same schema document) Complex Type gbeanType
Abstract no
XML Instance Representation
<...
name=" xs:string [0..1]

'The name for the current reference. This name should be same as specified in GBeanInfo for this GBean.'

"
>
<sys:groupId> xs:string </sys:groupId> [0..1]

'The name for group containing module to match. By default is it considered wild card \'*\'.'

<sys:artifactId> xs:string </sys:artifactId> [0..1]

'The name for module in a specified group to be matched.'

<sys:version> xs:string </sys:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted latest available version matching other criterions.'

<sys:module> xs:string </sys:module> [0..1]

'The value specified here should match the file name of the module referenced.'

<sys:type> xs:string </sys:type> [0..1]

'This element defines the type of the module to be matched. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted wild card char \'*\'.'

<sys:name> xs:string </sys:name> [0..1]

'The name element to identify the referenced GBean by name.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="referenceType">
<xs:complexContent>
<xs:extension base=" sys:patternType ">
<xs:attribute name="name" type=" xs:string "/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
top

Complex Type: referencesType

Super-types: None
Sub-types: None
Name referencesType
Used by (from the same schema document) Complex Type gbeanType
Abstract no
XML Instance Representation
<...
name=" xs:string [0..1]

'The name for the current reference. This name should be same as specified in GBeanInfo for this GBean.'

"
>
<sys:pattern> sys:patternType </sys:pattern> [1..*]

'The pattern used for matching the referenced GBean.'

</...>
Diagram
h284462437
Schema Component Representation
<xs:complexType name="referencesType">
<xs:sequence>
<xs:element name="pattern" type=" sys:patternType " minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type=" xs:string "/>
</xs:complexType>
top

Complex Type: xml-attributeType

Super-types: None
Sub-types: None
Name xml-attributeType
Used by (from the same schema document) Complex Type gbeanType , Complex Type gbeanType
Abstract no
XML Instance Representation
<...
name=" xs:string [0..1]

'The name for the current attribute. This name should be same as specified in GBeanInfo for this GBean.'

"
>
Allow any elements from any namespace (lax validation). [1]
</...>
Diagram
Schema Component Representation
<xs:complexType name="xml-attributeType">
<xs:sequence>
<xs:any namespace="##any" processContents="lax"/>
</xs:sequence>
<xs:attribute name="name" type=" xs:string "/>
</xs:complexType>
top

Simple Type: importType

Super-types: xs:string < importType (by restriction)
Sub-types: None
Name importType
Used by (from the same schema document) Complex Type dependencyType
Content
  • Base XSD Type: string
  • value comes from list: {'classes'|'services'}
Documentation The import element is restrictive. The default (when omitted) is to include the specified dependency in the classloader (as a parent or URL) and (if the dependency is a module) make sure it is started before starting the current module. Specifying "classes" means that the classes must be included in the current module's classloader but the dependency does not need to be started. (I'm not sure this is actually possible, but it is what is meant). Specifying "services" means that the dependency (a module) must be started before the current module, but it is not included as a parent classloader. You probably never need to use the import element.
Diagram
Schema Component Representation
<xs:simpleType name="importType">
<xs:restriction base=" xs:string ">
<xs:enumeration value="classes"/>
<xs:enumeration value="services"/>
</xs:restriction>
</xs:simpleType>
top

Legend

Complex Type:

Schema Component Type

AusAddress

Schema Component Name
Super-types: Address < AusAddress (by extension)
Sub-types:
  • QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name AusAddress
Abstract no
The table above displays the properties of this schema component.
XML Instance Representation
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1]
</...>

The XML Instance Representation table above shows the schema component's content as an XML instance.

  • The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].
  • Model group information are shown in gray, e.g. Start Choice ... End Choice.
  • For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in bold.
  • If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".
  • Otherwise, the type of the element/attribute is displayed.
    • If the element/attribute's type is in the schema, a link is provided to it.
    • For local simple type definitions, the constraints are displayed in angle brackets, e.g. <<pattern = [1-9][0-9]{3}>>.
Schema Component Representation
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
top

Glossary

Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.

All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.

Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.

Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.

Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.

Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.

Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.

Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.

Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.

Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.

Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.

Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).

Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.

Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.

Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.

Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.

Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

top