Author: jdcasey
Date: Sun Sep 25 08:10:52 2005
New Revision: 291424

URL: http://svn.apache.org/viewcvs?rev=291424&view=rev
Log:
First pass at generic, XML-based metadata model for mojo descriptors. Planning 
to embed this in XML comments within Ant build.xml files, etc.

Added:
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml  
 (with props)
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/
    maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/
    
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/
    
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
   (with props)

Added: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml?rev=291424&view=auto
==============================================================================
--- maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml 
(added)
+++ maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml 
Sun Sep 25 08:10:52 2005
@@ -0,0 +1,43 @@
+<project>
+  <parent>
+    <artifactId>maven</artifactId>
+    <groupId>org.apache.maven</groupId>
+    <version>2.0-beta-2-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven</groupId>
+  <artifactId>maven-plugin-tools-model</artifactId>
+  <name>Maven Plugin Metadata Model</name>
+  <version>2.0-beta-2-SNAPSHOT</version>
+
+  <dependencies>
+    <dependency>
+      <groupId>plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>1.0.3</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <version>RELEASE</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xpp3-writer</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <model>src/main/mdo/mojo-metadata.mdo</model>
+          <version>1.0.0</version>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
URL: 
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo?rev=291424&view=auto
==============================================================================
--- 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
 (added)
+++ 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
 Sun Sep 25 08:10:52 2005
