From 51449eae730426c9454111a57a0bea00bfee88dc Mon Sep 17 00:00:00 2001 From: Brian E Fox Date: Thu, 20 Mar 2008 18:51:29 +0000 Subject: [PATCH] MPLUGIN-104 adding an IT to reproduce the problem git-svn-id: https://svn.apache.org/repos/asf/maven/plugin-tools/trunk@639405 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/it/plugin-report-failure-it/pom.xml | 38 +++++++++ .../src/test/java/PluginReportCrashTest.java | 33 ++++++++ .../test/resources/PluginReportCrash/pom.xml | 23 ++++++ .../its/mng3473/mng_3473_mojo/MyMojo.java | 81 +++++++++++++++++++ 4 files changed, 175 insertions(+) create mode 100644 maven-plugin-plugin/src/it/plugin-report-failure-it/pom.xml create mode 100644 maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/java/PluginReportCrashTest.java create mode 100644 maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/pom.xml create mode 100644 maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/src/main/java/org/apache/maven/its/mng3473/mng_3473_mojo/MyMojo.java diff --git a/maven-plugin-plugin/src/it/plugin-report-failure-it/pom.xml b/maven-plugin-plugin/src/it/plugin-report-failure-it/pom.xml new file mode 100644 index 0000000..954314a --- /dev/null +++ b/maven-plugin-plugin/src/it/plugin-report-failure-it/pom.xml @@ -0,0 +1,38 @@ + + 4.0.0 + org.apache.maven.its + maven-integration-test-sample + 1.0-SNAPSHOT + Maven Integration Tests + + + org.apache.maven.shared + maven-verifier + 1.0 + + + org.apache.maven.its + maven-integration-test-helper + 1.0-SNAPSHOT + + + junit + junit + 3.8.1 + test + + + + + + apache.snapshots + http://people.apache.org/repo/m2-snapshot-repository + + false + + + true + + + + diff --git a/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/java/PluginReportCrashTest.java b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/java/PluginReportCrashTest.java new file mode 100644 index 0000000..463f4b6 --- /dev/null +++ b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/java/PluginReportCrashTest.java @@ -0,0 +1,33 @@ + + +import org.apache.maven.integrationtests.AbstractMavenIntegrationTestCase; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.ResourceExtractor; + +import java.io.File; + +/** + * Tests that the PluginDescriptor.getArtifacts() call returns all of the dependencies of the plugin, + * not just those that made it past the filter excluding Maven's core artifacts. + */ +public class PluginReportCrashTest + extends AbstractMavenIntegrationTestCase +{ + public void testPluginReport() + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/PluginReportCrash" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + + verifier.executeGoal( "org.apache.maven.plugins:maven-plugin-plugin:2.3:report" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + verifier = new Verifier( testDir.getAbsolutePath() ); + + verifier.executeGoal( "org.apache.maven.plugins:maven-plugin-plugin:2.4:report" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + } +} diff --git a/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/pom.xml b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/pom.xml new file mode 100644 index 0000000..ba6ef94 --- /dev/null +++ b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/pom.xml @@ -0,0 +1,23 @@ + + 4.0.0 + org.apache.maven.its.pluginreportcrash + mng-pluginreportcrash-mojo + maven-plugin + 0.0.1-SNAPSHOT + PluginReportCrash + http://maven.apache.org + + + org.apache.maven + maven-plugin-api + 2.0 + + + junit + junit + 3.8.1 + test + + + diff --git a/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/src/main/java/org/apache/maven/its/mng3473/mng_3473_mojo/MyMojo.java b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/src/main/java/org/apache/maven/its/mng3473/mng_3473_mojo/MyMojo.java new file mode 100644 index 0000000..b4ed2ad --- /dev/null +++ b/maven-plugin-plugin/src/it/plugin-report-failure-it/src/test/resources/PluginReportCrash/src/main/java/org/apache/maven/its/mng3473/mng_3473_mojo/MyMojo.java @@ -0,0 +1,81 @@ +package org.apache.maven.its.mng3473.mng_3473_mojo; + +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed 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 org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; + +/** + * Goal which touches a timestamp file. + * + * @goal touch + * + * @phase process-sources + */ +public class MyMojo + extends AbstractMojo +{ + /** + * Location of the file. + * @parameter expression="${project.build.directory}" + * @required + */ + private File outputDirectory; + + public void execute() + throws MojoExecutionException + { + File f = outputDirectory; + + if ( !f.exists() ) + { + f.mkdirs(); + } + + File touch = new File( f, "touch.txt" ); + + FileWriter w = null; + try + { + w = new FileWriter( touch ); + + w.write( "touch.txt" ); + } + catch ( IOException e ) + { + throw new MojoExecutionException( "Error creating file " + touch, e ); + } + finally + { + if ( w != null ) + { + try + { + w.close(); + } + catch ( IOException e ) + { + // ignore + } + } + } + } +}