You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2021/10/17 21:21:29 UTC

[maven] 01/01: first step to use Modello for cache-domain

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch MNG-7129_Modello
in repository https://gitbox.apache.org/repos/asf/maven.git

commit 17e99ad93c502b0027d66367c245f648ce8c81fb
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Oct 17 23:21:20 2021 +0200

    first step to use Modello for cache-domain
---
 maven-core/pom.xml                       |  29 ++-
 maven-core/src/main/mdo/cache-domain.mdo | 296 +++++++++++++++++++++++++++++++
 2 files changed, 324 insertions(+), 1 deletion(-)

diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index 9dd0250..b1e830e 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -217,7 +217,34 @@ under the License.
         </configuration>
         <executions>
           <execution>
-            <id>modello-site-doc</id>
+            <id>modello-site-docs-cache</id>
+            <phase>pre-site</phase>
+            <goals>
+              <goal>xdoc</goal>
+              <goal>xsd</goal>
+            </goals>
+            <configuration>
+              <version>1.0.0</version>
+              <models>
+                <model>src/main/mdo/cache-domain.mdo</model>
+              </models>
+            </configuration>
+          </execution>
+          <execution>
+            <id>modello-cache</id>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+            </goals>
+            <configuration>
+              <version>1.0.0</version>
+              <models>
+                <model>src/main/mdo/cache-domain.mdo</model>
+              </models>
+            </configuration>
+          </execution>
+          <execution>
+            <id>modello-site-docs-extension</id>
             <phase>pre-site</phase>
             <goals>
               <goal>xdoc</goal>
