diff --git a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java index 0f262e83e..42dda19e8 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/IntegrationTestSuite.java @@ -111,6 +111,7 @@ public static Test suite() suite.addTestSuite( MavenITmng6506PackageAnnotationTest.class ); suite.addTestSuite( MavenITmng6256SpecialCharsAlternatePOMLocation.class ); suite.addTestSuite( MavenITmng6386BaseUriPropertyTest.class ); + suite.addTestSuite( MavenITmng6357DependencyOrderNearestFirstTest.class ); suite.addTestSuite( MavenITmng6330RelativePath.class ); suite.addTestSuite( MavenITmng5965ParallelBuildMultipliesWorkTest.class ); suite.addTestSuite( MavenITmng6255FixConcatLines.class ); diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java index 18df21073..c41dc540e 100644 --- a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng3813PluginClassPathOrderingTest.java @@ -19,7 +19,6 @@ * under the License. */ -import org.apache.maven.it.Verifier; import org.apache.maven.it.util.ResourceExtractor; import java.io.File; @@ -37,7 +36,7 @@ public class MavenITmng3813PluginClassPathOrderingTest public MavenITmng3813PluginClassPathOrderingTest() { - super( "(2.0.8,)" ); + super( "(2.0.8,3.6.2]" ); } /** diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6357DependencyOrderNearestFirstTest.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6357DependencyOrderNearestFirstTest.java new file mode 100644 index 000000000..ef8d98b94 --- /dev/null +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng6357DependencyOrderNearestFirstTest.java @@ -0,0 +1,85 @@ +package org.apache.maven.it; + +import java.io.File; +import java.util.Properties; + +import org.apache.maven.it.util.ResourceExtractor; + +/* + * 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. + */ + +/** + * This is a test set for MNG-6357. + * + * @author Gabriel Belingueres + */ +public class MavenITmng6357DependencyOrderNearestFirstTest + extends AbstractMavenIntegrationTestCase +{ + + public MavenITmng6357DependencyOrderNearestFirstTest() + { + super("(3.6.2,)"); + } + + /** + * Verify that the ordering of the class path matches the ordering of the dependencies as given in the POM, where + * artifacts are listed from the nearest to the farest in depth from the root of the dependency tree. Dependencies + * at the same depth are listed in the order declared in the POM.
+ *
+ * Note: test dependencies used in this test were copied from mng-3813 just to show the new ordering using the same + * artifacts. + */ + public void testitMNG6357() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-6357" ); + + Verifier verifier = newVerifier( testDir.getAbsolutePath() ); + verifier.setAutoclean( false ); + verifier.deleteDirectory( "target" ); + verifier.deleteArtifacts( "org.apache.maven.its.mng3813" ); + verifier.filterFile( "settings-template.xml", "settings.xml", "UTF-8", verifier.newDefaultFilterProperties() ); + verifier.addCliOption( "--settings" ); + verifier.addCliOption( "settings.xml" ); + verifier.executeGoal( "validate" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + Properties pclProps = verifier.loadProperties( "target/pcl.properties" ); + + String className = "org.apache.maven.its.mng3813.SomeClass"; + String resName = className.replace( '.', '/' ) + ".class"; + + assertEquals( "depA", pclProps.getProperty( className + ".methods" ) ); + assertTrue( pclProps.getProperty( resName ).endsWith( "/dep-a-0.1.jar!/" + resName ) ); + + assertEquals( "8", pclProps.getProperty( resName + ".count" ) ); + + assertTrue( pclProps.getProperty( resName + ".0" ).endsWith( "/dep-a-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".1" ).endsWith( "/dep-c-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".2" ).endsWith( "/dep-b-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".3" ).endsWith( "/dep-d-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".4" ).endsWith( "/dep-aa-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".5" ).endsWith( "/dep-ac-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".6" ).endsWith( "/dep-ab-0.1.jar!/" + resName ) ); + assertTrue( pclProps.getProperty( resName + ".7" ).endsWith( "/dep-ad-0.1.jar!/" + resName ) ); + } + +} \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/pom.xml b/core-it-suite/src/test/resources/mng-6357/pom.xml new file mode 100644 index 000000000..413d57074 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/pom.xml @@ -0,0 +1,95 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng6357 + test + 1.0 + + Maven Integration Test :: MNG-6357 + + Verify that the ordering of the plugin class path matches the ordering of the dependencies as given in the POM. + + + + + + org.apache.maven.its.plugins + maven-it-plugin-class-loader + 2.1-SNAPSHOT + + + + org.apache.maven.its.mng3813 + dep-a + 0.1 + + + org.apache.maven.its.mng3813 + dep-c + 0.1 + + + org.apache.maven.its.mng3813 + dep-b + 0.1 + + + org.apache.maven.its.mng3813 + dep-d + 0.1 + + + + + load + validate + + org.apache.maven.its.mng3813.SomeClass + org/apache/maven/its/mng3813/SomeClass.class + target/pcl.properties + + + load + + + + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.jar new file mode 100644 index 000000000..7248a88ac Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom new file mode 100644 index 000000000..f5ada7e4b --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/0.1/dep-a-0.1.pom @@ -0,0 +1,79 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-a + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + org.apache.maven.its.mng3813 + dep-aa + 0.1 + + + org.apache.maven.its.mng3813 + dep-ac + 0.1 + + + org.apache.maven.its.mng3813 + dep-ab + 0.1 + + + org.apache.maven.its.mng3813 + dep-ad + 0.1 + + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/maven-metadata.xml new file mode 100644 index 000000000..91e47c176 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-a/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-a + 0.1 + + + 0.1 + + 20081101155009 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.jar new file mode 100644 index 000000000..92ffd1ddd Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom new file mode 100644 index 000000000..968ce1496 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/0.1/dep-aa-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-aa + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/maven-metadata.xml new file mode 100644 index 000000000..2c941bf41 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-aa/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-aa + 0.1 + + + 0.1 + + 20081101154621 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.jar new file mode 100644 index 000000000..88c35ccf9 Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom new file mode 100644 index 000000000..a1d861fd6 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/0.1/dep-ab-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-ab + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/maven-metadata.xml new file mode 100644 index 000000000..adeaffdf0 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ab/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-ab + 0.1 + + + 0.1 + + 20081101154636 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.jar new file mode 100644 index 000000000..07655833d Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom new file mode 100644 index 000000000..5d639d8de --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/0.1/dep-ac-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-ac + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/maven-metadata.xml new file mode 100644 index 000000000..65d6a1aee --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ac/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-ac + 0.1 + + + 0.1 + + 20081101154653 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.jar new file mode 100644 index 000000000..0ef66e789 Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom new file mode 100644 index 000000000..6a1d6d7f4 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/0.1/dep-ad-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-ad + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/maven-metadata.xml new file mode 100644 index 000000000..b2244adef --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-ad/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-ad + 0.1 + + + 0.1 + + 20081101154723 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.jar new file mode 100644 index 000000000..6e7f47a7e Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom new file mode 100644 index 000000000..8ee097968 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/0.1/dep-b-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-b + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/maven-metadata.xml new file mode 100644 index 000000000..30e385a33 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-b/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-b + 0.1 + + + 0.1 + + 20081101154515 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.jar new file mode 100644 index 000000000..94f03f194 Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom new file mode 100644 index 000000000..fb8e69f18 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/0.1/dep-c-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-c + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/maven-metadata.xml new file mode 100644 index 000000000..5e5f8f5f4 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-c/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-c + 0.1 + + + 0.1 + + 20081101154549 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.jar b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.jar new file mode 100644 index 000000000..659a5ed15 Binary files /dev/null and b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.jar differ diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom new file mode 100644 index 000000000..aeef24692 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/0.1/dep-d-0.1.pom @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + org.apache.maven.its.mng3813 + dep-d + 0.1 + jar + + + + maven-core-it + file:///${basedir}/repo + + + + + true + + + + + + . + + pom.xml + src/** + + + + src/main/resources + + + + diff --git a/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/maven-metadata.xml b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/maven-metadata.xml new file mode 100644 index 000000000..9e65def40 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/repo/org/apache/maven/its/mng3813/dep-d/maven-metadata.xml @@ -0,0 +1,11 @@ + + org.apache.maven.its.mng3813 + dep-d + 0.1 + + + 0.1 + + 20081101154605 + + \ No newline at end of file diff --git a/core-it-suite/src/test/resources/mng-6357/settings-template.xml b/core-it-suite/src/test/resources/mng-6357/settings-template.xml new file mode 100644 index 000000000..877b43897 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-6357/settings-template.xml @@ -0,0 +1,55 @@ + + + + + + + + maven-core-it-repo + + + maven-core-it + @baseurl@/repo + + ignore + + + ignore + + + + + + maven-core-it + @baseurl@/repo + + ignore + + + ignore + + + + + + + maven-core-it-repo + +