2004-03-08 11:42:02 -05:00
<!--
|
| o add specification element to a field, this would be more a technical description of
| what is allowed in the field.
|
| o validators: there could be several levels of validation. Simple type validation could
| be done with a regex, but we need inter-field validation and rules which could be
| dealt with by something like drools.
|
| o i18n: would be good to be able to have names/descriptions/specifications
| in as many languages as possible.
|
| o versioning of individual elements on the class level and the field level so that
| different versions of the model can be output.
|
| o annotation mechanism so that changes to the model can be accurately tracked.
2004-03-08 12:29:47 -05:00
|
2004-12-17 08:15:30 -05:00
| o need to clean up all the descriptions, matching anything to the current project-descriptor.xml file and
| improving on that
|
2004-03-08 11:42:02 -05:00
-->
2004-03-07 20:31:17 -05:00
<model>
2004-03-08 16:22:40 -05:00
<id>maven</id>
2004-03-07 20:31:17 -05:00
<name>Maven</name>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Maven's model for Java project.]]></description>
2004-09-26 09:29:06 -04:00
<defaults>
<default>
<key>package</key>
<value>org.apache.maven.model</value>
</default>
</defaults>
2004-03-07 20:31:17 -05:00
<classes>
2004-09-26 09:29:06 -04:00
<class rootElement="true">
2004-03-07 20:31:17 -05:00
<name>Model</name>
2004-06-06 01:50:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>extend</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
The location of the parent project, if one exists. Values from the parent project will be
2004-06-23 11:13:53 -04:00
the default for this project if they are left unspecified.
2004-03-08 16:53:16 -05:00
The path may be absolute, or relative to the current project.xml file.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-04-12 10:41:05 -04:00
<field>
<name>parent</name>
2004-04-14 22:03:54 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Specified which project to extend.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Parent</type>
</association>
2004-04-12 10:41:05 -04:00
<comment></comment>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>modelVersion</name>
2004-04-14 22:03:54 -04:00
<version>4.0.0</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The version of this model you are using.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-03-10 18:23:02 -05:00
<field>
<name>pomVersion</name>
2004-04-14 22:03:54 -04:00
<version>3.0.0</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-04-17 13:15:58 -04:00
<type>String</type>
2004-03-10 18:23:02 -05:00
</field>
2004-09-18 21:30:53 -04:00
<field>
<name>id</name>
<version>3.0.0</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-09-19 00:12:46 -04:00
The id of the project.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-18 21:30:53 -04:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>groupId</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The primary grouping for your project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>artifactId</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The identifier used when generating the artifact for your project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-04-14 21:59:20 -04:00
<field>
<name>type</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The type of artifact this project produces.]]></description>
2004-04-14 21:59:20 -04:00
<type>String</type>
<defaultValue>jar</defaultValue>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>name</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Human readable name of the project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-03-10 17:24:29 -05:00
<field>
<name>currentVersion</name>
2004-04-14 22:03:54 -04:00
<version>3.0.0</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-04-17 13:15:58 -04:00
<type>String</type>
2004-03-10 17:24:29 -05:00
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>version</name>
2004-04-14 22:03:54 -04:00
<version>4.0.0</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The current version of the project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>shortDescription</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[An abbreviated description of the project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>description</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
A detailed description of the project. This element is
usually specified as CDATA to enable the use of HTML tags
within the description. This description is used to
2004-04-17 00:22:52 -04:00
generate the
<a href="plugins/site/index.html">front page</a>
2004-03-08 16:53:16 -05:00
of the project's web site.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL where the project can be found.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>logo</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The logo for the project.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>issueTrackingUrl</name>
2004-04-14 22:03:54 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL where the issue tracking system used by the project can be found.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-04-17 11:13:31 -04:00
<field>
<name>issueManagement</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The project's issue management information.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>IssueManagement</type>
</association>
2004-04-17 11:13:31 -04:00
</field>
2004-04-29 18:39:05 -04:00
<field>
<name>ciManagement</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The project's continuous integration management information.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>CiManagement</type>
</association>
2004-04-29 18:39:05 -04:00
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>inceptionYear</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The year the project started.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>gumpRepositoryId</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Hint for the gump continuous integration build system.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>siteAddress</name>
2004-06-23 14:03:06 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The FQDN of the host where the project's site is uploaded.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>siteDirectory</name>
2004-06-23 14:03:06 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The directory on the site host where site documentation is placed when the site is uploaded.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>distributionSite</name>
2004-06-19 14:58:59 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The FQDN of the host where the project's artifacts are uploaded.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
2004-09-02 08:34:19 -04:00
<comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>distributionDirectory</name>
2004-06-19 14:58:59 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The directory on the distribution host where artifacts are placed when uploaded.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
2004-09-02 08:34:19 -04:00
<comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
2004-03-07 20:31:17 -05:00
</field>
2004-06-07 14:16:53 -04:00
<field>
<name>repositories</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The lists of the remote repositories]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Repository</type>
<multiplicity>*</multiplicity>
</association>
2004-06-07 14:16:53 -04:00
</field>
2004-09-02 08:34:19 -04:00
<field>
<name>pluginRepositories</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The lists of the remote repositories for discovering plugins]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Repository</type>
<multiplicity>*</multiplicity>
</association>
2004-09-02 08:34:19 -04:00
<comment>This may be removed or relocated in the near future. It is undecided whether plugins really need a remote repository set of their own.</comment>
</field>
2004-10-01 10:36:23 -04:00
<field>
<name>plugins</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Plugin declarations and configuration.]]></description>
2004-10-01 10:36:23 -04:00
<association>
<type>Plugin</type>
<multiplicity>*</multiplicity>
</association>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>mailingLists</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The mailing lists for the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>MailingList</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>developers</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element describes all of the developers associated with a
project. Each developer is described by a
<code>developer</code> element, which is then described by
additional elements (described below). The auto-generated site
documentation references this information.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Developer</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>contributors</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element describes all of the contributors associated with a
project who are not developers. Each contributor is described by a
<code>contributor</code> element, which is then describe by additional
elements (described below). The auto-generated site documentation
references this information.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Contributor</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>dependencies</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:10:49 -05:00
This element describes all of the dependencies associated with a
project. Each dependency is described by a
<code>dependency</code> element, which is then described by
additional elements (described below).
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Dependency</type>
<multiplicity>*</multiplicity>
</association>
2004-03-08 14:09:45 -05:00
<comment>These should ultimately only be compile time dependencies when transitive dependencies come into play.</comment>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>licenses</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element describes all of the licenses for this project. Each license is described by a
<code>license</code> element, which is then describe by additional
elements (described below). The auto-generated site documentation
references this information. Projects should only list the license(s) that
applies to the project and not the licenses that apply to dependencies.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>License</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>versions</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The released versions of the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Version</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>branches</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The SCM branches create for the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Branch</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>packageGroups</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Package groups required for complete javadocs.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>PackageGroup</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>reports</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element includes the specification of reports to be
included in a Maven-generated site. These reports will be run
2004-04-17 00:22:52 -04:00
when a user executes
<code>maven site</code>. All of the
2004-03-08 16:53:16 -05:00
reports will be included in the navigation bar for browsing in
the order they are specified.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
2004-04-12 23:19:09 -04:00
<name>scm</name>
2004-04-16 17:48:24 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Specification for the SCM use by the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Scm</type>
</association>
2004-04-16 17:48:24 -04:00
</field>
<field>
<name>repository</name>
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Specification for the SCM use by the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Repository</type>
</association>
2004-03-08 14:02:56 -05:00
<comment>This element needs to be renamed as it conflicts with the existing notion of repositories in Maven.</comment>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>build</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Information required to build the project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Build</type>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>organization</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:33:06 -05:00
This element describes various attributes of the organziation to
which the project belongs. These attributes are utilized when
documentation is created (for copyright notices and links).
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Organization</type>
</association>
2004-03-07 20:31:17 -05:00
</field>
2004-06-19 14:55:16 -04:00
<field>
<name>distributionManagement</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Distribution information for a project.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>DistributionManagement</type>
</association>
o Added dependencyDefaults section to POM.
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68
2005-02-01 17:43:03 -05:00
</field>
2005-02-22 23:12:09 -05:00
<!-- [ jdcasey:01-Feb-2005 ] Added to handle version management for
| dependencies to be used in sub-projects. -->
o Added dependencyDefaults section to POM.
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68
2005-02-01 17:43:03 -05:00
<field>
2005-02-01 21:23:12 -05:00
<name>dependencyManagement</name>
o Added dependencyDefaults section to POM.
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68
2005-02-01 17:43:03 -05:00
<version>4.0.0</version>
<required>false</required>
<description><![CDATA[Default dependency information for grouped projects inheriting from this one.]]></description>
<association>
2005-02-22 23:12:09 -05:00
<type>DependencyManagement</type>
2004-09-26 09:29:06 -04:00
</association>
2004-09-02 08:34:19 -04:00
</field>
<!-- @todo long run 4.0.0 may not need properties, with the parameters being specified
for the plugin directly -->
<field>
<name>properties</name>
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-09-02 08:34:19 -04:00
Properties about the project. This allows you to configure your project and the
plugins it uses.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<type>Properties</type>
2004-10-01 08:35:20 -04:00
<association xml.mapStyle="inline">
2004-09-26 09:29:06 -04:00
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-09-02 08:34:19 -04:00
</field>
2004-08-25 21:18:19 -04:00
<field>
<name>preGoals</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Set of decorator(s) injected before the target goal(s).]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>PreGoal</type>
<multiplicity>*</multiplicity>
</association>
2004-08-25 21:18:19 -04:00
</field>
<field>
<name>postGoals</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Set of decorator(s) injected after the target goal(s).]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>PostGoal</type>
<multiplicity>*</multiplicity>
</association>
2004-08-25 21:18:19 -04:00
</field>
2005-02-22 23:12:09 -05:00
<!-- @todo is this for javadoc only? maybe make it a plugin property? -->
<field xml.tagName="package">
<name>packageName</name>
<version>3.0.0+</version>
<type>String</type>
<description>The Java package that the code resides in.</description>
</field>
2004-03-07 20:31:17 -05:00
</fields>
2004-04-17 00:22:52 -04:00
<codeSegments>
2004-09-19 00:12:46 -04:00
<codeSegment>
<version>3.0.0</version>
<code>
public void setVersion(String version)
{
this.currentVersion = version;
}
public String getVersion()
{
return currentVersion;
}
</code>
</codeSegment>
2005-02-22 23:12:09 -05:00
<!-- We need this because we can't use package as a field name. -->
2004-04-17 00:22:52 -04:00
<codeSegment>
2004-04-17 11:13:31 -04:00
<version>3.0.0+</version>
2004-04-17 00:22:52 -04:00
<code>
public void setPackage(String packageName)
{
this.packageName = packageName;
}
2004-03-07 20:31:17 -05:00
2004-04-17 00:22:52 -04:00
public String getPackage()
2004-03-07 20:31:17 -05:00
{
2004-04-17 00:22:52 -04:00
return packageName;
2004-03-07 20:31:17 -05:00
}
2004-04-17 11:13:31 -04:00
</code>
</codeSegment>
<codeSegment>
<version>4.0.0</version>
<code>
2004-04-17 00:22:52 -04:00
public String getId()
2004-03-07 20:31:17 -05:00
{
2004-04-17 00:22:52 -04:00
StringBuffer id = new StringBuffer();
2004-06-27 14:46:52 -04:00
2004-04-17 00:22:52 -04:00
id.append( getGroupId() );
id.append( ":" );
id.append( getArtifactId() );
id.append( ":" );
id.append( getType() );
2004-06-27 14:46:52 -04:00
id.append( ":" );
id.append( getVersion() );
2004-04-17 00:22:52 -04:00
return id.toString();
2004-03-07 20:31:17 -05:00
}
2004-04-17 00:22:52 -04:00
</code>
</codeSegment>
</codeSegments>
2004-03-07 20:31:17 -05:00
</class>
2004-09-02 08:34:19 -04:00
<!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
2004-03-07 20:31:17 -05:00
<class>
<name>Branch</name>
2005-02-23 00:13:22 -05:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:33:06 -05:00
This element describes each of the branches of the
2004-04-17 00:22:52 -04:00
project. Each branch is described by a
<code>tag</code>
2004-03-08 16:33:06 -05:00
element
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>tag</name>
2005-02-23 00:13:22 -05:00
<version>3.0.0</version>
2004-09-02 08:34:19 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:33:06 -05:00
The branch tag in the version control system
(e.g. cvs) used by the project for the source
code associated with this branch of the
project.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
<class>
<name>Build</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>nagEmailAddress</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
An address to which notifications regarding the status of builds
for this project can be sent. This is intended for use by tools
which do unattended builds, for example those providing for
continuous integration. Currently this is used by the
<a href="build-file.html#maven:gump-descriptor">maven:gump-descriptor</a>
target.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
2004-03-15 14:05:39 -05:00
<comment>This should be moved out of the build section. Vestigal for use with Gump.</comment>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>sourceDirectory</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element specifies a directory containing the source
of the project. The generated build system will compile
the source in this directory when the project is built.
The path given is relative to the project descriptor.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>unitTestSourceDirectory</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element specifies a directory containing the unit test
source of the project. The generated build system will
compile these directories when the project is being tested.
The unit tests must use the JUnit test framework.
The path given is relative to the project descriptor.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>sourceModifications</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element describes all of the sourceModifications associated with a
project. Each source modification is described by a
<code>sourceModification</code> element, which is then described by
additional elements (described below). These modifications are used
to exclude or include various source depending on the environment
the build is running in.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>SourceModification</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>unitTest</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[This element specifies unit tests associated with the project.]]></description>
2004-03-07 20:31:17 -05:00
<defaultValue>new UnitTest()</defaultValue>
2004-09-26 09:29:06 -04:00
<association>
<type>UnitTest</type>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>resources</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
This element describes all of the resources associated with a project or unit tests.
Each resource is described by a resource element, which is then described by additional
2004-04-17 00:22:52 -04:00
elements (described
<a href="#resource">below</a>). These resources are used to
2004-03-08 16:53:16 -05:00
complete the jar file or to run unit test.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Resource</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
2004-06-11 18:04:26 -04:00
<field>
<name>directory</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-11 18:04:26 -04:00
The directory where all generated by the build is placed.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-11 18:04:26 -04:00
<type>String</type>
</field>
2004-06-14 19:21:23 -04:00
<field>
<name>output</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-14 19:21:23 -04:00
The directory where compiled application classes are placed.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-14 19:21:23 -04:00
<type>String</type>
</field>
2004-09-02 08:34:19 -04:00
<field>
<name>finalName</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-09-02 08:34:19 -04:00
The filename (including an extension, but with no path information) that the produced artifact
will be called. The default value is artifactId-version.extension (where extension is derived from
type).
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-02 08:34:19 -04:00
<type>String</type>
</field>
2004-06-14 19:21:23 -04:00
<field>
<name>testOutput</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-14 19:21:23 -04:00
The directory where compiled test classes are placed.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-14 19:21:23 -04:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
</fields>
</class>
2004-04-29 18:39:05 -04:00
<class>
<name>CiManagement</name>
<version>4.0.0</version>
<fields>
<field>
<name>system</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The name of the continuous integration system i.e. Bugzilla]]></description>
2004-04-29 18:39:05 -04:00
<type>String</type>
</field>
<field>
<name>url</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Url for the continuous integration system use by the project.]]></description>
2004-04-29 18:39:05 -04:00
<type>String</type>
</field>
2004-06-27 03:03:31 -04:00
<field>
<name>nagEmailAddress</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Email address for the party to be notified on unsuccessful builds.]]></description>
2004-06-27 03:03:31 -04:00
<type>String</type>
</field>
2004-04-29 18:39:05 -04:00
</fields>
</class>
2004-03-07 20:31:17 -05:00
<class>
<name>Contributor</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>name</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The full name of the contributor.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>email</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The email address of the contributor.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL for the homepage of the contributor.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>organization</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The organization to which the contributor belongs.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>roles</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
The roles the contributor plays in the project. Each role is
2004-04-17 00:22:52 -04:00
describe by a
<code>role</code> element, the body of which is a
2004-03-08 16:53:16 -05:00
role name.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
2004-03-08 16:53:16 -05:00
<field>
<name>timezone</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
The timezone the contributor is in. This is a number in the range -14 to 14.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-08 16:53:16 -05:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
</fields>
</class>
<class>
<name>Dependency</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
2004-09-19 00:12:46 -04:00
<field>
<name>id</name>
<version>3.0.0</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-09-19 00:12:46 -04:00
The id of the project.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-19 00:12:46 -04:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>groupId</name>
2004-06-06 01:50:24 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-17 00:22:52 -04:00
The project group that produced the dependency, e.g.
<code>geronimo</code>.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>artifactId</name>
2004-06-06 01:50:24 -04:00
<version>3.0.0+</version>
2004-04-16 17:48:24 -04:00
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:10:49 -05:00
The unique id for an artifact produced by the project group, e.g.
<code>germonimo-jms</code>
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>version</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
o Added dependencyDefaults section to POM.
The nested <dependencyDefault> element closely mirrors the <dependency> element specification.
It provides the ability to set url, artifact, properties, version for a dependency that matches on
{groupId, artifactId, type}. Url, artifact, and version will only override the dependency's values if
the dependency doesn't provide the value, and (in the case of url and artifact) the dependency
doesn't provide a version (url and artifact are assumed to be version-specific).
Properties will only be overwritten, and only in the case where the dependency
doesn't specify them.
Dependencies are validated after merging with defaults, since version is not required
on either <dependency> or <dependencyDefault> but is required between the two.
o Added component interface/default impl for injecting project defaults.
o Added unit and integration tests.
git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163323 13f79535-47bb-0310-9956-ffa450edef68
2005-02-01 17:43:03 -05:00
<!-- [ jdcasey:01-Feb-2005 ] No longer required. We'll validate after injecting defaults. -->
<!-- required>true</required -->
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-17 00:22:52 -04:00
The version of the dependency., e.g.
<code>3.2.1</code>
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2005-02-01 21:23:12 -05:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:10:49 -05:00
This url will be provided to the user if the jar file cannot be downloaded
from the central repository.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
2004-03-08 14:09:45 -05:00
<comment>The URL should really be gleaned from a shared database of dependency information.</comment>
2004-03-07 20:31:17 -05:00
</field>
2004-04-16 17:48:24 -04:00
<field>
<name>jar</name>
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Literal name of the artifact.]]></description>
2004-04-16 17:48:24 -04:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>type</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-17 00:22:52 -04:00
Other known recognised dependency types are:
<code>ejb</code> and
<code>plugin</code>.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
<defaultValue>jar</defaultValue>
</field>
<field>
<name>properties</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:10:49 -05:00
Properties about the dependency. Various plugins allow you to
<code>mark</code> dependencies with properties. For example the
<a href="plugins/war/index.html">war</a> plugin looks for a
<code>war.bundle</code> property, and if found will include the dependency
2004-04-17 00:22:52 -04:00
in
<code>WEB-INF/lib</code>. For example syntax, check the war plugin docs.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-26 09:29:06 -04:00
<type>Properties</type>
2004-10-01 08:35:20 -04:00
<association xml.mapStyle="inline">
2004-09-26 09:29:06 -04:00
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
</fields>
2004-04-17 00:22:52 -04:00
<codeSegments>
2004-09-21 06:57:57 -04:00
<codeSegment>
<version>3.0.0+</version>
<code>
public String toString()
{
return groupId + "/" + type + "s:" + artifactId + "-" + version;
}
</code>
</codeSegment>
2004-04-17 00:22:52 -04:00
<codeSegment>
2004-06-06 01:50:24 -04:00
<version>4.0.0</version>
2004-04-17 00:22:52 -04:00
<code>
public String getId()
{
2004-06-29 11:08:22 -04:00
return groupId + ":" + artifactId + ":" + type + ":" + version;
2004-04-17 00:22:52 -04:00
}
2005-02-01 21:23:12 -05:00
public String getManagementKey()
{
return groupId + ":" + artifactId + ":" + type;
}
2004-04-17 00:22:52 -04:00
</code>
</codeSegment>
2004-09-18 21:30:53 -04:00
<codeSegment>
<version>3.0.0</version>
<code><![CDATA[
2004-09-21 09:48:47 -04:00
public String getKey()
{
return getId() + ":" + getType();
}
2004-09-18 21:30:53 -04:00
public String getArtifactDirectory()
{
return getGroupId();
}
public String getArtifact()
{
// If the jar name has been explicty set then use that. This
// is when the <jar/> element is explicity used in the POM.
if ( getJar() != null)
{
return getJar();
}
return getArtifactId() + "-" + getVersion() + "." + getExtension();
}
public String getExtension()
{
if ("ejb".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType())) return "jar";
return getType();
}
public boolean isAddedToClasspath()
{
return ("jar".equals(getType()) || "ejb".equals(getType()));
}
public boolean isPlugin()
{
return ("plugin".equals(getType()));
}
public String getProperty( String property )
{
return getProperties().getProperty( property );
}
2004-09-19 02:12:37 -04:00
public boolean equals( Object o )
{
2004-09-21 06:57:57 -04:00
if ( this == o )
2004-09-19 02:12:37 -04:00
{
2004-09-21 06:57:57 -04:00
return true;
2004-09-19 02:12:37 -04:00
}
2004-09-21 06:57:57 -04:00
if ( !( o instanceof Dependency ) )
2004-09-19 02:12:37 -04:00
{
return false;
}
2004-09-21 06:57:57 -04:00
Dependency d = (Dependency) o;
return getId().equals( d.getId() );
2004-09-19 02:12:37 -04:00
}
public int hashCode()
{
2004-09-21 06:57:57 -04:00
return getId().hashCode();
2004-09-19 02:12:37 -04:00
}
2004-09-18 21:30:53 -04:00
]]></code>
</codeSegment>
2004-04-17 00:22:52 -04:00
</codeSegments>
2004-03-07 20:31:17 -05:00
</class>
<class>
<superClass>Contributor</superClass>
<name>Developer</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>id</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The username of the developer.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
2004-04-15 10:31:27 -04:00
<class>
<name>IssueManagement</name>
<version>4.0.0</version>
<fields>
<field>
<name>system</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The name of the issue management system i.e. Bugzilla]]></description>
2004-04-15 10:31:27 -04:00
<type>String</type>
</field>
<field>
<name>url</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Url for the issue management system use by the project.]]></description>
2004-04-15 10:31:27 -04:00
<type>String</type>
</field>
</fields>
</class>
2004-06-19 14:55:16 -04:00
<class>
2004-06-22 15:25:54 -04:00
<name>DistributionManagement</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-22 15:25:54 -04:00
This elements describes all that pertains to distribution for a project.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-22 15:25:54 -04:00
<fields>
<field>
2004-06-23 14:03:06 -04:00
<name>repository</name>
2004-06-22 15:25:54 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Information needed for deploying to remote repository artifacts generated by the project]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Repository</type>
</association>
2004-06-22 15:25:54 -04:00
</field>
<field>
2004-06-23 14:03:06 -04:00
<name>site</name>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Information needed for deploying website files of the project.]]></description>
2004-06-22 15:25:54 -04:00
<version>4.0.0</version>
2004-09-26 09:29:06 -04:00
<association>
<type>Site</type>
</association>
2004-06-22 15:25:54 -04:00
</field>
</fields>
</class>
<class>
2004-03-07 20:31:17 -05:00
<name>License</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>name</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The full legal name of the license.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The official url for the license text.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>distribution</name>
2004-06-23 14:03:06 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
The primary method by which this project may be distributed.
2004-04-17 00:22:52 -04:00
<dl>
<dt>repo</dt>
<dd>may be downloaded from the Maven repository</dd>
<dt>manual</dt>
<dd>user must manually download and install the dependency.</dd>
</dl>
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>comments</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
<class>
<name>MailingList</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:33:06 -05:00
This element describes all of the mailing lists associated with
a project. Each mailing list is described by a
<code>mailingList</code> element, which is then described by
additional elements (described below). The auto-generated site
documentation references this information.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>name</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The name of the mailing list.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>subscribe</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:28:26 -05:00
The email address or link that can be used to subscribe to the mailing list.
2004-04-17 00:22:52 -04:00
If this is an email address, a
<code>mailto:</code> link will automatically be created when
2004-03-08 16:28:26 -05:00
the documentation is created.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>unsubscribe</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:28:26 -05:00
The email address or link that can be used to unsubscribe to
the mailing list. If this is an email address, a
<code>mailto:</code> link will automatically be created
when the documentation is created.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-09-02 08:34:19 -04:00
<field>
<name>post</name>
2005-02-22 00:26:59 -05:00
<version>3.1.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-09-02 08:34:19 -04:00
The email address or link that can be used to post to
the mailing list. If this is an email address, a
<code>mailto:</code> link will automatically be created
when the documentation is created.
2004-12-17 08:15:30 -05:00
]]></description>
2004-09-02 08:34:19 -04:00
<type>String</type>
</field>
2004-03-07 20:31:17 -05:00
<field>
<name>archive</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The link to a URL where you can browse the archive.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
2004-09-02 08:34:19 -04:00
</field>
<field>
2005-02-22 00:26:59 -05:00
<name>otherArchives</name>
<version>3.1.0+</version>
<description><![CDATA[The link to other URLs where you can browse the archive.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
</fields>
2004-03-15 14:05:39 -05:00
<comment>
We could probably have a specific element for a dev mailing list for
things like CI, and maybe even a specific element for the user and scm
mailing lists. Then leave the more lose structure for any other type
of mailing list.
</comment>
2004-03-07 20:31:17 -05:00
</class>
<class>
<name>Organization</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>name</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The full name of the organization.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL to the organization's home page.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>logo</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:28:26 -05:00
The URL to the organization's logo image. This can be an URL relative
to the base directory of the generated web site,
2004-04-17 00:22:52 -04:00
(e.g.,
<code>/images/org-logo.png</code>) or an absolute URL
(e.g.,
<code>http://my.corp/logo.png</code>). This value is used
2004-03-08 16:28:26 -05:00
when generating the project documentation.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
<class>
<name>PackageGroup</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>title</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>packages</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
<class>
<name>PatternSet</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>includes</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
<field>
<name>excludes</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
</fields>
2004-06-20 10:01:19 -04:00
<codeSegments>
<codeSegment>
<version>3.0.0+</version>
2004-09-02 08:34:19 -04:00
<!-- @todo: should these be built somewhere so they are only created once, and can be modified? -->
2004-06-20 10:01:19 -04:00
<code>
public List getDefaultExcludes()
{
List defaultExcludes = new ArrayList();
defaultExcludes.add( "**/*~" );
defaultExcludes.add( "**/#*#" );
defaultExcludes.add( "**/.#*" );
defaultExcludes.add( "**/%*%" );
defaultExcludes.add( "**/._*" );
// CVS
defaultExcludes.add( "**/CVS" );
defaultExcludes.add( "**/CVS/**" );
defaultExcludes.add( "**/.cvsignore" );
// SCCS
defaultExcludes.add( "**/SCCS" );
defaultExcludes.add( "**/SCCS/**" );
// Visual SourceSafe
defaultExcludes.add( "**/vssver.scc" );
// Subversion
defaultExcludes.add( "**/.svn" );
defaultExcludes.add( "**/.svn/**" );
// Mac
defaultExcludes.add( "**/.DS_Store" );
return defaultExcludes;
}
</code>
</codeSegment>
</codeSegments>
2004-03-07 20:31:17 -05:00
</class>
2004-04-12 10:41:05 -04:00
<class>
<name>Parent</name>
2004-04-16 17:48:24 -04:00
<version>4.0.0</version>
2004-04-12 10:41:05 -04:00
<fields>
<field>
<name>artifactId</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The artifact id of the project to extend.]]></description>
2004-04-12 10:41:05 -04:00
<type>String</type>
</field>
<field>
<name>groupId</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The group id of the project to extend.]]></description>
2004-04-12 10:41:05 -04:00
<type>String</type>
</field>
<field>
<name>version</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The versi>on of the project to extend.]]></description>
2004-04-12 10:41:05 -04:00
<type>String</type>
</field>
</fields>
</class>
2004-04-16 17:48:24 -04:00
<class>
<name>Repository</name>
<version>3.0.0</version>
<fields>
<field>
<name>connection</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-16 17:48:24 -04:00
The source configuration management system URL
that describes the repository and how to connect to the
2004-04-17 00:22:52 -04:00
repository. This is used by Maven when
<a
href="plugins/dist/index.html">building versions</a>
2004-04-16 17:48:24 -04:00
from specific ID.
2004-12-17 08:15:30 -05:00
]]></description>
2004-04-16 17:48:24 -04:00
<type>String</type>
</field>
<field>
<name>developerConnection</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-16 17:48:24 -04:00
Just like connection, but for developers, i.e. this scm connection
will not be read only.
2004-12-17 08:15:30 -05:00
]]></description>
2004-04-16 17:48:24 -04:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL to the project's browsable CVS repository.]]></description>
2004-04-16 17:48:24 -04:00
<type>String</type>
</field>
</fields>
</class>
2004-03-07 20:31:17 -05:00
<class>
2004-04-12 23:19:09 -04:00
<name>Scm</name>
2004-04-16 17:48:24 -04:00
<version>4.0.0</version>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>connection</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:06:29 -05:00
The source configuration management system URL
that describes the repository and how to connect to the
2004-04-17 00:22:52 -04:00
repository. This is used by Maven when
<a
href="plugins/dist/index.html">building versions</a>
2004-03-08 17:06:29 -05:00
from specific ID.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>developerConnection</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 17:06:29 -05:00
Just like connection, but for developers, i.e. this scm connection
will not be read only.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>url</name>
2004-04-17 00:22:52 -04:00
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The URL to the project's browsable CVS repository.]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2004-09-02 08:34:19 -04:00
<field>
<name>branches</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The SCM branches that are currently active for the project. These should only be those forked from the current branch or trunk that are intended to be used.]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>String</type>
<multiplicity>*</multiplicity>
</association>
2004-09-02 08:34:19 -04:00
</field>
2004-03-07 20:31:17 -05:00
</fields>
</class>
<class>
2005-02-23 00:55:52 -05:00
<name>FileSet</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<superClass>PatternSet</superClass>
<fields>
<field>
<name>directory</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
Describe the directory where the resource is stored.
The path may be absolute, or relative to the project.xml file.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
2005-02-23 00:55:52 -05:00
</fields>
</class>
<class>
<name>Resource</name>
<version>3.0.0+</version>
<superClass>FileSet</superClass>
<fields>
2004-03-07 20:31:17 -05:00
<field>
<name>targetPath</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:53:16 -05:00
Describe the resource target path. For example, if you want that resource
2004-04-17 00:22:52 -04:00
appear into a specific package (
<code>org.apache.maven.messages</code>), you must specify this
element with this value :
<code>org/apache/maven/messages</code>
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>filtering</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[Describe if resources are filtered or not.]]></description>
2004-09-26 09:29:06 -04:00
<type>boolean</type>
2004-03-10 15:46:31 -05:00
<defaultValue>false</defaultValue>
2004-03-07 20:31:17 -05:00
</field>
</fields>
</class>
<class>
<name>SourceModification</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2005-02-23 00:55:52 -05:00
<superClass>FileSet</superClass>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>className</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-04-17 00:22:52 -04:00
If the class with this name can
<strong>not</strong> be
2004-03-08 16:53:16 -05:00
loaded, then the includes and excludes specified below
will be applied to the contents of the
<a href="#sourceDirectory">sourceDirectory</a>
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>property</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
</class>
<class>
<name>UnitTest</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0+</version>
2004-03-07 20:31:17 -05:00
<superClass>PatternSet</superClass>
<fields>
<field>
<name>resources</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0+</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[the description]]></description>
2004-09-26 09:29:06 -04:00
<association>
<type>Resource</type>
<multiplicity>*</multiplicity>
</association>
2004-03-07 20:31:17 -05:00
</field>
</fields>
</class>
<class>
<name>Version</name>
2004-04-16 17:48:24 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:33:06 -05:00
This element describes each of the previous versions of the
2004-04-17 00:22:52 -04:00
project. Each version is described by a
<code>version</code>
2004-03-08 16:33:06 -05:00
element
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<fields>
<field>
<name>name</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:22:40 -05:00
The external version number under which this release was distributed. Examples include:
2004-04-17 00:22:52 -04:00
<code>1.0</code>,
<code>1.1-alpha1</code>,
<code>1.2-beta</code>,
<code>1.3.2</code> etc.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>tag</name>
2004-04-17 00:22:52 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:22:40 -05:00
The name given in the version control system (e.g. cvs) used by the project for the source
code associated with this version of the project.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
<field>
<name>id</name>
2004-04-17 11:13:31 -04:00
<version>3.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-03-08 16:22:40 -05:00
A unique identifier for a version. This ID is
2004-04-17 00:22:52 -04:00
used to specify the version that
<a href="plugins/dist/index.html">
<code>maven:dist</code>
</a> builds.
2004-12-17 08:15:30 -05:00
]]></description>
2004-03-07 20:31:17 -05:00
<type>String</type>
</field>
</fields>
2005-02-02 04:00:54 -05:00
<codeSegments>
<codeSegment>
<version>3.0.0</version>
<code>
public String toString()
{
return getId();
}
</code>
</codeSegment>
</codeSegments>
2004-03-07 20:31:17 -05:00
</class>
2004-06-07 14:16:53 -04:00
<class>
<name>Repository</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-07 14:16:53 -04:00
Repository contains the information needed
for establishing connections with remote repoistory
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-07 14:16:53 -04:00
<fields>
<field>
<name>id</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-07 14:16:53 -04:00
A unique identifier for a repository.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-07 14:16:53 -04:00
<type>String</type>
</field>
<field>
<name>name</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-07 14:16:53 -04:00
Human readable name of the repository
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-07 14:16:53 -04:00
<type>String</type>
</field>
<field>
<name>url</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-07 14:16:53 -04:00
The url of of the repository
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-07 14:16:53 -04:00
<type>String</type>
</field>
2005-02-03 06:39:27 -05:00
<field>
<name>username</name>
<version>4.0.0</version>
<description>The username to connect to the repository with. If omitted, none is used.</description>
<type>String</type>
</field>
<!-- @todo this should be encrypted in some way or be a keystore lookup and m2 can provide a way to generate it -->
<field>
<name>password</name>
<version>4.0.0</version>
<description>The password to use when connecting to the repository. If omitted, none is used.</description>
<type>String</type>
</field>
2004-06-07 14:16:53 -04:00
</fields>
<codeSegments>
<codeSegment>
<version>4.0.0</version>
<code>
public boolean equals( Object obj )
{
Repository other = ( Repository ) obj;
boolean retValue = false;
if ( id != null )
{
retValue = id.equals( other.id );
}
return retValue;
}
</code>
</codeSegment>
</codeSegments>
</class>
2004-06-23 14:03:06 -04:00
<!--@todo find better solution for managment of site deployments -->
<class>
<name>Site</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-23 14:03:06 -04:00
Site contains the information needed
for deploying websites.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-23 14:03:06 -04:00
<fields>
<field>
<name>id</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-23 14:03:06 -04:00
A unique identifier for a deployment locataion.
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-23 14:03:06 -04:00
<type>String</type>
</field>
<field>
<name>name</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-23 14:03:06 -04:00
Human readable name of the deployment location
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-23 14:03:06 -04:00
<type>String</type>
</field>
<field>
<name>url</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-06-23 14:03:06 -04:00
The url of of the location where website is deployed
2004-12-17 08:15:30 -05:00
]]></description>
2004-06-23 14:03:06 -04:00
<type>String</type>
</field>
</fields>
</class>
2004-08-25 21:18:19 -04:00
<class>
<name>GoalDecorator</name>
2004-09-17 17:42:40 -04:00
<version>4.0.0</version>
2004-08-25 21:18:19 -04:00
<fields>
<field>
<name>name</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The target goal which should be decorated.]]></description>
2004-08-25 21:18:19 -04:00
<type>String</type>
</field>
<field>
<name>attain</name>
<version>4.0.0</version>
2004-12-17 08:15:30 -05:00
<description><![CDATA[
2004-08-25 21:18:19 -04:00
The goal which should be injected into the execution chain.
2004-12-17 08:15:30 -05:00
]]></description>
2004-08-25 21:18:19 -04:00
<type>String</type>
</field>
</fields>
</class>
<class>
<superClass>GoalDecorator</superClass>
<name>PreGoal</name>
<version>4.0.0</version>
<fields></fields>
</class>
<class>
<superClass>GoalDecorator</superClass>
<name>PostGoal</name>
<version>4.0.0</version>
<fields></fields>
</class>
2004-06-23 14:03:06 -04:00
2004-10-01 10:36:23 -04:00
<!--
2004-10-01 12:39:52 -04:00
A sketch of what a plugin configuration might look like where
we have plugin wide parameters that apply to all goals/mojos
and goal/mojo specific parameters that will override any
of the plugin wide definitions.
At first the configuration element will be a flat set of properties
but i would like the configuration to actually be an arbiitrary
data model or a simple DOM like structure so that mojos can
be arbitrarily configured in the same fashion plexus plugins
are configured.
2004-10-01 10:36:23 -04:00
<plugins>
<plugin>
<id>plexus</id>
<configuration>
2004-10-01 12:39:52 -04:00
<key>value</key>
2004-10-01 10:36:23 -04:00
</configuration>
2004-10-01 12:39:52 -04:00
<goals>
<goal>
<id></id>
<configuration>
<key>value</key>
</configuration>
</goal>
</goals>
2004-10-01 10:36:23 -04:00
</plugin>
</plugins>
-->
<class>
<name>Plugin</name>
<version>4.0.0</version>
<fields>
<field>
<name>id</name>
<version>4.0.0</version>
<type>String</type>
<required>true</required>
</field>
<field>
<name>version</name>
<version>4.0.0</version>
<required>true</required>
2004-12-17 08:15:30 -05:00
<description><![CDATA[The version of the plugin to be used.]]></description>
2004-10-01 10:36:23 -04:00
<type>String</type>
</field>
<field>
<name>configuration</name>
<type>Properties</type>
<association xml.mapStyle="inline">
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
2004-10-03 15:25:15 -04:00
<field>
<name>goals</name>
<version>4.0.0</version>
<association>
<type>Goal</type>
<multiplicity>*</multiplicity>
</association>
</field>
</fields>
</class>
<class>
<name>Goal</name>
<version>4.0.0</version>
<fields>
<field>
<name>id</name>
<version>4.0.0</version>
<type>String</type>
</field>
<field>
<name>configuration</name>
<type>Properties</type>
<association xml.mapStyle="inline">
<type>String</type>
<multiplicity>*</multiplicity>
</association>
</field>
2004-10-01 10:36:23 -04:00
</fields>
</class>
2004-09-02 08:34:19 -04:00
<class>
2005-02-22 23:12:09 -05:00
<name>DependencyManagement</name>
2004-09-02 08:34:19 -04:00
<version>4.0.0</version>
2005-02-22 23:12:09 -05:00
<description>
Section for management of default dependency information for use in a group of POMs.
</description>
2004-09-02 08:34:19 -04:00
<fields>
<field>
2005-02-22 23:12:09 -05:00
<name>dependencies</name>
2004-09-02 08:34:19 -04:00
<version>4.0.0</version>
2005-02-22 23:12:09 -05:00
<description>
The dependencies specified here are not validated until they
are referenced in a POM within the group. This allows the
specification of a "standard" version for a particular
dependency.
</description>
<association>
<type>Dependency</type>
<multiplicity>*</multiplicity>
</association>
2004-09-02 08:34:19 -04:00
</field>
</fields>
</class>
2004-03-07 20:31:17 -05:00
</classes>
</model>
2004-09-02 08:34:19 -04:00