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"/>