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>