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]