diff options
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo')
-rw-r--r-- | framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo | 3649 |
1 files changed, 0 insertions, 3649 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo b/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo deleted file mode 100644 index 2821ea62..00000000 --- a/framework/src/maven/apache-maven-3.3.3/maven-model/src/main/mdo/maven.mdo +++ /dev/null @@ -1,3649 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you 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.apache.org/licenses/LICENSE-2.0 - - 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. ---> - -<!-- - | Improvements: - | - | 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. (see MNG-3626) - | - | o annotation mechanism so that changes to the model can be accurately tracked. - | - | o need to clean up all the descriptions, matching anything to the current project-descriptor.xml file and - | improving on that - | - | o use enums where appropriate (eg dependency scope) - | - | o a number of elements have a groupId/artifactId and sometimes version. It would be good to have them all extend one - | definition of these types - | ---> -<model xmlns="http://modello.codehaus.org/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.4.0 http://modello.codehaus.org/xsd/modello-1.4.0.xsd" - xml.namespace="http://maven.apache.org/POM/${version}" - xml.schemaLocation="http://maven.apache.org/xsd/maven-${version}.xsd"> - <id>maven</id> - <name>Maven</name> - <description> - <![CDATA[ - <p>This is a reference for the Maven project descriptor used in Maven.</p> - <p>An XSD is available at:</p> - <ul> - <li><a href="http://maven.apache.org/xsd/maven-v3_0_0.xsd">http://maven.apache.org/xsd/maven-v3_0_0.xsd</a> for Maven 1.1.</li> - <li><a href="http://maven.apache.org/xsd/maven-4.0.0.xsd">http://maven.apache.org/xsd/maven-4.0.0.xsd</a> for Maven 2.0.</li> - </ul> - ]]> - </description> - <defaults> - <default> - <key>package</key> - <value>org.apache.maven.model</value> - </default> - </defaults> - <classes> - <class rootElement="true" xml.tagName="project" java.clone.hook="cloneHook"> - <name>Model</name> - <superClass>ModelBase</superClass> - <description> - <![CDATA[ - The <code><project></code> element is the root of the descriptor. - The following table lists all of the possible child elements. - ]]> - </description> - <version>3.0.0+</version> - <fields> - - <!-- ====================================================================== --> - <!-- Model Version --> - <!-- ====================================================================== --> - - <field> - <name>pomVersion</name> - <version>3.0.0</version> - <required>true</required> - <type>String</type> - <description> - <![CDATA[ - Declares to which version of project descriptor this POM conforms. - The only valid value is <code>3</code>. - ]]> - </description> - </field> - <field> - <name>modelVersion</name> - <version>4.0.0+</version> - <required>true</required> - <description>Declares to which version of project descriptor this POM conforms.</description> - <type>String</type> - </field> - - <!-- ====================================================================== --> - <!-- Parent Model --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>extend</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The location of the parent project, if one exists. Values from the - parent project will be the default for this project if they are - left unspecified. The path may be absolute, or relative to the - current <code>project.xml</code> file. For example, - <code><extend>${basedir}/../project.xml</extend></code>. - ]]> - </description> - <type>String</type> - </field> - <field xdoc.separator="blank"> - <name>parent</name> - <version>4.0.0+</version> - <description>The location of the parent project, if one exists. Values from the parent - project will be the default for this project if they are left unspecified. The location - is given as a group ID, artifact ID and version.</description> - <association> - <type>Parent</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- groupId/artifactId/Version/Packaging --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>groupId</name> - <version>3.0.0+</version> - <required>true</required> - <description> - <![CDATA[ - A universally unique identifier for a project. It is normal to - use a fully-qualified package name to distinguish it from other - projects with a similar name (eg. <code>org.apache.maven</code>). - ]]> - </description> - <type>String</type> - </field> - <field> - <name>artifactId</name> - <version>3.0.0+</version> - <required>true</required> - <description>The identifier for this artifact that is unique within the group given by the - group ID. An artifact is something that is either produced or used by a project. - Examples of artifacts produced by Maven for a project include: JARs, source and binary - distributions, and WARs.</description> - <type>String</type> - </field> - <field> - <name>id</name> - <version>3.0.0</version> - <required>true</required> - <description> - <![CDATA[ - <b>Deprecated</b>. When used, this sets both the <code>groupId</code> - and <code>artifactId</code> elements if they were previously empty. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>currentVersion</name> - <description>The current version of the artifact produced by this project.</description> - <version>3.0.0</version> - <required>true</required> - <type>String</type> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <required>true</required> - <description>The current version of the artifact produced by this project.</description> - <type>String</type> - </field> - <field> - <name>versions</name> - <version>3.0.0</version> - <description>Contains information on previous versions of the project.</description> - <association> - <type>Version</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>packaging</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The type of artifact this project produces, for example <code>jar</code> - <code>war</code> - <code>ear</code> - <code>pom</code>. - Plugins can create their own packaging, and - therefore their own packaging types, - so this list does not contain all possible types. - ]]> - </description> - <type>String</type> - <defaultValue>jar</defaultValue> - </field> - - <!-- ====================================================================== --> - <!-- Elements which describe a project --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>name</name> - <version>3.0.0+</version> - <required>true</required> - <description>The full name of the project.</description> - <type>String</type> - </field> - <field> - <name>shortDescription</name> - <version>3.0.0</version> - <description>A short description of the project. The short description should be limited - to a single line.</description> - <type>String</type> - </field> - <field> - <name>description</name> - <version>3.0.0+</version> - <description>A detailed description of the project, used by Maven whenever it needs to - describe the project, such as on the web site. While this element can be specified as - CDATA to enable the use of HTML tags within the description, it is discouraged to allow - plain text representation. If you need to modify the index page of the generated web - site, you are able to specify your own instead of adjusting this text.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The URL to the project's homepage. - <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId - ]]> - </description> - <type>String</type> - </field> - <field> - <name>siteAddress</name> - <version>3.0.0</version> - <description>The hostname of the web server that hosts the project's web site. This is - used when the web site is deployed.</description> - <type>String</type> - </field> - <field> - <name>siteDirectory</name> - <version>3.0.0</version> - <description>The directory on the web server where the public web site for this project - resides. This is used when the web site is deployed.</description> - <type>String</type> - </field> - <field> - <name>inceptionYear</name> - <version>3.0.0+</version> - <required>true</required> - <description>The year of the project's inception, specified with 4 digits. This value is - used when generating copyright notices as well as being informational.</description> - <type>String</type> - </field> - <field> - <name>logo</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The URL of the project's logo image. This can be an URL relative - to the base directory of the generated web site, - (e.g., <code>/images/project-logo.png</code>) or an absolute URL - (e.g., <code>http://my.corp/project-logo.png</code>). This is used - when generating the project documentation. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>organization</name> - <version>3.0.0+</version> - <description>This element describes various attributes of the organization to which the - project belongs. These attributes are utilized when documentation is created (for - copyright notices and links).</description> - <alias>organisation</alias> - <association> - <type>Organization</type> - </association> - </field> - <field> - <name>licenses</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - This element describes all of the licenses for this project. - Each license is described by a <code>license</code> element, which - is then described by additional elements. - Projects should only list the license(s) that applies to the project - and not the licenses that apply to dependencies. - If multiple licenses are listed, it is assumed that the user can select - any of them, not that they must accept all. - ]]> - </description> - <association> - <type>License</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>developers</name> - <version>3.0.0+</version> - <description>Describes the committers of a project.</description> - <association> - <type>Developer</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>contributors</name> - <version>3.0.0+</version> - <description>Describes the contributors to a project that are not yet committers.</description> - <association> - <type>Contributor</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>mailingLists</name> - <version>3.0.0+</version> - <description>Contains information about a project's mailing lists.</description> - <association> - <type>MailingList</type> - <multiplicity>*</multiplicity> - </association> - </field> - - <!-- ====================================================================== --> - <!-- Build prerequisites --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>prerequisites</name> - <version>4.0.0+</version> - <description>Describes the prerequisites in the build environment for this project.</description> - <association> - <type>Prerequisites</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- SCM --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>branches</name> - <version>3.0.0</version> - <description> - <![CDATA[ - Contains information on SCM branches of the project. - ]]> - </description> - <association> - <type>Branch</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>repository</name> - <version>3.0.0</version> - <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> - <association> - <type>Repository</type> - </association> - </field> - <field xdoc.separator="blank" xml.insertParentFieldsUpTo="modules"> - <name>scm</name> - <version>4.0.0+</version> - <description>Specification for the SCM used by the project, such as CVS, Subversion, etc.</description> - <association> - <type>Scm</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- Issue Tracking --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank"> - <name>issueTrackingUrl</name> - <version>3.0.0</version> - <description>The URL of the project's issue tracking system.</description> - <type>String</type> - </field> - <field> - <name>issueManagement</name> - <version>4.0.0+</version> - <description>The project's issue management system information.</description> - <association> - <type>IssueManagement</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- CI Management --> - <!-- ====================================================================== --> - - <field> - <name>gumpRepositoryId</name> - <version>3.0.0</version> - <description>This is the repository identifier in Gump that this project is part of.</description> - <type>String</type> - </field> - <field> - <name>ciManagement</name> - <version>4.0.0+</version> - <description>The project's continuous integration information.</description> - <association> - <type>CiManagement</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- Distribution Management --> - <!-- ====================================================================== --> - - <field> - <name>distributionSite</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The server where the final distributions will be published. This is used when the - distributions are deployed. If this isn't defined, the central repository is used instead as - determined by <code>maven.repo.central</code> and <code>maven.repo.central.directory</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>distributionDirectory</name> - <version>3.0.0</version> - <description>The directory on the web server where the final distributions will be - published. This is used when the distributions are deployed.</description> - <type>String</type> - </field> - - <!-- ====================================================================== --> - <!-- Specific version 3 --> - <!-- ====================================================================== --> - - <field> - <name>packageGroups</name> - <version>3.0.0</version> - <description>Package groups required for complete javadocs.</description> - <association> - <type>PackageGroup</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>reports</name> - <version>3.0.0</version> - <description> - <![CDATA[ - This element includes the specification of reports to be - included in a Maven-generated site. These reports will be run - when a user executes <code>maven site</code>. All of the - reports will be included in the navigation bar for browsing in - the order they are specified. - ]]> - </description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>properties</name> - <version>3.0.0</version> - <description> - <![CDATA[ - Project properties that will be used by various plugins. - The format is <code><name>value</name></code>. - ]]> - </description> - <type>Properties</type> - <association xml.mapStyle="inline"> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xml.tagName="package"> - <name>packageName</name> - <version>3.0.0</version> - <type>String</type> - <description>The Java package name of the project. This value is used when generating - JavaDoc.</description> - </field> - - <!-- ====================================================================== --> - <!-- Build --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank" xml.insertParentFieldsUpTo="pluginRepositories"> - <name>build</name> - <version>3.0.0+</version> - <required>true</required> - <description>Information required to build the project.</description> - <association> - <type>Build</type> - </association> - </field> - - <!-- ====================================================================== --> - <!-- Profiles --> - <!-- ====================================================================== --> - - <field xdoc.separator="blank" xml.insertParentFieldsUpTo="reporting"> - <name>profiles</name> - <version>4.0.0+</version> - <description>A listing of project-local build profiles which will modify the build process - when activated.</description> - <association> - <type>Profile</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>3.0.0</version> - <code> - <![CDATA[ - public void setVersion(String version) - { - this.currentVersion = version; - } - - public String getVersion() - { - return currentVersion; - } - - /* We need this because we can't use package as a field name.*/ - public void setPackage(String packageName) - { - this.packageName = packageName; - } - - public String getPackage() - { - return packageName; - } - ]]> - </code> - </codeSegment> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - private void cloneHook( Model copy ) - { - copy.pomFile = pomFile; - } - - /** - * The POM from which this model originated. This is transient runtime state and therefore not managed by Modello. - */ - private java.io.File pomFile; - - /** - * Gets the POM file for the corresponding project (if any). - * - * @return The POM file from which this model originated or {@code null} if this model does not belong to a local - * project (e.g. describes the metadata of some artifact from the repository). - */ - public java.io.File getPomFile() - { - return pomFile; - } - - public void setPomFile( java.io.File pomFile ) - { - this.pomFile = ( pomFile != null ) ? pomFile.getAbsoluteFile() : null; - } - - /** - * Gets the base directory for the corresponding project (if any). - * - * @return The base directory for the corresponding project or {@code null} if this model does not belong to a local - * project (e.g. describes the metadata of some artifact from the repository). - */ - public java.io.File getProjectDirectory() - { - return ( pomFile != null ) ? pomFile.getParentFile() : null; - } - - /** - * @return the model id as <code>groupId:artifactId:packaging:version</code> - */ - public String getId() - { - StringBuilder id = new StringBuilder( 64 ); - - id.append( ( getGroupId() == null ) ? "[inherited]" : getGroupId() ); - id.append( ":" ); - id.append( getArtifactId() ); - id.append( ":" ); - id.append( getPackaging() ); - id.append( ":" ); - id.append( ( getVersion() == null ) ? "[inherited]" : getVersion() ); - - return id.toString(); - } - - @Override - public String toString() - { - return getId(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>ModelBase</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - Base class for the <code>Model</code> and the <code>Profile</code> objects. - ]]> - </description> - <fields> - <field xdoc.separator="blank"> - <name>modules</name> - <version>4.0.0+</version> - <description>The modules (sometimes called subprojects) to build as a part of this - project. Each module listed is a relative path to the directory containing the module. - To be consistent with the way default urls are calculated from parent, it is recommended - to have module names match artifact ids.</description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>distributionManagement</name> - <version>4.0.0+</version> - <description>Distribution information for a project that enables deployment of the site - and artifacts to remote web servers and repositories respectively.</description> - <association> - <type>DistributionManagement</type> - </association> - </field> - <field xdoc.separator="blank"> - <name>properties</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Properties that can be used throughout the POM as a substitution, and - are used as filters in resources if enabled. - The format is <code><name>value</name></code>. - ]]> - </description> - <type>Properties</type> - <association xml.mapStyle="inline"> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>dependencyManagement</name> - <version>4.0.0+</version> - <required>false</required> - <description>Default dependency information for projects that inherit from this one. The - dependencies in this section are not immediately resolved. Instead, when a POM derived - from this one declares a dependency described by a matching groupId and artifactId, the - version and other values from this section are used for that dependency if they were not - already specified.</description> - <association> - <type>DependencyManagement</type> - </association> - </field> - <field> - <name>dependencies</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - This element describes all of the dependencies associated with a - project. - These dependencies are used to construct a classpath for your - project during the build process. They are automatically downloaded from the - repositories defined in this project. - See <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the - dependency mechanism</a> for more information. - ]]> - </description> - <association> - <type>Dependency</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>repositories</name> - <version>4.0.0+</version> - <description>The lists of the remote repositories for discovering dependencies and - extensions.</description> - <association> - <type>Repository</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>pluginRepositories</name> - <version>4.0.0+</version> - <description>The lists of the remote repositories for discovering plugins for builds and - reports.</description> - <association> - <type>Repository</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field xdoc.separator="blank"> - <name>reports</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - <b>Deprecated</b>. Now ignored by Maven. - ]]> - </description> - <type>DOM</type> - </field> - <field> - <name>reporting</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - This element includes the specification of report plugins to use - to generate the reports on the Maven-generated site. - These reports will be run when a user executes <code>mvn site</code>. - All of the reports will be included in the navigation bar for browsing. - ]]> - </description> - <association> - <type>Reporting</type> - </association> - </field> - </fields> - </class> - <class> - <name>Branch</name> - <version>3.0.0</version> - <description>Contains information on the SCM branches of the project.</description> - <fields> - <field> - <name>tag</name> - <version>3.0.0</version> - <required>true</required> - <description>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.</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>PluginContainer</name> - <version>3.0.0+</version> - <description>Contains the plugins informations for the project.</description> - <fields> - <field> - <name>plugins</name> - <version>4.0.0+</version> - <description>The list of plugins to use.</description> - <association> - <type>Plugin</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - java.util.Map<String, Plugin> pluginMap; - - /** - * Reset the <code>pluginsMap</code> field to <code>null</code> - */ - public synchronized void flushPluginMap() - { - this.pluginMap = null; - } - - /** - * @return a Map of plugins field with <code>Plugins#getKey()</code> as key - * @see org.apache.maven.model.Plugin#getKey() - */ - public synchronized java.util.Map<String, Plugin> getPluginsAsMap() - { - if ( pluginMap == null ) - { - pluginMap = new java.util.LinkedHashMap<String, Plugin>(); - if ( plugins != null ) - { - for ( java.util.Iterator<Plugin> it = plugins.iterator(); it.hasNext(); ) - { - Plugin plugin = (Plugin) it.next(); - pluginMap.put( plugin.getKey(), plugin ); - } - } - } - - return pluginMap; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <name>PluginConfiguration</name> - <version>3.0.0+</version> - <superClass>PluginContainer</superClass> - <description>Contains the plugins management informations for the project.</description> - <fields> - <!-- [ jdcasey:06-Mar-2005 ] Added to handle version management, etc. for - | plugins to be used in sub-projects. --> - <field> - <name>pluginManagement</name> - <version>4.0.0+</version> - <required>false</required> - <description>Default plugin information to be made available for reference by projects - derived from this one. This plugin configuration will not be resolved or bound to the - lifecycle unless referenced. Any local configuration for a given plugin will override - the plugin's entire definition here.</description> - <association> - <type>PluginManagement</type> - </association> - </field> - </fields> - </class> - <class> - <name>BuildBase</name> - <version>3.0.0+</version> - <superClass>PluginConfiguration</superClass> - <description>Generic informations for a build.</description> - <fields> - <field> - <name>defaultGoal</name> - <version>3.0.0+</version> - <description>The default goal (or phase in Maven 2) to execute when none is specified for - the project. Note that in case of a multi-module build, only the default goal of the top-level - project is relevant, i.e. the default goals of child modules are ignored. Since Maven 3, - multiple goals/phases can be separated by whitespace.</description> - <type>String</type> - </field> - <field> - <name>resources</name> - <version>3.0.0+</version> - <description>This element describes all of the classpath resources such as properties - files associated with a project. These resources are often included in the final - package.</description> - <association> - <type>Resource</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>testResources</name> - <version>4.0.0+</version> - <description>This element describes all of the classpath resources such as properties - files associated with a project's unit tests.</description> - <association> - <type>Resource</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>directory</name> - <version>4.0.0+</version> - <description>The directory where all files generated by the build are placed.</description> - <type>String</type> - </field> - <field> - <name>finalName</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The filename (excluding the extension, and with no path information) that - the produced artifact will be called. - The default value is <code>${artifactId}-${version}</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>filters</name> - <version>4.0.0+</version> - <description>The list of filter properties files that are used when filtering is enabled.</description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - </class> - <class> - <name>Build</name> - <version>3.0.0+</version> - <superClass>BuildBase</superClass> - <description> - <![CDATA[ - The <code><build></code> element contains informations required to build the project. - ]]> - </description> - <fields> - <field> - <name>nagEmailAddress</name> - <version>3.0.0</version> - <description>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.</description> - <type>String</type> - </field> - <field> - <name>sourceDirectory</name> - <version>3.0.0+</version> - <required>true</required> - <description>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.</description> - <type>String</type> - </field> - <field> - <name>scriptSourceDirectory</name> - <version>4.0.0+</version> - <required>true</required> - <description>This element specifies a directory containing the script sources of the - project. This directory is meant to be different from the sourceDirectory, in that its - contents will be copied to the output directory in most cases (since scripts are - interpreted rather than compiled).</description> - <type>String</type> - </field> - <field> - <name>unitTestSourceDirectory</name> - <version>3.0.0</version> - <required>true</required> - <description>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 path given is relative to the project descriptor.</description> - <type>String</type> - </field> - <field> - <name>testSourceDirectory</name> - <version>4.0.0+</version> - <required>true</required> - <description>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 path given is relative to the project descriptor.</description> - <type>String</type> - </field> - <field> - <name>aspectSourceDirectory</name> - <version>3.0.0</version> - <description>This element specifies a directory containing Aspect sources of the project. - The generated build system will compile the Aspects in this directory when the project - is built if Aspects have been enabled. The path given is relative to the project - descriptor.</description> - <type>String</type> - </field> - <field> - <name>integrationUnitTestSourceDirectory</name> - <version>3.0.0</version> - <description> - <![CDATA[ - This element is <b>deprecated</b> and should no longer be used. - Initially it was used by the first Cactus plugin. Now - the location of the Cactus test sources is defined - through a plugin property. See the Cactus plugin - <a href="http://jakarta.apache.org/cactus/integration/maven/properties.html">properties</a> - page. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>sourceModifications</name> - <version>3.0.0</version> - <required>true</required> - <description>This element describes all of the sourceModifications associated with a - project. These modifications are used to exclude or include various source depending on - the environment the build is running in.</description> - <association> - <type>SourceModification</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>unitTest</name> - <version>3.0.0</version> - <required>true</required> - <description>This element specifies unit tests associated with the project.</description> - <defaultValue>new UnitTest()</defaultValue> - <association> - <type>UnitTest</type> - </association> - </field> - <field> - <name>outputDirectory</name> - <version>4.0.0+</version> - <description>The directory where compiled application classes are placed.</description> - <type>String</type> - </field> - <field> - <name>testOutputDirectory</name> - <version>4.0.0+</version> - <description>The directory where compiled test classes are placed.</description> - <type>String</type> - </field> - <field> - <name>extensions</name> - <version>4.0.0+</version> - <description>A set of build extensions to use from this project.</description> - <association> - <type>Extension</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>CiManagement</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The <code><CiManagement></code> element contains informations required to the - continuous integration system of the project. - ]]> - </description> - <fields> - <field> - <name>system</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The name of the continuous integration system, e.g. <code>continuum</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>4.0.0+</version> - <description>URL for the continuous integration system used by the project if it has a web - interface.</description> - <type>String</type> - </field> - <field> - <name>notifiers</name> - <version>4.0.0+</version> - <description>Configuration for notifying developers/users when a build is unsuccessful, - including user information and notification mode.</description> - <association> - <multiplicity>*</multiplicity> - <type>Notifier</type> - </association> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Notifier</name> - <description>Configures one method for notifying users/developers when a build breaks.</description> - <version>4.0.0+</version> - <fields> - <field> - <name>type</name> - <version>4.0.0+</version> - <defaultValue>mail</defaultValue> - <type>String</type> - <description>The mechanism used to deliver notifications.</description> - </field> - <field> - <name>sendOnError</name> - <version>4.0.0+</version> - <defaultValue>true</defaultValue> - <type>boolean</type> - <description>Whether to send notifications on error.</description> - </field> - <field> - <name>sendOnFailure</name> - <version>4.0.0+</version> - <defaultValue>true</defaultValue> - <type>boolean</type> - <description>Whether to send notifications on failure.</description> - </field> - <field> - <name>sendOnSuccess</name> - <version>4.0.0+</version> - <defaultValue>true</defaultValue> - <type>boolean</type> - <description>Whether to send notifications on success.</description> - </field> - <field> - <name>sendOnWarning</name> - <version>4.0.0+</version> - <defaultValue>true</defaultValue> - <type>boolean</type> - <description>Whether to send notifications on warning.</description> - </field> - <!-- TODO: Remove it after continuum alpha-3 release --> - <field> - <name>address</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - <b>Deprecated</b>. Where to send the notification to - eg email address. - ]]> - </description> - </field> - <field> - <name>configuration</name> - <description>Extended configuration specific to this notifier goes here.</description> - <type>Properties</type> - <association xml.mapStyle="inline"> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Contributor</name> - <description>Description of a person who has contributed to the project, but who does not have - commit privileges. Usually, these contributions come in the form of patches submitted.</description> - <version>3.0.0+</version> - <fields> - <field> - <name>name</name> - <version>3.0.0+</version> - <description>The full name of the contributor.</description> - <type>String</type> - </field> - <field> - <name>email</name> - <version>3.0.0+</version> - <description>The email address of the contributor.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0+</version> - <description>The URL for the homepage of the contributor.</description> - <type>String</type> - </field> - <!-- TODO: should this just be a single Organization element --> - <field> - <name>organization</name> - <alias>organisation</alias> - <version>3.0.0+</version> - <description>The organization to which the contributor belongs.</description> - <type>String</type> - </field> - <field> - <name>organizationUrl</name> - <alias>organisationUrl</alias> - <version>3.0.0+</version> - <description>The URL of the organization.</description> - <type>String</type> - </field> - <field> - <name>roles</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The roles the contributor plays in the project. Each role is described by a - <code>role</code> element, the body of which is a role name. This can also be used to - describe the contribution. - ]]> - </description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>timezone</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The timezone the contributor is in. Typically, this is a number in the range - <a href="http://en.wikipedia.org/wiki/UTC%E2%88%9212:00">-12</a> to <a href="http://en.wikipedia.org/wiki/UTC%2B14:00">+14</a> - or a valid time zone id like "America/Montreal" (UTC-05:00) or "Europe/Paris" (UTC+01:00). - ]]> - </description> - <type>String</type> - </field> - <field> - <name>properties</name> - <version>3.0.0+</version> - <description>Properties about the contributor, such as an instant messenger handle.</description> - <type>Properties</type> - <association xml.mapStyle="inline"> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Dependency</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The <code><dependency></code> element contains information about a dependency - of the project. - ]]> - </description> - <fields> - <field> - <name>id</name> - <version>3.0.0</version> - <required>true</required> - <description> - <![CDATA[ - <b>Deprecated</b>. Please use <code>groupId</code> and - <code>artifactId</code> together instead. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>groupId</name> - <version>3.0.0+</version> - <required>true</required> - <description> - <![CDATA[ - The project group that produced the dependency, e.g. - <code>org.apache.maven</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>artifactId</name> - <version>3.0.0+</version> - <required>true</required> - <description> - <![CDATA[ - The unique id for an artifact produced by the project group, e.g. - <code>maven-artifact</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>version</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The version of the dependency, e.g. <code>3.2.1</code>. In Maven 2, this can also be - specified as a range of versions. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0</version> - <description>This url will be provided to the user if the jar file cannot be downloaded - from the central repository.</description> - <type>String</type> - </field> - <field> - <name>jar</name> - <version>3.0.0</version> - <description>Literal name of the artifact in the repository. Used to override the - calculated artifact name.</description> - <type>String</type> - </field> - <field> - <name>type</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The type of dependency. While it - usually represents the extension on the filename of the dependency, - that is not always the case. - Some examples are <code>jar</code>, <code>war</code>, and <code>plugin</code>. - A dependency of type <code>plugin</code> is loaded as a Maven plugin and - not added to the project build classpath. - ]]> - </description> - <type>String</type> - <defaultValue>jar</defaultValue> - </field> - <field> - <name>type</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The type of dependency. While it - usually represents the extension on the filename of the dependency, - that is not always the case. A type can be mapped to a different - extension and a classifier. - The type often corresponds to the packaging used, though this is also - not always the case. - Some examples are <code>jar</code>, <code>war</code>, <code>ejb-client</code> - and <code>test-jar</code>: see <a href="../maven-core/artifact-handlers.html">default - artifact handlers</a> for a list. - New types can be defined by plugins that set - <code>extensions</code> to <code>true</code>, so this is not a complete list. - ]]> - </description> - <type>String</type> - <defaultValue>jar</defaultValue> - </field> - <field> - <name>classifier</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The classifier of the dependency. It is appended to - the filename after the version. This allows: - <ul> - <li>refering to attached artifact, for example <code>sources</code> and <code>javadoc</code>: - see <a href="../maven-core/artifact-handlers.html">default artifact handlers</a> for a list,</li> - <li>distinguishing two artifacts - that belong to the same POM but were built differently. - For example, <code>jdk14</code> and <code>jdk15</code>.</li> - </ul> - ]]> - </description> - <type>String</type> - <required>false</required> - </field> - <field> - <name>properties</name> - <version>3.0.0</version> - <description> - <![CDATA[ - Properties about the dependency. Various plugins allow you to - mark dependencies with properties. For example the war plugin looks for a - <code>war.bundle</code> property, and if found will include the - dependency in <code>WEB-INF/lib</code>. - ]]> - </description> - <type>Properties</type> - <association xml.mapStyle="inline"> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>scope</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The scope of the dependency - <code>compile</code>, <code>runtime</code>, - <code>test</code>, <code>system</code>, and <code>provided</code>. Used to - calculate the various classpaths used for compilation, testing, and so on. - It also assists in determining which artifacts to include in a distribution of - this project. For more information, see - <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html">the - dependency mechanism</a>. - ]]> - </description> - <type>String</type> - <!-- This default has to be enforced at the maven-artifact layer, to allow - | injection of defaults from <dependencyManagement/>. - | TODO: how can we document it? - |--> - <!-- defaultValue>compile</defaultValue --> - </field> - <field> - <name>systemPath</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b> - and may be replaced in later versions. This specifies the path on the filesystem - for this dependency. - Requires an absolute path for the value, not relative. - Use a property that gives the machine specific absolute path, - e.g. <code>${java.home}</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>exclusions</name> - <version>4.0.0+</version> - <description>Lists a set of artifacts that should be excluded from this dependency's - artifact list when it comes to calculating transitive dependencies.</description> - <association> - <type>Exclusion</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>optional</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Indicates the dependency is optional for use of this library. While the - version of the dependency will be taken into account for dependency calculation if the - library is used elsewhere, it will not be passed on transitively. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>false</code>. - ]]> - </description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>3.0.0</version> - <code> - <![CDATA[ - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return groupId + "/" + type + "s:" + artifactId + "-" + version; - } - ]]> - </code> - </codeSegment> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public boolean isOptional() - { - return ( optional != null ) ? Boolean.parseBoolean( optional ) : false; - } - - public void setOptional( boolean optional ) - { - this.optional = String.valueOf( optional ); - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return "Dependency {groupId=" + groupId + ", artifactId=" + artifactId + ", version=" + version + ", type=" + type + "}"; - } - ]]> - </code> - </codeSegment> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - private String managementKey; - - /** - * @return the management key as <code>groupId:artifactId:type</code> - */ - public String getManagementKey() - { - if ( managementKey == null ) - { - managementKey = groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ); - } - return managementKey; - } - ]]> - </code> - </codeSegment> - <codeSegment> - <version>3.0.0</version> - <code> - <![CDATA[ - /** - * @return the key as <code>id:type</code> - */ - public String getKey() - { - return getId() + ":" + getType(); - } - - /** - * @return the groupId as artifact directory - */ - public String getArtifactDirectory() - { - return getGroupId(); - } - - /** - * @return the artifact name as <code>artifactId-version.extension</code> if <jar/> not set - */ - 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(); - } - - String artifact; - - if ("ejb-client".equals(getType())) { - artifact = getArtifactId() + "-" + getVersion() + "-client." + getExtension(); - } else { - artifact = getArtifactId() + "-" + getVersion() + "." + getExtension(); - } - - return artifact; - } - - public String getTypeDirectory() - { - String path; - if (getType().equals("ejb-client")) { - path = "ejbs"; - } else { - path = getType() + "s"; - } - - return path; - } - - public String getExtension() - { - if ("ejb".equals(getType()) || "ejb-client".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType()) || "uberjar".equals(getType())) return "jar"; - return getType(); - } - - public boolean isAddedToClasspath() - { - return ("jar".equals(getType()) || "ejb".equals(getType()) || "ejb-client".equals(getType()) || "sar".equals(getType())); - } - - public boolean isPlugin() - { - return ("plugin".equals(getType())); - } - - public String getProperty( String property ) - { - return getProperties().getProperty( property ); - } - - /** - * @see java.lang.Object#equals(java.lang.Object) - */ - public boolean equals( Object o ) - { - if ( this == o ) - { - return true; - } - - if ( !( o instanceof Dependency ) ) - { - return false; - } - - Dependency d = (Dependency) o; - return getId().equals( d.getId() ); - } - - /** - * @see java.lang.Object#hashCode() - */ - public int hashCode() - { - return getId().hashCode(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <superClass>Contributor</superClass> - <name>Developer</name> - <description>Information about one of the committers on this project.</description> - <version>3.0.0+</version> - <fields> - <field> - <name>id</name> - <version>3.0.0+</version> - <description>The unique ID of the developer in the SCM.</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Exclusion</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The <code><exclusion></code> element contains informations required to exclude - an artifact to the project. - ]]> - </description> - <fields> - <field> - <name>artifactId</name> - <version>4.0.0+</version> - <description>The artifact ID of the project to exclude.</description> - <type>String</type> - <required>true</required> - </field> - <field> - <name>groupId</name> - <version>4.0.0+</version> - <description>The group ID of the project to exclude.</description> - <type>String</type> - <required>true</required> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>IssueManagement</name> - <description>Information about the issue tracking (or bug tracking) system used to manage this - project.</description> - <version>4.0.0+</version> - <fields> - <field> - <name>system</name> - <version>4.0.0+</version> - <description>The name of the issue management system, e.g. Bugzilla</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>4.0.0+</version> - <description>URL for the issue management system used by the project.</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>DistributionManagement</name> - <version>4.0.0+</version> - <description>This elements describes all that pertains to distribution for a project. It is - primarily used for deployment of artifacts and the site produced by the build.</description> - <fields> - <field> - <name>repository</name> - <version>4.0.0+</version> - <description>Information needed to deploy the artifacts generated by the project to a - remote repository.</description> - <association> - <type>DeploymentRepository</type> - </association> - </field> - <field> - <name>snapshotRepository</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Where to deploy snapshots of artifacts to. If not given, it defaults to the - <code>repository</code> element. - ]]> - </description> - <association> - <type>DeploymentRepository</type> - </association> - </field> - <field> - <name>site</name> - <description>Information needed for deploying the web site of the project.</description> - <version>4.0.0+</version> - <association> - <type>Site</type> - </association> - </field> - <field> - <name>downloadUrl</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The URL of the project's download page. If not given users will be - referred to the homepage given by <code>url</code>. - This is given to assist in locating artifacts that are not in the repository due to - licensing restrictions. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>relocation</name> - <version>4.0.0+</version> - <description>Relocation information of the artifact if it has been moved to a new group ID - and/or artifact ID.</description> - <association> - <type>Relocation</type> - </association> - </field> - <field> - <name>status</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Gives the status of this artifact in the remote repository. - This must not be set in your local project, as it is updated by - tools placing it in the reposiory. Valid values are: <code>none</code> (default), - <code>converted</code> (repository manager converted this from an Maven 1 POM), - <code>partner</code> - (directly synced from a partner Maven 2 repository), <code>deployed</code> (was deployed from a Maven 2 - instance), <code>verified</code> (has been hand verified as correct and final). - ]]> - </description> - <required>false</required> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>License</name> - <description>Describes the licenses for this project. This is used to generate the license - page of the project's web site, as well as being taken into consideration in other reporting - and validation. The licenses listed for the project are that of the project itself, and not - of dependencies.</description> - <version>3.0.0+</version> - <fields> - <field> - <name>name</name> - <version>3.0.0+</version> - <description>The full legal name of the license.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0+</version> - <description>The official url for the license text.</description> - <type>String</type> - </field> - <field> - <name>distribution</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The primary method by which this project may be distributed. - <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> - ]]> - </description> - <type>String</type> - </field> - <field> - <name>comments</name> - <description>Addendum information pertaining to this license.</description> - <version>3.0.0+</version> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>MailingList</name> - <version>3.0.0+</version> - <description>This element describes all of the mailing lists associated with a project. The - auto-generated site references this information.</description> - <fields> - <field> - <name>name</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The name of the mailing list. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>subscribe</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - The email address or link that can be used to subscribe to - the mailing list. If this is an email address, a - <code>mailto:</code> link will automatically be created - when the documentation is created. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>unsubscribe</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - 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. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>post</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - 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. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>archive</name> - <version>3.0.0+</version> - <description>The link to a URL where you can browse the mailing list archive.</description> - <type>String</type> - </field> - <field> - <name>otherArchives</name> - <version>3.0.0+</version> - <description>The link to alternate URLs where you can browse the list archive.</description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <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> - </class> - <class java.clone="deep"> - <name>Organization</name> - <description>Specifies the organization that produces this project.</description> - <version>3.0.0+</version> - <fields> - <field> - <name>name</name> - <version>3.0.0+</version> - <description>The full name of the organization.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0+</version> - <description>The URL to the organization's home page.</description> - <type>String</type> - </field> - <field> - <name>logo</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The URL to the organization's logo image. This can be an URL relative - to the base directory of the generated web site, - (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 - when generating the project documentation. - ]]> - </description> - <type>String</type> - </field> - </fields> - </class> - <class> - <name>PackageGroup</name> - <version>3.0.0</version> - <description>A JavaDoc package group.</description> - <fields> - <field> - <name>title</name> - <version>3.0.0</version> - <description>The title to use for the package group.</description> - <type>String</type> - </field> - <field> - <name>packages</name> - <version>3.0.0</version> - <description>The packages in the group</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>PatternSet</name> - <version>3.0.0+</version> - <description>Definition of include or exclude patterns.</description> - <fields> - <field> - <name>includes</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - A list of patterns to include, e.g. <code>**/*.xml</code>. - ]]> - </description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>excludes</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - A list of patterns to exclude, e.g. <code>**/*.xml</code> - ]]> - </description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - StringBuilder sb = new StringBuilder( 128 ); - - sb.append("PatternSet [includes: {"); - for (java.util.Iterator i = getIncludes().iterator(); i.hasNext(); ) - { - String str = (String) i.next(); - sb.append(str).append(", "); - } - if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); - - sb.append("}, excludes: {"); - for (java.util.Iterator i = getExcludes().iterator(); i.hasNext(); ) - { - String str = (String) i.next(); - sb.append(str).append(", "); - } - if (sb.substring(sb.length() - 2).equals(", ")) sb.delete(sb.length() - 2, sb.length()); - - sb.append("}]"); - return sb.toString(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>Parent</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The <code><parent></code> element contains information required to locate the parent project from which - this project will inherit from. - <strong>Note:</strong> The children of this element are not interpolated and must be given as literal values. - ]]> - </description> - <fields> - <field> - <name>groupId</name> - <version>4.0.0+</version> - <description>The group id of the parent project to inherit from.</description> - <required>true</required> - <type>String</type> - </field> - <field> - <name>artifactId</name> - <version>4.0.0+</version> - <description>The artifact id of the parent project to inherit from.</description> - <required>true</required> - <type>String</type> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <description>The version of the parent project to inherit.</description> - <type>String</type> - </field> - <field> - <name>relativePath</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The relative path of the parent <code>pom.xml</code> file within the check out. - If not specified, it defaults to <code>../pom.xml</code>. - Maven looks for the parent POM first in this location on - the filesystem, then the local repository, and lastly in the remote repo. - <code>relativePath</code> allows you to select a different location, - for example when your structure is flat, or deeper without an intermediate parent POM. - However, the group ID, artifact ID and version are still required, - and must match the file in the location given or it will revert to the repository for the POM. - This feature is only for enhancing the development in a local checkout of that project. - Set the value to an empty string in case you want to disable the feature and always resolve - the parent POM from the repositories. - ]]> - </description> - <type>String</type> - <defaultValue>../pom.xml</defaultValue> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - /** - * @return the id as <code>groupId:artifactId:version</code> - */ - public String getId() - { - StringBuilder id = new StringBuilder( 64 ); - - id.append( getGroupId() ); - id.append( ":" ); - id.append( getArtifactId() ); - id.append( ":" ); - id.append( "pom" ); - id.append( ":" ); - id.append( getVersion() ); - - return id.toString(); - } - - @Override - public String toString() - { - return getId(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - - </class> - <class> - <name>Repository</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The <code><repository></code> element contains informations required to a repository - used by the project. - ]]> - </description> - <fields> - <field> - <name>connection</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The source control management system URL - that describes the repository and how to connect to the - repository. For more information, see the - <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> - and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. - This connection is read-only. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>developerConnection</name> - <version>3.0.0</version> - <description> - <![CDATA[ - Just like <code>connection</code>, but for developers, i.e. this scm connection - will not be read only. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>3.0.0</version> - <description>The URL to the project's browsable SCM repository, such as ViewVC or Fisheye.</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Scm</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The <code><scm></code> element contains informations required to the SCM - (Source Control Management) of the project. - ]]> - </description> - <fields> - <field> - <name>connection</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The source control management system URL - that describes the repository and how to connect to the - repository. For more information, see the - <a href="http://maven.apache.org/scm/scm-url-format.html">URL format</a> - and <a href="http://maven.apache.org/scm/scms-overview.html">list of supported SCMs</a>. - This connection is read-only. - <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId - ]]> - </description> - <type>String</type> - </field> - <field> - <name>developerConnection</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Just like <code>connection</code>, but for developers, i.e. this scm connection - will not be read only. - <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId - ]]> - </description> - <type>String</type> - </field> - <field> - <name>tag</name> - <version>4.0.0+</version> - <description>The tag of current code. By default, it's set to HEAD during development.</description> - <type>String</type> - <defaultValue>HEAD</defaultValue> - </field> - <field> - <name>url</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The URL to the project's browsable SCM repository, such as ViewVC or Fisheye. - <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId - ]]> - </description> - <type>String</type> - </field> - </fields> - </class> - <class> - <name>FileSet</name> - <version>3.0.0+</version> - <superClass>PatternSet</superClass> - <description>A PatternSet for files.</description> - <fields> - <field> - <name>directory</name> - <version>3.0.0+</version> - <description>Describe the directory where the resources are stored. The path is relative - to the POM.</description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return "FileSet {directory: " + getDirectory() + ", " + super.toString() + "}"; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <name>Resource</name> - <description>This element describes all of the classpath resources associated with a project - or unit tests.</description> - <version>3.0.0+</version> - <superClass>FileSet</superClass> - <fields> - <field> - <name>targetPath</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - Describe the resource target path. The path is relative to the target/classes - directory (i.e. <code>${project.build.outputDirectory}</code>). - For example, if you want that resource to appear in a specific package - (<code>org.apache.maven.messages</code>), you must specify this - element with this value: <code>org/apache/maven/messages</code>. - This is not required if you simply put the resources in that directory - structure at the source, however. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>filtering</name> - <version>3.0.0+</version> - <description> - <![CDATA[ - Whether resources are filtered to replace tokens with parameterised values or not. - The values are taken from the <code>properties</code> element and from the - properties in the files listed in the <code>filters</code> element. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>false</code>. - ]]> - </description> - <type>String</type> - </field> - <field xml.transient="true"> - <name>mergeId</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - FOR INTERNAL USE ONLY. This is a unique identifier assigned to each - resource to allow Maven to merge changes to this resource that take - place during the execution of a plugin. This field must be managed - by the generated parser and formatter classes in order to allow it - to survive model interpolation. - ]]> - </description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - private static int mergeIdCounter = 0; - - public void initMergeId() - { - if ( getMergeId() == null ) - { - setMergeId( "resource-" + (mergeIdCounter++) ); - } - } - - public boolean isFiltering() - { - return ( filtering != null ) ? Boolean.parseBoolean( filtering ) : false; - } - - public void setFiltering( boolean filtering ) - { - this.filtering = String.valueOf( filtering ); - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return "Resource {targetPath: " + getTargetPath() + ", filtering: " + isFiltering() + ", " + super.toString() + "}"; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <name>SourceModification</name> - <description>This element describes all of the source modifications associated with a project. - These modifications are used to exclude or include various source depending on the - environment the build is running in.</description> - <version>3.0.0</version> - <superClass>FileSet</superClass> - <fields> - <field> - <name>className</name> - <version>3.0.0</version> - <description> - <![CDATA[ - If the class with this name can <b>not</b> be - loaded, then the includes and excludes specified below - will be applied to the contents of the <code>sourceDirectory</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>property</name> - <version>3.0.0</version> - <description> - <![CDATA[ - If the property with this name is <b>not</b> set, - then the includes and excludes specified below - will be applied to the contents of the <code>sourceDirectory</code>. - ]]> - </description> - <type>String</type> - </field> - </fields> - </class> - <class> - <name>UnitTest</name> - <version>3.0.0</version> - <superClass>PatternSet</superClass> - <description>A PatternSet for unit tests.</description> - <fields> - <field> - <name>resources</name> - <version>3.0.0</version> - <description>The classpath resources to use when executing the unit tests.</description> - <association> - <type>Resource</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - </class> - <class> - <name>Version</name> - <version>3.0.0</version> - <description> - <![CDATA[ - This element describes each of the previous versions of the - project. Each version is described by a <code>version</code> - element - ]]> - </description> - <fields> - <field> - <name>name</name> - <version>3.0.0</version> - <description> - <![CDATA[ - The external version number under which this release was distributed. Examples include: - <code>1.0</code>, - <code>1.1-alpha1</code>, - <code>1.2-beta</code>, - <code>1.3.2</code> etc. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>tag</name> - <version>3.0.0</version> - <description>The name given in the SCM (e.g. CVS) used by the project for the source code - associated with this version of the project.</description> - <type>String</type> - </field> - <field> - <name>id</name> - <version>3.0.0</version> - <description>A unique identifier for a version. This is usually identical to the name.</description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>3.0.0</version> - <code> - <![CDATA[ - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return getId(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - - <class java.clone="deep"> - <name>RepositoryBase</name> - <version>4.0.0+</version> - <description>A repository contains the information needed for establishing connections with - remote repository.</description> - <fields> - <field> - <name>id</name> - <version>4.0.0+</version> - <required>true</required> - <identifier>true</identifier> - <description> - <![CDATA[ - A unique identifier for a repository. This is used to match the repository - to configuration in the <code>settings.xml</code> file, for example. Furthermore, the identifier is - used during POM inheritance and profile injection to detect repositories that should be merged. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>name</name> - <version>4.0.0+</version> - <description>Human readable name of the repository.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>4.0.0+</version> - <required>true</required> - <description> - <![CDATA[ - The url of the repository, in the form <code>protocol://hostname/path</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>layout</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The type of layout this repository uses for locating and storing artifacts - - can be <code>legacy</code> or <code>default</code>. - ]]> - </description> - <type>String</type> - <defaultValue>default</defaultValue> - </field> - </fields> - </class> - - <class> - <name>Repository</name> - <superClass>RepositoryBase</superClass> - <version>4.0.0+</version> - <description>A repository contains the information needed for establishing connections with - remote repository.</description> - <fields> - <field> - <name>releases</name> - <version>4.0.0+</version> - <description>How to handle downloading of releases from this repository.</description> - <association> - <type>RepositoryPolicy</type> - </association> - </field> - <field> - <name>snapshots</name> - <version>4.0.0+</version> - <description>How to handle downloading of snapshots from this repository.</description> - <association> - <type>RepositoryPolicy</type> - </association> - </field> - </fields> - </class> - - <class> - <name>DeploymentRepository</name> - <superClass>Repository</superClass> - <version>4.0.0+</version> - <description>Repository contains the information needed for deploying to the remote - repository.</description> - <fields> - <field> - <name>uniqueVersion</name> - <description>Whether to assign snapshots a unique version comprised of the timestamp and - build number, or to use the same version each time</description> - <type>boolean</type> - <defaultValue>true</defaultValue> - <version>4.0.0+</version> - </field> - </fields> - </class> - - <class java.clone="deep"> - <name>RepositoryPolicy</name> - <version>4.0.0+</version> - <description>Download policy.</description> - <fields> - <field> - <name>enabled</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Whether to use this repository for downloading this type of artifact. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>true</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>updatePolicy</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The frequency for downloading updates - can be - <code>always,</code> - <code>daily</code> - (default), - <code>interval:XXX</code> - (in minutes) or - <code>never</code> - (only if it doesn't exist locally). - ]]> - </description> - <type>String</type> - </field> - <field> - <name>checksumPolicy</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - What to do when verification of an artifact checksum fails. Valid values are - <code>ignore</code> - , - <code>fail</code> - or - <code>warn</code> - (the default). - ]]> - </description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - - public boolean isEnabled() - { - return ( enabled != null ) ? Boolean.parseBoolean( enabled ) : true; - } - - public void setEnabled( boolean enabled ) - { - this.enabled = String.valueOf( enabled ); - } - - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - - <!--@todo find better solution for management of site deployments --> - <class java.clone="deep"> - <name>Site</name> - <version>4.0.0+</version> - <description>Contains the information needed for deploying websites.</description> - <fields> - <field> - <name>id</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - A unique identifier for a deployment location. This is used to match the - site to configuration in the <code>settings.xml</code> file, for example. - ]]> - </description> - <type>String</type> - </field> - <field> - <name>name</name> - <version>4.0.0+</version> - <description>Human readable name of the deployment location.</description> - <type>String</type> - </field> - <field> - <name>url</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - The url of the location where website is deployed, in the form <code>protocol://hostname/path</code>. - <br /><b>Default value is</b>: parent value [+ path adjustment] + artifactId - ]]> - </description> - <type>String</type> - </field> - </fields> - </class> - - <class java.clone="deep"> - <name>ConfigurationContainer</name> - <version>4.0.0+</version> - <description>Contains the configuration information of the container like Plugin.</description> - <fields> - <field> - <name>inherited</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Whether any configuration should be propagated to child POMs. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>true</code>. - ]]> - </description> - <type>String</type> - </field> - <field> - <description> - <![CDATA[ - <p>The configuration as DOM object.</p> - <p>By default, every element content is trimmed, but starting with Maven 3.1.0, you can add - <code>xml:space="preserve"</code> to elements you want to preserve whitespace.</p> - <p>You can control how child POMs inherit configuration from parent POMs by adding <code>combine.children</code> - or <code>combine.self</code> attributes to the children of the configuration element:</p> - <ul> - <li><code>combine.children</code>: available values are <code>merge</code> (default) and <code>append</code>,</li> - <li><code>combine.self</code>: available values are <code>merge</code> (default) and <code>override</code>.</li> - </ul> - <p>See <a href="http://maven.apache.org/pom.html#Plugins">POM Reference documentation</a> and - <a href="http://plexus.codehaus.org/plexus-utils/apidocs/org/codehaus/plexus/util/xml/Xpp3DomUtils.html">Xpp3DomUtils</a> - for more information.</p> - ]]> - </description> - <name>configuration</name> - <type>DOM</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public boolean isInherited() - { - return ( inherited != null ) ? Boolean.parseBoolean( inherited ) : true; - } - - public void setInherited( boolean inherited ) - { - this.inherited = String.valueOf( inherited ); - } - - private boolean inheritanceApplied = true; - - public void unsetInheritanceApplied() - { - this.inheritanceApplied = false; - } - - public boolean isInheritanceApplied() - { - return inheritanceApplied; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <name>Plugin</name> - <version>4.0.0+</version> - <superClass>ConfigurationContainer</superClass> - <description> - <![CDATA[ - The <code><plugin></code> element contains informations required for a plugin. - ]]> - </description> - <fields> - <field> - <name>groupId</name> - <description>The group ID of the plugin in the repository.</description> - <version>4.0.0+</version> - <type>String</type> - <defaultValue>org.apache.maven.plugins</defaultValue> - </field> - <field> - <name>artifactId</name> - <description>The artifact ID of the plugin in the repository.</description> - <version>4.0.0+</version> - <type>String</type> - <required>true</required> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <description>The version (or valid range of versions) of the plugin to be used.</description> - <type>String</type> - </field> - <field> - <name>extensions</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - Whether to load Maven extensions (such as packaging and type handlers) from - this plugin. For performance reasons, this should only be enabled when necessary. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>false</code>. - ]]> - </description> - </field> - <field> - <name>executions</name> - <version>4.0.0+</version> - <description>Multiple specifications of a set of goals to execute during the build - lifecycle, each having (possibly) a different configuration.</description> - <association> - <type>PluginExecution</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>dependencies</name> - <description>Additional dependencies that this project needs to introduce to the plugin's - classloader.</description> - <version>4.0.0+</version> - <association> - <type>Dependency</type> - <multiplicity>*</multiplicity> - </association> - </field> - <field> - <name>goals</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - <b>Deprecated</b>. Unused by Maven. - ]]> - </description> - <type>DOM</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public boolean isExtensions() - { - return ( extensions != null ) ? Boolean.parseBoolean( extensions ) : false; - } - - public void setExtensions( boolean extensions ) - { - this.extensions = String.valueOf( extensions ); - } - - private java.util.Map<String, PluginExecution> executionMap = null; - - /** - * Reset the <code>executionMap</code> field to <code>null</code> - */ - public void flushExecutionMap() - { - this.executionMap = null; - } - - /** - * @return a Map of executions field with <code>PluginExecution#getId()</code> as key - * @see org.apache.maven.model.PluginExecution#getId() - */ - public java.util.Map<String, PluginExecution> getExecutionsAsMap() - { - if ( executionMap == null ) - { - executionMap = new java.util.LinkedHashMap<String, PluginExecution>(); - if ( getExecutions() != null ) - { - for ( java.util.Iterator<PluginExecution> i = getExecutions().iterator(); i.hasNext(); ) - { - PluginExecution exec = (PluginExecution) i.next(); - - if ( executionMap.containsKey( exec.getId() ) ) - { - throw new IllegalStateException( "You cannot have two plugin executions with the same (or missing) <id/> elements.\nOffending execution\n\nId: \'" + exec.getId() + "\'\nPlugin:\'" + getKey() + "\'\n\n" ); - } - - executionMap.put( exec.getId(), exec ); - } - } - } - - return executionMap; - } - - /** - * Gets the identifier of the plugin. - * - * @return The plugin id in the form {@code <groupId>:<artifactId>:<version>}, never {@code null}. - */ - public String getId() - { - StringBuilder id = new StringBuilder( 128 ); - - id.append( ( getGroupId() == null ) ? "[unknown-group-id]" : getGroupId() ); - id.append( ":" ); - id.append( ( getArtifactId() == null ) ? "[unknown-artifact-id]" : getArtifactId() ); - id.append( ":" ); - id.append( ( getVersion() == null ) ? "[unknown-version]" : getVersion() ); - - return id.toString(); - } - - //TODO we shall reset key variable when groupId/artifactId change - private String key = null; - /** - * @return the key of the plugin, ie <code>groupId:artifactId</code> - */ - public String getKey() - { - if ( key == null ) - { - key = constructKey( groupId, artifactId ); - } - return key; - } - - /** - * @param groupId - * @param artifactId - * @return the key of the plugin, ie <code>groupId:artifactId</code> - */ - public static String constructKey( String groupId, String artifactId ) - { - return groupId + ":" + artifactId; - } - - /** - * @see java.lang.Object#equals(java.lang.Object) - */ - public boolean equals( Object other ) - { - if ( other instanceof Plugin ) - { - Plugin otherPlugin = (Plugin) other; - - return getKey().equals( otherPlugin.getKey() ); - } - - return false; - } - - /** - * @see java.lang.Object#hashCode() - */ - public int hashCode() - { - return getKey().hashCode(); - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return "Plugin [" + getKey() + "]"; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class> - <name>PluginExecution</name> - <version>4.0.0+</version> - <superClass>ConfigurationContainer</superClass> - <description> - <![CDATA[ - The <code><execution></code> element contains informations required for the - execution of a plugin. - ]]> - </description> - <fields> - <field> - <name>id</name> - <version>4.0.0+</version> - <type>String</type> - <defaultValue>default</defaultValue> - <description>The identifier of this execution for labelling the goals during the build, - and for matching executions to merge during inheritance and profile injection.</description> - </field> - <field> - <name>phase</name> - <version>4.0.0+</version> - <type>String</type> - <description>The build lifecycle phase to bind the goals in this execution to. If omitted, - the goals will be bound to the default phase specified by the plugin. </description> - </field> - <field xml.transient="true"> - <name>priority</name> - <version>4.0.0+</version> - <type>int</type> - <description> - <![CDATA[ - The priority of this execution compared to other executions which are bound to the same phase. - <strong>Warning:</strong> This is an internal utility property that is only public for technical reasons, - it is not part of the public API. In particular, this property can be changed or deleted without prior - notice. - ]]> - </description> - </field> - <field> - <name>goals</name> - <version>4.0.0+</version> - <description>The goals to execute with the given configuration.</description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public static final String DEFAULT_EXECUTION_ID = "default"; - - @Override - public String toString() - { - return getId(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>DependencyManagement</name> - <version>4.0.0+</version> - <description>Section for management of default dependency information for use in a group of - POMs.</description> - <fields> - <field> - <name>dependencies</name> - <version>4.0.0+</version> - <description>The dependencies specified here are not used 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> - </field> - </fields> - </class> - <class> - <name>PluginManagement</name> - <version>4.0.0+</version> - <superClass>PluginContainer</superClass> - <description>Section for management of default plugin information for use in a group of POMs. - </description> - </class> - <class java.clone="deep"> - <name>Reporting</name> - <version>4.0.0+</version> - <description>Section for management of reports and their configuration.</description> - <fields> - <field> - <name>excludeDefaults</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - If true, then the default reports are not included in the site generation. - This includes the reports in the "Project Info" menu. Note: While the type - of this field is <code>String</code> for technical reasons, the semantic type is actually - <code>Boolean</code>. Default value is <code>false</code>. - ]]> - </description> - </field> - <field> - <name>outputDirectory</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - Where to store all of the generated reports. The default is - <code>${project.build.directory}/site</code> - . - ]]> - </description> - <!-- TODO: why isn't default set here? --> - </field> - <field> - <name>plugins</name> - <version>4.0.0+</version> - <description>The reporting plugins to use and their configuration.</description> - <association> - <type>ReportPlugin</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public boolean isExcludeDefaults() - { - return ( excludeDefaults != null ) ? Boolean.parseBoolean( excludeDefaults ) : false; - } - - public void setExcludeDefaults( boolean excludeDefaults ) - { - this.excludeDefaults = String.valueOf( excludeDefaults ); - } - - java.util.Map<String, ReportPlugin> reportPluginMap; - - /** - * Reset the <code>reportPluginMap</code> field to <code>null</code> - */ - public synchronized void flushReportPluginMap() - { - this.reportPluginMap = null; - } - - /** - * @return a Map of plugins field with <code>ReportPlugin#getKey()</code> as key - * @see org.apache.maven.model.ReportPlugin#getKey() - */ - public synchronized java.util.Map<String, ReportPlugin> getReportPluginsAsMap() - { - if ( reportPluginMap == null ) - { - reportPluginMap = new java.util.LinkedHashMap<String, ReportPlugin>(); - if ( getPlugins() != null ) - { - for ( java.util.Iterator<ReportPlugin> it = getPlugins().iterator(); it.hasNext(); ) - { - ReportPlugin reportPlugin = (ReportPlugin) it.next(); - reportPluginMap.put( reportPlugin.getKey(), reportPlugin ); - } - } - } - - return reportPluginMap; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <!-- Profile support --> - <class> - <name>Profile</name> - <superClass>ModelBase</superClass> - <version>4.0.0+</version> - <description>Modifications to the build process which is activated based on environmental - parameters or command line arguments.</description> - <fields> - <field> - <name>id</name> - <required>true</required> - <version>4.0.0+</version> - <type>String</type> - <defaultValue>default</defaultValue> - <description>The identifier of this build profile. This is used for command line - activation, and identifies profiles to be merged. - </description> - </field> - <field> - <name>activation</name> - <version>4.0.0+</version> - <description>The conditional logic which will automatically trigger the inclusion of this - profile.</description> - <association> - <type>Activation</type> - </association> - </field> - <field xml.tagName="build"> - <name>build</name> - <version>4.0.0+</version> - <required>true</required> - <description>Information required to build the project.</description> - <association> - <type>BuildBase</type> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - public static final String SOURCE_POM = "pom"; - - public static final String SOURCE_SETTINGS = "settings.xml"; - - // We don't want this to be parseable...it's sort of 'hidden' - // default source for this profile is in the pom itself. - private String source = SOURCE_POM; - - public void setSource( String source ) - { - this.source = source; - } - - public String getSource() - { - return source; - } - - /** - * @see java.lang.Object#toString() - */ - public String toString() - { - return "Profile {id: " + getId() + ", source: " + getSource() + "}"; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>Activation</name> - <version>4.0.0+</version> - <description>The conditions within the build runtime environment which will trigger the - automatic inclusion of the build profile. Multiple conditions can be defined, which must - be all satisfied to activate the profile. - </description> - <fields> - <field> - <name>activeByDefault</name> - <version>4.0.0+</version> - <type>boolean</type> - <description>If set to true, this profile will be active unless another profile in this - pom is activated using the command line -P option or by one of that profile's - activators.</description> - </field> - <field> - <name>jdk</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - Specifies that this profile will be activated when a matching JDK is detected. - For example, <code>1.4</code> only activates on JDKs versioned 1.4, - while <code>!1.4</code> matches any JDK that is not version 1.4. Ranges are supported too: - <code>[1.5,)</code> activates when the JDK is 1.5 minimum. - ]]> - </description> - </field> - <field> - <name>os</name> - <version>4.0.0+</version> - <description>Specifies that this profile will be activated when matching operating system - attributes are detected.</description> - <association> - <type>ActivationOS</type> - </association> - </field> - <field> - <name>property</name> - <version>4.0.0+</version> - <description>Specifies that this profile will be activated when this system property is - specified.</description> - <association> - <type>ActivationProperty</type> - </association> - </field> - <field> - <name>file</name> - <version>4.0.0+</version> - <description>Specifies that this profile will be activated based on existence of a file.</description> - <association> - <type>ActivationFile</type> - </association> - </field> - <!-- - This could be included once we teach Maven to deal with multiple versions of the model - <field> - <name>custom</name> - <version>4.0.0+</version> - <description>Describes a custom profile activation trigger, brought in via build - extension.</description> - <association> - <type>ActivationCustom</type> - </association> - </field> - --> - </fields> - </class> - <class java.clone="deep"> - <name>ActivationProperty</name> - <version>4.0.0+</version> - <description>This is the property specification used to activate a profile. If the value field - is empty, then the existence of the named property will activate the profile, otherwise it - does a case-sensitive match against the property value as well.</description> - <fields> - <field> - <name>name</name> - <version>4.0.0+</version> - <type>String</type> - <required>true</required> - <description>The name of the property to be used to activate a profile.</description> - </field> - <field> - <name>value</name> - <version>4.0.0+</version> - <type>String</type> - <description>The value of the property required to activate a profile.</description> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>ActivationOS</name> - <version>4.0.0+</version> - <description>This is an activator which will detect an operating system's attributes in order - to activate its profile.</description> - <fields> - <field> - <name>name</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - The name of the operating system to be used to activate the profile. This must be an exact match - of the <code>${os.name}</code> Java property, such as <code>Windows XP</code>. - ]]> - </description> - </field> - <field> - <name>family</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - The general family of the OS to be used to activate the profile, such as - <code>windows</code> or <code>unix</code>. - ]]> - </description> - </field> - <field> - <name>arch</name> - <version>4.0.0+</version> - <type>String</type> - <description>The architecture of the operating system to be used to activate the - profile.</description> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <type>String</type> - <description>The version of the operating system to be used to activate the - profile.</description> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>ActivationFile</name> - <version>4.0.0+</version> - <description><![CDATA[This is the file specification used to activate the profile. The <code>missing</code> value - is the location of a file that needs to exist, and if it doesn't, the profile will be - activated. On the other hand, <code>exists</code> will test for the existence of the file and if it is - there, the profile will be activated.<br/> - Variable interpolation for these file specifications is limited to <code>${basedir}</code>, - System properties and request properties.]]></description> - <fields> - <field> - <name>missing</name> - <version>4.0.0+</version> - <type>String</type> - <description>The name of the file that must be missing to activate the - profile.</description> - </field> - <field> - <name>exists</name> - <version>4.0.0+</version> - <type>String</type> - <description>The name of the file that must exist to activate the profile.</description> - </field> - </fields> - </class> - <!-- - This can be put back in when we figure out how to have multiple model versions - <class> - <name>ActivationCustom</name> - <version>4.0.0+</version> - <description>This activation allows users to specify their own custom trigger for a profile.</description> - <fields> - <field> - <name>configuration</name> - <version>4.0.0+</version> - <type>DOM</type> - <description>The specification for triggering the profile according to the rules of the - custom activation type.</description> - </field> - <field> - <name>type</name> - <version>4.0.0+</version> - <type>String</type> - <description>The type (role-hint) of activation which is to be used to activate the - profile.</description> - </field> - </fields> - </class> - --> - <!-- /BuildProfile support --> - <class xml.tagName="plugin" java.clone="deep"> - <name>ReportPlugin</name> - <version>4.0.0+</version> - <superClass>ConfigurationContainer</superClass> - <description> - <![CDATA[ - The <code><plugin></code> element contains informations required for a report plugin. - ]]> - </description> - <fields> - <field> - <name>groupId</name> - <version>4.0.0+</version> - <type>String</type> - <required>true</required> - <defaultValue>org.apache.maven.plugins</defaultValue> - <description>The group ID of the reporting plugin in the repository.</description> - </field> - <field> - <name>artifactId</name> - <version>4.0.0+</version> - <type>String</type> - <required>true</required> - <description>The artifact ID of the reporting plugin in the repository.</description> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <description>The version of the reporting plugin to be used.</description> - <type>String</type> - </field> - <field> - <name>reportSets</name> - <version>4.0.0+</version> - <description> - <![CDATA[ - Multiple specifications of a set of reports, each having (possibly) different - configuration. This is the reporting parallel to an <code>execution</code> in the build. - ]]> - </description> - <association> - <type>ReportSet</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - private java.util.Map<String, ReportSet> reportSetMap = null; - - /** - * Reset the <code>reportSetMap</code> field to <code>null</code> - */ - public void flushReportSetMap() - { - this.reportSetMap = null; - } - - /** - * @return a Map of reportSets field with <code>ReportSet#getId()</code> as key - * @see org.apache.maven.model.ReportSet#getId() - */ - public java.util.Map<String, ReportSet> getReportSetsAsMap() - { - if ( reportSetMap == null ) - { - reportSetMap = new java.util.LinkedHashMap<String, ReportSet>(); - if ( getReportSets() != null ) - { - for ( java.util.Iterator<ReportSet> i = getReportSets().iterator(); i.hasNext(); ) - { - ReportSet reportSet = (ReportSet) i.next(); - reportSetMap.put( reportSet.getId(), reportSet ); - } - } - } - - return reportSetMap; - } - - /** - * @return the key of the report plugin, ie <code>groupId:artifactId</code> - */ - public String getKey() - { - return constructKey( groupId, artifactId ); - } - - /** - * @param groupId - * @param artifactId - * @return the key of the report plugin, ie <code>groupId:artifactId</code> - */ - public static String constructKey( String groupId, String artifactId ) - { - return groupId + ":" + artifactId; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>ReportSet</name> - <version>4.0.0+</version> - <superClass>ConfigurationContainer</superClass> - <description>Represents a set of reports and configuration to be used to generate them.</description> - <fields> - <field> - <name>id</name> - <type>String</type> - <required>true</required> - <description>The unique id for this report set, to be used during POM inheritance and profile injection - for merging of report sets. - </description> - <defaultValue>default</defaultValue> - </field> - <field> - <name>reports</name> - <version>4.0.0+</version> - <required>true</required> - <description>The list of reports from this plugin which should be generated from this set.</description> - <association> - <type>String</type> - <multiplicity>*</multiplicity> - </association> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - @Override - public String toString() - { - return getId(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class java.clone="deep"> - <name>Prerequisites</name> - <version>4.0.0+</version> - <description>Describes the prerequisites a project can have.</description> - <fields> - <field> - <name>maven</name> - <version>4.0.0+</version> - <type>String</type> - <defaultValue>2.0</defaultValue> - <description><![CDATA[ - The minimum version of Maven required to build the project.<br /> - If this project builds a plugin, this is in addition the minimum version of Maven required to use - the resulting plugin.]]> - </description> - <required>false</required> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Relocation</name> - <version>4.0.0+</version> - <description>Describes where an artifact has moved to. If any of the values are omitted, it is - assumed to be the same as it was before.</description> - <fields> - <field> - <name>groupId</name> - <version>4.0.0+</version> - <description>The group ID the artifact has moved to.</description> - <type>String</type> - </field> - <field> - <name>artifactId</name> - <version>4.0.0+</version> - <description>The new artifact ID of the artifact.</description> - <type>String</type> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <description>The new version of the artifact.</description> - <type>String</type> - </field> - <field> - <name>message</name> - <version>4.0.0+</version> - <description>An additional message to show the user about the move, such as the reason.</description> - <type>String</type> - </field> - </fields> - </class> - <class java.clone="deep"> - <name>Extension</name> - <version>4.0.0+</version> - <description>Describes a build extension to utilise.</description> - <fields> - <field> - <name>groupId</name> - <version>4.0.0+</version> - <description>The group ID of the extension's artifact.</description> - <required>true</required> - <type>String</type> - </field> - <field> - <name>artifactId</name> - <version>4.0.0+</version> - <description>The artifact ID of the extension.</description> - <required>true</required> - <type>String</type> - </field> - <field> - <name>version</name> - <version>4.0.0+</version> - <description>The version of the extension.</description> - <type>String</type> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - /** - * @see java.lang.Object#equals(java.lang.Object) - */ - public boolean equals( Object o ) - { - if ( this == o ) - { - return true; - } - - if ( !( o instanceof Extension ) ) - { - return false; - } - - Extension e = (Extension) o; - - if ( !equal( e.getArtifactId(), getArtifactId() ) ) - { - return false; - } - else if ( !equal( e.getGroupId(), getGroupId() ) ) - { - return false; - } - else if ( !equal( e.getVersion(), getVersion() ) ) - { - return false; - } - return true; - } - - private static <T> boolean equal( T obj1, T obj2 ) - { - return ( obj1 != null ) ? obj1.equals( obj2 ) : obj2 == null; - } - - /** - * @see java.lang.Object#hashCode() - */ - public int hashCode() - { - int result = 17; - result = 37 * result + ( getArtifactId() != null ? getArtifactId().hashCode() : 0 ); - result = 37 * result + ( getGroupId() != null ? getGroupId().hashCode() : 0 ); - result = 37 * result + ( getVersion() != null ? getVersion().hashCode() : 0 ); - return result; - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class locationTracker="locations" java.clone="shallow"> - <name>InputLocation</name> - <version>4.0.0+</version> - <fields> - <!-- line, column and source fields are auto-generated by Modello --> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - - @Override - public String toString() - { - return getLineNumber() + " : " + getColumnNumber() + ", " + getSource(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - <class sourceTracker="source" java.clone="shallow"> - <name>InputSource</name> - <version>4.0.0+</version> - <fields> - <field> - <name>modelId</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - The identifier of the POM in the format {@code <groupId>:<artifactId>:<version>}. - ]]> - </description> - </field> - <field> - <name>location</name> - <version>4.0.0+</version> - <type>String</type> - <description> - <![CDATA[ - The path/URL of the POM or {@code null} if unknown. - ]]> - </description> - </field> - </fields> - <codeSegments> - <codeSegment> - <version>4.0.0+</version> - <code> - <![CDATA[ - @Override - public String toString() - { - return getModelId() + " " + getLocation(); - } - ]]> - </code> - </codeSegment> - </codeSegments> - </class> - </classes> -</model> |