Skip to content

Commit

Permalink
Clean mdo schemas (#1365)
Browse files Browse the repository at this point in the history
* fix namespace location
* remove unneeded CDATA
* code formatting
* use {@code xxx}
* generate location tracking classes
* add location tracking to toolchain model
* Fix javadoc
  • Loading branch information
gnodet authored Feb 7, 2024
1 parent c813320 commit c88afd4
Show file tree
Hide file tree
Showing 16 changed files with 480 additions and 899 deletions.
601 changes: 194 additions & 407 deletions api/maven-api-model/src/main/mdo/maven.mdo

Large diffs are not rendered by default.

14 changes: 6 additions & 8 deletions api/maven-api-plugin/src/main/mdo/lifecycle.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,20 @@ under the License.
-->

<model xmlns="http://codehaus-plexus.github.io/MODELLO/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 http://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd"
xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/2.0.0 https://codehaus-plexus.github.io/modello/xsd/modello-2.0.0.xsd"
xml.namespace="http://maven.apache.org/LIFECYCLE/${version}"
xml.schemaLocation="http://maven.apache.org/xsd/lifecycle-${version}.xsd">
<id>lifecycle</id>
<name>Lifecycle</name>
<description><![CDATA[
<description>
Configuration of custom lifecycle mappings for the plugin, as generally stored in
<code>META-INF/maven/lifecycle.xml</code> in a plugin's jar artifact.
]]></description>
{@code META-INF/maven/lifecycle.xml} in a plugin's jar artifact.
</description>
<classes>
<class rootElement="true" xml.tagName="lifecycles" xsd.compositor="sequence">
<name>LifecycleConfiguration</name>
<version>1.0.0</version>
<description><![CDATA[Root element of the <code>lifecycle.xml</code> file.]]></description>
<description>Root element of the {@code lifecycle.xml} file.</description>
<fields>
<field>
<name>lifecycles</name>
Expand All @@ -46,9 +46,7 @@ under the License.
<class>
<name>Lifecycle</name>
<version>1.0.0</version>
<description><![CDATA[
A custom lifecycle mapping definition.
]]></description>
<description>A custom lifecycle mapping definition.</description>
<fields>
<field>
<name>id</name>
Expand Down
69 changes: 34 additions & 35 deletions api/maven-api-plugin/src/main/mdo/plugin.mdo
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ under the License.
<id>plugin</id>
<name>PluginDescriptor</name>
<description><![CDATA[
Maven 4 Plugin descriptor, stored in <code>META-INF/maven/plugin.xml</code> in a plugin's jar artifact.
Maven 4 Plugin descriptor, stored in {@code META-INF/maven/plugin.xml} in a plugin's jar artifact.
This descriptor is generally using the information contained in the annotations of the plugin api.
<p>An XSD is available at <a href="https://maven.apache.org/xsd/plugin-2.0.0.xsd">https://maven.apache.org/xsd/plugin-2.0.0.xsd</a></p>
]]></description>
<classes>
<class rootElement="true" xml.tagName="plugin" xdoc.anchorName="plugin">
<name>PluginDescriptor</name>
<version>1.0.0+</version>
<description><![CDATA[Root element of the <code>plugin.xml</code> file.]]></description>
<description>Root element of the {@code plugin.xml} file.</description>
<fields>
<field>
<name>name</name>
Expand Down Expand Up @@ -140,9 +140,7 @@ under the License.
<class xdoc.anchorName="mojo">
<name>MojoDescriptor</name>
<version>1.0.0+</version>
<description><![CDATA[
A Mojo description.
]]></description>
<description>A Mojo description.</description>
<fields>
<field>
<name>goal</name>
Expand Down Expand Up @@ -179,12 +177,12 @@ under the License.
<name>phase</name>
<version>1.0.0+</version>
<type>String</type>
<description><![CDATA[
<description>
Defines a default phase to bind a Mojo execution to if the user does not explicitly set a phase in the POM.
<i>Note:</i> This will not automagically make a Mojo run when the plugin declaration is added
to the POM. It merely enables the user to omit the <code>&lt;phase&gt;</code> element from the
surrounding <code>&lt;execution&gt;</code> element.
]]></description>
&lt;p>&lt;b>Note:&lt;/b> This will not automagically make a Mojo run when the plugin declaration is added
to the POM. It merely enables the user to omit the {@code &lt;phase&gt;} element from the
surrounding {@code &lt;execution&gt;} element.&lt;/p>
</description>
</field>
<field>
<name>executePhase</name>
Expand All @@ -209,48 +207,48 @@ under the License.
<version>1.0.0/1.1.0</version>
<type>String</type>
<defaultValue>runtime</defaultValue>
<description><![CDATA[
<description>
Flags this Mojo as requiring the dependencies in the specified class path to be resolved before it can
execute: <code>compile</code>, <code>runtime</code>, <code>test</code>,
<code>compile+runtime</code> (since Maven 3.0) or <code>runtime+system</code> (since Maven 3.0)
]]></description>
execute: {@code compile}, {@code runtime}, {@code test},
{@code compile+runtime} (since Maven 3.0) or {@code runtime+system} (since Maven 3.0)
</description>
</field>
<field>
<name>dependencyResolution</name>
<version>2.0.0+</version>
<type>String</type>
<defaultValue>runtime</defaultValue>
<description><![CDATA[
<description>
Flags this Mojo as requiring the dependencies in the specified class path to be resolved before it can
execute: <code>compile</code>, <code>runtime</code>, <code>test</code>,
<code>compile+runtime</code> (since Maven 3.0) or <code>runtime+system</code> (since Maven 3.0)
]]></description>
execute: {@code compile}, {@code runtime}, {@code test},
{@code compile+runtime} (since Maven 3.0) or {@code runtime+system} (since Maven 3.0)
</description>
</field>
<field>
<name>requiresDependencyCollection</name>
<version>1.0.0/1.1.0</version>
<type>String</type>
<description><![CDATA[
<description>
Flags this Mojo as requiring information about the dependencies that would make up the specified class
path. As the name suggests, this is similar to requiresDependencyResolution and supports the same values.
The important difference is this will not resolve the files for the dependencies, i.e. the artifacts
associated with a Maven project can lack a file. As such, this annotation is meant for Mojos that only
want to analyze the set of transitive dependencies, in particular during early lifecycle phases where
full dependency resolution might fail due to projects which haven't been built yet.
]]></description>
</description>
</field>
<field>
<name>dependencyCollection</name>
<version>2.0.0+</version>
<type>String</type>
<description><![CDATA[
<description>
Flags this Mojo as requiring information about the dependencies that would make up the specified class
path. As the name suggests, this is similar to requiresDependencyResolution and supports the same values.
The important difference is this will not resolve the files for the dependencies, i.e. the artifacts
associated with a Maven project can lack a file. As such, this annotation is meant for Mojos that only
want to analyze the set of transitive dependencies, in particular during early lifecycle phases where
full dependency resolution might fail due to projects which haven't been built yet.
]]></description>
</description>
</field>
<field>
<name>requiresDirectInvocation</name>
Expand Down Expand Up @@ -325,7 +323,8 @@ under the License.
<description>
Marks this Mojo as being thread-safe, i.e. the Mojo safely supports concurrent execution during parallel
builds. Mojos without this annotation will make Maven output a warning when used during a parallel build
session. Since Maven 3.0.
session.
@since Maven 3.0.
</description>
<defaultValue>false</defaultValue>
</field>
Expand All @@ -347,9 +346,9 @@ under the License.
<name>executionStrategy</name>
<version>1.0.0/1.1.0</version>
<type>String</type>
<description><![CDATA[
Specify the execution strategy: <code>once-per-session</code>, <code>always</code>.
]]></description>
<description>
Specify the execution strategy: {@code once-per-session}, {@code always}.
</description>
<defaultValue>once-per-session</defaultValue>
</field>
<field>
Expand All @@ -362,10 +361,10 @@ under the License.
<name>deprecated</name>
<version>1.0.0+</version>
<type>String</type>
<description><![CDATA[
Description with the reason of Mojo deprecation. Similar to Javadoc <code>@deprecated</code>
<description>
Description with the reason of Mojo deprecation. Similar to Javadoc {@code @deprecated}
This will trigger a warning when a user tries to use a Mojo marked as deprecated.
]]></description>
</description>
</field>
<field>
<name>configurator</name>
Expand Down Expand Up @@ -466,15 +465,15 @@ under the License.
<version>1.0.0+</version>
<type>boolean</type>
<defaultValue>true</defaultValue>
<description><![CDATA[
<description>
Specifies that this parameter can be configured directly by the user (as in the case of POM-specified
configuration). This is useful when you want to force the user to use common POM elements rather than
plugin configurations, as in the case where you want to use the artifact's final name as a parameter. In
this case, you want the user to modify <code>&lt;build&gt;&lt;finalName/&gt;&lt;/build&gt;</code> rather
this case, you want the user to modify {@code &lt;build&gt;&lt;finalName/&gt;&lt;/build&gt;} rather
than specifying a value for finalName directly in the plugin configuration section. It is also useful to
ensure that - for example - a List-typed parameter which expects items of type Artifact doesn't get a List
full of Strings.
]]></description>
</description>
</field>
<field>
<name>description</name>
Expand All @@ -492,10 +491,10 @@ under the License.
<name>deprecated</name>
<version>1.0.0+</version>
<type>String</type>
<description><![CDATA[
Description with the reason of parameter deprecation. Similar to Javadoc <code>@deprecated</code>
<description>
Description with the reason of parameter deprecation. Similar to Javadoc {@code @deprecated}.
This will trigger a warning when a user tries to configure a parameter marked as deprecated.
]]></description>
</description>
</field>
<field>
<name>expression</name>
Expand Down
1 change: 1 addition & 0 deletions api/maven-api-settings/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ under the License.
<params>
<param>packageModelV4=org.apache.maven.api.settings</param>
<param>locationTracking=true</param>
<param>generateLocationClasses=true</param>
</params>
</configuration>
</execution>
Expand Down
Loading

0 comments on commit c88afd4

Please sign in to comment.