Note version number elements will be optional. I will post a
description of the resolution strategy for version numbers after I
get a bit of the code working. You just never know until you code
something :)
-dain
On Feb 14, 2006, at 5:03 PM, David Jencks wrote:
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