We need some widespread thought about the new xml schema we're
getting in 1.1. Dain and I are not particularly thrilled with the
element names but haven't thought of improvements. We also thought
of an alternate way of presenting the info and would like opinions on
which is better.
The schema currently in svn in the configid branch results in plans
that start like this:
<configuration xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<environment>
<configId>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-gbean-deployer</artifactId>
<version>1.0.1-SNAPSHOT</version>
</configId>
<!-- name-key elements are very unlikely to be used by anything
except "root" system plans
such as j2ee-system. Included here only to show what they look like -->
<name-key>
<key>domain</key>
<value>geronimo.maven</value>
</name-key>
<name-key>
<key>J2EEServer</key>
<value>geronimo</value>
</name-key>
<classloader>
<import>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-system</artifactId>
<version>1.0.1-SNAPSHOT</version>
</import>
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-common</artifactId>
<version>1.0.1-SNAPSHOT</version>
</dependency>
<include>
<groupId>geronimo</groupId>
<artifactId>geronimo-deployment</artifactId>
<version>1.0.1-SNAPSHOT</version>
</include>
</classloader>
<!--reference is a new element, the meaning is that the configuration
must be loaded and started before this one, but the classloader of
the config is not a parent -->
<reference>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-j2ee</artifactId>
<version>1.0.1-SNAPSHOT</version>
</reference>
</environment>
<!--Deployer used to process modules and plans-->
<gbean name="Deployer"
class="org.apache.geronimo.deployment.Deployer">
An alternate layout is more similar to m2 with the idea of different
functions for a dependency shown by a "scope" element. Scope doesn't
seem like the right element name for us. (sorry about the lousy
indenting)
<configuration xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1">
<environment>
<configId>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-gbean-deployer</artifactId>
<version>1.0.1-SNAPSHOT</version>
</configId>
<!-- name-key elements are very unlikely to be used by anything
except "root" system plans
such as j2ee-system. Included here only to show what they look like -->
<name-key>
<key>domain</key>
<value>geronimo.maven</value>
</name-key>
<name-key>
<key>J2EEServer</key>
<value>geronimo</value>
</name-key>
< dependency>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-system</artifactId>
<version>1.0.1-SNAPSHOT</version>
<scope>full</scope>
</dependency>
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-common</artifactId>
<version>1.0.1-SNAPSHOT</version>
<scope>class</scope>
</dependency>
< dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-deployment</artifactId>
<version>1.0.1-SNAPSHOT</version>
<scope>include</scope>
</dependency>
< dependency>
<groupId>geronimo</groupId>
<type>car</type>
<artifactId>geronimo-j2ee</artifactId>
<version>1.0.1-SNAPSHOT</version>
<scope>service</scope>
</dependency>
</environment>
<!--Deployer used to process modules and plans-->
<gbean name="Deployer"
class="org.apache.geronimo.deployment.Deployer">
Here, the scopes have meaning as follows:
both -- both classes and services (gbeans), like import
classes -- only classes, if a car don't start the gbeans for us, like
dependency
services -- only gbeans, don't add classes to our classpath, like
reference (new element shown in first example)
include -- copy the artifact into the current configuration. This
seems like a separate dimension not related to the previous scopes.
Again, please study these and comment.
Many thanks
david jencks
|