Properties may be defined within the <library>, <module>, <project>, and <resource> elements within an enclosing <properties> element. Library properties serve as the most generic and are inherited by processor and module definitions. Modules, projects and resources inherit property setting from their enclosing module.
The <type> and <include> elements may also contain <property> declarations as direct child elements.
| name | The property name. |
| value | The property value. |
Property values may contain references to system properties and properties defined within the enclosing property set (locally or inherited) using the form ${<name>}.
Example:
<property name="username" value="${user.name}"/>
Example property definition from the DPML root module.
<module name="dpml" basedir="main">
<properties>
<property name="project.publisher.name" value="Digital Product Management 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"/>
</properties>
...
</module>
Example property definition within a project type directive.
<module name="metro">
...
<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>
</project>
...
</module>