| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <xs:schema targetNamespace="http://geronimo.apache.org/xml/ns/plugins-1.3" |
| xmlns:list="http://geronimo.apache.org/xml/ns/plugins-1.3" |
| xmlns:atts="http://geronimo.apache.org/xml/ns/attributes-1.2" |
| xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" |
| xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" |
| xmlns:xs="http://www.w3.org/2001/XMLSchema" |
| elementFormDefault="qualified" |
| attributeFormDefault="unqualified" |
| jaxb:extensionBindingPrefixes="xjc" |
| jaxb:version="2.0"> |
| |
| <xs:import namespace="http://geronimo.apache.org/xml/ns/attributes-1.2" |
| schemaLocation="attributes-1.2.xsd"/> |
| |
| <xs:annotation> |
| <xs:appinfo> |
| <jaxb:globalBindings> |
| <xjc:serializable uid="12343"/> |
| </jaxb:globalBindings> |
| </xs:appinfo> |
| </xs:annotation> |
| <xs:annotation> |
| <xs:documentation> |
| Schema for a list of Geronimo plugins available at some external site |
| (namely, a Maven 2 repository). |
| </xs:documentation> |
| </xs:annotation> |
| |
| <!-- Top-level elements --> |
| |
| <xs:element name="geronimo-plugin-list" type="list:plugin-listType"> |
| <xs:annotation> |
| <xs:documentation> |
| The geronimo-plugin-list root element is used for the config file present |
| in the root directory of a Maven repository supporting Geronimo plugin |
| downloads. This will be scanned by Geronimo clients to determine what |
| plugins are available on that server. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="geronimo-plugin" type="list:pluginType"> |
| <xs:annotation> |
| <xs:documentation> |
| The geronimo-plugin root element is used as the config file submitted |
| with an individual Geronimo plugin to the plugin repository. It will be |
| merged into the plugin list for the repository when the submitted plugin |
| is accepted. |
| |
| It is also used for the metadata packed into a plugin when a plugin archive |
| is downloaded from an online repository for local installation, in which |
| case it should be packed into the archive at META-INF/geronimo-plugin.xml |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| |
| <!-- Data types used in this schema --> |
| |
| <!-- Format for a list of available plugins provided by a remote repository --> |
| <xs:complexType name="plugin-listType"> |
| <xs:sequence> |
| <xs:element name="plugin" type="list:pluginType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| The list of plugins available in the current plugin repository. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="default-repository" type="xs:string" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| Each default-repository is a URL to check for any dependencies that |
| need to be downloaded. Different values can be used, for example, to |
| host Geronimo plugins at one site and common third-party JARs at |
| another site, or to maintain a plugin list at a site that is not |
| actually a repository. |
| |
| The URL where this fill is downloaded from must list itself as the |
| first default-repository if it wants to be checked for file |
| downloads in addition to hosting the plugin list. For every |
| dnwload, each of the repositories listed here will be checked in |
| the order listed until the artifact is found. However, if a |
| plugin in the list includes its own source-repository list, those |
| repositories will be used instead of these list-level repositories |
| when downloading that plugin or its dependencies. |
| |
| Note that while the primary repository may be protected by HTTP |
| Basic authentication, the backup repositories must either use the |
| same username and password as the primary or use no authentication. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="pluginType"> |
| <xs:sequence> |
| <xs:element name="name" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| A human-readable name for this plugin. This will be used to identify |
| the plugin to a user when giving them a list of plugins to select from. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="category" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| A category name for this plugin. The user interface typically groups |
| plugins by their category name, so this should match the value for other |
| plugins in the same category. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="pluginGroup" type="xs:boolean" default="false" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| Influences whether a geronimo plugin is a geronimo plugin group, which is |
| just a list of other plugins to install. The dependencies listed for this |
| plugin will be treated as the list of actual plugins to install. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="description" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| A description of this plugin. This will be displayed when the user |
| looks for more information about this plugin. It typically includes |
| a description of what it does, what if any third-party software it's |
| based on, why it would be interesting to use it, etc. |
| |
| Currently this should be plain text, where whitespace is not significant |
| except an entirely blank line indicates a paragraph break (like this |
| documentation, for example). This may change to a more structured format |
| in the future, if we can agree on what that ought to be. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="url" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| The URL for a site that contains more detailed information about this |
| plugin. The plugin repository has access to the basic information |
| provided in this file, but a plugin may have a home page with more |
| detailed information, documentation, source code, etc. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="author" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| Names the author of the plugin. This may be a person, a company, an |
| open source project, or whatever. Basically, this gives some idea who |
| submitted the plugin, perhaps where to go for support, etc. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="license" type="list:licenseType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of the license that applies to this plugin, usually composed of a |
| license class (if any) followed by the name and version of a license: |
| BSD -- Apache Software License (ASL) 2.0 |
| GPL -- Lesser General Public License (LGPL) 2 |
| |
| If there is more than one license listed then that means the user may choose |
| among any of the available licenses. |
| |
| Contains a mandatory true/false attribute indicating whether this license |
| is OSI-approved (e.g. whether the plugin is open source). |
| |
| Note that the license declared here applies only to the current component. |
| Any dependencies may be licensed separately. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="plugin-artifact" type="list:pluginArtifactType" minOccurs="1" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| A version and container senstive instance of this plugin. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="pluginArtifactType"> |
| <xs:sequence> |
| <xs:element name="module-id" type="list:artifactType"> |
| <xs:annotation> |
| <xs:documentation> |
| The Geronimo moduleId for this plugins, which uniquely identifies |
| it, and also is used to construct a path to download it if necessary. |
| If no module-id is provided, that means this is a plugin group, which is |
| just a list of other plugins to install. The prerequisites must still be |
| met, but then the dependencies listed for this plugin will be treated as |
| the list of actual plugins to install. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="hash" type="list:hashType" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| A hash value (typically MD5 or SHA-1) that applies to the plugin download |
| file. This can be used to confirm that a plugin download was complete, and |
| to ensure that the file downloaded is the same as the file originally |
| posted to the repository. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="geronimo-version" type="xs:string" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| Indicates a version of the Geronimo base server that this plugin can run in. |
| If no geronimo-version is listed, that means the plugin can run in any version |
| of Geronimo so long as the prerequisites, parents, and dependencies are present. |
| If one or more geronimo-version elements are listed, then the current version of |
| Geronimo must match one of them in order for this plugin to be installable. |
| |
| This is applied as an exact match: 1.2 does not match 1.2.1 or 1.2-SNAPSHOT |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="jvm-version" type="xs:string" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| Indicates a version of the JVM that this plugin can run in. If no jvm-version |
| is listed, that means the plugin can run in any version of the JVM supported |
| by Geronimo so long as the prerequisites, parents, and dependencies are present. |
| If one or more jvm-version elements are listed, then the JVM that Geronimo is |
| currently running on must match one of them in order for this plugin to be |
| installable. (It does not stop you from restarting Geronimo on a different JVM |
| version once the components is already installed.) |
| |
| This is not normally used, but must be for plugins that use CORBA or |
| serialized QNames, etc. |
| |
| This is applied as a prefix match: 1.4 matches 1.4.2 or 1.4.2_10 |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="prerequisite" type="list:prerequisiteType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| A dependency of this plugin that must be previously installed if this |
| plugin is to be considered to be installable. This is generally the |
| same as the dependency element (for example, it may refer to a plugin |
| by moduleId or a JAR by repository ID) except that the dependency will not |
| be downloaded on demand and must have been previously installed. |
| |
| This is currently used for a web application to specify the web container it |
| runs in (so we don't show Tomcat downloads for a Jetty installation, etc.). It |
| may be used for similar things in the future if more distribution choices are |
| added to Geronimo. |
| |
| It is also used by the public Geronimo plugin repository in cases where the |
| dependencies cannot be redistributed (e.g. a dependency on a commercial JDBC |
| driver JAR which must be manually acquired and installed). |
| |
| It is also used when a user must set something up (like a database pool or |
| security realm) to point to a custom resource in their environment before the |
| plugin can be installed. |
| |
| This is applied as an exact match, except that the version number may be |
| omitted, in which case any matching version of the dependency will work. |
| |
| It has an optional resource-type attribute indicating to the user what type |
| of prerequisite this is (for cases where they're expected to set something up |
| as opposed to just downloading a JAR). e.g. it could be set to "JDBC Pool". |
| Likewise there is an option description to provide more detailed guidance for |
| how to resolve the prerequisite. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="dependency" type="list:dependencyType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| The moduleId of another plugin or Geronimo module, or the repository ID of |
| a 3rd party JAR that this plugin depends on. That means that the dependency |
| must be downloaded and installed if this plugin is selected. |
| |
| This is applied as an exact match, except that the version number may be |
| omitted, in which case any matching version of the dependency will work. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="obsoletes" type="list:artifactType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| The moduleId of another plugin or Geronimo module that this plugin replaces. |
| That can be used, for example, to replace a less functional module |
| with a more functional one, or to upgrade a component to a newer version. |
| |
| This is applied as an exact match, except that the version number may be |
| omitted, in which case any matching version of the module or plugin will be |
| replaced. Be aware that omitting the version number may cause a |
| plugin to be downgraded, so you may choose to explicitly list all |
| lesser versions. That may not be desirable either, though. If the |
| server has foo-1.0.2 installed and you install foo-1.0.1, would you |
| rather have it downgrade or end up with both installed? |
| |
| NOTE: currently the "obsoletes" entries are only processed on the |
| plugin(s) passed directly to the PluginInstaller (not on dependencies that |
| are brought down as a result). That means that a plugin group must list |
| obsoletes for all its components, etc. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="source-repository" type="xs:string" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| The base URL for the repository that this plugin should be downloaded from. |
| The repositories listed here will be consulted in the order listed every |
| time something needs to be downloaded, and the search will stop at the |
| first repository that holds any matching plugin or JAR. |
| |
| In a normal plugin list, the repositories are specified at the list level, |
| and do not need to be repeated at the plugin level. However, any values |
| specified at the plugin level replace the values specified at the list |
| level. This can be used to maintain a single list of plugins from multiple |
| sources. |
| |
| This value is required if this is not a plugin list but metadata for a |
| single plugin included in a plugin file downloaded from a repository. |
| Otherwise, the installer would not know where to download any dependencies |
| from. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="copy-file" type="list:copy-fileType" minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation> |
| <xs:documentation> |
| Lets a plugin include files that should be copied into the Geronimo |
| installation tree, beyond copying the plugin into the repository. For |
| example, this could be used to copy files into geronimo/bin, geronimo/lib, |
| geronimo/var/security/keystores, or other Geronimo dirs. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="config-xml-content" type="list:config-xml-contentType" minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element name="artifact-alias" type="list:propertyType" minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element name="config-substitution" type="list:propertyType" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="config-xml-contentType"> |
| <xs:annotation> |
| <xs:documentation> |
| Lets a plugin declare data that should be inserted into config.xml |
| when the plugin is installed. This is normally used to add ports |
| and other settings that the user is likely to want to change. The |
| gbean entries declared here will be written into config.xml for the |
| new module when the plugin is installed. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:sequence> |
| <xs:element ref="atts:comment" minOccurs="0" |
| maxOccurs="1" /> |
| <xs:element ref="atts:gbean" maxOccurs="unbounded"/> |
| </xs:sequence> |
| <xs:attribute name="load" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Whether the module should be marked load true or false. If marked false it can still |
| be started if other started modules depend on it. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="condition" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| Optional condition that if present is evaluated to determine whether to load the module. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="server" type="xs:string" default="default"> |
| <xs:annotation> |
| <xs:documentation> |
| The "server", i.e. the named set of configuration files, this should be added to. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:complexType> |
| |
| <xs:complexType name="propertyType"> |
| <xs:annotation> |
| <xs:documentation> |
| holds key-value pair. key is in 'key' attribute, value is in content |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="key" use="required" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| key for key-value pair. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="server" type="xs:string" default="default"> |
| <xs:annotation> |
| <xs:documentation> |
| The "server", i.e. the named set of configuration files, this should be added to. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="licenseType"> |
| <xs:annotation> |
| <xs:documentation> |
| See pluginType/license above |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="osi-approved" use="required" type="xs:boolean"> |
| <xs:annotation> |
| <xs:documentation> |
| Indicates whether this license is OSI-approved, which is to say, whether |
| the plugin is open source. Typically this is true for all licenses |
| you'd expect to be open source, and false for proprietary plugins. |
| |
| If there's some doubt, visit http://www.opensource.org/licenses/index.php |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="dependencyType"> |
| <xs:annotation> |
| <xs:documentation> |
| See pluginType/dependency above |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:complexContent> |
| <xs:extension base="list:artifactType"> |
| <xs:sequence> |
| <xs:element name="import" type="list:importType" |
| minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| 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. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| <xs:attribute name="start" use="optional" type="xs:boolean" default="true"> |
| <xs:annotation> |
| <xs:documentation> |
| Influences whether a dependency is marked to start. A plugin is marked to start |
| in a particular server "instance" primarily based on the load and condition settings in |
| the config-xml sections. However the start attribute overrides this for plugins installed |
| as dependencies. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:complexContent> |
| </xs:complexType> |
| |
| <xs:simpleType name="importType"> |
| <xs:annotation> |
| <xs:documentation> |
| <![CDATA[ |
| 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. |
| ]]> |
| </xs:documentation> |
| </xs:annotation> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="classes"> |
| <xs:annotation> |
| <xs:documentation> |
| The value "classes" means that the classes must be |
| included in the current module's classloader but the |
| dependency does not need to be started. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="services"> |
| <xs:annotation> |
| <xs:documentation> |
| The value "services" means that the dependency (a |
| module) must be started before the current module, but |
| it is not included as a parent classloader. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="all"> |
| <xs:annotation> |
| <xs:documentation> |
| The value "all" means that the dependency (a |
| module) must be started before the current module, and |
| it is also included as a parent classloader. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <xs:complexType name="hashType"> |
| <xs:annotation> |
| <xs:documentation> |
| See pluginType/hash above |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="type" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| Indicates the type of hash. The values presently supported are: |
| |
| MD5 |
| SHA-1 |
| |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:NMTOKEN"> |
| <xs:enumeration value="MD5"/> |
| <xs:enumeration value="SHA-1"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="copy-fileType"> |
| <xs:annotation> |
| <xs:documentation> |
| The name of a file in the plugin archive that should be copied into |
| the server installation tree somewhere when the plugin is installed. |
| There may be a path component (relative to the root of the plugin |
| archive), though that will not be used to construct the destination |
| location. For example: |
| |
| <copy-file relative-to="server" dest-dir="var/security/keystores"> |
| resources/keystores/my-keystore |
| </copy-file> |
| |
| This will copy the file resources/keystores/my-keystore to e.g. |
| var/security/keystores/my-keystore |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:simpleContent> |
| <xs:extension base="xs:string"> |
| <xs:attribute name="relative-to" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| Indicates whether the destination is relative to the Geronimo install |
| directory or the server instance directory (which are the same unless |
| the server instance is configured). The values presently supported are: |
| |
| geronimo |
| server |
| |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:NMTOKEN"> |
| <xs:enumeration value="geronimo"/> |
| <xs:enumeration value="server"/> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="dest-dir" use="required" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The directory to copy the file to, relative to either the Geronimo |
| install dir or the server's home directory (normally the same as the |
| Geronimo install dir but may be configured to be elsewhere). |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:extension> |
| </xs:simpleContent> |
| </xs:complexType> |
| |
| <xs:complexType name="prerequisiteType"> |
| <xs:sequence> |
| <xs:element name="id" type="list:artifactType"> |
| <xs:annotation> |
| <xs:documentation> |
| The Module ID of the prerequisite. This is used to check whether |
| it's available on the server that you're downloading the plugin |
| into. It may omit some portions of the Module ID to be more |
| accomodating (e.g. "*/MyDBPool/*/*" to identify a database pool |
| instead of "console/MyDBPool/1.0/car"). |
| |
| Note that the values here may take the non-standard syntax of |
| * instead of the empty string for a missing value, which will |
| hopefully make the wildcard format more user-friendly. |
| (On the theory that "Please install */MyDBPool/*/*" should make |
| more sense than "Please install /MyDBPool//" for an average user) |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="resource-type" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| Describes the type of resource that the prerequisite is. Examples |
| include: |
| |
| JDBC Driver |
| JDBC Pool |
| JMS Resource Group |
| JavaMail |
| |
| This is mainly used for prerequisites where the user needs to set |
| something up and you want to indicate what. So for example, you |
| could say "console/myapp-pool/*/jar" is a prerequisite with resource |
| type "JDBC Pool" and then the user should understand that they can |
| install your plugin if they create a JDBC pool called "myapp-pool" |
| in the console, or manually deploy a pool with moduleId |
| "console/myapp-pool/(something)/jar" |
| |
| Another option in that case would be to use a dependency on a JDBC |
| pool plugins you provide, but then it would have to use the |
| system database (and run a DDL script on the first connect) in order |
| to be installable in an arbitrary Geronimo server. That would be a |
| better approach for demonstration applications, whereas the |
| prerequisite on a user-installed pool would be a better approach for |
| production applications. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="description" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| A description for the user about why this is a prerequisite and what |
| they should do to set it up. Here are a couple examples: |
| |
| This plugin of SomeApp is configured for the Jetty version of |
| Geronimo. It cannot be installed on the Tomcat version of Geronimo. |
| There's a separate plugin for the Tomcat version of Geronimo. |
| |
| SomeApp requires a database connection pool. Supported databases |
| are PostgreSQL and MySQL. Please configure a database connection |
| pool with the name "SomeAppPool" and then run the associated create |
| script from http://someapp.com/db-scripts/ before installing this |
| plugin. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="artifactType"> |
| <xs:annotation> |
| <xs:documentation> |
| <![CDATA[ |
| 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> |
| ]]> |
| </xs:documentation> |
| </xs:annotation> |
| <xs:sequence> |
| <!-- TODO not sure if groupId can in fact be optional --> |
| <xs:element name="groupId" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| The name for group containing this module. By default, |
| it is considered 'default' for declaration and wild card |
| '*' for dependencies. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="artifactId" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| 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. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="version" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| 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. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| <xs:element name="type" type="xs:string" minOccurs="0"> |
| <xs:annotation> |
| <xs:documentation> |
| 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. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| </xs:schema> |