@@ -0,0 +1,264 @@
+<!--
+  <mojoMetadata goal="myGoal" 
+        phase="compile"
+        requiresDependencyResolution="compile"
+        requiresProject="true"
+        requiresReports="true"
+        requiresOnline="true"
+        inheritByDefault="true"
+        requiresDirectInvocation="true"
+        aggregator="true">
+  
+    <execute phase="initialize" lifecycle="mine"/>
+    <components>
+      <component role="stuff" hint="more"/>
+    </components>
+    <parameters>
+      <parameter name="nom" 
+                 property="prop" 
+                 required="true" 
+                 readonly="true" 
+                 expression="${project}" 
+                 type="org.apache.maven.project.MavenProject"
+                 alias="otherProp">
+        <description>Test parameter</description>
+        <deprecated>Use something else</deprecated>
+      </parameter>
+    </parameters>
+    <description>
+      This is a test.
+    </description>
+    <deprecated>Use another mojo</deprecated>
+  </mojoMetadata>
+  -->
+<model>
+  <id>mojo-metadata</id>
+  <name>MojoMetadata</name>
+  <description><![CDATA[
+       Mojo descriptor for embedding in scripts.
+  ]]></description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.plugin.tools.model</value>
+    </default>
+  </defaults>
+  <classes>
+    <class rootElement="true" xml.tagName="mojoMetadata">
+      <name>MojoMetadata</name>
+      <version>1.0.0</version>
+      <description>Root element of the XML-based mojo descriptor 
definition.</description>
+      <fields>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>goal</name>
+          <type>String</type>
+          <required>true</required>
+          <description>The name of the goal used to invoke this 
mojo.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>phase</name>
+          <type>String</type>
+          <description>The phase to which this mojo should be bound by 
default.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>aggregator</name>
+          <type>boolean</type>
+          <description>Whether this mojo operates as an aggregator when the 
reactor is run. That is, only runs once.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>requiresDependencyResolution</name>
+          <type>String</type>
+          <description>The scope of dependencies that this mojo requires to 
have resolved.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>requiresProject</name>
+          <type>boolean</type>
+          <description>Whether this mojo requires a project instance in order 
to execute.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>requiresReports</name>
+          <type>boolean</type>
+          <description>Whether this mojo requires a reports section in the 
POM.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>requiresOnline</name>
+          <type>boolean</type>
+          <description>Whether this mojo requires online mode to operate 
normally.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>inheritByDefault</name>
+          <type>boolean</type>
+          <description>Whether this mojo's configuration should propagate down 
the POM inheritance chain by default.</description>
+        </field>
+        <field xml.attribute="true">
+          <version>1.0.0</version>
+          <name>requiresDirectInvocation</name>
+          <type>boolean</type>
+          <description>If true, this mojo can only be directly invoked (eg. 
specified directly on the command line).</description>
+        </field>
+        <field>
+          <version>1.0.0</version>
+          <name>execution</name>
+          <description>Information about a sub-execution of the Maven 
lifecycle which should be processed.</description>
+          <association>
+            <type>LifecycleExecution</type>
+          </association>
+        </field>
+        <field>
+          <version>1.0.0</version>
+          <name>components</name>
+          <description>List of plexus components required by this 
mojo.</description>
+          <association>
+            <type>Component</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <version>1.0.0</version>
+          <name>parameters</name>
+          <description>List of parameters used by this mojo.</description>
+          <association>
+            <type>Parameter</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0</version>
+          <description>The description for this parameter.</description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>deprecation</name>
+          <version>1.0.0</version>
+          <description>A deprecation message for this mojo 
parameter.</description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>LifecycleExecution</name>
+      <version>1.0.0</version>
+      <description><![CDATA[
+       A sub-process execution of a lifecycle to satisfy the needs of a mojo.
+      ]]></description>
+      <fields>
+        <field xml.attribute="true">
+          <name>lifecycle</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>The name of the overlay to apply to the sub-lifecycle 
before executing it. If specified, this lifecycle overlay definition will be 
bundled with the plugin.</description>
+        </field>
+        <field xml.attribute="true">
+          <name>phase</name>
+          <version>1.0.0</version>
+          <description>The phase in the sub-lifecycle.</description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>Component</name>
+      <version>1.0.0</version>
+      <description><![CDATA[
+       A reference to a plexus component, assumed to be available to the 
plugin container.
+      ]]></description>
+      <fields>
+        <field xml.attribute="true">
+          <name>role</name>
+          <version>1.0.0</version>
+          <description>The component role to lookup.</description>
+          <required>true</required>
+          <type>String</type>
+        </field>
+        <field xml.attribute="true">
+          <name>hint</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>The role-hint to lookup.</description>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>Parameter</name>
+      <version>1.0.0</version>
+      <description><![CDATA[
+       A parameter used by a mojo, and configurable from the command line or 
POM configuration sections.
+      ]]></description>
+      <fields>
+        <field xml.attribute="true">
+          <name>name</name>
+          <version>1.0.0</version>
+          <description>The parameter name</description>
+          <required>true</required>
+          <type>String</type>
+        </field>
+        <field xml.attribute="true">
+          <name>alias</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>An alternate name for the parameter.</description>
+        </field>
+        <field xml.attribute="true">
+          <name>property</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description>The JavaBeans property name to use to configure the 
mojo with this parameter.</description>
+        </field>
+        <field xml.attribute="true">
+          <name>required</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description>Whether this parameter is required.</description>
+        </field>
+        <field xml.attribute="true">
+          <name>readonly</name>
+          <version>1.0.0</version>
+          <type>boolean</type>
+          <description><![CDATA[
+            Whether this parameter can be directly edited. If false, this 
param is either derived from another POM element, or refers to a runtime 
instance of the build system.
+          ]]></description>
+        </field>
+        <field xml.attribute="true">
+          <name>expression</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <description><![CDATA[
+            An expression in the form ${instance.property} for extracting a 
value for this parameter, especially from
+            a runtime instance within the build system. (eg. 
${project.build.directory} references 
+            project.getBuild().getDirectory())
+          ]]></description>
+        </field>
+        <field xml.attribute="true">
+          <name>type</name>
+          <version>1.0.0</version>
+          <type>String</type>
+          <required>true</required>
+          <description><![CDATA[
+            The java type for this parameter.
+          ]]></description>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0</version>
+          <description>The description for this parameter.</description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>deprecation</name>
+          <version>1.0.0</version>
+          <description>A deprecation message for this mojo 
parameter.</description>
+          <type>String</type>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>

Propchange: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/components/trunk/maven-plugin-tools/maven-plugin-tools-model/src/main/mdo/mojo-metadata.mdo
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to