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

gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/master by this push:
     new 84e2d8ad3f [MNG-8084] Include repository metadata in the API (#1465)
84e2d8ad3f is described below

commit 84e2d8ad3f2c7f96aaadf5475f272842bfeec88a
Author: Guillaume Nodet <gno...@gmail.com>
AuthorDate: Thu Apr 11 16:06:34 2024 +0200

    [MNG-8084] Include repository metadata in the API (#1465)
---
 .../maven-api-metadata}/pom.xml                    | 64 +++++++++-------------
 .../apache/maven/api/metadata/package-info.java    |  5 ++
 .../maven-api-metadata}/src/main/mdo/metadata.mdo  |  0
 api/maven-api-metadata/src/site/apt/index.apt      | 33 +++++++++++
 api/maven-api-metadata/src/site/site.xml           | 38 +++++++++++++
 api/pom.xml                                        |  1 +
 maven-repository-metadata/pom.xml                  | 13 +++--
 .../artifact/repository/metadata/MetadataTest.java |  2 +-
 pom.xml                                            |  5 ++
 9 files changed, 117 insertions(+), 44 deletions(-)

diff --git a/maven-repository-metadata/pom.xml b/api/maven-api-metadata/pom.xml
similarity index 59%
copy from maven-repository-metadata/pom.xml
copy to api/maven-api-metadata/pom.xml
index 38c62f62bd..1488f69222 100644
--- a/maven-repository-metadata/pom.xml
+++ b/api/maven-api-metadata/pom.xml
@@ -17,35 +17,24 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
   <modelVersion>4.0.0</modelVersion>
-
   <parent>
     <groupId>org.apache.maven</groupId>
-    <artifactId>maven</artifactId>
+    <artifactId>maven-api</artifactId>
     <version>4.0.0-alpha-14-SNAPSHOT</version>
   </parent>
 
-  <artifactId>maven-repository-metadata</artifactId>
+  <artifactId>maven-api-metadata</artifactId>
 
-  <name>Maven Repository Metadata Model</name>
-  <description>Per-directory local and remote repository 
metadata.</description>
+  <name>Maven 4 API :: Repository Metadata</name>
+  <description>Maven 4 API - Immutable Repository Metadata model.</description>
 
   <dependencies>
-    <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-xml</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-xml-impl</artifactId>
     </dependency>
-
-    <dependency>
-      <groupId>org.apache.maven.resolver</groupId>
-      <artifactId>maven-resolver-api</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
   <build>
@@ -53,54 +42,53 @@ under the License.
       <plugin>
         <groupId>org.codehaus.modello</groupId>
         <artifactId>modello-maven-plugin</artifactId>
-        <configuration>
-          <version>1.2.0</version>
-          <models>
-            <model>src/main/mdo/metadata.mdo</model>
-          </models>
-          <params>
-            <param>forcedIOModelVersion=1.1.0</param>
-            
<param>packageModelV3=org.apache.maven.artifact.repository.metadata</param>
-            
<param>packageModelV4=org.apache.maven.artifact.repository.metadata.v4</param>
-            
<param>packageToolV4=org.apache.maven.artifact.repository.metadata.io</param>
-          </params>
-          <velocityBasedir>${project.basedir}/../src/mdo</velocityBasedir>
-        </configuration>
         <executions>
           <execution>
-            <id>modello</id>
+            <id>plugin</id>
             <goals>
               <goal>velocity</goal>
             </goals>
+            <phase>generate-sources</phase>
             <configuration>
+              
<velocityBasedir>${project.basedir}/../../src/mdo</velocityBasedir>
               <version>1.2.0</version>
               <models>
                 <model>src/main/mdo/metadata.mdo</model>
               </models>
               <templates>
                 <template>model.vm</template>
-                <template>reader-stax.vm</template>
-                <template>writer-stax.vm</template>
               </templates>
+              <params>
+                <param>packageModelV4=org.apache.maven.api.metadata</param>
+              </params>
             </configuration>
           </execution>
           <execution>
-            <id>modello-v3</id>
+            <id>plugin-doc</id>
             <goals>
-              <goal>velocity</goal>
+              <goal>xdoc</goal>
+              <goal>xsd</goal>
             </goals>
+            <phase>generate-resources</phase>
             <configuration>
-              <version>1.1.0</version>
+              <version>1.2.0</version>
               <models>
                 <model>src/main/mdo/metadata.mdo</model>
               </models>
-              <templates>
-                <template>model-v3.vm</template>
-              </templates>
             </configuration>
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/package-info.java</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
+
 </project>
diff --git 
a/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
 