diff --git a/maven-core/src/main/mdo/cache-domain.mdo b/maven-core/src/main/mdo/cache-domain.mdo
new file mode 100644
index 0000000..cb0ba6d
--- /dev/null
+++ b/maven-core/src/main/mdo/cache-domain.mdo
@@ -0,0 +1,296 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<model xmlns="http://codehaus-plexus.github.io/MODELLO/1.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://codehaus-plexus.github.io/MODELLO/1.4.0 http://codehaus-plexus.github.io/modello/xsd/modello-1.4.0.xsd">
+  <id>cache-domain</id>
+  <name>CacheDomain</name>
+  <description><![CDATA[
+  ]]></description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.caching.domain</value>
+    </default>
+  </defaults>
+  <classes>
+    <!--xs:complexType name="BuildInfoType"-->
+    <class rootElement="true" xml.tagName="build">
+      <name>BuildInfoType</name>
+      <version>1.0.0+</version>
+      <description><![CDATA[Root element of the <code>extension.xml</code> file.]]></description>
+        <!--xs:all-->
+      <fields>
+        <field>
+          <name>cacheImplementationVersion</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="final" type="xs:boolean" minOccurs="0"/-->
+        <!--field>
+          <name>final</name>
+          <version>1.0.0+</version>
+          <type>Boolean</type>
+          <description></description>
+        </field-->
+            <!--xs:element name="hashFunction" type="xs:string"/-->
+        <field>
+          <name>hashFunction</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="buildTime" type="xs:dateTime" minOccurs="0"/-->
+            <!--xs:element name="buildServer" type="xs:string" minOccurs="0"/-->
+        <field>
+          <name>buildServer</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="cacheImplementationVersion" type="xs:string"/-->
+            <!--xs:element name="scm" minOccurs="0">
+                <xs:complexType>
+                    <xs:all>
+                        <xs:element name="sourceBranch" type="xs:string" minOccurs="0"/>
+                        <xs:element name="revision" type="xs:string" minOccurs="0"/>
+                    </xs:all>
+                </xs:complexType>
+            </xs:element-->
+            <!--xs:element name="goals">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="goal" type="xs:string" maxOccurs="unbounded"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element-->
+        <field>
+          <name>goals</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>String</type>
+            <multiplicity>*</multiplicity>
+          </association>
+          <description></description>
+        </field>
+            <!--xs:element name="artifact" type="d:ArtifactType"/-->
+        <field>
+          <name>artifact</name>
+          <version>1.0.0+</version>
+          <association>
+            <type>ArtifactType</type>
+          </association>
+          <description></description>
+        </field>
+            <!--xs:element name="attachedArtifacts">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="artifact" type="d:ArtifactType" minOccurs="0" maxOccurs="unbounded"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="generatedSources" minOccurs="0">
+                <xs:complexType>
+                    <xs:all>
+                        <xs:element name="relativePath">
+                            <xs:complexType>
+                                <xs:simpleContent>
+                                    <xs:extension base="xs:string">
+                                        <xs:attribute name="artifactFileName" type="xs:string" use="required"/>
+                                    </xs:extension>
+                                </xs:simpleContent>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:all>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="executions">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="execution" type="d:CompletedExecutionType" minOccurs="0"
+                                    maxOccurs="unbounded"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+            <xs:element name="projectsInputInfo" type="d:ProjectsInputInfoType" minOccurs="0"/>-->
+      </fields>
+    </class>
+
+    <!--xs:complexType name="ArtifactType"-->
+    <class>
+      <name>ArtifactType</name>
+        <!--xs:sequence-->
+      <fields>
+            <!--xs:element name="groupId" type="xs:string"/-->
+        <field>
+          <name>groupId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="artifactId" type="xs:string"/-->
+        <field>
+          <name>artifactId</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="version" type="xs:string"/-->
+        <field>
+          <name>version</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="classifier" type="xs:string" minOccurs="0"/-->
+        <field>
+          <name>classifier</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="type" type="xs:string"/-->
+        <field>
+          <name>type</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="scope" type="xs:string" minOccurs="0"/-->
+        <field>
+          <name>scope</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="fileName" type="xs:string" minOccurs="0"/-->
+        <field>
+          <name>fileName</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="fileHash" type="xs:string" minOccurs="0"/-->
+        <field>
+          <name>fileHash</name>
+          <version>1.0.0+</version>
+          <type>String</type>
+          <description></description>
+        </field>
+            <!--xs:element name="fileSize" type="xs:nonNegativeInteger" minOccurs="0"/-->
+        <!--field>
+          <name>fileSize</name>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <description></description>
+        </field-->
+        <!--/xs:sequence-->
+      </fields>
+    <!--/xs:complexType-->
+    </class>
+
+    <!--xs:complexType name="CompletedExecutionType">
+        <xs:sequence>
+            <xs:element name="executionKey" type="xs:string"/>
+            <xs:element name="mojoClassName" type="xs:string" minOccurs="0"/>
+            <xs:element name="configuration" minOccurs="0">
+                <xs:complexType>
+                    <xs:sequence>
+                        <xs:element name="property" type="d:PropertyValueType" minOccurs="0" maxOccurs="unbounded"/>
+                    </xs:sequence>
+                </xs:complexType>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="PropertyValueType">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="name" type="xs:string"/>
+                <xs:attribute name="tracked" type="xs:boolean"/>
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <xs:complexType name="ProjectsInputInfoType">
+        <xs:sequence>
+            <xs:element name="checksum" type="xs:string"/>
+            <xs:element name="item" type="d:DigestItemType" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="DigestItemType">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="type" use="required" type="xs:string"/>
+                <xs:attribute name="hash" use="required" type="xs:string"/>
+                <xs:attribute name="fileChecksum" type="xs:string"/>
+                <xs:attribute name="content" type="xs:string"/>
+                <xs:attribute name="isText" type="xs:string"/>
+                <xs:attribute name="charset" type="xs:string"/>
+                <xs:attribute name="eol" type="xs:string"/>
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <xs:complexType name="CacheReportType">
+        <xs:sequence>
+            <xs:element name="project" type="d:ProjectReportType" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="ProjectReportType"-->
+        <!--        <xs:sequence>-->
+        <!--            <xs:element name="checksum" type="d:ChecksumReportType"/>-->
+        <!--            <xs:element name="parameters" type="d:PluginsReportType"/>-->
+        <!--        </xs:sequence>-->
+        <!--xs:attribute name="groupId" use="required" type="xs:string"/>
+        <xs:attribute name="artifactId" use="required" type="xs:string"/>
+        <xs:attribute name="checksum" use="required" type="xs:string"/>
+        <xs:attribute name="checksumMatched" type="xs:boolean" use="required"/>
+        <xs:attribute name="lifecycleMatched" type="xs:boolean"/>
+        <xs:attribute name="pluginsMatched" type="xs:boolean"/>
+        <xs:attribute name="source" type="xs:string" use="required"/>
+        <xs:attribute name="sharedToRemote" type="xs:boolean" use="required"/>
+        <xs:attribute name="url" type="xs:anyURI"/>
+    </xs:complexType>
+
+    <xs:complexType name="BuildDiffType">
+        <xs:sequence>
+            <xs:element name="mismatch" type="d:MismatchType" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="MismatchType">
+        <xs:sequence minOccurs="0">
+            <xs:element name="detail" type="d:MismatchDetailType" minOccurs="0"/>
+        </xs:sequence>
+        <xs:attribute name="item" use="required" type="xs:string"/>
+        <xs:attribute name="current" type="xs:string"/>
+        <xs:attribute name="baseline" type="xs:string"/>
+        <xs:attribute name="reason" type="xs:string"/>
+        <xs:attribute name="resolution" type="xs:string"/>
+        <xs:attribute name="context" type="xs:string"/>
+    </xs:complexType>
+
+    <xs:complexType name="MismatchDetailType"/>
+    -->
+  </classes>
+</model>