1851 lines
67 KiB
Diff
1851 lines
67 KiB
Diff
From c6747419bf16f55b92a2d0eec2e87da09d9a1507 Mon Sep 17 00:00:00 2001
|
|
From: Tamas Cservenak <tamas@cservenak.net>
|
|
Date: Wed, 29 May 2024 18:51:31 +0200
|
|
Subject: [PATCH 1/3] Upgrade to SnakeYaml 2.2 (#439)
|
|
|
|
Upgrade to SnakeYaml 2.2
|
|
---
|
|
.../modello-plugin-snakeyaml/pom.xml | 10 +-
|
|
.../snakeyaml/SnakeYamlReaderGenerator.java | 16 +-
|
|
.../snakeyaml/SnakeYamlWriterGenerator.java | 4 +-
|
|
.../snakeyaml/SnakeYamlGeneratorTest.java | 50 +
|
|
.../src/test/resources/models/maven.mdo | 1668 +++++++++++++++++
|
|
5 files changed, 1744 insertions(+), 4 deletions(-)
|
|
create mode 100644 modello-plugins/modello-plugin-snakeyaml/src/test/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlGeneratorTest.java
|
|
create mode 100644 modello-plugins/modello-plugin-snakeyaml/src/test/resources/models/maven.mdo
|
|
|
|
diff --git a/modello-plugins/modello-plugin-snakeyaml/pom.xml b/modello-plugins/modello-plugin-snakeyaml/pom.xml
|
|
index 656a26fa..418654cc 100644
|
|
--- a/modello-plugins/modello-plugin-snakeyaml/pom.xml
|
|
+++ b/modello-plugins/modello-plugin-snakeyaml/pom.xml
|
|
@@ -24,7 +24,15 @@
|
|
<dependency>
|
|
<groupId>org.yaml</groupId>
|
|
<artifactId>snakeyaml</artifactId>
|
|
- <version>1.33</version>
|
|
+ <version>2.2</version>
|
|
</dependency>
|
|
</dependencies>
|
|
+
|
|
+ <build>
|
|
+ <plugins>
|
|
+ <plugin>
|
|
+ <artifactId>maven-dependency-plugin</artifactId>
|
|
+ </plugin>
|
|
+ </plugins>
|
|
+ </build>
|
|
</project>
|
|
diff --git a/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlReaderGenerator.java b/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlReaderGenerator.java
|
|
index d53a40a5..532afe6e 100644
|
|
--- a/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlReaderGenerator.java
|
|
+++ b/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlReaderGenerator.java
|
|
@@ -210,7 +210,7 @@ public class SnakeYamlReaderGenerator extends AbstractSnakeYamlGenerator {
|
|
|
|
sc = unmarshall.getSourceCode();
|
|
|
|
- sc.add("Parser parser = new ParserImpl( new StreamReader( reader ) );");
|
|
+ sc.add("Parser parser = new ParserImpl( new StreamReader( reader ), new LoaderOptions() );");
|
|
|
|
sc.add("return " + readerMethodName + "( parser, strict );");
|
|
|
|
@@ -288,6 +288,7 @@ public class SnakeYamlReaderGenerator extends AbstractSnakeYamlGenerator {
|
|
jClass.addImport("org.yaml.snakeyaml.parser.ParserException");
|
|
jClass.addImport("org.yaml.snakeyaml.parser.ParserImpl");
|
|
jClass.addImport("org.yaml.snakeyaml.reader.StreamReader");
|
|
+ jClass.addImport("org.yaml.snakeyaml.LoaderOptions");
|
|
jClass.addImport("java.io.InputStream");
|
|
jClass.addImport("java.io.InputStreamReader");
|
|
jClass.addImport("java.io.IOException");
|
|
@@ -820,6 +821,8 @@ public class SnakeYamlReaderGenerator extends AbstractSnakeYamlGenerator {
|
|
|
|
sc = method.getSourceCode();
|
|
|
|
+ sc.add("if (!(event instanceof ScalarEvent))");
|
|
+ sc.addIndented("return false;");
|
|
sc.add("String currentName = ( (ScalarEvent) event ).getValue();");
|
|
|
|
sc.add("");
|
|
@@ -855,9 +858,17 @@ public class SnakeYamlReaderGenerator extends AbstractSnakeYamlGenerator {
|
|
|
|
sc.add("if ( strict )");
|
|
|
|
+ sc.add("{");
|
|
+ sc.indent();
|
|
+ sc.add("if ( event instanceof ScalarEvent )");
|
|
sc.add("{");
|
|
sc.addIndented(
|
|
"throw new ParserException( \"Unrecognised tag: '\" + ( (ScalarEvent) event ).getValue() + \"'\", event.getStartMark(), \"\", null );");
|
|
+ sc.add("} else {");
|
|
+ sc.addIndented(
|
|
+ "return ; // throw new ParserException( \"Unrecognised : '\" + event.getEventId() + \"'\", event.getStartMark(), \"\", null );");
|
|
+ sc.add("}");
|
|
+ sc.unindent();
|
|
sc.add("}");
|
|
|
|
sc.add("");
|
|
@@ -1041,7 +1052,8 @@ public class SnakeYamlReaderGenerator extends AbstractSnakeYamlGenerator {
|
|
return;
|
|
}
|
|
|
|
- String constr = "new " + locationTracker.getName() + "( parser.getLineNumber(), parser.getColumnNumber()";
|
|
+ String constr = "new " + locationTracker.getName()
|
|
+ + "( parser.peekEvent().getStartMark().getLine(), parser.peekEvent().getStartMark().getColumn()";
|
|
constr += (sourceTracker != null) ? ", " + SOURCE_PARAM : "";
|
|
constr += " )";
|
|
|
|
diff --git a/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlWriterGenerator.java b/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlWriterGenerator.java
|
|
index cd1a5f9d..00da62ff 100644
|
|
--- a/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlWriterGenerator.java
|
|
+++ b/modello-plugins/modello-plugin-snakeyaml/src/main/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlWriterGenerator.java
|
|
@@ -74,6 +74,7 @@ public class SnakeYamlWriterGenerator extends AbstractSnakeYamlGenerator {
|
|
|
|
JClass jClass = new JClass(packageName + '.' + marshallerName);
|
|
initHeader(jClass);
|
|
+ suppressAllWarnings(objectModel, jClass);
|
|
|
|
jClass.addImport("org.yaml.snakeyaml.DumperOptions");
|
|
jClass.addImport("org.yaml.snakeyaml.DumperOptions.Version");
|
|
@@ -290,7 +291,8 @@ public class SnakeYamlWriterGenerator extends AbstractSnakeYamlGenerator {
|
|
sc.indent();
|
|
|
|
writeScalarKey(sc, fieldTagName);
|
|
- sc.add("generator.emit( new SequenceStartEvent( null, null, true, null, null, false ) );");
|
|
+ sc.add(
|
|
+ "generator.emit( new SequenceStartEvent( null, null, true, null, null, FlowStyle.AUTO ) );");
|
|
|
|
sc.add("for ( " + toType + " o : " + value + " )");
|
|
|
|
diff --git a/modello-plugins/modello-plugin-snakeyaml/src/test/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlGeneratorTest.java b/modello-plugins/modello-plugin-snakeyaml/src/test/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlGeneratorTest.java
|
|
new file mode 100644
|
|
index 00000000..a9bb50fb
|
|
--- /dev/null
|
|
+++ b/modello-plugins/modello-plugin-snakeyaml/src/test/java/org/codehaus/modello/plugin/snakeyaml/SnakeYamlGeneratorTest.java
|
|
@@ -0,0 +1,50 @@
|
|
+package org.codehaus.modello.plugin.snakeyaml;
|
|
+
|
|
+/*
|
|
+ * Copyright (c) 2004, Codehaus.org
|
|
+ *
|
|
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
+ * this software and associated documentation files (the "Software"), to deal in
|
|
+ * the Software without restriction, including without limitation the rights to
|
|
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
+ * of the Software, and to permit persons to whom the Software is furnished to do
|
|
+ * so, subject to the following conditions:
|
|
+ *
|
|
+ * The above copyright notice and this permission notice shall be included in all
|
|
+ * copies or substantial portions of the Software.
|
|
+ *
|
|
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
+ * SOFTWARE.
|
|
+ */
|
|
+
|
|
+import java.util.Map;
|
|
+
|
|
+import org.codehaus.modello.AbstractModelloJavaGeneratorTest;
|
|
+import org.codehaus.modello.core.ModelloCore;
|
|
+import org.codehaus.modello.model.Model;
|
|
+
|
|
+public class SnakeYamlGeneratorTest extends AbstractModelloJavaGeneratorTest {
|
|
+ public SnakeYamlGeneratorTest() {
|
|
+ super("snakeyaml");
|
|
+ }
|
|
+
|
|
+ public void testYamlGenerator() throws Throwable {
|
|
+ ModelloCore modello = (ModelloCore) lookup(ModelloCore.ROLE);
|
|
+
|
|
+ Model model = modello.loadModel(getXmlResourceReader("/models/maven.mdo"));
|
|
+
|
|
+ Map<String, Object> parameters = getModelloParameters("4.0.0");
|
|
+
|
|
+ modello.generate(model, "java", parameters);
|
|
+ modello.generate(model, "snakeyaml-writer", parameters);
|
|
+ modello.generate(model, "snakeyaml-reader", parameters);
|
|
+
|
|
+ addDependency("org.yaml", "snakeyaml");
|
|
+ compileGeneratedSources();
|
|
+ }
|
|
+}
|
|
diff --git a/modello-plugins/modello-plugin-snakeyaml/src/test/resources/models/maven.mdo b/modello-plugins/modello-plugin-snakeyaml/src/test/resources/models/maven.mdo
|
|
new file mode 100644
|
|
index 00000000..4ebfc768
|
|
--- /dev/null
|
|
+++ b/modello-plugins/modello-plugin-snakeyaml/src/test/resources/models/maven.mdo
|
|
@@ -0,0 +1,1668 @@
|
|
+<!--
|
|
+ |
|
|
+ | 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.
|
|
+ |
|
|
+ | o versioning of individual elements on the class level and the field level so that
|
|
+ | different versions of the model can be output.
|
|
+ |
|
|
+ | o annotation mechanism so that changes to the model can be accurately tracked.
|
|
+ |
|
|
+ -->
|
|
+<model>
|
|
+ <id>maven</id>
|
|
+ <name>Maven</name>
|
|
+ <description><![CDATA[Maven's model for Java project.]]></description>
|
|
+ <defaults>
|
|
+ <default>
|
|
+ <key>package</key>
|
|
+ <value>org.codehaus.modello.test.model</value>
|
|
+ </default>
|
|
+ </defaults>
|
|
+ <classes>
|
|
+ <class rootElement="true">
|
|
+ <name>Model</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <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 project.xml file.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>parent</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[Specified which project to extend.]]></description>
|
|
+ <association>
|
|
+ <type>Parent</type>
|
|
+ </association>
|
|
+ <comment></comment>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>modelVersion</name>
|
|
+ <version>4.0.0</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[The version of this model you are using.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>pomVersion</name>
|
|
+ <version>3.0.0</version>
|
|
+ <required>true</required>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>id</name>
|
|
+ <version>3.0.0</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ The id of the project.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>groupId</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[The primary grouping for your project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>artifactId</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[The identifier used when generating the artifact for your project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>type</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The type of artifact this project produces.]]></description>
|
|
+ <type>String</type>
|
|
+ <defaultValue>jar</defaultValue>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[Human readable name of the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>currentVersion</name>
|
|
+ <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><![CDATA[The current version of the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>shortDescription</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[An abbreviated description of the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>description</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ A detailed description of the project. This element is
|
|
+ usually specified as CDATA to enable the use of HTML tags
|
|
+ within the description. This description is used to
|
|
+ generate the
|
|
+ <a href="plugins/site/index.html">front page</a>
|
|
+ of the project's web site.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The URL where the project can be found.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>logo</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The logo for the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>issueTrackingUrl</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description>
|
|
+ <![CDATA[The URL where the issue tracking system used by the project can be found.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>issueManagement</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The project's issue management information.]]></description>
|
|
+ <association>
|
|
+ <type>IssueManagement</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>ciManagement</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The project's continuous integration management information.]]></description>
|
|
+ <association>
|
|
+ <type>CiManagement</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>inceptionYear</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[The year the project started.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>gumpRepositoryId</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[Hint for the gump continuous integration build system.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>siteAddress</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[The FQDN of the host where the project's site is uploaded.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>siteDirectory</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description>
|
|
+ <![CDATA[The directory on the site host where site documentation is placed when the site is uploaded.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>distributionSite</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[The FQDN of the host where the project's artifacts are uploaded.]]></description>
|
|
+ <type>String</type>
|
|
+ <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>
|
|
+ <![CDATA[The directory on the distribution host where artifacts are placed when uploaded.]]></description>
|
|
+ <type>String</type>
|
|
+ <comment>This naming is inconsistent and distribution should occur from a repository structure.</comment>
|
|
+ </field>
|
|
+
|
|
+ <field>
|
|
+ <name>repositories</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The lists of the remote repositories]]></description>
|
|
+ <association>
|
|
+ <type>Repository</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>pluginRepositories</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[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>mailingLists</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The mailing lists for the project.]]></description>
|
|
+ <association>
|
|
+ <type>MailingList</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>developers</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This element describes all of the developers associated with a
|
|
+ project. Each developer is described by a
|
|
+ <code>developer</code> element, which is then described by
|
|
+ additional elements (described below). The auto-generated site
|
|
+ documentation references this information.
|
|
+ ]]></description>
|
|
+ <association>
|
|
+ <type>Developer</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>contributors</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This element describes all of the contributors associated with a
|
|
+ project who are not developers. Each contributor is described by a
|
|
+ <code>contributor</code> element, which is then describe by additional
|
|
+ elements (described below). The auto-generated site documentation
|
|
+ references this information.
|
|
+ ]]></description>
|
|
+ <association>
|
|
+ <type>Contributor</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>dependencies</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This element describes all of the dependencies associated with a
|
|
+ project. Each dependency is described by a
|
|
+ <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>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>overrides</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ This element describes all of the licenses for this project. Each license is described by a
|
|
+ <code>license</code> element, which is then describe by additional
|
|
+ elements (described below). The auto-generated site documentation
|
|
+ references this information. Projects should only list the license(s) that
|
|
+ applies to the project and not the licenses that apply to dependencies.
|
|
+ ]]></description>
|
|
+ <association>
|
|
+ <type>License</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>versions</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[The released versions of the project.]]></description>
|
|
+ <association>
|
|
+ <type>Version</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>branches</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[The SCM branches create for the project.]]></description>
|
|
+ <association>
|
|
+ <type>Branch</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>packageGroups</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[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>scm</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[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><![CDATA[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><![CDATA[Information required to build the project.]]></description>
|
|
+ <association>
|
|
+ <type>Build</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>organization</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ 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><![CDATA[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><![CDATA[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><![CDATA[
|
|
+ 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><![CDATA[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><![CDATA[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;
|
|
+
|
|
+ public void setPackage(String packageName)
|
|
+ {
|
|
+ this.packageName = packageName;
|
|
+ }
|
|
+
|
|
+ public String getPackage()
|
|
+ {
|
|
+ return packageName;
|
|
+ }
|
|
+ </code>
|
|
+ </codeSegment>
|
|
+ <codeSegment>
|
|
+ <version>4.0.0</version>
|
|
+ <code>
|
|
+ public String getId()
|
|
+ {
|
|
+ StringBuilder id = new StringBuilder();
|
|
+
|
|
+ id.append( getGroupId() );
|
|
+ id.append( ":" );
|
|
+ id.append( getArtifactId() );
|
|
+ id.append( ":" );
|
|
+ id.append( getType() );
|
|
+ id.append( ":" );
|
|
+ id.append( getVersion() );
|
|
+
|
|
+ return id.toString();
|
|
+ }
|
|
+ </code>
|
|
+ </codeSegment>
|
|
+ </codeSegments>
|
|
+ </class>
|
|
+ <!-- @todo: is any of this too CVS specific? Investigate other SCMs -->
|
|
+ <class>
|
|
+ <name>Branch</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This element describes each of the branches of the
|
|
+ project. Each branch is described by a
|
|
+ <code>tag</code>
|
|
+ element
|
|
+ ]]></description>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>tag</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ 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>
|
|
+ <field>
|
|
+ <name>description</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ A description of the branch and its strategy.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>lastMergeTag</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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>
|
|
+ <name>Build</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>nagEmailAddress</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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. Currently this is used by the
|
|
+ <a href="build-file.html#maven:gump-descriptor">maven:gump-descriptor</a>
|
|
+ target.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ <comment>This should be moved out of the build section. Vestigal for use with Gump.</comment>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>sourceDirectory</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ 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>unitTestSourceDirectory</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ 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 unit tests must use the JUnit test framework.
|
|
+ The path given is relative to the project descriptor.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>aspectSourceDirectory</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ 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 (see the
|
|
+ <a
|
|
+ href="plugins/aspectj/goals.html">Aspectj goals</a> document).
|
|
+ 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 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><![CDATA[
|
|
+ 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><![CDATA[This element specifies unit tests associated with the project.]]></description>
|
|
+ <defaultValue>new UnitTest()</defaultValue>
|
|
+ <association>
|
|
+ <type>UnitTest</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>resources</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ 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>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ The directory where all generated by the build is placed.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>output</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ The directory where compiled application classes are placed.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>finalName</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ The directory where compiled test classes are placed.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>CiManagement</name>
|
|
+ <version>4.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>system</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The name of the continuous integration system i.e. Bugzilla]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[Url for the continuous integration system use by the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>nagEmailAddress</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[Email address for the party to be notified on unsuccessful builds.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>Contributor</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The full name of the contributor.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>email</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The email address of the contributor.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The URL for the homepage of the contributor.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>organization</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The organization to which the contributor belongs.]]></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
|
|
+ describe by a
|
|
+ <code>role</code> element, the body of which is a
|
|
+ role name.
|
|
+ ]]></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. This is a number in the range -14 to 14.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>Dependency</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>id</name>
|
|
+ <version>3.0.0</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ The id of the project.
|
|
+ ]]></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>geronimo</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>germonimo-jms</code>
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>version</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <required>true</required>
|
|
+ <description><![CDATA[
|
|
+ The version of the dependency., e.g.
|
|
+ <code>3.2.1</code>
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This url will be provided to the user if the jar file cannot be downloaded
|
|
+ from the central repository.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ <comment>The URL should really be gleaned from a shared database of dependency information.</comment>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>jar</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[Literal name of the artifact.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>artifact</name>
|
|
+ <version>4.0.0+</version>
|
|
+ <description><![CDATA[Literal name of the artifact]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>type</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ Other known recognised dependency types are:
|
|
+ <code>ejb</code> and
|
|
+ <code>plugin</code>.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ <defaultValue>jar</defaultValue>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>properties</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ Properties about the dependency. Various plugins allow you to
|
|
+ <code>mark</code> dependencies with properties. For example the
|
|
+ <a href="plugins/war/index.html">war</a> plugin looks for a
|
|
+ <code>war.bundle</code> property, and if found will include the dependency
|
|
+ in
|
|
+ <code>WEB-INF/lib</code>. For example syntax, check the war plugin docs.
|
|
+ ]]></description>
|
|
+ <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 getArtifactDirectory()
|
|
+ {
|
|
+ return getGroupId();
|
|
+ }
|
|
+
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>id</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The username of the developer.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>IssueManagement</name>
|
|
+ <version>4.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>system</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The name of the issue management system i.e. Bugzilla]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[Url for the issue management system use by the project.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>DistributionManagement</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ This elements describes all that pertains to distribution for a project.
|
|
+ ]]></description>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>repository</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description>
|
|
+ <![CDATA[Information needed for deploying to remote repository artifacts generated by the project]]></description>
|
|
+ <association>
|
|
+ <type>Repository</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>site</name>
|
|
+ <description><![CDATA[Information needed for deploying website files of the project.]]></description>
|
|
+ <version>4.0.0</version>
|
|
+ <association>
|
|
+ <type>Site</type>
|
|
+ </association>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>License</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The full legal name of the license.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[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>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>MailingList</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ This element describes all of the mailing lists associated with
|
|
+ a project. Each mailing list is described by a
|
|
+ <code>mailingList</code> element, which is then described by
|
|
+ additional elements (described below). The auto-generated site
|
|
+ documentation 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>4.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><![CDATA[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><![CDATA[The link to a URL where you can browse the 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>
|
|
+ <name>Organization</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[The full name of the organization.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[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>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>title</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>packages</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>PatternSet</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>includes</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <association>
|
|
+ <type>String</type>
|
|
+ <multiplicity>*</multiplicity>
|
|
+ </association>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>excludes</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <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 java.util.List getDefaultExcludes()
|
|
+ {
|
|
+ java.util.List defaultExcludes = new java.util.ArrayList();
|
|
+ defaultExcludes.add( "**/*~" );
|
|
+ defaultExcludes.add( "**/#*#" );
|
|
+ defaultExcludes.add( "**/.#*" );
|
|
+ defaultExcludes.add( "**/%*%" );
|
|
+ defaultExcludes.add( "**/._*" );
|
|
+
|
|
+ // CVS
|
|
+ defaultExcludes.add( "**/CVS" );
|
|
+ defaultExcludes.add( "**/CVS/**" );
|
|
+ defaultExcludes.add( "**/.cvsignore" );
|
|
+
|
|
+ // SCCS
|
|
+ defaultExcludes.add( "**/SCCS" );
|
|
+ defaultExcludes.add( "**/SCCS/**" );
|
|
+
|
|
+ // Visual SourceSafe
|
|
+ defaultExcludes.add( "**/vssver.scc" );
|
|
+
|
|
+ // Subversion
|
|
+ defaultExcludes.add( "**/.svn" );
|
|
+ defaultExcludes.add( "**/.svn/**" );
|
|
+
|
|
+ // Mac
|
|
+ defaultExcludes.add( "**/.DS_Store" );
|
|
+ return defaultExcludes;
|
|
+ }
|
|
+ </code>
|
|
+ </codeSegment>
|
|
+ </codeSegments>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>Parent</name>
|
|
+ <version>4.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>artifactId</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The artifact id of the project to extend.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>groupId</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The group id of the project to extend.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>version</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The versi>on of the project to extend.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>Repository</name>
|
|
+ <version>3.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>connection</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ The source configuration management system URL
|
|
+ that describes the repository and how to connect to the
|
|
+ repository. This is used by Maven when
|
|
+ <a
|
|
+ href="plugins/dist/index.html">building versions</a>
|
|
+ from specific ID.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>developerConnection</name>
|
|
+ <version>3.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ Just like connection, 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><![CDATA[The URL to the project's browsable CVS repository.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>Scm</name>
|
|
+ <version>4.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>connection</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ The source configuration management system URL
|
|
+ that describes the repository and how to connect to the
|
|
+ repository. This is used by Maven when
|
|
+ <a
|
|
+ href="plugins/dist/index.html">building versions</a>
|
|
+ from specific ID.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>developerConnection</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ Just like connection, but for developers, i.e. this scm connection
|
|
+ will not be read only.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The URL to the project's browsable CVS repository.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>branches</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description>
|
|
+ <![CDATA[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>
|
|
+ <name>Resource</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <superClass>PatternSet</superClass>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>directory</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ Describe the directory where the resource is stored.
|
|
+ The path may be absolute, or relative to the project.xml file.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>targetPath</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ Describe the resource target path. For example, if you want that resource
|
|
+ appear into a specific package (
|
|
+ <code>org.apache.maven.messages</code>), you must specify this
|
|
+ element with this value :
|
|
+ <code>org/apache/maven/messages</code>
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>filtering</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[Describe if resources are filtered or not.]]></description>
|
|
+ <type>boolean</type>
|
|
+ <defaultValue>false</defaultValue>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>SourceModification</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <superClass>Resource</superClass>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>className</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[
|
|
+ If the class with this name can
|
|
+ <strong>not</strong> be
|
|
+ loaded, then the includes and excludes specified below
|
|
+ will be applied to the contents of the
|
|
+ <a href="#sourceDirectory">sourceDirectory</a>
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>property</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>UnitTest</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <superClass>PatternSet</superClass>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>resources</name>
|
|
+ <version>3.0.0+</version>
|
|
+ <description><![CDATA[the description]]></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><![CDATA[
|
|
+ The name given in the version control system (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><![CDATA[
|
|
+ A unique identifier for a version. This ID is
|
|
+ used to specify the version that
|
|
+ <a href="plugins/dist/index.html">
|
|
+ <code>maven:dist</code>
|
|
+ </a> builds.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+
|
|
+ <class>
|
|
+ <name>Repository</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ Repository contains the information needed
|
|
+ for establishing connections with remote repoistory
|
|
+ ]]></description>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>id</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ A unique identifier for a repository.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ Human readable name of the repository
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>url</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ The url of of the repository
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ <codeSegments>
|
|
+ <codeSegment>
|
|
+ <version>4.0.0</version>
|
|
+ <code>
|
|
+ public boolean equals( Object obj )
|
|
+ {
|
|
+ Repository other = ( Repository ) obj;
|
|
+
|
|
+ boolean retValue = false;
|
|
+
|
|
+ if ( id != null )
|
|
+ {
|
|
+ retValue = id.equals( other.id );
|
|
+ }
|
|
+
|
|
+ return retValue;
|
|
+ }
|
|
+ </code>
|
|
+ </codeSegment>
|
|
+ </codeSegments>
|
|
+ </class>
|
|
+ <!--@todo find better solution for managment of site deployments -->
|
|
+ <class>
|
|
+ <name>Site</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ Site 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 locataion.
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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 of the location where website is deployed
|
|
+ ]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ </fields>
|
|
+ </class>
|
|
+ <class>
|
|
+ <name>GoalDecorator</name>
|
|
+ <version>4.0.0</version>
|
|
+ <fields>
|
|
+ <field>
|
|
+ <name>name</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[The target goal which should be decorated.]]></description>
|
|
+ <type>String</type>
|
|
+ </field>
|
|
+ <field>
|
|
+ <name>attain</name>
|
|
+ <version>4.0.0</version>
|
|
+ <description><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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><![CDATA[
|
|
+ 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>
|
|
--
|
|
2.45.1
|
|
|