From 16454fd97c423c01d08af685c30a608081acf31f Mon Sep 17 00:00:00 2001 From: John Dennis Casey Date: Fri, 18 Jul 2008 15:41:39 +0000 Subject: [PATCH] [MNG-3671] integration test for plugin-level dependencies that have expressions in their definition. git-svn-id: https://svn.apache.org/repos/asf/maven/core-integration-testing/trunk@677943 13f79535-47bb-0310-9956-ffa450edef68 --- ...ng3671PluginLevelDepInterpolationTest.java | 79 +++++++++++++++++++ .../pom.xml | 33 ++++++++ .../src/main/java/testing/App.java | 13 +++ .../src/test/java/testing/AppTest.java | 38 +++++++++ 4 files changed, 163 insertions(+) create mode 100644 its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java create mode 100644 its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/pom.xml create mode 100644 its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/main/java/testing/App.java create mode 100644 its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/test/java/testing/AppTest.java diff --git a/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java new file mode 100644 index 0000000000..98aad4d7e6 --- /dev/null +++ b/its/core-integration-tests/src/test/java/org/apache/maven/integrationtests/MavenITmng3671PluginLevelDepInterpolationTest.java @@ -0,0 +1,79 @@ +/* + * 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. + */ + +package org.apache.maven.integrationtests; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; +import org.apache.maven.integrationtests.AbstractMavenIntegrationTestCase; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.ResourceExtractor; + +/** + * This is a test set for MNG-3671. + * + * Tests to make sure that custom plugin dependencies (defined in your local POM) have + * their information interpolated before they are injected into the plugin descriptor + * for eventual resolution and inclusion in the plugin classpath. Otherwise, resolution + * errors will occur and the plugin will fail to initialize. + * + * @author jdcasey + * + */ +public class MavenITmng3671PluginLevelDepInterpolationTest + extends AbstractMavenIntegrationTestCase +{ + public MavenITmng3671PluginLevelDepInterpolationTest() + throws InvalidVersionSpecificationException + { + super( "(2.0.8,)" ); // only test in 2.0.9+ + } + + public void testitMNG3671 () + throws Exception + { + // The testdir is computed from the location of this + // file. + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3671-pluginLevelDepInterpolation" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + + verifier.executeGoal( "compile" ); + + /* + * This is the simplest way to check a build + * succeeded. It is also the simplest way to create + * an IT test: make the build pass when the test + * should pass, and make the build fail when the + * test should fail. There are other methods + * supported by the verifier. They can be seen here: + * http://maven.apache.org/shared/maven-verifier/apidocs/index.html + */ + verifier.verifyErrorFreeLog(); + + /* + * Reset the streams before executing the verifier + * again. + */ + verifier.resetStreams(); + } +} diff --git a/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/pom.xml b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/pom.xml new file mode 100644 index 0000000000..1b9ae5b956 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/pom.xml @@ -0,0 +1,33 @@ + + 4.0.0 + testing + plugin-level-dep-with-expression + jar + 3.8.1 + + + + junit + junit + 3.8.1 + test + + + + + + + maven-compiler-plugin + 2.0.2 + + + junit + junit + ${pom.version} + + + + + + diff --git a/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/main/java/testing/App.java b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/main/java/testing/App.java new file mode 100644 index 0000000000..217a19b5d0 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/main/java/testing/App.java @@ -0,0 +1,13 @@ +package testing; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/test/java/testing/AppTest.java b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/test/java/testing/AppTest.java new file mode 100644 index 0000000000..3a8780ff89 --- /dev/null +++ b/its/core-integration-tests/src/test/resources/mng-3671-pluginLevelDepInterpolation/src/test/java/testing/AppTest.java @@ -0,0 +1,38 @@ +package testing; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}