diff --git a/api/maven-api-metadata/pom.xml b/api/maven-api-metadata/pom.xml new file mode 100644 index 000000000000..1488f692220e --- /dev/null +++ b/api/maven-api-metadata/pom.xml @@ -0,0 +1,94 @@ + + + + 4.0.0 + + org.apache.maven + maven-api + 4.0.0-alpha-14-SNAPSHOT + + + maven-api-metadata + + Maven 4 API :: Repository Metadata + Maven 4 API - Immutable Repository Metadata model. + + + + org.apache.maven + maven-xml-impl + + + + + + + org.codehaus.modello + modello-maven-plugin + + + plugin + + velocity + + generate-sources + + ${project.basedir}/../../src/mdo + 1.2.0 + + src/main/mdo/metadata.mdo + + + + + + packageModelV4=org.apache.maven.api.metadata + + + + + plugin-doc + + xdoc + xsd + + generate-resources + + 1.2.0 + + src/main/mdo/metadata.mdo + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + **/package-info.java + + + + + + + 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 000000000000..68e28d951cf6 --- /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 000000000000..a3f76ef0a6e5 --- /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 <<>> package. + + The following are generated from this model: + + * {{{./apidocs/index.html}Java sources}} with <<>> 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 000000000000..8ffe43d07c30 --- /dev/null +++ b/api/maven-api-metadata/src/site/site.xml @@ -0,0 +1,38 @@ + + + + + + + ${project.scm.url} + + + + + + + + + + + + + \ No newline at end of file diff --git a/api/pom.xml b/api/pom.xml index 86a89a19af5d..5af8c9886555 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -39,6 +39,7 @@ maven-api-plugin maven-api-settings maven-api-toolchain + maven-api-metadata maven-api-core maven-api-spi diff --git a/maven-repository-metadata/pom.xml b/maven-repository-metadata/pom.xml index 38c62f62bd59..5a5c785bcc5b 100644 --- a/maven-repository-metadata/pom.xml +++ b/maven-repository-metadata/pom.xml @@ -32,6 +32,10 @@ under the License. Per-directory local and remote repository metadata. + + org.apache.maven + maven-api-metadata + org.codehaus.plexus plexus-xml @@ -56,12 +60,12 @@ under the License. 1.2.0 - src/main/mdo/metadata.mdo + ../api/maven-api-metadata/src/main/mdo/metadata.mdo forcedIOModelVersion=1.1.0 packageModelV3=org.apache.maven.artifact.repository.metadata - packageModelV4=org.apache.maven.artifact.repository.metadata.v4 + packageModelV4=org.apache.maven.api.metadata packageToolV4=org.apache.maven.artifact.repository.metadata.io ${project.basedir}/../src/mdo @@ -75,10 +79,9 @@ under the License. 1.2.0 - src/main/mdo/metadata.mdo + ../api/maven-api-metadata/src/main/mdo/metadata.mdo - @@ -92,7 +95,7 @@ under the License. 1.1.0 - src/main/mdo/metadata.mdo + ../api/maven-api-metadata/src/main/mdo/metadata.mdo 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 b2d6d7842bc4..b5ed73132ff0 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 @@ void testRoundtrip() throws Exception { 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 a0bb13ea7f36..bb8aaf6579ce 100644 --- a/pom.xml +++ b/pom.xml @@ -278,6 +278,11 @@ under the License. maven-api-di ${project.version} + + org.apache.maven + maven-api-metadata + ${project.version} + org.apache.maven maven-di