You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by am...@apache.org on 2005/12/10 04:18:10 UTC
svn commit: r355708 -
/geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd
Author: ammulder
Date: Fri Dec 9 19:18:07 2005
New Revision: 355708
URL: http://svn.apache.org/viewcvs?rev=355708&view=rev
Log:
Add documentation
Modified:
geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd
Modified: geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd?rev=355708&r1=355707&r2=355708&view=diff
==============================================================================
--- geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd (original)
+++ geronimo/trunk/modules/service-builder/src/schema/geronimo-config-1.0.xsd Fri Dec 9 19:18:07 2005
@@ -71,12 +71,92 @@
</xs:sequence>
</xs:group>
- <xs:element name="import" type="sys:dependencyType"/>
- <xs:element name="include" type="sys:dependencyType"/>
- <xs:element name="dependency" type="sys:dependencyType"/>
- <xs:element name="hidden-classes" type="sys:classFilterType"/>
- <xs:element name="non-overridable-classes" type="sys:classFilterType"/>
- <xs:element name="gbean" type="sys:gbeanType"/>
+ <xs:element name="import" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "import" holds a URI, where the URI matches the configId of another configuration.
+ That configuration will be added as a parent of this configuration (the main
+ impact being that it's ClassLoader will be a parent of the ClassLoader for this
+ configuration.
+
+ Generally this URI will have the Maven form (groupId/artifactId/version/type),
+ and you can also use the sub-elements (groupId, type, ...) accordingly.
+ However, if you deploy a custom module with a simple configId like "Foo",
+ you can use that as the URI value here, and in that case you could not use the
+ subelements because you wouldn't have values for all of them.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="include" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "include" holds a URI, where the URI identifies an entry in the server's Repository.
+ When this module is being built, the content of that repository entry will be
+ copied into this module and added to the ClassPath of this module. This is
+ currently only supported for a small number of module types, and is typically used
+ to create more "standalone" modules that don't need a populated repository to run.
+
+ This URI must always have a form acceptable to the Repository, which currently
+ takes Maven-style URIs (groupId/artifactId/version/type). You can also use the
+ sub-elements (groupId, type, ...) instead of a full URI.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dependency" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "dependency" holds a URI, where the URI identifies an entry in the server's
+ Repository. That repository entry will be added to the ClassPath of this module.
+ Essentially, this module's ClassPath points to that location in the server's
+ repository, so that entry must be in the repository at runtime for this to work.
+
+ This URI must always have a form acceptable to the Repository, which currently
+ takes Maven-style URIs (groupId/artifactId/version/type). You can also use the
+ sub-elements (groupId, type, ...) instead of a full URI.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="hidden-classes" type="sys:classFilterType">
+ <xs:annotation>
+ <xs:documentation>
+ 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 form of this is a comma-separated list of fully-qualified class names or
+ prefixes. Essentially, any class that starts with one of the prefixes listed
+ here will be treated as hidden. For example, if you set this value to
+ "java.util,java.lang" then you would really screw up your application. :)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="non-overridable-classes" type="sys:classFilterType">
+ <xs:annotation>
+ <xs:documentation>
+ A list of classes which will only be loaded from parent ClassLodaers 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 form of this is a comma-separated list of fully-qualified class names or
+ prefixes. Essentially, any class that starts with one of the prefixes listed
+ here will be treated as hidden. For example, setting this to
+ "javax.servlet,javax.ejb" would protect some of the core J2EE classes from
+ being overridden.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="gbean" type="sys:gbeanType">
+ <xs:annotation>
+ <xs: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.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
<xs:complexType name="classFilterType">
<xs:sequence>
@@ -85,6 +165,41 @@
</xs:complexType>
<xs:complexType name="dependencyType">
+ <xs:annotation>
+ <xs:documentation><![CDATA[
+ Refers to either another module (aka configuration) 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/configuration, the URI should match the
+ module's configId. For standard Geronimo configurations, this also looks
+ like a Maven-style URI discussed above. However, user-deployed applications
+ or configurations can use arbitrary URIs like "Foo".
+
+ The dependencyType 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. Therefore, if you are pointing to a module with a
+ non-Maven-style configId, you can't use the maven fragments since you
+ wouldn't have something to specify for all of them.
+
+ For example, two ways to map the URI listed above would be:
+ 1.
+ <uri>postgresql/postgresql-8.0-jdbc/313/jar</uri>
+ 2.
+ <groupId>postgresql</groupId>
+ <type>jar</type>
+ <artifactId>postgresql-8.0-jdbc</artifactId>
+ <version>313</version>
+
+ ]]></xs:documentation>
+ </xs:annotation>
<xs:choice>
<xs:sequence>
<xs:element name="groupId" type="xs:string"/>