diff --git a/its/core-it-suite/pom.xml b/its/core-it-suite/pom.xml index 8e307a4332..cdb95f9c7a 100644 --- a/its/core-it-suite/pom.xml +++ b/its/core-it-suite/pom.xml @@ -82,6 +82,8 @@ under the License. localhost 1.6.1 9.0.4.v20130625 + + 0.1-stub-SNAPSHOT @@ -207,7 +209,7 @@ under the License. org.apache.maven.plugins maven-surefire-plugin - classes + suitesAndClasses 6 diff --git a/its/core-it-suite/src/site/apt/index.apt.vm b/its/core-it-suite/src/site/apt/index.apt.vm index a0f1cc9e39..52f4328e95 100644 --- a/its/core-it-suite/src/site/apt/index.apt.vm +++ b/its/core-it-suite/src/site/apt/index.apt.vm @@ -52,11 +52,9 @@ mvn -Preporting site which obviously can't resolve anything. This setup using a file-based dummy repo also helps execution time, because this repo produces (expected) <<<404>>>s much faster than a HTTP-based repo. - The one place where access to Central is desired is in the <<>> - ({{{./xref-test/org/apache/maven/it/MavenITBootstrapTest.html}src}}, - {{{./testapidocs/org/apache/maven/it/MavenITBootstrapTest.html}javadoc}}), - which doesn't really test anything but just primes the local repo with any artifacts the ITs will need: - you can see {{{./bootstrap.html}here}} the list of plugins and artifacts that are fetched during bootstrap. + The one place where access to Central is desired is by adding artifacts to the + {{{https://github.com/apache/maven-integration-testing/blob/master/core-it-suite/src/test/resources/bootstrap.txt}bootstrap.txt}} file, + which is used to prime the local repo with any artifacts the ITs will need. This file should be kept sorted alphabetically for ease of use. So some care needs to be taken when introducing new dependencies into the ITs themselves or {{{../core-it-support/}the support plugins}}. Many times the failures that we encounter are discrepancies between actual artifact consumption required and diff --git a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java index 299971bb82..c3a86d52e2 100644 --- a/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java +++ b/its/core-it-suite/src/test/java/org/apache/maven/it/MavenITBootstrapTest.java @@ -52,6 +52,7 @@ public class MavenITBootstrapTest verifier.setAutoclean( false ); verifier.addCliOption( "--settings" ); verifier.addCliOption( "settings.xml" ); + verifier.addCliOption( "-Dbootstrap=" + getClass().getResource( "/bootstrap.txt" ).toURI().getPath() ); verifier.executeGoal( "install" ); verifier.verifyErrorFreeLog(); verifier.resetStreams(); diff --git a/its/core-it-suite/src/test/resources-filtered/bootstrap.txt b/its/core-it-suite/src/test/resources-filtered/bootstrap.txt new file mode 100644 index 0000000000..851152a869 --- /dev/null +++ b/its/core-it-suite/src/test/resources-filtered/bootstrap.txt @@ -0,0 +1,162 @@ +#0 +#1 This file contains a list of artifacts that will be downloaded (with their transitive dependencies) +#2 during the bootstrap phase. +#3 It should be kept sorted alphabetically using the following commands: +#4 mv bootstrap.txt tmp.txt && cat tmp.txt | sort -u > bootstrap.txt && rm tmp.txt +#5 +com.google.code.findbugs:jsr305:1.3.9 +com.google.guava:guava:10.0.1 +com.thoughtworks.qdox:qdox:2.0-M9 +commons-lang:commons-lang:2.6 +junit:junit:4.12 +org.apache.ant:ant:1.10.8 +org.apache.geronimo.specs:geronimo-jcdi_2.0_spec:1.3 +org.apache.groovy:groovy-ant:4.0.0-alpha-3 +org.apache.groovy:groovy:4.0.0-alpha-3 +org.apache.maven.its.plugins.class-loader:dep-c:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-active-collection:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-all:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-ant-based:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-artifact:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-class-loader:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-configuration:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-context-passing:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-dependency-collection:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-dependency-resolution:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-error:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-expression:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-extension-consumer:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-extension-provider:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-extension1:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-extension2:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-fork:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-invalid-descriptor:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-log-file:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-log4j:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-no-default-comp:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-no-project:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-online:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-optional-mojos:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-packaging:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-parameter-implementation:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-plexus-component-api:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-plexus-utils-11:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-plexus-utils-new:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-plugin-dependency:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-project:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-setter:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-singleton-component:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-site:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-toolchain:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-touch:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-uses-properties:${project.version} +org.apache.maven.its.plugins:maven-it-plugin-uses-wagon:${project.version} +org.apache.maven.its.plugins:mng-5805-pkg-type-mojo-configuration-extension2:${project.version} +org.apache.maven.its.plugins:mng-5805-pkg-type-mojo-configuration-extension:${project.version} +org.apache.maven.its.plugins:mng-5805-pkg-type-mojo-configuration-plugin:${project.version} +org.apache.maven.its.plugins:mng-5958-pkg-type-extension:${project.version} +org.apache.maven.its:core-it-extension:${project.version} +org.apache.maven.its:core-it-toolchain:${project.version} +org.apache.maven.its:core-it-wagon:${project.version} +org.apache.maven.its:maven-core-it-support:1.0 +org.apache.maven.its:maven-core-it-support:1.3 +org.apache.maven.its:maven-core-it-support:1.4 +org.apache.maven.plugins:maven-antrun-plugin:3.0.0 +org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5 +org.apache.maven.plugins:maven-assembly-plugin:3.1.0 +org.apache.maven.plugins:maven-clean-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-clean-plugin:2.5 +org.apache.maven.plugins:maven-compiler-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-compiler-plugin:2.0.2 +org.apache.maven.plugins:maven-compiler-plugin:3.1 +org.apache.maven.plugins:maven-compiler-plugin:3.8.1 +org.apache.maven.plugins:maven-dependency-plugin:2.7 +org.apache.maven.plugins:maven-dependency-plugin:2.8 +org.apache.maven.plugins:maven-deploy-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-deploy-plugin:2.7 +org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1 +org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M2 +org.apache.maven.plugins:maven-ear-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-ear-plugin:2.8 +org.apache.maven.plugins:maven-ejb-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-ejb-plugin:2.5.1 +org.apache.maven.plugins:maven-install-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-install-plugin:2.4 +org.apache.maven.plugins:maven-install-plugin:2.5.2 +org.apache.maven.plugins:maven-install-plugin:3.0.0-M1 +org.apache.maven.plugins:maven-jar-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-jar-plugin:2.2 +org.apache.maven.plugins:maven-jar-plugin:2.4 +org.apache.maven.plugins:maven-jar-plugin:3.2.0 +org.apache.maven.plugins:maven-javadoc-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-plugin-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-plugin-plugin:3.6.0 +org.apache.maven.plugins:maven-rar-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-release-plugin:2.5.3 +org.apache.maven.plugins:maven-resources-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-resources-plugin:2.6 +org.apache.maven.plugins:maven-resources-plugin:2.7 +org.apache.maven.plugins:maven-resources-plugin:3.2.0 +org.apache.maven.plugins:maven-site-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-site-plugin:3.2 +org.apache.maven.plugins:maven-site-plugin:3.3 +org.apache.maven.plugins:maven-source-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-surefire-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-surefire-plugin:2.12.4 +org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5 +org.apache.maven.plugins:maven-war-plugin:${stubPluginVersion} +org.apache.maven.plugins:maven-war-plugin:2.6 +org.apache.maven.plugins:maven-wrapper-plugin:3.1.0 +org.apache.maven.resolver:maven-resolver-api:1.7.3 +org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3 +org.apache.maven.resolver:maven-resolver-impl:1.7.3 +org.apache.maven.resolver:maven-resolver-spi:1.7.3 +org.apache.maven.resolver:maven-resolver-util:1.7.3 +org.apache.maven.shared:maven-artifact-transfer:0.11.0 +org.apache.maven.shared:maven-common-artifact-filters:3.1.0 +org.apache.maven.shared:maven-shared-utils:3.3.3 +org.apache.maven.skins:maven-default-skin:1.0 +org.apache.maven.surefire:surefire-junit4:2.12.4 +org.apache.maven.wagon:wagon-webdav-jackrabbit:2.0 +org.apache.maven.wagon:wagon-webdav-jackrabbit:2.10 +org.apache.maven:maven-aether-provider:3.1.1 +org.apache.maven:maven-artifact-manager:2.1.0 +org.apache.maven:maven-core:3.1.0 +org.apache.maven:maven-core:3.3.1 +org.apache.maven:maven-model:2.1.0 +org.apache.maven:maven-plugin-api:3.1.0 +org.apache.maven:maven-plugin-registry:2.1.0 +org.apache.maven:maven-profile:2.1.0 +org.apache.maven:maven-project:2.1.0 +org.apache.maven:maven-repository-metadata:2.1.0 +org.apache.maven:maven-repository-metadata:3.1.1 +org.apache.maven:maven-script-ant:2.1.0 +org.apache.maven:maven-settings-builder:3.1.1 +org.apache.maven:maven-settings:2.0 +org.apache.maven:maven-settings:2.1.0 +org.apache.maven:maven-settings:3.1.1 +org.codehaus.gmavenplus:gmavenplus-plugin:1.11.0 +org.codehaus.mojo:flatten-maven-plugin:1.0.0 +org.codehaus.plexus:plexus-classworlds:2.5.1 +org.codehaus.plexus:plexus-component-annotations:1.5.5 +org.codehaus.plexus:plexus-component-metadata:1.5.5 +org.codehaus.plexus:plexus-container-default:1.5.5 +org.codehaus.plexus:plexus-java:1.0.5 +org.codehaus.plexus:plexus-utils:1.1 +org.codehaus.plexus:plexus-utils:1.4.5 +org.codehaus.plexus:plexus-utils:1.5.1 +org.codehaus.plexus:plexus-utils:1.5.5 +org.codehaus.plexus:plexus-utils:1.5.6 +org.codehaus.plexus:plexus-utils:2.0.4 +org.codehaus.plexus:plexus-utils:2.0.5 +org.codehaus.plexus:plexus-utils:3.0.10 +org.codehaus.plexus:plexus-utils:3.0.9 +org.eclipse.aether:aether-impl:0.9.0.M2 +org.eclipse.aether:aether-spi:0.9.0.M2 +org.eclipse.sisu:org.eclipse.sisu.inject:0.0.0.M5 +org.eclipse.sisu:org.eclipse.sisu.plexus:0.0.0.M5 +org.ow2.asm:asm:4.1 +org.ow2.asm:asm:6.2 +org.ow2.asm:asm:7.2 +org.slf4j:slf4j-api:1.6.1 +org.sonatype.sisu:sisu-guice:3.1.0:jar:no_aop diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-1/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-1/pom.xml deleted file mode 100644 index 4a0844d95a..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-1/pom.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-1 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-1 - - - 0.1-stub-SNAPSHOT - - - - - - org.apache.maven.plugins - maven-clean-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-compiler-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-deploy-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-ear-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-ejb-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-install-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-jar-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-javadoc-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-plugin-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-rar-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-resources-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-site-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-source-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-surefire-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.plugins - maven-war-plugin - ${stubPluginVersion} - runtime - - - org.apache.maven.its - maven-core-it-support - 1.0 - runtime - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-10/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-10/pom.xml deleted file mode 100644 index 042061be49..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-10/pom.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-10 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-10 - - - - - - - org.codehaus.plexus - plexus-utils - 1.5.1 - - - org.apache.maven.plugins - maven-site-plugin - 3.3 - - - org.apache.maven.plugins - maven-deploy-plugin - 3.0.0-M1 - - - org.apache.maven.plugins - maven-resources-plugin - 3.2.0 - - - org.apache.maven.plugins - maven-jar-plugin - 3.2.0 - - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M5 - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.1 - - - org.apache.maven.shared - maven-shared-utils - 3.3.3 - - - org.ow2.asm - asm - 4.1 - - - com.thoughtworks.qdox - qdox - 2.0-M9 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-11/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-11/pom.xml deleted file mode 100644 index e84e30b960..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-11/pom.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-11 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-11 - - - - - - - org.codehaus.plexus - plexus-utils - 1.5.6 - - - org.apache.geronimo.specs - geronimo-jcdi_2.0_spec - 1.3 - - - org.apache.groovy - groovy-ant - 4.0.0-alpha-3 - runtime - - - org.apache.groovy - groovy - 4.0.0-alpha-3 - runtime - - - org.codehaus.gmavenplus - gmavenplus-plugin - 1.11.0 - - - org.apache.ant - ant - 1.10.8 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-12/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-12/pom.xml deleted file mode 100644 index cdd6050456..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-12/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-12 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-12 - - - - - - - org.apache.maven - maven-core - 3.3.1 - - - org.codehaus.plexus - plexus-component-metadata - 1.5.5 - - - org.codehaus.plexus - plexus-component-annotations - 1.5.5 - - - org.codehaus.plexus - plexus-utils - 1.4.5 - - - org.codehaus.plexus - plexus-java - 1.0.5 - - - org.apache.maven.shared - maven-common-artifact-filters - 3.1.0 - - - org.apache.maven.shared - maven-artifact-transfer - 0.11.0 - - - org.ow2.asm - asm - 7.2 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-14/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-14/pom.xml deleted file mode 100644 index 21911666cf..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-14/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-14 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-14 - - - - - - - org.codehaus.plexus - plexus-utils - 3.0.10 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml deleted file mode 100644 index 4b85d13955..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-15/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-15 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-15 :: Resolver 1.7.3 - - - 1.7.3 - - - - - org.apache.maven.resolver - maven-resolver-api - ${resolverVersion} - - - org.apache.maven.resolver - maven-resolver-spi - ${resolverVersion} - - - org.apache.maven.resolver - maven-resolver-util - ${resolverVersion} - - - org.apache.maven.resolver - maven-resolver-impl - ${resolverVersion} - - - org.apache.maven.resolver - maven-resolver-connector-basic - ${resolverVersion} - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-2/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-2/pom.xml deleted file mode 100644 index 2ba4db4670..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-2/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-2 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-2 - - - 2.1-SNAPSHOT - - - - - org.apache.maven.its - core-it-extension - ${itPluginVersion} - runtime - - - org.apache.maven.its - core-it-wagon - ${itPluginVersion} - runtime - - - org.apache.maven.its - core-it-toolchain - ${itPluginVersion} - runtime - - - org.codehaus.plexus - plexus-utils - 1.5.5 - runtime - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-3/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-3/pom.xml deleted file mode 100644 index 97318691d2..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-3/pom.xml +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-3 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-3 - - - 2.1-SNAPSHOT - - - - - org.apache.maven.its.plugins - maven-it-plugin-active-collection - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-all - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-artifact - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-class-loader - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins.class-loader - dep-c - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-configuration - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-context-passing - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-dependency-collection - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-dependency-resolution - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-expression - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-error - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-extension-consumer - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-extension-provider - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-extension1 - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - mng-5805-pkg-type-mojo-configuration-plugin - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - mng-5805-pkg-type-mojo-configuration-extension - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - mng-5805-pkg-type-mojo-configuration-extension2 - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - mng-5958-pkg-type-extension - ${itPluginVersion} - runtime - - - - org.apache.maven.its.plugins - maven-it-plugin-extension2 - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-fork - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-invalid-descriptor - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-log4j - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-log-file - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-no-default-comp - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-no-project - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-online - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-optional-mojos - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-packaging - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-parameter-implementation - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-plexus-component-api - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-plugin-dependency - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-project - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-project-interpolation - ${itPluginVersion} - runtime - - - - org.apache.maven.its - maven-it-helper - - - - - org.apache.maven.its.plugins - maven-it-plugin-setter - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-singleton-component - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-site - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-touch - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-toolchain - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-uses-properties - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-uses-wagon - ${itPluginVersion} - runtime - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-4/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-4/pom.xml deleted file mode 100644 index 0023a365cd..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-4/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-4 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-4 - - - 2.1-SNAPSHOT - - - - - org.apache.maven.its.plugins - maven-it-plugin-ant-based - ${itPluginVersion} - runtime - - - - org.apache.maven.plugins - maven-install-plugin - 2.5.2 - runtime - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-5/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-5/pom.xml deleted file mode 100644 index 4ea5d05e64..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-5/pom.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-5 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-5 - - - 2.1-SNAPSHOT - - - - - org.apache.maven.its.plugins - maven-it-plugin-plexus-utils-11 - ${itPluginVersion} - runtime - - - org.apache.maven.its.plugins - maven-it-plugin-plexus-utils-new - ${itPluginVersion} - runtime - - - org.apache.maven.its - maven-core-it-support - 1.3 - runtime - - - - org.apache.maven.plugins - maven-dependency-plugin - 2.7 - runtime - - - org.codehaus.plexus - plexus-utils - 3.0.9 - runtime - - - commons-lang - commons-lang - 2.6 - runtime - - - org.apache.maven.skins - maven-default-skin - 1.0 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-6/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-6/pom.xml deleted file mode 100644 index 9c9b793416..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-6/pom.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-6 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-6 - - - - - - - org.apache.maven.wagon - wagon-webdav-jackrabbit - 2.0 - runtime - - - org.apache.maven.its - maven-core-it-support - 1.4 - runtime - - - org.apache.maven - maven-script-ant - 2.1.0 - runtime - - - org.apache.maven - maven-project - - - org.apache.maven - maven-core - - - - - - org.apache.maven.plugins - maven-site-plugin - 3.2 - runtime - - - - org.apache.maven.plugins - maven-resources-plugin - 2.6 - runtime - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - runtime - - - - org.apache.maven - maven-settings - 3.1.1 - - - org.apache.maven - maven-settings-builder - 3.1.1 - - - org.apache.maven - maven-repository-metadata - 3.1.1 - - - org.apache.maven - maven-aether-provider - 3.1.1 - - - org.eclipse.aether - aether-spi - 0.9.0.M2 - - - org.eclipse.aether - aether-impl - 0.9.0.M2 - - - org.eclipse.sisu - org.eclipse.sisu.plexus - 0.0.0.M5 - - - org.eclipse.sisu - org.eclipse.sisu.inject - 0.0.0.M5 - - - org.sonatype.sisu - sisu-guice - 3.1.0 - no_aop - - - com.google.guava - guava - 10.0.1 - - - com.google.code.findbugs - jsr305 - 1.3.9 - - - org.codehaus.plexus - plexus-classworlds - 2.5.1 - - - org.codehaus.mojo - flatten-maven-plugin - 1.0.0 - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-7/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-7/pom.xml deleted file mode 100644 index acb2afe1d2..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-7/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-7 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-7 - - - - - - - - org.apache.maven.wagon - wagon-webdav-jackrabbit - 2.10 - runtime - - - - org.codehaus.plexus - plexus-utils - 2.0.4 - runtime - - - - org.apache.maven - maven-settings - 2.0 - runtime - - - - org.apache.maven.plugins - maven-release-plugin - 2.5.3 - runtime - - - org.apache.maven.plugins - maven-antrun-plugin - 3.0.0 - runtime - - - org.apache.maven.plugins - maven-assembly-plugin - 2.2-beta-5 - runtime - - - org.apache.maven.plugins - maven-dependency-plugin - 2.8 - runtime - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-8/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-8/pom.xml deleted file mode 100644 index 1da4e5f330..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-8/pom.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-8 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-8 - - - - - - - org.apache.maven - maven-project - 2.1.0 - - - org.apache.maven - maven-settings - 2.1.0 - - - org.apache.maven - maven-profile - 2.1.0 - - - org.apache.maven - maven-model - 2.1.0 - - - org.apache.maven - maven-artifact-manager - 2.1.0 - - - org.apache.maven - maven-repository-metadata - 2.1.0 - - - org.apache.maven - maven-plugin-registry - 2.1.0 - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - org.codehaus.plexus - plexus-utils - 1.1 - - - org.slf4j - slf4j-api - 1.6.1 - - - org.apache.maven.surefire - surefire-junit4 - 2.12.4 - - - org.codehaus.plexus - plexus-container-default - 1.5.5 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-9/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/group-9/pom.xml deleted file mode 100644 index 74042f44a7..0000000000 --- a/its/core-it-suite/src/test/resources/bootstrap/group-9/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - 4.0.0 - - - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - - - org.apache.maven.its.bootstrap - group-9 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-9 - - - - - - - org.codehaus.plexus - plexus-utils - 1.1 - - - junit - junit - 4.12 - - - org.ow2.asm - asm - 6.2 - - - diff --git a/its/core-it-suite/src/test/resources/bootstrap/pom.xml b/its/core-it-suite/src/test/resources/bootstrap/pom.xml index c4f82317ee..ab28b8360f 100644 --- a/its/core-it-suite/src/test/resources/bootstrap/pom.xml +++ b/its/core-it-suite/src/test/resources/bootstrap/pom.xml @@ -20,131 +20,44 @@ under the License. --> - 4.0.0 + 4.0.0 - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 - pom + org.apache.maven.its.bootstrap + maven-it-boostrap + 1.0 + pom - Maven Integration Test :: Boostrap - - This project pulls down all the artifacts/plugins required for the IT suite. Due to MNG-2974, snapshot versions of - plugins cannot be downloaded by Maven from non-default repositories configured in the POM if the plugin is invoked - directly from the command line. Also, having this in a central place spares us from copying the snapshot repo - config all around in the IT POMs. - + Maven Integration Test :: Boostrap + + This project pulls down all the artifacts/plugins required for the IT suite. Due to MNG-2974, snapshot versions of + plugins cannot be downloaded by Maven from non-default repositories configured in the POM if the plugin is invoked + directly from the command line. Also, having this in a central place spares us from copying the snapshot repo + config all around in the IT POMs. + - - - group-1 - group-2 - group-3 - group-4 - group-5 - group-6 - group-7 - group-8 - group-9 - group-10 - group-11 - group-12 - group-13 - group-14 - group-15 - + + true + - - true - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.0.2 - - - org.apache.maven.plugins - maven-jar-plugin - 2.2 - - - org.apache.maven.plugins - maven-ejb-plugin - 2.5.1 - - - org.apache.maven.plugins - maven-resources-plugin - 2.7 - - - org.apache.maven.plugins - maven-ear-plugin - 2.8 - - - org.apache.maven.plugins - maven-war-plugin - 2.6 - - - org.apache.maven.plugins - maven-surefire-plugin - 2.12.4 - - - org.codehaus.mojo - flatten-maven-plugin - 1.0.0 - - - org.apache.maven.plugins - maven-assembly-plugin - 3.1.0 - - - org.apache.maven.plugins - maven-wrapper-plugin - 3.1.0 - - - org.apache.maven.plugins - maven-dependency-plugin - 3.1.1 - - runtime - true - - - - get-all-plugins-deps - pre-integration-test - false - - resolve-plugins - - - ${project.build.directory}/resolve-plugins.txt - - - - get-all-deps - pre-integration-test - - resolve - - - true - false - ${project.build.directory}/resolve.txt - - - - - - + + + + + org.apache.maven.its + maven-it-plugin-bootstrap + 2.1-SNAPSHOT + + + process-resources + + download + + + ${bootstrap} + + + + + + diff --git a/its/core-it-suite/src/test/resources/bootstrap/settings.xml b/its/core-it-suite/src/test/resources/bootstrap/settings.xml index a9ad6f6637..71871c2b11 100644 --- a/its/core-it-suite/src/test/resources/bootstrap/settings.xml +++ b/its/core-it-suite/src/test/resources/bootstrap/settings.xml @@ -20,37 +20,37 @@ under the License. --> - - - it-bootstrap - - - - apache.snapshots - file:target/null - - false - - - false - - - - - - apache.snapshots - file:target/null - - false - - - false - - - - - - - it-bootstrap - + + + it-bootstrap + + + + apache.snapshots + file:target/null + + false + + + false + + + + + + apache.snapshots + file:target/null + + false + + + false + + + + + + + it-bootstrap + diff --git a/its/core-it-suite/src/test/resources/bootstrap/group-13/pom.xml b/its/core-it-support/maven-it-plugin-bootstrap/pom.xml similarity index 58% rename from its/core-it-suite/src/test/resources/bootstrap/group-13/pom.xml rename to its/core-it-support/maven-it-plugin-bootstrap/pom.xml index 8fa4b91f8b..841f9efedd 100644 --- a/its/core-it-suite/src/test/resources/bootstrap/group-13/pom.xml +++ b/its/core-it-support/maven-it-plugin-bootstrap/pom.xml @@ -19,45 +19,44 @@ specific language governing permissions and limitations under the License. --> - + 4.0.0 - org.apache.maven.its.bootstrap - maven-it-boostrap - 1.0 + org.apache.maven.its + core-it-support + 2.1-SNAPSHOT - org.apache.maven.its.bootstrap - group-13 - 1.0 - jar - - Maven Integration Test :: Boostrap :: Group-13 + maven-it-plugin-bootstrap + maven-plugin + Bootstrap plugin + 3.8.6 + 1.8.1 - - org.codehaus.plexus - plexus-utils - 2.0.5 - org.apache.maven maven-plugin-api - 3.1.0 + ${mavenVersion} org.apache.maven maven-core - 3.1.0 + ${mavenVersion} - org.apache.maven.plugins - maven-plugin-plugin - 3.6.0 + org.apache.maven.plugin-tools + maven-plugin-annotations + + + org.apache.maven.resolver + maven-resolver-impl + ${mavenResolverVersion} + diff --git a/its/core-it-support/maven-it-plugin-bootstrap/src/main/java/org/apache/maven/its/bootstrap/DownloadMojo.java b/its/core-it-support/maven-it-plugin-bootstrap/src/main/java/org/apache/maven/its/bootstrap/DownloadMojo.java new file mode 100644 index 0000000000..4e3a24652c --- /dev/null +++ b/its/core-it-support/maven-it-plugin-bootstrap/src/main/java/org/apache/maven/its/bootstrap/DownloadMojo.java @@ -0,0 +1,154 @@ +package org.apache.maven.its.bootstrap; + +/* + * 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. + */ + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.apache.maven.RepositoryUtils; +import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager; +import org.apache.maven.execution.MavenSession; +import org.apache.maven.model.Dependency; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugins.annotations.Component; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.ProjectBuildingRequest; +import org.codehaus.plexus.util.StringUtils; +import org.eclipse.aether.RepositorySystem; +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.artifact.ArtifactTypeRegistry; +import org.eclipse.aether.collection.CollectRequest; +import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.resolution.DependencyRequest; + +/** + * Boostrap plugin to download all required dependencies + */ +@Mojo( name = "download" ) +public class DownloadMojo + extends AbstractMojo +{ + + /** + * A list of artifacts coordinates. + */ + @Parameter + private List dependencies = new ArrayList<>(); + + /** + * A list of string of the form groupId:artifactId:version[:packaging[:classifier]]. + */ + @Parameter + private List artifacts = new ArrayList<>(); + + /** + * A file containing lines of the form groupId:artifactId:version[:packaging[:classifier]]. + */ + @Parameter + private File file; + + @Component + private RepositorySystem repositorySystem; + + @Component + private MavenSession session; + + @Component + private ArtifactHandlerManager artifactHandlerManager; + + @Override + public void execute() throws MojoFailureException + { + if ( file != null && file.exists() ) + { + try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) ) + { + reader.lines() + .map( String::trim ) + .filter( s -> !s.isEmpty() && !s.startsWith( "#" ) ) + .forEach( artifacts::add ); + } + catch ( IOException e ) + { + throw new MojoFailureException( "Unable to read dependencies: " + file, e ); + } + } + for ( String artifact : artifacts ) + { + if ( artifact != null ) + { + dependencies.add( toDependency( artifact ) ); + } + } + + ProjectBuildingRequest projectBuildingRequest = session.getProjectBuildingRequest(); + RepositorySystemSession repositorySystemSession = projectBuildingRequest.getRepositorySession(); + List repos = RepositoryUtils.toRepos( projectBuildingRequest.getRemoteRepositories() ); + ArtifactTypeRegistry registry = RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ); + for ( Dependency dependency : dependencies ) + { + try + { + org.eclipse.aether.graph.Dependency dep = RepositoryUtils.toDependency( dependency, registry ); + DependencyRequest request = new DependencyRequest( + new CollectRequest( Collections.singletonList( dep ), Collections.emptyList(), repos ), + null ); + System.out.println( "Resolving: " + dep.getArtifact() ); + repositorySystem.resolveDependencies( repositorySystemSession, request ); + } + catch ( Exception e ) + { + throw new MojoFailureException( "Unable to resolve dependency: " + dependency, e ); + } + } + } + + + static Dependency toDependency( String artifact ) + throws MojoFailureException + { + Dependency coordinate = new Dependency(); + String[] tokens = StringUtils.split( artifact, ":" ); + if ( tokens.length < 3 || tokens.length > 5 ) + { + throw new MojoFailureException( "Invalid artifact, you must specify " + + "groupId:artifactId:version[:packaging[:classifier]] " + artifact ); + } + coordinate.setGroupId( tokens[0] ); + coordinate.setArtifactId( tokens[1] ); + coordinate.setVersion( tokens[2] ); + if ( tokens.length >= 4 ) + { + coordinate.setType( tokens[3] ); + } + if ( tokens.length == 5 ) + { + coordinate.setClassifier( tokens[4] ); + } + return coordinate; + } +} diff --git a/its/core-it-support/pom.xml b/its/core-it-support/pom.xml index bda312e1b3..1f420724a1 100644 --- a/its/core-it-support/pom.xml +++ b/its/core-it-support/pom.xml @@ -33,6 +33,7 @@ under the License. Maven Core Integration Tests support tools. + maven-it-plugin-bootstrap core-it-plugins core-it-component core-it-toolchain diff --git a/its/pom.xml b/its/pom.xml index da95bc914c..e99581fd07 100644 --- a/its/pom.xml +++ b/its/pom.xml @@ -68,8 +68,8 @@ under the License. core-its ${user.home}/maven-sites true - 1.7 - 1.7 + 1.8 + 1.8