From be0edcfb6b3a0195b1d0218c1b5e67dbce60133c Mon Sep 17 00:00:00 2001 From: Igor Fedorenko Date: Tue, 10 Mar 2015 10:37:41 -0400 Subject: [PATCH] MNG-5783 test plugin.artifacts can include slf4j Signed-off-by: Igor Fedorenko --- .../apache/maven/it/IntegrationTestSuite.java | 1 + ...venITmng5783PluginDependencyFiltering.java | 40 +++++++++++ .../plugin/pom.xml | 55 ++++++++++++++ .../maven/its/mng5783/plugin/TestMojo.java | 72 +++++++++++++++++++ .../slf4j/pom.xml | 55 ++++++++++++++ 5 files changed, 223 insertions(+) create mode 100644 core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java create mode 100644 core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/pom.xml create mode 100644 core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/src/main/java/org/apache/maven/its/mng5783/plugin/TestMojo.java create mode 100644 core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/slf4j/pom.xml 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 f3baf597d..98e575296 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 @@ -106,6 +106,7 @@ public static Test suite() // ------------------------------------------------------------------------------------------------------------- // suite.addTestSuite( MavenIT0108SnapshotUpdateTest.class ); -- MNG-3137 + suite.addTestSuite( MavenITmng5783PluginDependencyFiltering.class ); suite.addTestSuite( MavenITmng5774ConfigurationProcessorsTest.class ); suite.addTestSuite( MavenITmng5771CoreExtensionsTest.class ); suite.addTestSuite( MavenITmng5768CliExecutionIdTest.class ); diff --git a/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java new file mode 100644 index 000000000..4984954b1 --- /dev/null +++ b/core-it-suite/src/test/java/org/apache/maven/it/MavenITmng5783PluginDependencyFiltering.java @@ -0,0 +1,40 @@ +package org.apache.maven.it; + +import java.io.File; +import java.util.List; + +import org.apache.maven.it.util.ResourceExtractor; + +public class MavenITmng5783PluginDependencyFiltering + extends AbstractMavenIntegrationTestCase +{ + + public MavenITmng5783PluginDependencyFiltering() + { + super( "[3.0,)" ); + } + + public void testSLF4j() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-5783-plugin-dependency-filtering" ); + Verifier verifier = newVerifier( new File( testDir, "plugin" ).getAbsolutePath() ); + verifier.executeGoal( "install" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + verifier = newVerifier( new File( testDir, "slf4j" ).getAbsolutePath(), "remote" ); + verifier.executeGoal( "validate" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + // Note that plugin dependencies always include plugin itself and plexus-utils + + List dependencies = verifier.loadLines( "target/dependencies.txt", "UTF-8" ); + assertEquals( 3, dependencies.size() ); + assertEquals( "mng-5783-plugin-dependency-filtering:mng-5783-plugin-dependency-filtering-plugin:maven-plugin:0.1", + dependencies.get( 0 ) ); + assertEquals( "org.slf4j:slf4j-api:jar:1.7.5", dependencies.get( 1 ) ); + assertEquals( "org.codehaus.plexus:plexus-utils:jar:1.1", dependencies.get( 2 ) ); + } +} diff --git a/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/pom.xml b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/pom.xml new file mode 100644 index 000000000..94191dfa1 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/pom.xml @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + mng-5783-plugin-dependency-filtering + mng-5783-plugin-dependency-filtering-plugin + 0.1 + maven-plugin + + + 3.2.5 + + + + + org.apache.maven + maven-plugin-api + ${maven-version} + provided + + + org.apache.maven + maven-model + ${maven-version} + provided + + + org.apache.maven + maven-core + ${maven-version} + provided + + + diff --git a/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/src/main/java/org/apache/maven/its/mng5783/plugin/TestMojo.java b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/src/main/java/org/apache/maven/its/mng5783/plugin/TestMojo.java new file mode 100644 index 000000000..00faa659a --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/plugin/src/main/java/org/apache/maven/its/mng5783/plugin/TestMojo.java @@ -0,0 +1,72 @@ +package org.apache.maven.its.mng5783.plugin; + +/* + * 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.BufferedWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.util.List; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; + +/** + * @goal test + */ +public class TestMojo + extends AbstractMojo +{ + /** @parameter property="project.build.directory" */ + private File outputDirectory; + + /** @parameter property="plugin.artifacts" */ + private List artifacts; + + public void execute() + throws MojoExecutionException + { + try + { + File file = new File( outputDirectory, "dependencies.txt" ); + file.getParentFile().mkdirs(); + BufferedWriter w = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( file ), "UTF-8" ) ); + try + { + for ( Artifact artifact : artifacts ) + { + w.write( artifact.getId() ); + w.newLine(); + } + } + finally + { + w.close(); + } + } + catch ( IOException e ) + { + throw new MojoExecutionException( e.getMessage(), e ); + } + + } +} diff --git a/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/slf4j/pom.xml b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/slf4j/pom.xml new file mode 100644 index 000000000..94164db42 --- /dev/null +++ b/core-it-suite/src/test/resources/mng-5783-plugin-dependency-filtering/slf4j/pom.xml @@ -0,0 +1,55 @@ + + + + + + 4.0.0 + + mng-5783-plugin-dependency-filtering + mng-5783-plugin-dependency-filtering-slf4j + 0.1 + + + + + mng-5783-plugin-dependency-filtering + mng-5783-plugin-dependency-filtering-plugin + 0.1 + + + test + + test + + validate + + + + + org.slf4j + slf4j-api + 1.7.5 + + + + + +