diff --git a/maven-bom/pom.xml b/maven-bom/pom.xml index 3f9f983e31..84d2b01238 100644 --- a/maven-bom/pom.xml +++ b/maven-bom/pom.xml @@ -128,6 +128,16 @@ under the License. maven-settings-builder ${project.version} + + org.apache.maven + maven-toolchain-model + ${project.version} + + + org.apache.maven + maven-toolchain-builder + ${project.version} + org.apache.maven maven-slf4j-wrapper diff --git a/maven-core/pom.xml b/maven-core/pom.xml index dd1b72bf0d..f46fdeb1d9 100644 --- a/maven-core/pom.xml +++ b/maven-core/pom.xml @@ -52,6 +52,14 @@ under the License. org.apache.maven maven-builder-support + + org.apache.maven + maven-toolchain-model + + + org.apache.maven + maven-toolchain-builder + org.apache.maven maven-repository-metadata @@ -212,12 +220,12 @@ under the License. modello-maven-plugin 1.1.0 - - src/main/mdo/toolchains.mdo - + + + modello-site-doc pre-site diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java index 29f0fc652f..f335003a54 100644 --- a/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java +++ b/maven-core/src/test/java/org/apache/maven/toolchain/DefaultToolchainTest.java @@ -25,13 +25,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import java.io.InputStream; import java.util.Collections; import org.apache.maven.toolchain.java.DefaultJavaToolChain; -import org.apache.maven.toolchain.model.PersistedToolchains; import org.apache.maven.toolchain.model.ToolchainModel; -import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader; +import org.codehaus.plexus.util.xml.Xpp3Dom; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; @@ -41,8 +39,6 @@ public class DefaultToolchainTest { private final Logger logger = mock( Logger.class ); - private MavenToolchainsXpp3Reader reader = new MavenToolchainsXpp3Reader(); - @BeforeEach public void setUp() throws Exception @@ -129,21 +125,33 @@ public void testNonMatchingRequirementProperty() @Test public void testEquals() - throws Exception { - try ( InputStream jdksIS = ToolchainModel.class.getResourceAsStream( "toolchains-jdks.xml" ); - InputStream jdksExtraIS = ToolchainModel.class.getResourceAsStream( "toolchains-jdks-extra.xml" ) ) - { - PersistedToolchains jdks = reader.read( jdksIS ); - PersistedToolchains jdksExtra = reader.read( jdksExtraIS ); + ToolchainModel tm1 = new ToolchainModel(); + tm1.setType( "jdk" ); + tm1.addProvide( "version", "1.5" ); + tm1.addProvide( "vendor", "sun" ); + Xpp3Dom configuration1 = new Xpp3Dom("configuration"); + Xpp3Dom jdkHome1 = new Xpp3Dom( "jdkHome" ); + jdkHome1.setValue("${env.JAVA_HOME}"); + configuration1.addChild( jdkHome1 ); + tm1.setConfiguration( configuration1 ); - DefaultToolchain tc1 = new DefaultJavaToolChain( jdks.getToolchains().get( 0 ), null ); - DefaultToolchain tc2 = new DefaultJavaToolChain( jdksExtra.getToolchains().get( 0 ), null ); + ToolchainModel tm2 = new ToolchainModel(); + tm1.setType( "jdk" ); + tm1.addProvide( "version", "1.4" ); + tm1.addProvide( "vendor", "sun" ); + Xpp3Dom configuration2 = new Xpp3Dom("configuration"); + Xpp3Dom jdkHome2 = new Xpp3Dom( "jdkHome" ); + jdkHome2.setValue("${env.JAVA_HOME}"); + configuration2.addChild( jdkHome2 ); + tm2.setConfiguration( configuration2 ); - assertEquals( tc1, tc1 ); - assertNotEquals( tc1, tc2 ); - assertNotEquals( tc2, tc1 ); - assertEquals( tc2, tc2 ); - } + DefaultToolchain tc1 = new DefaultJavaToolChain( tm1, null ); + DefaultToolchain tc2 = new DefaultJavaToolChain( tm2, null ); + + assertEquals( tc1, tc1 ); + assertNotEquals( tc1, tc2 ); + assertNotEquals( tc2, tc1 ); + assertEquals( tc2, tc2 ); } } diff --git a/maven-toolchain-builder/pom.xml b/maven-toolchain-builder/pom.xml new file mode 100644 index 0000000000..5dcbea2d3d --- /dev/null +++ b/maven-toolchain-builder/pom.xml @@ -0,0 +1,70 @@ + + + + + + + maven + org.apache.maven + 4.0.0-alpha-1-SNAPSHOT + + 4.0.0 + + maven-toolchain-builder + + Maven Toolchain Builder + The effective toolchain builder. + + + + org.apache.maven + maven-toolchain-model + + + org.apache.maven + maven-builder-support + + + javax.inject + javax.inject + + + org.codehaus.plexus + plexus-interpolation + + + org.mockito + mockito-core + test + + + + + + + org.eclipse.sisu + sisu-maven-plugin + + + + + diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilder.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingRequest.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingRequest.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingRequest.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingRequest.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingResult.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingResult.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingResult.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/DefaultToolchainsBuildingResult.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuilder.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuilder.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuilder.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuilder.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingException.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingException.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingException.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingException.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingRequest.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingRequest.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingRequest.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingRequest.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingResult.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingResult.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingResult.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/building/ToolchainsBuildingResult.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsReader.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/DefaultToolchainsWriter.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsParseException.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsParseException.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsParseException.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsParseException.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsReader.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsReader.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsReader.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsReader.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsWriter.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsWriter.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/io/ToolchainsWriter.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/io/ToolchainsWriter.java diff --git a/maven-core/src/main/java/org/apache/maven/toolchain/merge/MavenToolchainMerger.java b/maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/merge/MavenToolchainMerger.java similarity index 100% rename from maven-core/src/main/java/org/apache/maven/toolchain/merge/MavenToolchainMerger.java rename to maven-toolchain-builder/src/main/java/org/apache/maven/toolchain/merge/MavenToolchainMerger.java diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java b/maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java similarity index 100% rename from maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java rename to maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java index 94c15b80eb..6460aaf0a8 100644 --- a/maven-core/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java +++ b/maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/DefaultToolchainsBuilderTest.java @@ -27,8 +27,8 @@ import org.apache.maven.toolchain.model.ToolchainModel; import org.codehaus.plexus.interpolation.os.OperatingSystemUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentMatchers; import org.mockito.InjectMocks; import org.mockito.MockitoAnnotations; diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java b/maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java similarity index 100% rename from maven-core/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java rename to maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java index 8189268b4d..0ad1087dbf 100644 --- a/maven-core/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java +++ b/maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/building/ToolchainsBuildingExceptionTest.java @@ -19,15 +19,15 @@ * under the License. */ -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Collections; - import org.apache.maven.building.Problem; import org.apache.maven.building.ProblemCollector; import org.apache.maven.building.ProblemCollectorFactory; import org.junit.jupiter.api.Test; +import java.util.Collections; + +import static org.junit.jupiter.api.Assertions.assertEquals; + public class ToolchainsBuildingExceptionTest { private static final String LS = System.lineSeparator(); diff --git a/maven-core/src/test/java/org/apache/maven/toolchain/merge/MavenToolchainMergerTest.java b/maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/merge/MavenToolchainMergerTest.java similarity index 100% rename from maven-core/src/test/java/org/apache/maven/toolchain/merge/MavenToolchainMergerTest.java rename to maven-toolchain-builder/src/test/java/org/apache/maven/toolchain/merge/MavenToolchainMergerTest.java diff --git a/maven-core/src/test/resources/org/apache/maven/toolchain/global.xml b/maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/global.xml similarity index 100% rename from maven-core/src/test/resources/org/apache/maven/toolchain/global.xml rename to maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/global.xml diff --git a/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extend.xml b/maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extend.xml similarity index 100% rename from maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extend.xml rename to maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extend.xml diff --git a/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extra.xml b/maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extra.xml similarity index 100% rename from maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extra.xml rename to maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks-extra.xml diff --git a/maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks.xml b/maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks.xml similarity index 100% rename from maven-core/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks.xml rename to maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/model/toolchains-jdks.xml diff --git a/maven-core/src/test/resources/org/apache/maven/toolchain/user.xml b/maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/user.xml similarity index 100% rename from maven-core/src/test/resources/org/apache/maven/toolchain/user.xml rename to maven-toolchain-builder/src/test/resources/org/apache/maven/toolchain/user.xml diff --git a/maven-toolchain-model/pom.xml b/maven-toolchain-model/pom.xml new file mode 100644 index 0000000000..cf32371369 --- /dev/null +++ b/maven-toolchain-model/pom.xml @@ -0,0 +1,59 @@ + + + + + + + maven + org.apache.maven + 4.0.0-alpha-1-SNAPSHOT + + 4.0.0 + + maven-toolchain-model + + Maven Toolchain Model + Maven Toolchain model. + + + + org.codehaus.plexus + plexus-utils + + + + + + + org.codehaus.modello + modello-maven-plugin + + 1.1.0 + + src/main/mdo/toolchains.mdo + + + + + + + diff --git a/maven-core/src/main/mdo/toolchains.mdo b/maven-toolchain-model/src/main/mdo/toolchains.mdo similarity index 100% rename from maven-core/src/main/mdo/toolchains.mdo rename to maven-toolchain-model/src/main/mdo/toolchains.mdo diff --git a/pom.xml b/pom.xml index 49875c5f3b..eb63fa13c4 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,8 @@ under the License. apache-maven maven-wrapper apache-maven/maven-wrapper.pom + maven-toolchain-model + maven-toolchain-builder diff --git a/src/site/xdoc/maven-deps.odg b/src/site/xdoc/maven-deps.odg index 9255b0179c..8f7f9773d1 100644 Binary files a/src/site/xdoc/maven-deps.odg and b/src/site/xdoc/maven-deps.odg differ