notify-dpml AT lists.ibiblio.org
Subject: DPML Notify
List archive
r1347 - in trunk/main: . central/src/docs/about/download central/src/docs/depot/library central/src/docs/depot/library/filters central/src/docs/depot/tasks depot depot/library/etc/test/ant depot/library/etc/test/dpml depot/library/etc/test/jgoodies depot/library/etc/test/samples depot/library/src/main/net/dpml/library/impl external lang lang/module/etc metro metro/component/src planet/http planet/http/server station station/api station/console station/exec station/server transit transit/core/src/main/net/dpml/util util
- From: mcconnell at BerliOS <mcconnell AT mail.berlios.de>
- To: notify-dpml AT lists.ibiblio.org
- Subject: r1347 - in trunk/main: . central/src/docs/about/download central/src/docs/depot/library central/src/docs/depot/library/filters central/src/docs/depot/tasks depot depot/library/etc/test/ant depot/library/etc/test/dpml depot/library/etc/test/jgoodies depot/library/etc/test/samples depot/library/src/main/net/dpml/library/impl external lang lang/module/etc metro metro/component/src planet/http planet/http/server station station/api station/console station/exec station/server transit transit/core/src/main/net/dpml/util util
- Date: Sun, 9 Apr 2006 18:21:32 +0200
Author: mcconnell
Date: 2006-04-09 18:21:24 +0200 (Sun, 09 Apr 2006)
New Revision: 1347
Added:
trunk/main/central/src/docs/depot/library/filters/
trunk/main/central/src/docs/depot/library/filters/feature.xml
trunk/main/central/src/docs/depot/library/filters/filter.xml
trunk/main/central/src/docs/depot/library/filters/index.xml
trunk/main/central/src/docs/depot/library/filters/navigation.xml
Removed:
trunk/main/central/src/docs/depot/tasks/filter.xml
trunk/main/metro/component/src/test/
trunk/main/station/api/build.xml
Modified:
trunk/main/central/src/docs/about/download/archive.xml
trunk/main/central/src/docs/depot/library/dependencies.xml
trunk/main/central/src/docs/depot/library/index.xml
trunk/main/central/src/docs/depot/library/modules.xml
trunk/main/central/src/docs/depot/library/navigation.xml
trunk/main/central/src/docs/depot/library/projects.xml
trunk/main/central/src/docs/depot/library/types.xml
trunk/main/central/src/docs/depot/tasks/navigation.xml
trunk/main/depot/library/etc/test/ant/module.xml
trunk/main/depot/library/etc/test/dpml/module.xml
trunk/main/depot/library/etc/test/jgoodies/module.xml
trunk/main/depot/library/etc/test/samples/anonymous.xml
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryDecoder.java
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryEncoder.java
trunk/main/depot/module.xml
trunk/main/external/library.xml
trunk/main/lang/module.xml
trunk/main/lang/module/etc/module.xsd
trunk/main/library.xml
trunk/main/metro/module.xml
trunk/main/planet/http/module.xml
trunk/main/planet/http/server/project.xml
trunk/main/station/console/build.xml
trunk/main/station/exec/build.xml
trunk/main/station/module.xml
trunk/main/station/server/build.xml
trunk/main/transit/core/src/main/net/dpml/util/DOM3DocumentBuilder.java
trunk/main/transit/module.xml
trunk/main/util/module.xml
Log:
1. enhancement to the module schema enabling improvements in the validation
of project dependencies
2. the inclusion of simple and feature-based filters
Modified: trunk/main/central/src/docs/about/download/archive.xml
===================================================================
--- trunk/main/central/src/docs/about/download/archive.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/about/download/archive.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -26,7 +26,10 @@
<ul>
<li>Support for the declaration of custom etc/main and etc/text
directories.</li>
<li>Removal of activity api (functionality covered by state
package).</li>
+ <li>Removal of the configuration and parameterization packages
(functionality covered via Context IOC model).</li>
<li>Support for filter declarations within a
<tt><project></tt> definition.</li>
+ <li>Improvements to DOM related error reporting.</li>
+ <li>Structural enhancements to the module schema.</li>
</ul>
<table>
Modified: trunk/main/central/src/docs/depot/library/dependencies.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/dependencies.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/dependencies.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -13,31 +13,38 @@
<p>
Dependencies may be declared within <tt><module></tt>,
<tt><project></tt>,
- and <tt><resource></tt> elements using an
<tt><dependencies></tt> element.
+ and <tt><resource></tt> elements using the
<tt><dependencies></tt> element.
Resources may declare a single <tt><dependencies></tt> element
representing the
runtime dependencies of the resource. Projects may declare
<tt>BUILD</tt>,
- <tt>RUNTIME</tt> and <tt>TEST</tt> scoped dependencies.
+ <tt>RUNTIME</tt> and <tt>TEST</tt> scoped dependencies under
respective element names.
</p>
- <subsection name="Attributes on Dependencies">
-
- <p>
- The following attributes may be declared on a
<tt><dependencies></tt> element.
- </p>
+ <subsection name="Nested elements within Dependencies Element">
<table>
<tr>
- <td>scope</td>
- <td>Dependency scope identifer. Legal values are
<tt>BUILD</tt>,
- <tt>RUNTIME</tt> and <tt>TEST</tt>. Default value is
<tt>RUNTIME</tt>.
- Declaring a scope is only relevant for dependencies declared
within
- a project.</td>
+ <td>build</td>
+ <td>0..1</td>
+ <td>Declaration of build time dependencies group. When
building multiple projects
+ build time dependencies may be used to influence project build
sequencing.
+ Any resources referenced within the <tt><build></tt>
element are gauranteed to
+ be be built prior to the project referencing the
dependency.</td>
</tr>
+ <tr>
+ <td>runtime</td>
+ <td>0..1</td>
+ <td>Declaration of runtime dependencies group.</td>
+ </tr>
+ <tr>
+ <td>test</td>
+ <td>0..1</td>
+ <td>Declaration of test dependencies group.</td>
+ </tr>
</table>
</subsection>
- <subsection name="Nested elements within Dependencies Element">
+ <subsection name="Nested elements within dependency groups">
<table>
<tr>
@@ -86,13 +93,13 @@
</table>
<p>
- Project includes within runtime scope may also qualify the
inclusion relative to one of the
- tag values <tt>PUBLIC</tt>, <tt>PROTECTED</tt> or <tt>PRIVATE</tt>.
Tagged includes
+ Project includes within <tt><runtime></tt> scope may also
qualify the inclusion relative to one of the
+ tag values <tt>public</tt>, <tt>protected</tt> or <tt>private</tt>.
Tagged includes
are used in the construction of plugin metadata and are declared
using the <tt>tag</tt>
- attribute. The <tt>PUBLIC</tt> value is normally used to asset a
dependency as a part of
- the public API of a plugin. The <tt>PROTECTED</tt> tag value is
normally used to associate
+ attribute. The <tt>public</tt> category is normally used to assert
a dependency that is a part of
+ the public API of a plugin. The <tt>protected</tt> category is
normally used to associate
a dependency such as a management API that is an extension of the
public API. The default
- tag value <tt>PRIVATE</tt> represents a classloader category that
extends the <tt>PROTECTED</tt>
+ category value <tt>private</tt> represents a classloader category
that extends the <tt>protected</tt>
classloader and typically represents the internal implementation of
a sub-system.
</p>
@@ -116,20 +123,19 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-http-api" tag="public"/>
- <include key="dpml-http-spi" tag="protected"/>
- <include ref="dpml/transit/dpml-transit-main"/>
- <include ref="dpml/util/dpml-activity-api" tag="protected"/>
- <include ref="dpml/util/dpml-logging-api" tag="protected"/>
- <include ref="dpml/util/dpml-configuration-api" tag="protected"/>
- <include ref="dpml/util/dpml-parameters-api" tag="protected"/>
- <include urn="artifact:jar:jetty/org.mortbay.jetty#5.1.1"/>
- <include urn="artifact:jar:jetty/org.mortbay.jaas#5.1.1"/>
- <include urn="artifact:jar:tomcat/jsp-api#5.0.18"/>
- <include urn="artifact:jar:tomcat/jasper-compiler#5.0.25"/>
- <include urn="artifact:jar:tomcat/jasper-runtime#5.0.25"/>
- <include urn="artifact:jar:commons-logging/commons-logging#1.0.4"/>
- <include urn="artifact:jar:servletapi/servletapi#2.3" tag="public"/>
+ <runtime>
+ <include ref="dpml/metro/dpml-metro-model"/>
+ <include ref="dpml/util/dpml-logging-api"/>
+ <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
+ <include urn="artifact:jar:tomcat/jasper-runtime#5.5.12"/>
+ <include urn="artifact:jar:tomcat/jasper-compiler#5.5.12"/>
+ <include urn="artifact:jar:tomcat/jasper-compiler-jdt#5.5.12"/>
+ <include urn="artifact:jar:org/mortbay/jetty#20060213"/>
+ <include urn="artifact:jar:org/slf4j/jcl104-over-slf4j#1.0-rc5"/>
+ <include urn="artifact:jar:org/slf4j/slf4j-jdk14#1.0-rc5"/>
+ <include urn="artifact:jar:commons-el/commons-el#1.0"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
</dependencies>
</project>
@@ -146,17 +152,21 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-state-api"/>
- <include ref="dpml/util/dpml-parameters-api"/>
- <include ref="dpml/util/dpml-configuration-api"/>
- <include key="dpml-metro-component"/>
+ <runtime>
+ <include key="dpml-state-api"/>
+ <include key="dpml-metro-component"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include key="dpml-state-impl"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- <include key="dpml-state-impl"/>
- <include ref="dpml/util/dpml-parameters-impl"/>
- <include ref="dpml/util/dpml-configuration-impl"/>
- </dependencies>
+ <filters>
+ <feature token="NAME" id="name"/>
+ <feature token="VERSION" id="version"/>
+ <feature token="GROUP" id="group"/>
+ <feature token="PART-HANDLER-URI" id="uri"
ref="dpml/metro/dpml-metro-runtime" type="part"/>
+ </filters>
</project>
]]></source>
Added: trunk/main/central/src/docs/depot/library/filters/feature.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/filters/feature.xml
2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/filters/feature.xml
2006-04-09 16:21:24 UTC (rev 1347)
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Depot Type Production</title>
+ </properties>
+
+ <body>
+
+ <section name="Feature-based Filter">
+
+ <p>
+ A feature-based filter is a filter with a value resolved relative
+ to a requested feature identifier against the current or selected
+ project.
+ </p>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td>token</td>
+ <td>The filter token (required).</td>
+ </tr>
+ <tr>
+ <td>ref</td>
+ <td>Optional reference to a project or resource that the feature
request refers
+ (if undeclared the feature will be resolved relative to the
current project).</td>
+ </tr>
+ <tr>
+ <td>id</td>
+ <td>The feature keyword (see feature list below).</td>
+ </tr>
+ <tr>
+ <td>type</td>
+ <td>Required when referencing a feature of type produced by a
resource type (see feature list).
+ The value refers to a resource type id declared by a resource or
project.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ <subsection name="Features">
+
+ <p>
+ Available features are listed in the following table.
+ </p>
+
+ <table>
+ <tr><th>Feature</th><th>Description</th></tr>
+ <tr>
+ <td>name</td>
+ <td>The resource name.</td>
+ </tr>
+ <tr>
+ <td>group</td>
+ <td>The resource group.</td>
+ </tr>
+ <tr>
+ <td>version</td>
+ <td>The resource version.</td>
+ </tr>
+ <tr>
+ <td>uri</td>
+ <td>The full artifact uri (requires type attribute).</td>
+ </tr>
+ <tr>
+ <td>spec</td>
+ <td>Short form of uri. The spec value is equivalent to the
+ uri with the "artifact:" protocol identifier (requires type
attribute).</td>
+ </tr>
+ <tr>
+ <td>filename</td>
+ <td>The filename of the final artifact that the resource
represents (requires type attribute).</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ The following project definition declares four feature-based filters
to be applied
+ during project build.
+ </p>
+
+<source><![CDATA[
+ <project name="dpml-metro-component" basedir="component">
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <runtime>
+ <include key="dpml-state-api" tag="public"/>
+ <include ref="dpml/metro/dpml-job-api" tag="public"/>
+ <include ref="dpml/transit/dpml-transit-main" tag="private"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
+ </dependencies>
+ <filters>
+ <feature token="NAME" id="name"/>
+ <feature token="VERSION" id="version"/>
+ <feature token="GROUP" id="group"/>
+ <feature token="PART-HANDLER-URI" id="uri" type="part"
ref="dpml/metro/dpml-metro-runtime"/>
+ </filters>
+ </project>
+]]></source>
+
+ </section>
+
+ </body>
+
+</document>
+
+
+
Added: trunk/main/central/src/docs/depot/library/filters/filter.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/filters/filter.xml
2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/filters/filter.xml
2006-04-09 16:21:24 UTC (rev 1347)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Depot Type Production</title>
+ </properties>
+
+ <body>
+
+ <section name="Filter">
+
+ <p>
+ A simple substitution filter. Reference in the project source
+ to a token in form <tt>@TOKEN-NAME@</tt> will be substituted with
+ the token value (where TOKEN-NAME is the value of the token attribute).
+ </p>
+
+ <subsection name="Attributes">
+
+ <table>
+ <tr>
+ <td>token</td>
+ <td>required</td>
+ <td>The string token that is to be replaced.</td>
+ </tr>
+ <tr>
+ <td>value</td>
+ <td>required</td>
+ <td>The substitution value.</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ The following example demonstrates the declaration of a series of
+ properties and filters within the DPML module. Note that filter values
+ may reference properties via symbolic references.
+ </p>
+
+<source><![CDATA[
+<module name="dpml" basedir=".">
+
+ <properties>
+ <property name="project.publisher.name" value="Digital Product Meta
Library"/>
+ <property name="project.specification.vendor"
value="${project.publisher.name}"/>
+ <property name="project.implementation.vendor"
value="${project.publisher.name}"/>
+ <property name="project.implementation.vendor-id" value="net.dpml"/>
+ <property name="project.publisher.url" value="http://www.dpml.net"/>
+ <property name="project.resource.host"
value="http://repository.dpml.net"/>
+ <property name="project.api.host" value="http://api.dpml.net"/>
+ <property name="project.svn.host"
value="svn://svn.berlios.de/dpml/trunk/main"/>
+ <property name="project.javadoc.linksource" value="true"/>
+ </properties>
+
+ ...
+
+ <filters>
+ <filter token="PROJECT-VERSION" value="${project.version}"/>
+ <filter token="PUBLISHER-NAME" value="${project.publisher.name}"/>
+ <filter token="PUBLISHER-URL" value="${project.publisher.url}"/>
+ </filters>
+
+</module>
+]]></source>
+
+ </section>
+
+ </body>
+
+</document>
+
+
+
Added: trunk/main/central/src/docs/depot/library/filters/index.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/filters/index.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/filters/index.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<document>
+
+ <properties>
+ <author email="mcconnell AT dpml.net">Stephen McConnell</author>
+ <title>DPML Depot Type Production</title>
+ </properties>
+
+ <body>
+
+ <section name="Filters">
+
+ <p>
+ The filters element may be used to declare a collection of
+ filters to be applied to a project code base.
+ </p>
+
+ <subsection name="XML Nested elements">
+
+ <table>
+ <tr>
+ <td><a href="filter.html">filter</a></td>
+ <td>0..n</td>
+ <td>Declaration of a simple literal filter that subsitues the
+ supplied token with a value.</td>
+ </tr>
+ <tr>
+ <td><a href="feature.html">feature</a></td>
+ <td>0..n</td>
+ <td>Substitution of a token with a value resolved from a
+ feature of the project model (such as a name, group, uri,
etc.).</td>
+ </tr>
+ </table>
+
+ </subsection>
+
+ </section>
+
+ <section name="Example">
+
+ <p>
+ The following project definition demonstrates usage of a combination
of
+ simple and feature-based filters.
+ </p>
+
+<source><![CDATA[
+ <project name="dpml-depot-console" basedir="core">
+ <properties>
+ <property name="project.test.fork" value="true"/>
+ <property name="depot.short.filename" value="${project.name}.jar"/>
+ <property name="transit.short.filename" value="dpml-transit-main.jar"/>
+ <property name="project.jar.main.class" value="net.dpml.depot.Main"/>
+ </properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
+ </dependencies>
+ <filters>
+ <filter token="DEPOT-PATH" value="${depot.short.filename}"/>
+ <filter token="DEPOT-MAIN-CLASS" value="${project.jar.main.class}"/>
+ <filter token="TRANSIT-PATH" value="${transit.short.filename}"/>
+ <filter token="DEPOT-CLASSLOADER-CLASS"
value="net.dpml.lang.SystemClassLoader"/>
+ <feature token="BUILD-ID" id="version"/>
+ <feature token="DEPOT-CONSOLE-URI" id="uri" type="jar"/>
+ <feature token="TRANSIT-CORE-URI" id="uri" type="jar"
ref="dpml/transit/dpml-transit-main" />
+ <feature token="TRANSIT-CONSOLE-URI" id="uri" type="part" alias="true"
ref="dpml/transit/dpml-transit-console" />
+ <feature token="DEPOT-BUILDER-URI" id="uri" type="part" alias="true"
ref="dpml/depot/dpml-library-build" />
+ <feature token="DEPOT-EXEC-URI" id="uri" type="part" alias="true"
ref="dpml/station/dpml-station-exec" />
+ <feature token="DEPOT-STATION-URI" id="uri" type="part" alias="true"
ref="dpml/station/dpml-station-console" />
+ <feature token="DEPOT-STATION-SERVER-URI" id="uri" type="part"
alias="true" ref="dpml/station/dpml-station-server" />
+ </filters>
+ </project>
+]]></source>
+
+ </section>
+
+ </body>
+
+</document>
+
+
+
Added: trunk/main/central/src/docs/depot/library/filters/navigation.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/filters/navigation.xml
2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/filters/navigation.xml
2006-04-09 16:21:24 UTC (rev 1347)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright 2004 Stephen McConnell
+
+ Licensed 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.dpml.net/central/about/legal/
+
+ 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.
+-->
+
+<project>
+
+ <title>DPML Depot</title>
+
+ <body>
+
+ <menu>
+ <item name="Filter" href="filter.html"/>
+ <item name="Feature" href="feature.html"/>
+ </menu>
+
+ </body>
+
+</project>
Modified: trunk/main/central/src/docs/depot/library/index.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/index.xml 2006-04-08 19:29:23
UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/index.xml 2006-04-09 16:21:24
UTC (rev 1347)
@@ -65,7 +65,8 @@
<source><![CDATA[
<?xml version="1.0" encoding="ISO-8859-1"?>
-<library xmlns="artifact:xsd:dpml/lang/dpml-module#1.0">
+<library xmlns="artifact:xsd:dpml/lang/dpml-module#1.0"
+ xmlns:part="artifact:xsd:dpml/lang/dpml-part#1.0">
<imports>
<import uri="link:module:junit"/>
@@ -75,7 +76,7 @@
<modules>
<module name="dpml" basedir=".">
-
+
<properties>
<property name="project.publisher.name" value="Digital Product Meta
Library"/>
<property name="project.specification.vendor"
value="${project.publisher.name}"/>
@@ -85,12 +86,19 @@
<property name="project.resource.host"
value="http://repository.dpml.net"/>
<property name="project.api.host" value="http://api.dpml.net"/>
<property name="project.svn.host"
value="svn://svn.berlios.de/dpml/trunk/main"/>
+ <property name="project.javadoc.linksource" value="true"/>
</properties>
-
+
<types>
<type id="module" alias="true"/>
</types>
+ <filters>
+ <filter token="PROJECT-VERSION" value="${project.version}"/>
+ <filter token="PUBLISHER-NAME" value="${project.publisher.name}"/>
+ <filter token="PUBLISHER-URL" value="${project.publisher.url}"/>
+ </filters>
+
<import file="lang/module.xml"/>
<import file="transit/module.xml"/>
<import file="util/module.xml"/>
@@ -106,6 +114,7 @@
</modules>
</library>
+
]]></source>
<p>
Modified: trunk/main/central/src/docs/depot/library/modules.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/modules.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/modules.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -53,6 +53,13 @@
<table>
<tr>
+ <td><a href="properties.html">properties</a></td>
+ <td>0..1</td>
+ <td>Declaration of a set of <a
href="properties.html">properties</a>
+ associated with the project. Typically property
declarations will be used
+ by a build system to qualify resource production
behaviour.</td>
+ </tr>
+ <tr>
<td><a href="types.html">types</a></td>
<td>0..1</td>
<td>
@@ -61,31 +68,51 @@
For example, it is possible to create an portable defintion of
top-level modules
using a specialized ant tasks. The ant task produced an
artifact of the
type 'module'. By declaring the type 'module' as a type
produced by the
- module a build system can automate the production of the module
artifact.
+ module a build system can automate the production of the module
artifact.
</td>
</tr>
<tr>
+ <td><a href="dependencies.html">dependencies</a></td>
+ <td>0..3</td>
+ <td>A project may declare <tt>BUILD</tt>, <tt>RUNTIME</tt> and
<tt>TEST</tt>
+ scoped <a href="dependencies.html">dependencies</a>. Unless
otherwise specified the
+ default scope of a dependencies element is <tt>RUNTIME</tt>.
Dependencies declared
+ under <tt>BUILD</tt> scope do effect project build sequencing
but do not contribute
+ to classpath related information. <tt>RUNTIME</tt>
dependencies are used in the
+ construction of classpath data. <tt>TEST</tt> scoped
dependencies extend runtime
+ dependencies with supplimentary resources used during unit
testing.</td>
+ </tr>
+ <tr>
+ <td><a href="filters/index.html">filters</a></td>
+ <td>0..1</td>
+ <td>Declaration of a set of content <a
href="filters/index.html">filters</a>
+ associated with the module. Typically filters are used to
substitute
+ string tokens in source code with values resolved from the
associated
+ module (or other project/resources).</td>
+ </tr>
+ <tr>
<td><a href="resources.html">resource</a></td>
<td>0..n</td>
- <td>A resource declaration.</td>
+ <td>One or more nested resource declarations.</td>
</tr>
<tr>
<td><a href="projects.html">project</a></td>
<td>0..n</td>
- <td>A project declaration.</td>
+ <td>One or more nested project declarations.</td>
</tr>
<tr>
<td>module</td>
<td>0..n</td>
- <td>A nested module declaration.</td>
+ <td>One or more nested module declarations.</td>
</tr>
<tr>
<td>import</td>
<td>0..n</td>
- <td>Import a local module, project or resource from file.</td>
+ <td>One or more import requested for the inclusion of a local
module,
+ project or resource from an external file.</td>
</tr>
</table>
-
+
</subsection>
</section>
@@ -117,7 +144,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include
urn="artifact:jar:commons-collections/commons-collections#3.0"/>
+ <runtime>
+ <include
urn="artifact:jar:commons-collections/commons-collections#3.0"/>
+ </runtime>
</dependencies>
</project>
</module>
@@ -151,12 +180,19 @@
<property name="project.resource.host"
value="http://repository.dpml.net"/>
<property name="project.api.host" value="http://api.dpml.net"/>
<property name="project.svn.host"
value="svn://svn.berlios.de/dpml/trunk/main"/>
+ <property name="project.javadoc.linksource" value="true"/>
</properties>
-
+
<types>
<type id="module" alias="true"/>
</types>
+ <filters>
+ <filter token="PROJECT-VERSION" value="${project.version}"/>
+ <filter token="PUBLISHER-NAME" value="${project.publisher.name}"/>
+ <filter token="PUBLISHER-URL" value="${project.publisher.url}"/>
+ </filters>
+
<import file="lang/module.xml"/>
<import file="transit/module.xml"/>
<import file="util/module.xml"/>
@@ -187,11 +223,13 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</resource>
<project name="dpml-library-build" basedir="build">
@@ -200,13 +238,18 @@
<part:plugin alias="true"
class="net.dpml.library.console.BuilderPlugin"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-library"/>
- <include ref="dpml/util/dpml-util-cli"/>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-library"/>
+ <include ref="dpml/util/dpml-util-cli"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
+ <filters>
+ <feature token="ANT-BUILDER-URI" ref="dpml/depot/dpml-tools-builder"
id="uri" type="part"/>
+ </filters>
</project>
<project name="dpml-depot-checkstyle" basedir="tools/checkstyle">
@@ -215,16 +258,18 @@
<part:resource alias="true" urn="dpml:checkstyle"
path="net/dpml/tools/checkstyle/antlib.xml"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-tools-builder"/>
- <include urn="artifact:jar:checkstyle/checkstyle#4.1">
- <property name="project.api.host" value="http://api.dpml.net"/>
- <property name="project.api.root"
value="${project.api.host}/${group}/${version}"/>
- </include>
- <include urn="artifact:jar:commons-logging/commons-logging#1.0.4" />
- <include
urn="artifact:jar:commons-collections/commons-collections#3.1" />
- <include
urn="artifact:jar:commons-beanutils/commons-beanutils-core#1.7.0" />
- <include urn="artifact:jar:bcel/bcel#5.1" />
- <include urn="artifact:jar:antlr/antlr#2.7.2" />
+ <runtime>
+ <include ref="dpml/depot/dpml-tools-builder"/>
+ <include urn="artifact:jar:checkstyle/checkstyle#4.1">
+ <property name="project.api.host" value="http://api.dpml.net"/>
+ <property name="project.api.root"
value="${project.api.host}/${project.group}/${project.version}"/>
+ </include>
+ <include urn="artifact:jar:commons-logging/commons-logging#1.0.4" />
+ <include
urn="artifact:jar:commons-collections/commons-collections#3.1" />
+ <include
urn="artifact:jar:commons-beanutils/commons-beanutils-core#1.7.0" />
+ <include urn="artifact:jar:bcel/bcel#5.1" />
+ <include urn="artifact:jar:antlr/antlr#2.7.2" />
+ </runtime>
</dependencies>
</project>
@@ -234,24 +279,45 @@
<part:resource alias="true" urn="dpml:convert"
path="net/dpml/tools/convert/antlib.xml"/>
</types>
<dependencies>
- <include urn="artifact:jar:java2html/java2html#4.2"/>
- <include ref="ant/ant-launcher"/>
+ <runtime>
+ <include urn="artifact:jar:java2html/java2html#4.2"/>
+ <include ref="ant/ant-launcher"/>
+ </runtime>
</dependencies>
</project>
<project name="dpml-depot-console" basedir="core">
<properties>
+ <property name="project.test.fork" value="true"/>
+ <property name="depot.short.filename" value="${project.name}.jar"/>
+ <property name="transit.short.filename" value="dpml-transit-main.jar"/>
<property name="project.jar.main.class" value="net.dpml.depot.Main"/>
</properties>
<types>
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
+ <filters>
+ <filter token="DEPOT-PATH" value="${depot.short.filename}"/>
+ <filter token="DEPOT-MAIN-CLASS" value="${project.jar.main.class}"/>
+ <filter token="TRANSIT-PATH" value="${transit.short.filename}"/>
+ <filter token="DEPOT-CLASSLOADER-CLASS"
value="net.dpml.lang.SystemClassLoader"/>
+ <feature token="BUILD-ID" id="version"/>
+ <feature token="DEPOT-CONSOLE-URI" id="uri" type="jar"/>
+ <feature token="TRANSIT-CORE-URI" id="uri" type="jar"
ref="dpml/transit/dpml-transit-main" />
+ <feature token="TRANSIT-CONSOLE-URI" id="uri" type="part" alias="true"
ref="dpml/transit/dpml-transit-console" />
+ <feature token="DEPOT-BUILDER-URI" id="uri" type="part" alias="true"
ref="dpml/depot/dpml-library-build" />
+ <feature token="DEPOT-EXEC-URI" id="uri" type="part" alias="true"
ref="dpml/station/dpml-station-exec" />
+ <feature token="DEPOT-STATION-URI" id="uri" type="part" alias="true"
ref="dpml/station/dpml-station-console" />
+ <feature token="DEPOT-STATION-SERVER-URI" id="uri" type="part"
alias="true" ref="dpml/station/dpml-station-server" />
+ </filters>
</project>
<resource name="dpml-tools-builder" basedir="tools/builder">
@@ -260,12 +326,14 @@
<part:plugin alias="true" class="net.dpml.tools.impl.StandardBuilder"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-library"/>
- <include ref="dpml/transit/dpml-transit-tools"/>
- <include ref="ant/ant-junit" tag="system"/>
- <include ref="ant/ant" tag="system"/>
- <include ref="ant/ant-xslp" tag="system"/>
- <include ref="ant/ant-trax" tag="system"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-library"/>
+ <include ref="dpml/transit/dpml-transit-tools"/>
+ <include ref="ant/ant-junit" tag="system"/>
+ <include ref="ant/ant" tag="system"/>
+ <include ref="ant/ant-xslp" tag="system"/>
+ <include ref="ant/ant-trax" tag="system"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/central/src/docs/depot/library/navigation.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/navigation.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/navigation.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -30,8 +30,9 @@
<item name="Modules" href="modules.html"/>
<item name="Projects" href="projects.html"/>
<item name="Resources" href="resources.html"/>
+ <item name="Types" href="types.html"/>
<item name="Dependencies" href="dependencies.html"/>
- <item name="Types" href="types.html"/>
+ <item name="Filters" href="filters/index.html"/>
</menu>
</body>
Modified: trunk/main/central/src/docs/depot/library/projects.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/projects.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/projects.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -22,10 +22,10 @@
<p>
A project differs from a resource in terms of the granularity of
detail associated with
dependency references. Specifically - a project can delcare RUNTIME
dependencies that
- are scoped in terms of theor rank within a classloader chain.
Dependencies can be scoped
+ are scoped in terms of their rank within a classloader chain.
Dependencies can be scoped
as PUBLIC, PROTECTED or PRIVATE. This supplimentary data can be used
in the construction
- of plugin descriptors that separate the classic public API from
restricted (or PROPTECTED)
- management APIS from the resources internal PRIVATE classloader.
+ of plugin descriptors that separate the classic public API from
restricted (or PROTECTED)
+ management APIS from the internal PRIVATE classloader.
</p>
<p>
@@ -67,21 +67,21 @@
<table>
<tr>
- <td>properties</td>
+ <td><a href="properties.html">properties</a></td>
<td>0..1</td>
<td>Declaration of a set of <a
href="properties.html">properties</a>
associated with the project. Typically property
declarations will be used
by a build system to qualify resource production
behaviour.</td>
</tr>
<tr>
- <td>types</td>
+ <td><a href="types.html">types</a></td>
<td>0..1</td>
<td>A collection of <a href="types.html">types</a> associated
with the project
(e.g. a jar file or a plugin definition). The types declared
by a project
can be viewed as the artifact produced by the project as a
result of a build.</td>
</tr>
<tr>
- <td>dependecies</td>
+ <td><a href="dependencies.html">dependencies</a></td>
<td>0..3</td>
<td>A project may declare <tt>BUILD</tt>, <tt>RUNTIME</tt> and
<tt>TEST</tt>
scoped <a href="dependencies.html">dependencies</a>. Unless
otherwise specified the
@@ -91,6 +91,14 @@
construction of classpath data. <tt>TEST</tt> scoped
dependencies extend runtime
dependencies with supplimentary resources used during unit
testing.</td>
</tr>
+ <tr>
+ <td><a href="filters/index.html">filters</a></td>
+ <td>0..1</td>
+ <td>Declaration of a set of content <a
href="filters/index.html">filters</a>
+ associated with the project. Typically filters are used to
substitute
+ string tokens in source code with values resolved from the
project
+ model (or other project/resources).</td>
+ </tr>
</table>
</subsection>
Modified: trunk/main/central/src/docs/depot/library/types.xml
===================================================================
--- trunk/main/central/src/docs/depot/library/types.xml 2006-04-08 19:29:23
UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/library/types.xml 2006-04-09 16:21:24
UTC (rev 1347)
@@ -81,34 +81,39 @@
]]></source>
<p>
- The following project definition contains multiple type declarations
and nested
- properties.
+ The following project definition contains multiple type declarations.
In this
+ example the <tt><part:plugin></tt> type declaration is a case of
a custom
+ type defintion that extends the generic type element.
</p>
<source><![CDATA[
-
-<project name="dpml-metro-runtime" basedir="runtime">
- <types>
- <type id="jar"/>
- <type id="plugin">
- <property name="project.plugin.class"
- value="net.dpml.metro.runtime.CompositionController"/>
- </type>
- </types>
- <dependencies>
- <include ref="dpml/util/dpml-logging-api" tag="public"/>
- <include ref="dpml/util/dpml-activity-api" tag="public"/>
- <include ref="dpml/util/dpml-parameters-impl"/>
- <include ref="dpml/util/dpml-configuration-impl"/>
- <include key="dpml-state-impl"/>
- <include key="dpml-metro-component" tag="protected"/>
- <include key="dpml-metro-model" tag="protected"/>
- </dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
-</project>
-
+ <project name="dpml-metro-runtime" basedir="runtime">
+ <types>
+ <type id="jar"/>
+ <part:plugin alias="true"
class="net.dpml.metro.runtime.CompositionController">
+ <part:param class="net.dpml.component.InitialContext"/>
+ </part:plugin>
+ </types>
+ <dependencies>
+ <runtime>
+ <include ref="dpml/util/dpml-logging-api" tag="public"/>
+ <include ref="dpml/metro/dpml-metro-component" tag="protected"/>
+ <include ref="dpml/metro/dpml-metro-model" tag="protected"/>
+ <include ref="dpml/metro/dpml-job-impl"/>
+ <include ref="dpml/metro/dpml-state-impl"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
+ </dependencies>
+ <filters>
+ <feature token="PART-HANDLER-URI" id="uri" type="part"/>
+ <feature token="STATE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-state"/>
+ <feature token="PART-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-part"/>
+ <feature token="TYPE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-type"/>
+ <feature token="COMPONENT-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-component"/>
+ </filters>
+ </project>
]]></source>
</section>
Deleted: trunk/main/central/src/docs/depot/tasks/filter.xml
===================================================================
--- trunk/main/central/src/docs/depot/tasks/filter.xml 2006-04-08 19:29:23
UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/tasks/filter.xml 2006-04-09 16:21:24
UTC (rev 1347)
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document>
-
- <properties>
- <author email="mcconnell AT dpml.net">Stephen McConnell</author>
- <title>DPML Depot Filter Task</title>
- </properties>
-
- <body>
- <section name="Filter Task">
-
- <p>
- The filter task establish a classic ant filter values
- based on project information.
- </p>
- <p>
- The following example demonstrates the resolution of
- a artifact uri feature for a project identified by the
- key "dpml-composition-runtime".
- </p>
-
-<source><![CDATA[
-<x:filter
- key="dpml-composition-runtime"
- feature="uri"
- type="plugin"
- token="COMPOSITION-PLUGIN-URI"/>
-]]></source>
-
- <subsection name="Attributes">
-
- <p>
- Task attributes are described in the following table.
- </p>
-
- <table>
- <tr><th>Attribute</th><th>Required</th><th>Description</th></tr>
- <tr>
- <td>token</td>
- <td>true</td>
- <td>The filter token.</td>
- </tr>
- <tr>
- <td>key</td>
- <td>false</td>
- <td>The name of the project or resource that the feature request
refers
- (if undeclared the current project key is assumed).</td>
- </tr>
- <tr>
- <td>feature</td>
- <td>true</td>
- <td>The feature keyword (see feature list below).</td>
- </tr>
- <tr>
- <td>type</td>
- <td>depends</td>
- <td>Required when referencing a feature of a resource type (see
feature list).
- The value refers to a resource type declared by a resource or
project.</td>
- </tr>
- </table>
-
- </subsection>
-
- <subsection name="Features">
-
- <p>
- Available features are listed in the following table.
- </p>
-
- <table>
- <tr><th>Feature</th><th>Description</th></tr>
- <tr>
- <td>name</td>
- <td>The resource name.</td>
- </tr>
- <tr>
- <td>group</td>
- <td>The resource group.</td>
- </tr>
- <tr>
- <td>version</td>
- <td>The resource version.</td>
- </tr>
- <tr>
- <td>uri</td>
- <td>The full artifact uri (requires type attribute).</td>
- </tr>
- <tr>
- <td>spec</td>
- <td>Short form of uri. The spec value is equivalent to the
- uri with the "artifact:" protocol identifier (requires type
attribute).</td>
- </tr>
- <tr>
- <td>filename</td>
- <td>The filename of the final artifact that the resource
represents (requires type attribute).</td>
- </tr>
- </table>
-
- </subsection>
-
- </section>
- </body>
-
-</document>
-
Modified: trunk/main/central/src/docs/depot/tasks/navigation.xml
===================================================================
--- trunk/main/central/src/docs/depot/tasks/navigation.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/central/src/docs/depot/tasks/navigation.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -25,8 +25,6 @@
<body>
<menu>
- <item name="Checkstyle" href="checkstyle.html"/>
- <item name="Filter" href="filter.html"/>
<item name="Init" href="init.html"/>
<item name="Install" href="install.html"/>
<item name="JavaDoc" href="javadoc.html"/>
@@ -34,6 +32,7 @@
<item name="Prepare" href="prepare.html"/>
<item name="Property" href="property.html"/>
<item name="Replicate" href="replicate.html"/>
+ <item name="Checkstyle" href="checkstyle.html"/>
</menu>
</body>
Modified: trunk/main/depot/library/etc/test/ant/module.xml
===================================================================
--- trunk/main/depot/library/etc/test/ant/module.xml 2006-04-08 19:29:23
UTC (rev 1346)
+++ trunk/main/depot/library/etc/test/ant/module.xml 2006-04-09 16:21:24
UTC (rev 1347)
@@ -6,7 +6,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant-launcher"/>
+ <runtime>
+ <include key="ant-launcher"/>
+ </runtime>
</dependencies>
</resource>
@@ -15,8 +17,10 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant"/>
- <include ref="junit/junit"/>
+ <runtime>
+ <include key="ant"/>
+ <include ref="junit/junit"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/depot/library/etc/test/dpml/module.xml
===================================================================
--- trunk/main/depot/library/etc/test/dpml/module.xml 2006-04-08 19:29:23
UTC (rev 1346)
+++ trunk/main/depot/library/etc/test/dpml/module.xml 2006-04-09 16:21:24
UTC (rev 1347)
@@ -19,8 +19,10 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
</project>
@@ -47,11 +49,13 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-configuration-api"/>
+ <runtime>
+ <include key="dpml-configuration-api"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-parameters-api" basedir="parameters/api">
@@ -65,12 +69,14 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-parameters-api"/>
- <include key="dpml-configuration-api" tag="private"/>
+ <runtime>
+ <include key="dpml-parameters-api"/>
+ <include key="dpml-configuration-api" tag="private"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
</module>
@@ -88,8 +94,10 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
</project>
@@ -100,13 +108,15 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="runtime">
- <include key="dpml-transit-main"/>
- <include ref="ant/ant"/>
+ <dependencies>
+ <runtime>
+ <include key="dpml-transit-main"/>
+ <include ref="ant/ant"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
</module>
@@ -118,7 +128,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
</dependencies>
</project>
@@ -130,12 +142,14 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-state-api" tag="public"/>
- <include ref="dpml/util/dpml-configuration-impl"/>
+ <runtime>
+ <include key="dpml-state-api" tag="public"/>
+ <include ref="dpml/util/dpml-configuration-impl"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-metro-component" basedir="part">
@@ -147,12 +161,14 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-state-api" tag="public"/>
- <include ref="dpml/transit/dpml-transit-main" tag="private"/>
+ <runtime>
+ <include key="dpml-state-api" tag="public"/>
+ <include ref="dpml/transit/dpml-transit-main" tag="private"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-component-model" basedir="component/model">
@@ -163,17 +179,19 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-parameters-api" tag="public"/>
- <include ref="dpml/util/dpml-configuration-api" tag="public"/>
- <include key="dpml-state-api" tag="public"/>
- <include key="dpml-metro-component" tag="public"/>
+ <runtime>
+ <include ref="dpml/util/dpml-parameters-api" tag="public"/>
+ <include ref="dpml/util/dpml-configuration-api" tag="public"/>
+ <include key="dpml-state-api" tag="public"/>
+ <include key="dpml-metro-component" tag="public"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include key="dpml-state-impl"/>
+ <include ref="dpml/util/dpml-parameters-impl"/>
+ <include ref="dpml/util/dpml-configuration-impl"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- <include key="dpml-state-impl"/>
- <include ref="dpml/util/dpml-parameters-impl"/>
- <include ref="dpml/util/dpml-configuration-impl"/>
- </dependencies>
</project>
<project name="dpml-component-control" basedir="component/control">
@@ -184,11 +202,13 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-component-model" tag="public"/>
+ <runtime>
+ <include key="dpml-component-model" tag="public"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-composition-editor" basedir="composition/editor">
@@ -200,8 +220,10 @@
<part:plugin
class="net.dpml.metro.runtime.edit.CompositionEditorFactory"/>
</types>
<dependencies>
- <include key="dpml-component-control" tag="public"/>
- <include ref="jgoodies/forms" tag="private"/>
+ <runtime>
+ <include key="dpml-component-control" tag="public"/>
+ <include ref="jgoodies/forms" tag="private"/>
+ </runtime>
</dependencies>
</project>
@@ -214,15 +236,17 @@
<part:plugin alias="true"
class="net.dpml.metro.runtime.CompositionController"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-logging-api" tag="public"/>
- <include ref="dpml/util/dpml-activity-api" tag="public"/>
- <include ref="dpml/util/dpml-parameters-impl"/>
- <include ref="dpml/util/dpml-configuration-impl"/>
- <include key="dpml-component-control" tag="protected"/>
- <include key="dpml-state-impl"/>
+ <runtime>
+ <include ref="dpml/util/dpml-logging-api" tag="public"/>
+ <include ref="dpml/util/dpml-activity-api" tag="public"/>
+ <include ref="dpml/util/dpml-parameters-impl"/>
+ <include ref="dpml/util/dpml-configuration-impl"/>
+ <include key="dpml-component-control" tag="protected"/>
+ <include key="dpml-state-impl"/>
+ </runtime>
</dependencies>
</project>
-
+
<project name="dpml-metro-tools" basedir="composition/tools">
<properties>
<property name="project.template" value="${basedir}/build.xml"/>
@@ -232,10 +256,12 @@
<part:resource urn="dpml:metro"
path="net/dpml/composition/tools/antlib.xml"/>
</types>
<dependencies>
- <include ref="dpml/tools/dpml-tools-ant"/>
- <include ref="dpml/transit/dpml-transit-tools"/>
- <include key="dpml-composition-runtime"/>
- <include ref="xstream/xstream"/>
+ <runtime>
+ <include ref="dpml/tools/dpml-tools-ant"/>
+ <include ref="dpml/transit/dpml-transit-tools"/>
+ <include key="dpml-composition-runtime"/>
+ <include ref="xstream/xstream"/>
+ </runtime>
</dependencies>
</project>
@@ -247,11 +273,13 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-logging-api"/>
+ <runtime>
+ <include ref="dpml/util/dpml-logging-api"/>
+ </runtime>
+ <test>
+ <include key="dpml-metro-tools"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include key="dpml-metro-tools"/>
- </dependencies>
</project>
</module>
@@ -266,11 +294,13 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-tools-model" basedir="model">
@@ -281,7 +311,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-tools-info"/>
+ <runtime>
+ <include key="dpml-tools-info"/>
+ </runtime>
</dependencies>
</project>
@@ -294,12 +326,14 @@
<part:plugin alias="true"
class="net.dpml.library.impl.BuildPlugin"/>
</types>
<dependencies>
- <include key="dpml-tools-model"/>
- <include ref="commons-cli/commons-cli"/>
+ <runtime>
+ <include key="dpml-tools-model"/>
+ <include ref="commons-cli/commons-cli"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-tools-ant" basedir="ant">
@@ -311,9 +345,11 @@
<part:plugin alias="true"
class="net.dpml.tools.impl.StandardBuilder"/>
</types>
<dependencies>
- <include key="dpml-tools-control"/>
- <include ref="ant/ant-junit" tag="system"/>
- <include ref="ant/ant" tag="system"/>
+ <runtime>
+ <include key="dpml-tools-control"/>
+ <include ref="ant/ant-junit" tag="system"/>
+ <include ref="ant/ant" tag="system"/>
+ </runtime>
</dependencies>
</project>
Modified: trunk/main/depot/library/etc/test/jgoodies/module.xml
===================================================================
--- trunk/main/depot/library/etc/test/jgoodies/module.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/depot/library/etc/test/jgoodies/module.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -12,7 +12,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="looks"/>
+ <runtime>
+ <include key="looks"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/depot/library/etc/test/samples/anonymous.xml
===================================================================
--- trunk/main/depot/library/etc/test/samples/anonymous.xml 2006-04-08
19:29:23 UTC (rev 1346)
+++ trunk/main/depot/library/etc/test/samples/anonymous.xml 2006-04-09
16:21:24 UTC (rev 1347)
@@ -14,7 +14,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include
urn="artifact:jar:commons-collections/commons-collections#3.0"/>
+ <runtime>
+ <include
urn="artifact:jar:commons-collections/commons-collections#3.0"/>
+ </runtime>
</dependencies>
</project>
</module>
Modified:
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryDecoder.java
===================================================================
---
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryDecoder.java
2006-04-08 19:29:23 UTC (rev 1346)
+++
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryDecoder.java
2006-04-09 16:21:24 UTC (rev 1347)
@@ -429,21 +429,19 @@
}
}
- private DependencyDirective buildDependencyDirective( Element element )
+ private DependencyDirective[] buildDependencyDirectives( Element element
)
{
final String tag = element.getTagName();
if( DEPENDENCIES_ELEMENT_NAME.equals( tag ) )
{
- final String spec = ElementHelper.getAttribute( element,
"scope", "runtime" );
- Scope scope = Scope.parse( spec );
Element[] children = ElementHelper.getChildren( element );
- IncludeDirective[] includes = new IncludeDirective[
children.length ];
+ DependencyDirective[] dependencies = new DependencyDirective[
children.length ];
for( int i=0; i<children.length; i++ )
{
Element child = children[i];
- includes[i] = buildIncludeDirective( child );
+ dependencies[i] = buildDependencyDirective( child );
}
- return new DependencyDirective( scope, includes );
+ return dependencies;
}
else
{
@@ -455,6 +453,24 @@
}
}
+ private DependencyDirective buildDependencyDirective( Element element )
+ {
+ String name = element.getTagName();
+ IncludeDirective[] includes = buildIncludeDirectives( element );
+ if( "build".equals( name ) )
+ {
+ return new DependencyDirective( Scope.BUILD, includes );
+ }
+ else if( "runtime".equals( name ) )
+ {
+ return new DependencyDirective( Scope.RUNTIME, includes );
+ }
+ else
+ {
+ return new DependencyDirective( Scope.TEST, includes );
+ }
+ }
+
/**
* Build an array of include directives contained within the supplied
enclosing element.
* @param element the enclosing element
@@ -478,7 +494,6 @@
final Properties properties = buildProperties( element );
if( INCLUDE_ELEMENT_NAME.equals( tag ) )
{
-
final String tagValue = ElementHelper.getAttribute( element,
"tag", "private" );
Category category = Category.parse( tagValue );
if( element.hasAttribute( "key" ) )
@@ -574,8 +589,8 @@
classifier = Classifier.EXTERNAL;
}
- ArrayList dependencies = new ArrayList();
TypeDirective[] types = new TypeDirective[0];
+ DependencyDirective[] dependencies = new DependencyDirective[0];
Element[] children = ElementHelper.getChildren( element );
Properties properties = null;
for( int i=0; i<children.length; i++ )
@@ -588,17 +603,15 @@
}
else if( DEPENDENCIES_ELEMENT_NAME.equals( childTag ) )
{
- DependencyDirective dependency =
buildDependencyDirective( child );
- dependencies.add( dependency );
+ dependencies = buildDependencyDirectives( child );
}
else if( PROPERTIES_ELEMENT_NAME.equals( childTag ) )
{
properties = buildProperties( child );
}
}
- DependencyDirective[] deps =
- (DependencyDirective[]) dependencies.toArray( new
DependencyDirective[0] );
- return new ResourceDirective( name, version, classifier,
basedir, types, deps, properties, filters );
+ return new ResourceDirective(
+ name, version, classifier, basedir, types, dependencies,
properties, filters );
}
else
{
Modified:
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryEncoder.java
===================================================================
---
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryEncoder.java
2006-04-08 19:29:23 UTC (rev 1346)
+++
trunk/main/depot/library/src/main/net/dpml/library/impl/LibraryEncoder.java
2006-04-09 16:21:24 UTC (rev 1347)
@@ -249,7 +249,7 @@
{
String id = type.getID();
boolean alias = type.getAlias();
- writer.write( "\n" + lead + " <type id=\"" + id + "\"" );
+ writer.write( "\n" + lead + "<type id=\"" + id + "\"" );
if( alias )
{
writer.write( " alias=\"true\"" );
@@ -262,6 +262,8 @@
{
if( dependencies.length > 0 )
{
+ writer.write( "\n" + lead + "<dependencies>" );
+
for( int i=0; i<dependencies.length; i++ )
{
DependencyDirective dependency = dependencies[i];
@@ -269,21 +271,14 @@
if( includes.length > 0 )
{
Scope scope = dependency.getScope();
- if( Scope.RUNTIME.equals( scope ) )
- {
- writer.write( "\n" + lead + "<dependencies>" );
- }
- else
- {
- writer.write( "\n" + lead + "<dependencies scope=\""
+ scope + "\">" );
- }
-
+ String label = scope.toString().toLowerCase();
+ writer.write( "\n" + lead + " <" + label + ">" );
for( int j=0; j<includes.length; j++ )
{
IncludeDirective include = includes[j];
Mode mode = include.getMode();
String value = include.getValue();
- writer.write( "\n" + lead + " <include" );
+ writer.write( "\n" + lead + " <include" );
if( Mode.KEY.equals( mode ) )
{
writer.write( " key=\"" + value + "\"" );
@@ -302,8 +297,8 @@
Category category = include.getCategory();
if( !Category.PRIVATE.equals( category ) )
{
- String label =
category.getName().toLowerCase();
- writer.write( " tag=\"" + label + "\"" );
+ String name =
category.getName().toLowerCase();
+ writer.write( " tag=\"" + name + "\"" );
}
}
@@ -312,16 +307,17 @@
{
writer.write( ">" );
writeProperties( writer, props, lead + " ",
false );
- writer.write( "\n" + lead + " </include>" );
+ writer.write( "\n" + lead + " </include>" );
}
else
{
writer.write( "/>" );
}
}
- writer.write( "\n" + lead + "</dependencies>" );
+ writer.write( "\n" + lead + " </" + label + ">" );
}
}
+ writer.write( "\n" + lead + "</dependencies>" );
}
}
Modified: trunk/main/depot/module.xml
===================================================================
--- trunk/main/depot/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/depot/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -9,29 +9,33 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</resource>
<project name="dpml-library-build" basedir="build">
- <filters>
- <feature token="ANT-BUILDER-URI" ref="dpml/depot/dpml-tools-builder"
id="uri" type="part"/>
- </filters>
<types>
<type id="jar"/>
<part:plugin alias="true"
class="net.dpml.library.console.BuilderPlugin"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-library"/>
- <include ref="dpml/util/dpml-util-cli"/>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-library"/>
+ <include ref="dpml/util/dpml-util-cli"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
+ <filters>
+ <feature token="ANT-BUILDER-URI" ref="dpml/depot/dpml-tools-builder"
id="uri" type="part"/>
+ </filters>
</project>
<project name="dpml-depot-checkstyle" basedir="tools/checkstyle">
@@ -40,16 +44,18 @@
<part:resource alias="true" urn="dpml:checkstyle"
path="net/dpml/tools/checkstyle/antlib.xml"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-tools-builder"/>
- <include urn="artifact:jar:checkstyle/checkstyle#4.1">
- <property name="project.api.host" value="http://api.dpml.net"/>
- <property name="project.api.root"
value="${project.api.host}/${project.group}/${project.version}"/>
- </include>
- <include urn="artifact:jar:commons-logging/commons-logging#1.0.4" />
- <include
urn="artifact:jar:commons-collections/commons-collections#3.1" />
- <include
urn="artifact:jar:commons-beanutils/commons-beanutils-core#1.7.0" />
- <include urn="artifact:jar:bcel/bcel#5.1" />
- <include urn="artifact:jar:antlr/antlr#2.7.2" />
+ <runtime>
+ <include ref="dpml/depot/dpml-tools-builder"/>
+ <include urn="artifact:jar:checkstyle/checkstyle#4.1">
+ <property name="project.api.host" value="http://api.dpml.net"/>
+ <property name="project.api.root"
value="${project.api.host}/${project.group}/${project.version}"/>
+ </include>
+ <include urn="artifact:jar:commons-logging/commons-logging#1.0.4" />
+ <include
urn="artifact:jar:commons-collections/commons-collections#3.1" />
+ <include
urn="artifact:jar:commons-beanutils/commons-beanutils-core#1.7.0" />
+ <include urn="artifact:jar:bcel/bcel#5.1" />
+ <include urn="artifact:jar:antlr/antlr#2.7.2" />
+ </runtime>
</dependencies>
</project>
@@ -59,8 +65,10 @@
<part:resource alias="true" urn="dpml:convert"
path="net/dpml/tools/convert/antlib.xml"/>
</types>
<dependencies>
- <include urn="artifact:jar:java2html/java2html#4.2"/>
- <include ref="ant/ant-launcher"/>
+ <runtime>
+ <include urn="artifact:jar:java2html/java2html#4.2"/>
+ <include ref="ant/ant-launcher"/>
+ </runtime>
</dependencies>
</project>
@@ -71,6 +79,17 @@
<property name="transit.short.filename" value="dpml-transit-main.jar"/>
<property name="project.jar.main.class" value="net.dpml.depot.Main"/>
</properties>
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
+ </dependencies>
<filters>
<filter token="DEPOT-PATH" value="${depot.short.filename}"/>
<filter token="DEPOT-MAIN-CLASS" value="${project.jar.main.class}"/>
@@ -85,15 +104,6 @@
<feature token="DEPOT-STATION-URI" id="uri" type="part" alias="true"
ref="dpml/station/dpml-station-console" />
<feature token="DEPOT-STATION-SERVER-URI" id="uri" type="part"
alias="true" ref="dpml/station/dpml-station-server" />
</filters>
- <types>
- <type id="jar"/>
- </types>
- <dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
- </dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<resource name="dpml-tools-builder" basedir="tools/builder">
@@ -102,12 +112,14 @@
<part:plugin alias="true" class="net.dpml.tools.impl.StandardBuilder"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-library"/>
- <include ref="dpml/transit/dpml-transit-tools"/>
- <include ref="ant/ant-junit" tag="system"/>
- <include ref="ant/ant" tag="system"/>
- <include ref="ant/ant-xslp" tag="system"/>
- <include ref="ant/ant-trax" tag="system"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-library"/>
+ <include ref="dpml/transit/dpml-transit-tools"/>
+ <include ref="ant/ant-junit" tag="system"/>
+ <include ref="ant/ant" tag="system"/>
+ <include ref="ant/ant-xslp" tag="system"/>
+ <include ref="ant/ant-trax" tag="system"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/external/library.xml
===================================================================
--- trunk/main/external/library.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/external/library.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -55,9 +55,11 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant-launcher"/>
- <include key="ant-trax"/>
- <include key="ant-xslp"/>
+ <runtime>
+ <include key="ant-launcher"/>
+ <include key="ant-trax"/>
+ <include key="ant-xslp"/>
+ </runtime>
</dependencies>
</resource>
@@ -66,8 +68,10 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant"/>
- <include ref="junit/junit"/>
+ <runtime>
+ <include key="ant"/>
+ <include ref="junit/junit"/>
+ </runtime>
</dependencies>
</resource>
@@ -76,7 +80,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant"/>
+ <runtime>
+ <include key="ant"/>
+ </runtime>
</dependencies>
</resource>
@@ -85,7 +91,9 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="ant"/>
+ <runtime>
+ <include key="ant"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/lang/module/etc/module.xsd
===================================================================
--- trunk/main/lang/module/etc/module.xsd 2006-04-08 19:29:23 UTC (rev
1346)
+++ trunk/main/lang/module/etc/module.xsd 2006-04-09 16:21:24 UTC (rev
1347)
@@ -14,13 +14,17 @@
<element name="project" type="this:ProjectType"/>
<element name="resource" type="this:ResourceType"/>
<element name="property" type="this:PropertyType"/>
+ <element name="type" type="this:GenericType"
substitutionGroup="common:type"/>
+ <element name="abstract-filter" type="this:AbstractFilter"/>
+ <element name="filter" type="this:Filter"
substitutionGroup="this:abstract-filter"/>
+ <element name="feature" type="this:Feature"
substitutionGroup="this:abstract-filter"/>
<complexType name="LibraryType">
- <sequence>
+ <all>
<element name="imports" type="this:ImportsType" minOccurs="0"
maxOccurs="1"/>
<element name="properties" type="this:PropertiesType" minOccurs="0"
maxOccurs="1"/>
<element name="modules" type="this:ModulesType" minOccurs="0"
maxOccurs="1"/>
- </sequence>
+ </all>
</complexType>
<complexType name="ImportsType">
@@ -51,16 +55,15 @@
</complexType>
<complexType name="PropertyType">
- <attribute name="name" type="string"/>
- <attribute name="value" type="string"/>
+ <attribute name="name" type="string" use="required"/>
+ <attribute name="value" type="string" use="required"/>
</complexType>
<complexType name="ResourceType">
<sequence>
- <element name="properties" type="this:PropertiesType" minOccurs="0"
maxOccurs="1"/>
- <element name="filters" type="this:FiltersType" minOccurs="0"
maxOccurs="1"/>
- <element name="types" type="this:TypesType" minOccurs="0"
maxOccurs="1"/>
- <element name="dependencies" type="this:DependenciesType"
minOccurs="0" maxOccurs="3"/>
+ <element name="properties" type="this:PropertiesType" minOccurs="0"
/>
+ <element name="types" type="this:TypesType" minOccurs="0"/>
+ <element name="dependencies" type="this:DependenciesType"
minOccurs="0"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<attribute name="version" type="string"/>
@@ -69,7 +72,11 @@
<complexType name="ProjectType">
<complexContent>
- <extension base="this:ResourceType"/>
+ <extension base="this:ResourceType">
+ <sequence>
+ <element name="filters" type="this:FiltersType" minOccurs="0"/>
+ </sequence>
+ </extension>
</complexContent>
</complexType>
@@ -102,14 +109,31 @@
</extension>
</complexContent>
</complexType>
+
+ <complexType name="DependenciesType">
+ <all>
+ <element name="build" type="this:BuildScope" minOccurs="0"
maxOccurs="1"/>
+ <element name="runtime" type="this:RuntimeScope" minOccurs="0"
maxOccurs="1"/>
+ <element name="test" type="this:TestScope" minOccurs="0"
maxOccurs="1"/>
+ </all>
+ </complexType>
+
+ <complexType name="BuildScope">
+ <sequence>
+ <element name="include" type="this:IncludeType" minOccurs="0"
maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
- <element name="type" type="this:GenericType"
substitutionGroup="common:type"/>
+ <complexType name="RuntimeScope">
+ <sequence>
+ <element name="include" type="this:RuntimeIncludeType" minOccurs="0"
maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
- <complexType name="DependenciesType">
+ <complexType name="TestScope">
<sequence>
<element name="include" type="this:IncludeType" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
- <attribute name="scope" type="this:scope" default="runtime"/>
</complexType>
<complexType name="IncludeType">
@@ -119,16 +143,15 @@
<attribute name="key" type="string"/>
<attribute name="ref" type="string"/>
<attribute name="urn" type="string"/>
- <attribute name="tag" type="string"/>
</complexType>
- <simpleType name="scope">
- <restriction base="string">
- <enumeration value="build"/>
- <enumeration value="runtime"/>
- <enumeration value="test"/>
- </restriction>
- </simpleType>
+ <complexType name="RuntimeIncludeType">
+ <complexContent>
+ <extension base="this:IncludeType">
+ <attribute name="tag" type="string"/>
+ </extension>
+ </complexContent>
+ </complexType>
<simpleType name="tag">
<restriction base="string">
@@ -147,10 +170,6 @@
</complexContent>
</complexType>
- <element name="abstract-filter" type="this:AbstractFilter"/>
- <element name="filter" type="this:Filter"
substitutionGroup="this:abstract-filter"/>
- <element name="feature" type="this:Feature"
substitutionGroup="this:abstract-filter"/>
-
<complexType name="FiltersType">
<sequence>
<element ref="this:abstract-filter" minOccurs="0"
maxOccurs="unbounded"/>
Modified: trunk/main/lang/module.xml
===================================================================
--- trunk/main/lang/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/lang/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -14,8 +14,10 @@
<types>
<type id="xsd"/>
</types>
- <dependencies scope="build">
- <include key="dpml-common"/>
+ <dependencies>
+ <build>
+ <include key="dpml-common"/>
+ </build>
</dependencies>
</resource>
@@ -29,8 +31,10 @@
<types>
<type id="xsd"/>
</types>
- <dependencies scope="build">
- <include key="dpml-part"/>
+ <dependencies>
+ <build>
+ <include key="dpml-part"/>
+ </build>
</dependencies>
</resource>
@@ -38,9 +42,11 @@
<types>
<type id="xsd"/>
</types>
- <dependencies scope="build">
- <include key="dpml-state"/>
- <include key="dpml-component"/>
+ <dependencies>
+ <build>
+ <include key="dpml-state"/>
+ <include key="dpml-component"/>
+ </build>
</dependencies>
</resource>
@@ -48,8 +54,10 @@
<types>
<type id="xsd"/>
</types>
- <dependencies scope="build">
- <include key="dpml-common"/>
+ <dependencies>
+ <build>
+ <include key="dpml-common"/>
+ </build>
</dependencies>
</resource>
@@ -57,9 +65,10 @@
<types>
<type id="xsd"/>
</types>
- <dependencies scope="build">
- <include key="dpml-common"/>
- <include key="dpml-part"/>
+ <dependencies>
+ <build>
+ <include key="dpml-part"/>
+ </build>
</dependencies>
</resource>
Modified: trunk/main/library.xml
===================================================================
--- trunk/main/library.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/library.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -23,16 +23,16 @@
<property name="project.javadoc.linksource" value="true"/>
</properties>
+ <types>
+ <type id="module" alias="true"/>
+ </types>
+
<filters>
<filter token="PROJECT-VERSION" value="${project.version}"/>
<filter token="PUBLISHER-NAME" value="${project.publisher.name}"/>
<filter token="PUBLISHER-URL" value="${project.publisher.url}"/>
</filters>
- <types>
- <type id="module" alias="true"/>
- </types>
-
<import file="lang/module.xml"/>
<import file="transit/module.xml"/>
<import file="util/module.xml"/>
Modified: trunk/main/metro/module.xml
===================================================================
--- trunk/main/metro/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/metro/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -11,27 +11,31 @@
</project>
<project name="dpml-state-impl" basedir="state/impl">
- <filters>
- <feature token="STATE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-state"/>
- </filters>
<types>
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-state-api" tag="public"/>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <runtime>
+ <include key="dpml-state-api" tag="public"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
+ <filters>
+ <feature token="STATE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-state"/>
+ </filters>
</project>
<project name="dpml-job-api" basedir="job/api">
<types>
<type id="jar"/>
</types>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
</project>
@@ -43,55 +47,79 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/metro/dpml-job-api"/>
+ <runtime>
+ <include ref="dpml/metro/dpml-job-api"/>
+ </runtime>
+ <test>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="dpml/transit/dpml-transit-main"/>
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<project name="dpml-metro-component" basedir="component">
+ <types>
+ <type id="jar"/>
+ </types>
+ <dependencies>
+ <runtime>
+ <include key="dpml-state-api" tag="public"/>
+ <include ref="dpml/metro/dpml-job-api" tag="public"/>
+ <include ref="dpml/transit/dpml-transit-main" tag="private"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
+ </dependencies>
<filters>
<feature token="NAME" id="name"/>
<feature token="VERSION" id="version"/>
<feature token="GROUP" id="group"/>
<feature token="PART-HANDLER-URI" id="uri" type="part"
ref="dpml/metro/dpml-metro-runtime"/>
</filters>
+ </project>
+
+ <project name="dpml-metro-model" basedir="model">
<types>
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-state-api" tag="public"/>
- <include ref="dpml/metro/dpml-job-api" tag="public"/>
- <include ref="dpml/transit/dpml-transit-main" tag="private"/>
+ <runtime>
+ <include key="dpml-state-api"/>
+ <include key="dpml-metro-component"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ <include key="dpml-state-impl"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
- </project>
-
- <project name="dpml-metro-model" basedir="model">
<filters>
<feature token="NAME" id="name"/>
<feature token="VERSION" id="version"/>
<feature token="GROUP" id="group"/>
<feature token="PART-HANDLER-URI" id="uri"
ref="dpml/metro/dpml-metro-runtime" type="part"/>
</filters>
+ </project>
+
+ <project name="dpml-metro-runtime" basedir="runtime">
<types>
<type id="jar"/>
+ <part:plugin alias="true"
class="net.dpml.metro.runtime.CompositionController">
+ <part:param class="net.dpml.component.InitialContext"/>
+ </part:plugin>
</types>
<dependencies>
- <include key="dpml-state-api"/>
- <include key="dpml-metro-component"/>
+ <runtime>
+ <include ref="dpml/util/dpml-logging-api" tag="public"/>
+ <include ref="dpml/metro/dpml-metro-component" tag="protected"/>
+ <include ref="dpml/metro/dpml-metro-model" tag="protected"/>
+ <include ref="dpml/metro/dpml-job-impl"/>
+ <include ref="dpml/metro/dpml-state-impl"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- <include key="dpml-state-impl"/>
- </dependencies>
- </project>
-
- <project name="dpml-metro-runtime" basedir="runtime">
<filters>
<feature token="PART-HANDLER-URI" id="uri" type="part"/>
<feature token="STATE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-state"/>
@@ -99,41 +127,27 @@
<feature token="TYPE-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-type"/>
<feature token="COMPONENT-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-component"/>
</filters>
+ </project>
+
+ <project name="dpml-metro-tools" basedir="tools">
<types>
<type id="jar"/>
- <part:plugin alias="true"
class="net.dpml.metro.runtime.CompositionController">
- <part:param class="net.dpml.component.InitialContext"/>
- </part:plugin>
+ <part:resource alias="true" urn="dpml:metro"
+ path="net/dpml/metro/tools/antlib.xml"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-logging-api" tag="public"/>
- <include ref="dpml/metro/dpml-metro-component" tag="protected"/>
- <include ref="dpml/metro/dpml-metro-model" tag="protected"/>
- <include ref="dpml/metro/dpml-job-impl"/>
- <include ref="dpml/metro/dpml-state-impl"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-tools-builder"/>
+ <include ref="dpml/transit/dpml-transit-tools"/>
+ <include ref="dpml/metro/dpml-metro-runtime"/>
+ </runtime>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
- </project>
-
- <project name="dpml-metro-tools" basedir="tools">
<filters>
<feature token="PART-BUILDER-URI" id="uri" type="part"/>
<feature token="PART-HANDLER-URI" id="uri" type="part"
ref="dpml/metro/dpml-metro-runtime"/>
<feature token="COMPONENT-XSD-URI" id="uri" type="xsd"
ref="dpml/lang/dpml-component"/>
<feature token="STRATEGY-BUILDER-URI" id="uri" type="part"
ref="dpml/metro/dpml-metro-runtime"/>
</filters>
- <types>
- <type id="jar"/>
- <part:resource alias="true" urn="dpml:metro"
- path="net/dpml/metro/tools/antlib.xml"/>
- </types>
- <dependencies>
- <include ref="dpml/depot/dpml-tools-builder"/>
- <include ref="dpml/transit/dpml-transit-tools"/>
- <include ref="dpml/metro/dpml-metro-runtime"/>
- </dependencies>
</project>
<project name="dpml-metro-test" basedir="test">
@@ -145,12 +159,14 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-logging-api"/>
- <include ref="dpml/metro/dpml-metro-model"/>
+ <runtime>
+ <include ref="dpml/util/dpml-logging-api"/>
+ <include ref="dpml/metro/dpml-metro-model"/>
+ </runtime>
+ <test>
+ <include key="dpml-metro-tools"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include key="dpml-metro-tools"/>
- </dependencies>
</project>
</module>
Modified: trunk/main/planet/http/module.xml
===================================================================
--- trunk/main/planet/http/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/planet/http/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -10,18 +10,20 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="runtime">
- <include ref="dpml/metro/dpml-metro-model"/>
- <include ref="dpml/util/dpml-logging-api"/>
- <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
- <include urn="artifact:jar:tomcat/jasper-runtime#5.5.12"/>
- <include urn="artifact:jar:tomcat/jasper-compiler#5.5.12"/>
- <include urn="artifact:jar:tomcat/jasper-compiler-jdt#5.5.12"/>
- <include urn="artifact:jar:org/mortbay/jetty#20060213"/>
- <include urn="artifact:jar:org/slf4j/jcl104-over-slf4j#1.0-rc5"/>
- <include urn="artifact:jar:org/slf4j/slf4j-jdk14#1.0-rc5"/>
- <include urn="artifact:jar:commons-el/commons-el#1.0"/>
- <include ref="dpml/transit/dpml-transit-main"/>
+ <dependencies>
+ <runtime>
+ <include ref="dpml/metro/dpml-metro-model"/>
+ <include ref="dpml/util/dpml-logging-api"/>
+ <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
+ <include urn="artifact:jar:tomcat/jasper-runtime#5.5.12"/>
+ <include urn="artifact:jar:tomcat/jasper-compiler#5.5.12"/>
+ <include urn="artifact:jar:tomcat/jasper-compiler-jdt#5.5.12"/>
+ <include urn="artifact:jar:org/mortbay/jetty#20060213"/>
+ <include urn="artifact:jar:org/slf4j/jcl104-over-slf4j#1.0-rc5"/>
+ <include urn="artifact:jar:org/slf4j/slf4j-jdk14#1.0-rc5"/>
+ <include urn="artifact:jar:commons-el/commons-el#1.0"/>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ </runtime>
</dependencies>
</project>
@@ -31,7 +33,9 @@
<type id="war" alias="true"/>
</types>
<dependencies>
- <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
+ <runtime>
+ <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
+ </runtime>
</dependencies>
</project>
@@ -45,13 +49,15 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="build">
- <include key="dpml-http-server"/>
+ <dependencies>
+ <build>
+ <include key="dpml-http-server"/>
+ </build>
+ <test>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="dpml/transit/dpml-transit-main"/>
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
</module>
Modified: trunk/main/planet/http/server/project.xml
===================================================================
--- trunk/main/planet/http/server/project.xml 2006-04-08 19:29:23 UTC (rev
1346)
+++ trunk/main/planet/http/server/project.xml 2006-04-09 16:21:24 UTC (rev
1347)
@@ -84,12 +84,14 @@
</component>
</types>
- <dependencies scope="build">
- <include key="dpml-http-app"/>
+ <dependencies>
+ <build>
+ <include key="dpml-http-app"/>
+ </build>
+ <runtime>
+ <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
+ <include key="dpml-http-impl"/>
+ </runtime>
</dependencies>
- <dependencies scope="runtime">
- <include urn="artifact:jar:org/mortbay/servlet-api-2.5#20060213"
tag="PUBLIC"/>
- <include key="dpml-http-impl"/>
- </dependencies>
</project>
Deleted: trunk/main/station/api/build.xml
===================================================================
--- trunk/main/station/api/build.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/station/api/build.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<project name="dpml-station-api" default="install" basedir="."
- xmlns:transit="antlib:net.dpml.transit"
- xmlns:x="dpml:depot" >
-
- <transit:import uri="local:template:dpml/tools/standard"/>
-
- <target name="init" depends="standard.init">
- <x:filter token="COMMON-XSD-URI" ref="dpml/lang/dpml-common" type="xsd"
feature="uri" />
- <x:filter token="PART-XSD-URI" ref="dpml/lang/dpml-part" type="xsd"
feature="uri" />
- <x:filter token="COMPONENT-XSD-URI" ref="dpml/lang/dpml-component"
type="xsd" feature="uri" />
- <x:filter token="APPLICATION-XSD-URI" ref="dpml/lang/dpml-application"
type="xsd" feature="uri" />
- </target>
-
-</project>
Modified: trunk/main/station/console/build.xml
===================================================================
--- trunk/main/station/console/build.xml 2006-04-08 19:29:23 UTC (rev
1346)
+++ trunk/main/station/console/build.xml 2006-04-09 16:21:24 UTC (rev
1347)
@@ -8,10 +8,6 @@
<available property="station.exe.available"
file="${dpml.system}/bin/station.exe"/>
- <target name="init" depends="standard.init">
- <x:filter token="DEPOT-STATION-PLUGIN-URI" key="dpml-station-server"
feature="uri" type="part"/>
- </target>
-
<target name="install" depends="bin,standard.install">
<copy todir="${dpml.system}" preservelastmodified="true"
overwrite="true">
<fileset dir="target">
Modified: trunk/main/station/exec/build.xml
===================================================================
--- trunk/main/station/exec/build.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/station/exec/build.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -8,11 +8,6 @@
<available property="metro.exe.available"
file="${dpml.system}/bin/metro.exe"/>
- <target name="init" depends="standard.init">
- <x:filter feature="uri" type="part" token="COMPOSITION-CONTROLLER-URI"
- ref="dpml/metro/dpml-metro-runtime"/>
- </target>
-
<target name="build" depends="standard.build">
<rmic base="${project.target.classes.main.dir}"
classpathref="project.compile.path">
<include name="**/AbstractAdapter.class"/>
Modified: trunk/main/station/module.xml
===================================================================
--- trunk/main/station/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/station/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -8,12 +8,20 @@
<type id="jar"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
- <include ref="dpml/metro/dpml-metro-component"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ <include ref="dpml/metro/dpml-metro-component"/>
+ </runtime>
+ <test>
+ <include ref="junit/junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="junit/junit"/>
- </dependencies>
+ <filters>
+ <feature token="COMMON-XSD-URI" ref="dpml/lang/dpml-common" type="xsd"
id="uri"/>
+ <feature token="PART-XSD-URI" ref="dpml/lang/dpml-part" type="xsd"
id="uri"/>
+ <feature token="COMPONENT-XSD-URI" ref="dpml/lang/dpml-component"
type="xsd" id="uri"/>
+ <feature token="APPLICATION-XSD-URI" ref="dpml/lang/dpml-application"
type="xsd" id="uri"/>
+ </filters>
</project>
<project name="dpml-station-exec" basedir="exec">
@@ -21,17 +29,22 @@
<type id="jar"/>
<part:plugin class="net.dpml.station.exec.ApplicationHandler"
alias="true"/>
</types>
- <dependencies scope="build">
- <include ref="dpml/metro/dpml-metro-runtime"/>
- </dependencies>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main" tag="public"/>
- <include ref="dpml/metro/dpml-metro-component" tag="public"/>
- <include ref="dpml/metro/dpml-metro-model" tag="public"/>
- <include ref="dpml/station/dpml-station-api" tag="public"/>
- <include ref="dpml/util/dpml-logging-api" tag="public"/>
- <include ref="dpml/util/dpml-util-cli"/>
+ <build>
+ <include ref="dpml/metro/dpml-metro-runtime"/>
+ </build>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main" tag="public"/>
+ <include ref="dpml/metro/dpml-metro-component" tag="public"/>
+ <include ref="dpml/metro/dpml-metro-model" tag="public"/>
+ <include ref="dpml/station/dpml-station-api" tag="public"/>
+ <include ref="dpml/util/dpml-logging-api" tag="public"/>
+ <include ref="dpml/util/dpml-util-cli"/>
+ </runtime>
</dependencies>
+ <filters>
+ <feature token="COMPOSITION-CONTROLLER-URI"
ref="dpml/metro/dpml-metro-runtime" type="part" id="uri"/>
+ </filters>
</project>
<project name="dpml-station-builder" basedir="builder">
@@ -39,11 +52,16 @@
<type id="jar"/>
</types>
<dependencies>
- <include key="dpml-station-api" tag="public"/>
+ <runtime>
+ <include key="dpml-station-api" tag="public"/>
+ </runtime>
+ <test>
+ <include ref="junit/junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="junit/junit"/>
- </dependencies>
+ <filters>
+ <feature token="APPLICATION-XSD-URI" ref="dpml/lang/dpml-application"
type="xsd" id="uri"/>
+ </filters>
</project>
<project name="dpml-station-server" basedir="server">
@@ -55,16 +73,21 @@
<part:plugin class="net.dpml.station.server.StationServerPlugin"
alias="true"/>
</types>
<dependencies>
- <include ref="dpml/depot/dpml-depot-console" tag="public"/>
- <include ref="dpml/metro/dpml-metro-component" tag="public"/>
- <include ref="dpml/transit/dpml-transit-main" tag="public"/>
- <include ref="dpml/station/dpml-station-api" tag="public"/>
- <include ref="dpml/station/dpml-station-builder" tag="protected"/>
- <include ref="dpml/util/dpml-util-cli"/>
+ <runtime>
+ <include ref="dpml/depot/dpml-depot-console" tag="public"/>
+ <include ref="dpml/metro/dpml-metro-component" tag="public"/>
+ <include ref="dpml/transit/dpml-transit-main" tag="public"/>
+ <include ref="dpml/station/dpml-station-api" tag="public"/>
+ <include ref="dpml/station/dpml-station-builder" tag="protected"/>
+ <include ref="dpml/util/dpml-util-cli"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
+ <filters>
+ <feature token="APPLICATION-XSD-URI" ref="dpml/lang/dpml-application"
type="xsd" id="uri"/>
+ </filters>
</project>
<project name="dpml-station-console" basedir="console">
@@ -73,10 +96,15 @@
<part:plugin alias="true"
class="net.dpml.station.console.StationPlugin"/>
</types>
<dependencies>
- <include ref="dpml/util/dpml-util-cli"/>
- <include ref="dpml/station/dpml-station-api" tag="public"/>
- <include ref="dpml/station/dpml-station-server"/>
+ <runtime>
+ <include ref="dpml/util/dpml-util-cli"/>
+ <include ref="dpml/station/dpml-station-api" tag="public"/>
+ <include ref="dpml/station/dpml-station-server"/>
+ </runtime>
</dependencies>
+ <filters>
+ <feature token="DEPOT-STATION-PLUGIN-URI"
ref="dpml/station/dpml-station-server" type="part" id="uri"/>
+ </filters>
</project>
</module>
Modified: trunk/main/station/server/build.xml
===================================================================
--- trunk/main/station/server/build.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/station/server/build.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -6,10 +6,6 @@
<transit:import uri="local:template:dpml/tools/standard"/>
- <target name="init" depends="standard.init">
- <x:filter token="APPLICATION-XSD-URI" ref="dpml/lang/dpml-application"
type="xsd" feature="uri" />
- </target>
-
<target name="build" depends="standard.build">
<rmic base="${project.target.classes.main.dir}"
classpathref="project.compile.path">
<include name="**/RemoteApplicationRegistry.class"/>
Modified:
trunk/main/transit/core/src/main/net/dpml/util/DOM3DocumentBuilder.java
===================================================================
--- trunk/main/transit/core/src/main/net/dpml/util/DOM3DocumentBuilder.java
2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/transit/core/src/main/net/dpml/util/DOM3DocumentBuilder.java
2006-04-09 16:21:24 UTC (rev 1347)
@@ -52,22 +52,32 @@
public class DOM3DocumentBuilder
{
private final Map m_map;
+ private final Logger m_logger;
/**
* Creation of a new DOM3 document builder.
*/
public DOM3DocumentBuilder()
{
- this( new Hashtable() );
+ this( new DefaultLogger( "dom" ), new Hashtable() );
}
/**
* Creation of a new DOM3 document builder.
+ */
+ public DOM3DocumentBuilder( Logger logger )
+ {
+ this( logger, new Hashtable() );
+ }
+
+ /**
+ * Creation of a new DOM3 document builder.
* @param map namespace to builder uri map
*/
- public DOM3DocumentBuilder( Map map )
+ public DOM3DocumentBuilder( Logger logger, Map map )
{
m_map = map;
+ m_logger = logger;
}
/**
@@ -96,7 +106,7 @@
}
LSParser builder = impl.createLSParser(
DOMImplementationLS.MODE_SYNCHRONOUS, null );
DOMConfiguration config = builder.getDomConfig();
- config.setParameter( "error-handler", new InternalErrorHandler()
);
+ config.setParameter( "error-handler", new InternalErrorHandler(
m_logger, uri ) );
config.setParameter( "resource-resolver", new
InternalResourceResolver( m_map ) );
config.setParameter( "validate", Boolean.TRUE );
@@ -117,8 +127,10 @@
final String error =
"DOM3 error while attempting to parse document."
+ "\nSource: " + uri;
- String message = ExceptionHelper.packException( error, e, true );
- throw new IOException( message );
+ //String message = ExceptionHelper.packException( error, e, true
);
+ IOException ioe = new IOException( error );
+ ioe.initCause( e );
+ throw ioe;
}
}
@@ -222,6 +234,15 @@
*/
private static final class InternalErrorHandler implements
DOMErrorHandler
{
+ private final URI m_uri;
+ private final Logger m_logger;
+
+ InternalErrorHandler( Logger logger, URI uri )
+ {
+ m_uri = uri;
+ m_logger = logger;
+ }
+
/**
* Handle the supplied error.
* @param error the error
@@ -235,26 +256,50 @@
String uri = locator.getUri();
if( null == uri )
{
- uri = "";
+ uri = m_uri.toString();
}
- String position = "[" + line + ":" + column + "] " + uri + ", ";
+ String position = "[" + line + ":" + column + "]";
String message = error.getMessage();
+ if( null != message )
+ {
+ short severity = error.getSeverity();
+ final String notice =
+ "DOM3 Validation Error"
+ + "\nSource: "
+ + uri + ":" + position
+ + "\nCause: "
+ + message;
+ if( severity == DOMError.SEVERITY_ERROR )
+ {
+ m_logger.error( notice );
+ }
+ else if( severity == DOMError.SEVERITY_WARNING )
+ {
+ m_logger.warn( notice );
+ }
+ else
+ {
+ m_logger.info( notice );
+ }
+ }
+ return true;
+ }
+
+ private String getLabel( DOMError error )
+ {
short severity = error.getSeverity();
if( severity == DOMError.SEVERITY_ERROR )
{
- System.out.println( "[ERROR]: " + position + message );
- final String notice = "DOM3 Validation Error: " + position +
message;
- throw new RuntimeException( notice );
+ return "ERROR";
}
else if( severity == DOMError.SEVERITY_WARNING )
{
- System.out.println( "[WARNING]: " + position + message );
+ return "WARNING";
}
else
{
- System.out.println( "[FATAL]: " + position + message );
+ return "FATAL";
}
- return true;
}
}
}
Modified: trunk/main/transit/module.xml
===================================================================
--- trunk/main/transit/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/transit/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -14,12 +14,14 @@
<part:plugin class="net.dpml.transit.console.TransitConsoleHandler"
alias="true"/>
</types>
<dependencies>
- <include ref="dpml/transit/dpml-transit-main"/>
- <include ref="dpml/util/dpml-util-cli"/>
+ <runtime>
+ <include ref="dpml/transit/dpml-transit-main"/>
+ <include ref="dpml/util/dpml-util-cli"/>
+ </runtime>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
- </dependencies>
</project>
<resource name="dpml-transit-main" basedir="core">
@@ -32,9 +34,11 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="runtime">
- <include key="dpml-transit-main"/>
- <include ref="ant/ant"/>
+ <dependencies>
+ <runtime>
+ <include key="dpml-transit-main"/>
+ <include ref="ant/ant"/>
+ </runtime>
</dependencies>
</resource>
Modified: trunk/main/util/module.xml
===================================================================
--- trunk/main/util/module.xml 2006-04-08 19:29:23 UTC (rev 1346)
+++ trunk/main/util/module.xml 2006-04-09 16:21:24 UTC (rev 1347)
@@ -3,16 +3,20 @@
xmlns="artifact:xsd:dpml/lang/dpml-module#1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
- <dependencies scope="build">
- <include key="transit"/>
+ <dependencies>
+ <build>
+ <include key="transit"/>
+ </build>
</dependencies>
<project name="dpml-util-i18n" basedir="i18n">
<types>
<type id="jar"/>
</types>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
</project>
@@ -23,8 +27,10 @@
<types>
<type id="jar"/>
</types>
- <dependencies scope="test">
- <include ref="ant/ant-junit"/>
+ <dependencies>
+ <test>
+ <include ref="ant/ant-junit"/>
+ </test>
</dependencies>
</project>
- r1347 - in trunk/main: . central/src/docs/about/download central/src/docs/depot/library central/src/docs/depot/library/filters central/src/docs/depot/tasks depot depot/library/etc/test/ant depot/library/etc/test/dpml depot/library/etc/test/jgoodies depot/library/etc/test/samples depot/library/src/main/net/dpml/library/impl external lang lang/module/etc metro metro/component/src planet/http planet/http/server station station/api station/console station/exec station/server transit transit/core/src/main/net/dpml/util util, mcconnell at BerliOS, 04/09/2006
Archive powered by MHonArc 2.6.24.