b/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
new file mode 100644
index 0000000000..68e28d951c
--- /dev/null
+++ 
b/api/maven-api-metadata/src/main/java/org/apache/maven/api/metadata/package-info.java
@@ -0,0 +1,5 @@
+// CHECKSTYLE_OFF: RegexpHeader
+/**
+ * Maven Repository Metadata model.
+ */
+package org.apache.maven.api.metadata;
diff --git a/maven-repository-metadata/src/main/mdo/metadata.mdo 
b/api/maven-api-metadata/src/main/mdo/metadata.mdo
similarity index 100%
rename from maven-repository-metadata/src/main/mdo/metadata.mdo
rename to api/maven-api-metadata/src/main/mdo/metadata.mdo
diff --git a/api/maven-api-metadata/src/site/apt/index.apt 
b/api/maven-api-metadata/src/site/apt/index.apt
new file mode 100644
index 0000000000..a3f76ef0a6
--- /dev/null
+++ b/api/maven-api-metadata/src/site/apt/index.apt
@@ -0,0 +1,33 @@
+~~ 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.
+
+ -----
+ Introduction
+ -----
+ Guillaume Nodet
+ -----
+ 2024-04-04
+ -----
+
+Maven 4 API - Repository Metadata Model
+
+ This is the immutable model for Repository Metadata in 
<<<org.apache.maven.api.metadata>>> package.
+
+ The following are generated from this model:
+
+   * {{{./apidocs/index.html}Java sources}} with <<<Builder>>> inner classes 
for immutable instances creation.
+
diff --git a/api/maven-api-metadata/src/site/site.xml 
b/api/maven-api-metadata/src/site/site.xml
new file mode 100644
index 0000000000..8ffe43d07c
--- /dev/null
+++ b/api/maven-api-metadata/src/site/site.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+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.
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.8.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+  xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 
http://maven.apache.org/xsd/decoration-1.8.0.xsd";>
+
+  <edit>${project.scm.url}</edit>
+
+  <body>
+    <menu name="Overview">
+      <item name="Introduction" href="index.html"/>
+      <item name="Javadocs" href="apidocs/index.html"/>
+      <item name="Source Xref" href="xref/index.html"/>
+      <!--item name="FAQ" href="faq.html"/-->
+    </menu>
+
+    <menu ref="parent"/>
+    <menu ref="reports"/>
+  </body>
+</project>
\ No newline at end of file
diff --git a/api/pom.xml b/api/pom.xml
index 86a89a19af..5af8c98865 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -39,6 +39,7 @@
     <module>maven-api-plugin</module>
     <module>maven-api-settings</module>
     <module>maven-api-toolchain</module>
+    <module>maven-api-metadata</module>
     <module>maven-api-core</module>
     <module>maven-api-spi</module>
   </modules>
diff --git a/maven-repository-metadata/pom.xml 
b/maven-repository-metadata/pom.xml
index 38c62f62bd..5a5c785bcc 100644
--- a/maven-repository-metadata/pom.xml
+++ b/maven-repository-metadata/pom.xml
@@ -32,6 +32,10 @@ under the License.
   <description>Per-directory local and remote repository 
metadata.</description>
 
   <dependencies>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-api-metadata</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-xml</artifactId>
@@ -56,12 +60,12 @@ under the License.
         <configuration>
           <version>1.2.0</version>
           <models>
-            <model>src/main/mdo/metadata.mdo</model>
+            <model>../api/maven-api-metadata/src/main/mdo/metadata.mdo</model>
           </models>
           <params>
             <param>forcedIOModelVersion=1.1.0</param>
             
<param>packageModelV3=org.apache.maven.artifact.repository.metadata</param>
-            
<param>packageModelV4=org.apache.maven.artifact.repository.metadata.v4</param>
+            <param>packageModelV4=org.apache.maven.api.metadata</param>
             
<param>packageToolV4=org.apache.maven.artifact.repository.metadata.io</param>
           </params>
           <velocityBasedir>${project.basedir}/../src/mdo</velocityBasedir>
@@ -75,10 +79,9 @@ under the License.
             <configuration>
               <version>1.2.0</version>
               <models>
-                <model>src/main/mdo/metadata.mdo</model>
+                
<model>../api/maven-api-metadata/src/main/mdo/metadata.mdo</model>
               </models>
               <templates>
-                <template>model.vm</template>
                 <template>reader-stax.vm</template>
                 <template>writer-stax.vm</template>
               </templates>
@@ -92,7 +95,7 @@ under the License.
             <configuration>
               <version>1.1.0</version>
               <models>
-                <model>src/main/mdo/metadata.mdo</model>
+                
<model>../api/maven-api-metadata/src/main/mdo/metadata.mdo</model>
               </models>
               <templates>
                 <template>model-v3.vm</template>
diff --git 
a/maven-repository-metadata/src/test/java/org/apache/maven/artifact/repository/metadata/MetadataTest.java
 
b/maven-repository-metadata/src/test/java/org/apache/maven/artifact/repository/metadata/MetadataTest.java
index b2d6d7842b..b5ed73132f 100644
--- 
a/maven-repository-metadata/src/test/java/org/apache/maven/artifact/repository/metadata/MetadataTest.java
+++ 
b/maven-repository-metadata/src/test/java/org/apache/maven/artifact/repository/metadata/MetadataTest.java
@@ -224,7 +224,7 @@ class MetadataTest {
         System.setProperty(XMLInputFactory.class.getName(), 
WstxInputFactory.class.getName());
         System.setProperty(XMLOutputFactory.class.getName(), 
WstxOutputFactory.class.getName());
 
-        Metadata source = new 
Metadata(org.apache.maven.artifact.repository.metadata.v4.Metadata.newBuilder(
+        Metadata source = new 
Metadata(org.apache.maven.api.metadata.Metadata.newBuilder(
                         createMetadataFromArtifact(artifact).getDelegate(), 
true)
                 .modelEncoding("UTF-16")
                 .build());
diff --git a/pom.xml b/pom.xml
index a0bb13ea7f..bb8aaf6579 100644
--- a/pom.xml
+++ b/pom.xml
@@ -278,6 +278,11 @@ under the License.
         <artifactId>maven-api-di</artifactId>
         <version>${project.version}</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.maven</groupId>
+        <artifactId>maven-api-metadata</artifactId>
+        <version>${project.version}</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-di</artifactId>

Reply via email to