You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by ev...@apache.org on 2004/09/24 16:57:07 UTC
cvs commit: maven-components/maven-model maven.mdo.new
evenisse 2004/09/24 07:57:07
Modified: maven-model maven.mdo.new
Log:
The new model for the new modello. Not tested for the moment.
Revision Changes Path
1.3 +563 -177 maven-components/maven-model/maven.mdo.new
Index: maven.mdo.new
===================================================================
RCS file: /home/cvs/maven-components/maven-model/maven.mdo.new,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- maven.mdo.new 8 Aug 2004 02:49:38 -0000 1.2
+++ maven.mdo.new 24 Sep 2004 14:57:07 -0000 1.3
@@ -1,4 +1,3 @@
-<?xml version="1.0"?>
<!--
|
| o add specification element to a field, this would be more a technical description of
@@ -21,10 +20,14 @@
<id>maven</id>
<name>Maven</name>
<description>Maven's model for Java project.</description>
- <packageName>org.apache.maven.model</packageName>
- <root>Model</root>
+ <defaults>
+ <default>
+ <key>package</key>
+ <value>org.apache.maven.model</value>
+ </default>
+ </defaults>
<classes>
- <class>
+ <class rootElement="true">
<name>Model</name>
<version>3.0.0+</version>
<fields>
@@ -62,7 +65,9 @@
<name>id</name>
<version>3.0.0</version>
<required>true</required>
- <description>The primary id for your project.</description>
+ <description>
+ The id of the project.
+ </description>
<type>String</type>
</field>
<field>
@@ -147,13 +152,17 @@
<name>issueManagement</name>
<version>4.0.0</version>
<description>The project's issue management information.</description>
- <type>IssueManagement</type>
+ <association>
+ <type>IssueManagement</type>
+ </association>
</field>
<field>
<name>ciManagement</name>
<version>4.0.0</version>
<description>The project's continuous integration management information.</description>
- <type>CiManagement</type>
+ <association>
+ <type>CiManagement</type>
+ </association>
</field>
<field>
<name>inceptionYear</name>
@@ -185,66 +194,45 @@
<version>3.0.0</version>
<description>The FQDN of the host where the project's artifacts are uploaded.</description>
<type>String</type>
- <comment>This naming is inconsistent and distriubtion should occur from a repository structure.</comment>
+ <comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
</field>
<field>
<name>distributionDirectory</name>
<version>3.0.0</version>
<description>The directory on the distribution host where artifacts are placed when uploaded.</description>
<type>String</type>
- <comment>This naming is inconsistent and distriubtion should occur from a repository structure.</comment>
+ <comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
</field>
+
<field>
- <name>scm</name>
+ <name>repositories</name>
<version>4.0.0</version>
- <description>Specification for the SCM use by the project.</description>
- <type>Scm</type>
- </field>
- <field>
- <name>repository</name>
- <version>3.0.0</version>
- <description>Specification for the SCM use by the project.</description>
- <type>Repository</type>
- <comment>This element needs to be renamed as it conflicts with the existing notion of repositories in Maven.</comment>
+ <description>The lists of the remote repositories</description>
+ <association>
+ <type>Repository</type>
+ <multiplicity>*</multiplicity>
+ </association>
</field>
<field>
- <name>build</name>
- <version>3.0.0+</version>
- <required>true</required>
- <description>Information required to build the project.</description>
- <type>Build</type>
+ <name>pluginRepositories</name>
+ <version>4.0.0</version>
+ <description>The lists of the remote repositories for discovering plugins</description>
+ <association>
+ <type>Repository</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ <comment>This may be removed or relocated in the near future. It is undecided whether plugins really need a remote repository set of their own.</comment>
</field>
<field>
- <name>organization</name>
- <version>3.0.0+</version>
- <description>
- This element describes various attributes of the organziation to
- which the project belongs. These attributes are utilized when
- documentation is created (for copyright notices and links).
- </description>
- <type>Organization</type>
- </field>
- <field>
- <name>distributionManagement</name>
- <version>4.0.0</version>
- <description>Distribution information for a project.</description>
- <type>DistributionManagement</type>
- </field>
- </fields>
- <associations>
- <association>
- <name>repositories</name>
- <version>4.0.0</version>
- <description>The lists of the remote repositories</description>
- <to>Repository</to>
- </association>
- <association>
<name>mailingLists</name>
<version>3.0.0+</version>
<description>The mailing lists for the project.</description>
- <to>MailingList</to>
- </association>
- <association>
+ <association>
+ <type>MailingList</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>developers</name>
<version>3.0.0+</version>
<description>
@@ -254,9 +242,12 @@
additional elements (described below). The auto-generated site
documentation references this information.
</description>
- <to>Developer</to>
- </association>
- <association>
+ <association>
+ <type>Developer</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>contributors</name>
<version>3.0.0+</version>
<description>
@@ -266,9 +257,12 @@
elements (described below). The auto-generated site documentation
references this information.
</description>
- <to>Contributor</to>
- </association>
- <association>
+ <association>
+ <type>Contributor</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>dependencies</name>
<version>3.0.0+</version>
<description>
@@ -277,10 +271,27 @@
<code>dependency</code> element, which is then described by
additional elements (described below).
</description>
+ <association>
+ <type>Dependency</type>
+ <multiplicity>*</multiplicity>
+ </association>
<comment>These should ultimately only be compile time dependencies when transitive dependencies come into play.</comment>
- <to>Dependency</to>
- </association>
- <association>
+ </field>
+ <field>
+ <name>overrides</name>
+ <version>4.0.0</version>
+ <description>
+ This element describes all of the dependency overrides for a
+ project. Each dependency is described by a
+ <code>override</code> element, which is then described by
+ additional elements (described below).
+ </description>
+ <association>
+ <type>Override</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>licenses</name>
<version>3.0.0+</version>
<description>
@@ -290,27 +301,39 @@
references this information. Projects should only list the license(s) that
applies to the project and not the licenses that apply to dependencies.
</description>
- <to>License</to>
- </association>
- <association>
+ <association>
+ <type>License</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>versions</name>
<version>3.0.0</version>
<description>The released versions of the project.</description>
- <to>Version</to>
- </association>
- <association>
+ <association>
+ <type>Version</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>branches</name>
<version>3.0.0</version>
<description>The SCM branches create for the project.</description>
- <to>Branch</to>
- </association>
- <association>
+ <association>
+ <type>Branch</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>packageGroups</name>
<version>3.0.0+</version>
<description>Package groups required for complete javadocs.</description>
- <to>PackageGroup</to>
- </association>
- <association>
+ <association>
+ <type>PackageGroup</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>reports</name>
<version>3.0.0+</version>
<description>
@@ -321,12 +344,118 @@
reports will be included in the navigation bar for browsing in
the order they are specified.
</description>
- <to>String</to>
- </association>
- </associations>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>scm</name>
+ <version>4.0.0</version>
+ <description>Specification for the SCM use by the project.</description>
+ <association>
+ <type>Scm</type>
+ </association>
+ </field>
+ <field>
+ <name>repository</name>
+ <version>3.0.0</version>
+ <description>Specification for the SCM use by the project.</description>
+ <association>
+ <type>Repository</type>
+ </association>
+ <comment>This element needs to be renamed as it conflicts with the existing notion of repositories in Maven.</comment>
+ </field>
+ <field>
+ <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>
+ <field>
+ <name>organization</name>
+ <version>3.0.0+</version>
+ <description>
+ This element describes various attributes of the organziation to
+ which the project belongs. These attributes are utilized when
+ documentation is created (for copyright notices and links).
+ </description>
+ <association>
+ <type>Organization</type>
+ </association>
+ </field>
+ <field>
+ <name>distributionManagement</name>
+ <version>4.0.0</version>
+ <description>Distribution information for a project.</description>
+ <association>
+ <type>DistributionManagement</type>
+ </association>
+ </field>
+ <field>
+ <name>local</name>
+ <version>4.0.0</version>
+ <required>false</required>
+ <description>Local configuration information.</description>
+ <association>
+ <type>Local</type>
+ </association>
+ </field>
+ <!-- @todo long run 4.0.0 may not need properties, with the parameters being specified
+ for the plugin directly -->
+ <field>
+ <name>properties</name>
+ <version>3.0.0+</version>
+ <description>
+ Properties about the project. This allows you to configure your project and the
+ plugins it uses.
+ </description>
+ <type>Properties</type>
+ <association mapStyle="inline">
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>preGoals</name>
+ <version>4.0.0</version>
+ <description>Set of decorator(s) injected before the target goal(s).</description>
+ <association>
+ <type>PreGoal</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>postGoals</name>
+ <version>4.0.0</version>
+ <description>Set of decorator(s) injected after the target goal(s).</description>
+ <association>
+ <type>PostGoal</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
<!-- We need this because we can't use package as a field name. -->
+ <!-- @todo this means it is undocumented. Should we instead provide an optional field name so package can be mapped to the field packageName? -->
<codeSegments>
<codeSegment>
+ <version>3.0.0</version>
+ <code>
+ public void setVersion(String version)
+ {
+ this.currentVersion = version;
+ }
+
+ public String getVersion()
+ {
+ return currentVersion;
+ }
+ </code>
+ </codeSegment>
+ <codeSegment>
<version>3.0.0+</version>
<code>
private String packageName;
@@ -361,39 +490,12 @@
}
</code>
</codeSegment>
-<!--
- <codeSegment>
- <version>3.0.0</version>
- <code>
- public void setId( String id )
- {
- int i = id.indexOf( "+" );
- int j = id.indexOf( ":" );
-
- if ( i > 0 )
- {
- setGroupId( id.substring( 0, i ) );
- setArtifactId( id.replace( '+', '-' ) );
- }
- else if ( j > 0 )
- {
- setGroupId( id.substring( 0, j ) );
- setArtifactId( id.substring( j + 1 ) );
- }
- else
- {
- setGroupId( id );
- setArtifactId( id );
- }
- }
- </code>
- </codeSegment>
--->
</codeSegments>
</class>
+ <!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
<class>
<name>Branch</name>
- <version>3.0.0</version>
+ <version>3.0.0+</version>
<description>
This element describes each of the branches of the
project. Each branch is described by a
@@ -403,7 +505,8 @@
<fields>
<field>
<name>tag</name>
- <version>3.0.0</version>
+ <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
@@ -412,6 +515,24 @@
</description>
<type>String</type>
</field>
+ <field>
+ <name>description</name>
+ <version>4.0.0</version>
+ <description>
+ A description of the branch and its strategy.
+ </description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>lastMergeTag</name>
+ <version>4.0.0</version>
+ <description>
+ This is the tag in the version control system that was last used
+ to merge from the branch to the current codebase. Future merges
+ should merge only the changes from this tag to the next.
+ </description>
+ <type>String</type>
+ </field>
</fields>
</class>
<class>
@@ -472,12 +593,55 @@
<type>String</type>
</field>
<field>
+ <name>integrationUnitTestSourceDirectory</name>
+ <version>3.0.0+</version>
+ <description>
+ This element specifies a directory containing integration test
+ sources of the project.
+ </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. Each source modification is described by a
+ <code>sourceModification</code> element, which is then described by
+ additional elements (described below). These modifications are used
+ to exclude or include various source depending on the environment
+ the build is running in.
+ </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>
- <type>UnitTest</type>
<defaultValue>new UnitTest()</defaultValue>
+ <association>
+ <type>UnitTest</type>
+ </association>
+ </field>
+ <field>
+ <name>resources</name>
+ <version>3.0.0+</version>
+ <description>
+ This element describes all of the resources associated with a project or unit tests.
+ Each resource is described by a resource element, which is then described by additional
+ elements (described
+ <a href="#resource">below</a>). These resources are used to
+ complete the jar file or to run unit test.
+ </description>
+ <association>
+ <type>Resource</type>
+ <multiplicity>*</multiplicity>
+ </association>
</field>
<field>
<name>directory</name>
@@ -496,6 +660,16 @@
<type>String</type>
</field>
<field>
+ <name>finalName</name>
+ <version>4.0.0</version>
+ <description>
+ The filename (including an extension, but with no path information) that the produced artifact
+ will be called. The default value is artifactId-version.extension (where extension is derived from
+ type).
+ </description>
+ <type>String</type>
+ </field>
+ <field>
<name>testOutput</name>
<version>4.0.0</version>
<description>
@@ -504,36 +678,6 @@
<type>String</type>
</field>
</fields>
- <associations>
- <association>
- <name>sourceModifications</name>
- <version>3.0.0+</version>
- <!--
- <required>true</required>
- -->
- <description>
- This element describes all of the sourceModifications associated with a
- project. Each source modification is described by a
- <code>sourceModification</code> element, which is then described by
- additional elements (described below). These modifications are used
- to exclude or include various source depending on the environment
- the build is running in.
- </description>
- <to>SourceModification</to>
- </association>
- <association>
- <name>resources</name>
- <version>3.0.0+</version>
- <description>
- This element describes all of the resources associated with a project or unit tests.
- Each resource is described by a resource element, which is then described by additional
- elements (described
- <a href="#resource">below</a>). These resources are used to
- complete the jar file or to run unit test.
- </description>
- <to>Resource</to>
- </association>
- </associations>
</class>
<class>
<name>CiManagement</name>
@@ -588,16 +732,6 @@
<type>String</type>
</field>
<field>
- <name>timezone</name>
- <version>3.0.0+</version>
- <description>
- The timezone the contributor is in. This is a number in the range -14 to 14.
- </description>
- <type>String</type>
- </field>
- </fields>
- <associations>
- <association>
<name>roles</name>
<version>3.0.0+</version>
<description>
@@ -606,9 +740,20 @@
<code>role</code> element, the body of which is a
role name.
</description>
- <to>String</to>
- </association>
- </associations>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
+ <name>timezone</name>
+ <version>3.0.0+</version>
+ <description>
+ The timezone the contributor is in. This is a number in the range -14 to 14.
+ </description>
+ <type>String</type>
+ </field>
+ </fields>
</class>
<class>
<name>Dependency</name>
@@ -619,7 +764,7 @@
<version>3.0.0</version>
<required>true</required>
<description>
- The id of the dependency.
+ The id of the project.
</description>
<type>String</type>
</field>
@@ -686,10 +831,7 @@
<type>String</type>
<defaultValue>jar</defaultValue>
</field>
- </fields>
- <associations>
-<!-- Trygve: Properties is a TODO in modello
- <association>
+ <field>
<name>properties</name>
<version>3.0.0+</version>
<description>
@@ -700,28 +842,161 @@
in
<code>WEB-INF/lib</code>. For example syntax, check the war plugin docs.
</description>
- <to>java.util.Properties</to>
- </association>
--->
- </associations>
+ <type>Properties</type>
+ <association mapStyle="inline">
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
<codeSegments>
<codeSegment>
+ <version>3.0.0+</version>
+ <code>
+ public String toString()
+ {
+ return groupId + "/" + type + "s:" + artifactId + "-" + version;
+ }
+ </code>
+ </codeSegment>
+ <codeSegment>
<version>4.0.0</version>
<code>
public String getId()
{
return groupId + ":" + artifactId + ":" + type + ":" + version;
}
+ </code>
+ </codeSegment>
+ <codeSegment>
+ <version>3.0.0</version>
+ <code><![CDATA[
+ public String getKey()
+ {
+ return getId() + ":" + getType();
+ }
- public String toString()
+ public String getArtifactDirectory()
{
- return groupId + "/" + type + "s:" + artifactId + "-" + version;
+ return getGroupId();
}
- </code>
+
+ public String getArtifact()
+ {
+ // If the jar name has been explicty set then use that. This
+ // is when the <jar/> element is explicity used in the POM.
+ if ( getJar() != null)
+ {
+ return getJar();
+ }
+
+ return getArtifactId() + "-" + getVersion() + "." + getExtension();
+ }
+
+ public String getExtension()
+ {
+ if ("ejb".equals(getType()) || "plugin".equals(getType()) || "aspect".equals(getType())) return "jar";
+ return getType();
+ }
+
+ public boolean isAddedToClasspath()
+ {
+ return ("jar".equals(getType()) || "ejb".equals(getType()));
+ }
+
+ public boolean isPlugin()
+ {
+ return ("plugin".equals(getType()));
+ }
+
+ public String getProperty( String property )
+ {
+ return getProperties().getProperty( property );
+ }
+
+ 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() );
+ }
+
+ public int hashCode()
+ {
+ return getId().hashCode();
+ }
+ ]]></code>
</codeSegment>
</codeSegments>
</class>
<class>
+ <name>Override</name>
+ <version>4.0.0</version>
+ <fields>
+ <field>
+ <name>groupId</name>
+ <version>4.0.0</version>
+ <required>true</required>
+ <description>
+ The project group that produced the dependency, e.g.
+ <code>geronimo</code>.
+ </description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>artifactId</name>
+ <version>4.0.0</version>
+ <required>true</required>
+ <description>
+ The unique id for an artifact produced by the project group, e.g.
+ <code>germonimo-jms</code>
+ </description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>type</name>
+ <version>4.0.0</version>
+ <description>
+ Other known recognised dependency types are:
+ <code>ejb</code> and
+ <code>plugin</code>.
+ </description>
+ <type>String</type>
+ <defaultValue>jar</defaultValue>
+ </field>
+ <!-- @todo this doesn't consider forced-version overrides, and do we need the version to override? -->
+ <field>
+ <name>version</name>
+ <version>4.0.0</version>
+ <required>true</required>
+ <description>
+ The version of the dependency., e.g.
+ <code>3.2.1</code>
+ </description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>file</name>
+ <version>4.0.0</version>
+ <required>true</required>
+ <description>
+ The filename of the dependency that will be used to override the one from the repository, e.g.
+ <code>lib/non-distributable-code-1.3.jar</code>
+ </description>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
<superClass>Contributor</superClass>
<name>Developer</name>
<version>3.0.0+</version>
@@ -763,13 +1038,17 @@
<name>repository</name>
<version>4.0.0</version>
<description>Information needed for deploying to remote repository artifacts generated by the project</description>
- <type>Repository</type>
+ <association>
+ <type>Repository</type>
+ </association>
</field>
<field>
<name>site</name>
<description>Information needed for deploying website files of the project.</description>
<version>4.0.0</version>
- <type>Site</type>
+ <association>
+ <type>Site</type>
+ </association>
</field>
</fields>
</class>
@@ -851,10 +1130,31 @@
<type>String</type>
</field>
<field>
+ <name>post</name>
+ <version>4.0.0</version>
+ <description>
+ 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 archive.</description>
<type>String</type>
+ <comment>This should probably be removed from 4.0.0 before alpha-1</comment>
+ </field>
+ <field>
+ <name>archives</name>
+ <version>4.0.0</version>
+ <description>The link to a URL where you can browse the archive.</description>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
</field>
</fields>
<comment>
@@ -917,23 +1217,30 @@
<class>
<name>PatternSet</name>
<version>3.0.0+</version>
- <associations>
- <association>
+ <fields>
+ <field>
<name>includes</name>
<version>3.0.0+</version>
<description>the description</description>
- <to>String</to>
- </association>
- <association>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ <field>
<name>excludes</name>
<version>3.0.0+</version>
<description>the description</description>
- <to>String</to>
- </association>
- </associations>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
<codeSegments>
<codeSegment>
<version>3.0.0+</version>
+ <!-- @todo: should these be built somewhere so they are only created once, and can be modified? -->
<code>
public List getDefaultExcludes()
{
@@ -1058,6 +1365,15 @@
<description>The URL to the project's browsable CVS repository.</description>
<type>String</type>
</field>
+ <field>
+ <name>branches</name>
+ <version>4.0.0</version>
+ <description>The SCM branches that are currently active for the project. These should only be those forked from the current branch or trunk that are intended to be used.</description>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
</fields>
</class>
<class>
@@ -1090,7 +1406,7 @@
<name>filtering</name>
<version>3.0.0+</version>
<description>Describe if resources are filtered or not.</description>
- <type>String</type>
+ <type>boolean</type>
<defaultValue>false</defaultValue>
</field>
</fields>
@@ -1124,14 +1440,17 @@
<name>UnitTest</name>
<version>3.0.0+</version>
<superClass>PatternSet</superClass>
- <associations>
- <association>
+ <fields>
+ <field>
<name>resources</name>
<version>3.0.0+</version>
<description>the description</description>
- <to>Resource</to>
- </association>
- </associations>
+ <association>
+ <type>Resource</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
</class>
<class>
<name>Version</name>
@@ -1268,6 +1587,73 @@
</field>
</fields>
</class>
+ <class>
+ <name>GoalDecorator</name>
+ <version>4.0.0</version>
+ <fields>
+ <field>
+ <name>name</name>
+ <version>4.0.0</version>
+ <description>The target goal which should be decorated.</description>
+ <type>String</type>
+ </field>
+ <field>
+ <name>attain</name>
+ <version>4.0.0</version>
+ <description>
+ The goal which should be injected into the execution chain.
+ </description>
+ <type>String</type>
+ </field>
+ </fields>
+ </class>
+ <class>
+ <superClass>GoalDecorator</superClass>
+ <name>PreGoal</name>
+ <version>4.0.0</version>
+ <fields></fields>
+ </class>
+ <class>
+ <superClass>GoalDecorator</superClass>
+ <name>PostGoal</name>
+ <version>4.0.0</version>
+ <fields></fields>
+ </class>
+ <!-- @todo should modello take a parameter/code segment that will forbid the
+ specification of this in a project other than the user pom? -->
+ <class>
+ <name>Local</name>
+ <version>4.0.0</version>
+ <description>
+ Local contains the information that is specific to the user's
+ local environment. This would only be expected in a user or site pom,
+ not a project POM.
+ </description>
+ <fields>
+ <!-- @todo should local repository actually be part of the <repositories/> element, or be of repository type? -->
+ <field>
+ <name>repository</name>
+ <version>4.0.0</version>
+ <description>
+ The local repository that contains downloaded artifacts.
+ </description>
+ <type>String</type>
+ <!-- @todo systemProperty tag (maven.repo.local value) should be supported by modello -->
+ </field>
+ <field>
+ <name>online</name>
+ <version>4.0.0</version>
+ <description>
+ Whether to run the build online. If not, no remote repositories are consulted for plugins or dependencies
+ and this configuration may be used by other plugins requiring online access.
+ </description>
+ <type>boolean</type>
+ <defaultValue>true</defaultValue>
+ <!-- @todo systemProperty tag (maven.online value) should be supported by modello -->
+ </field>
+ </fields>
+ </class>
</classes>
</model>
+