The Depot build tool loads a plugin to handle project build requests using the property project.builder.uri. The default builder plugin (dpml.tools.impl.StandardBuilder) is an application that dynamically establishes and populates an Ant project based on information obtained from a project definition within the common library. The plugin creates a local Context object which provides convinient access to project related information such as classpaths, file locations, and project related properties.
During Ant project initialization the following actions are undertaken:
basedir | The Ant project basedir is assigned the value of the Depot project basedir. |
template | A build template is assigned from which formal build phased are established The default template declares initialization, preparation, build, packaging, validation and installation targets (which in turn trigger additional build functionality via processors declared within the builder configuration). |
properties | Properties associated (or inherited by) the Depot project defintion are mapped to properties in a new Ant project. |
filters | Filters declared in the current project are mapped to global filters in the underlying ant project. |
paths | Compilation and test phase paths are constructed based on the dependencies declared in the Depot project defintion. |
listeners | Build-listeners registered in the builder configuration are loaded, sorted with respect to listener priority, and attached to the Ant project. |
From a technical perspective the project definition provides sufficent information for the creation and parameterization of the Ant project such that a build can be exectuted without a build.xml file. The builder achieves this through the assignment of a project base directory and a template build file. Templates are resolved using the project.template property which defaults to the value of the project.standard.template property. If neither property is defined, the default template local:template:dpml/depot/standard is assigned.
The Depot Build is configured using an XML file located using the following uri:
local:xml:dpml/depot/config
<builder default="install"> <listeners> <listener name="standard" class="dpml.tools.impl.StandardBuildListener" priority="0"/> </listeners> </builder>
The builder configuration contains a set of <listener> declarations. A <listener> definition allows the association of a plugin-based build listener to an Ant project. Further customization may be added under a build.xml file.
default | The default build target. |
listeners | 0..n | A sequence of build listeners. |
name | The listener name. |
uri | A plugin codebase uri. |
class | Listener classname. |
priority | The listener priority value. Lower priority values are assigned to the project ahead of listeners with a higher priotrity value. |