You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2006/01/11 04:15:36 UTC
svn commit: r367892 - in /maven/sandbox/plugins/maven-it-plugin:
src/main/java/org/apache/maven/plugin/it/ test-with-goals-file/
test-with-goals-file/src/ test-with-goals-file/src/it/
test-with-goals-file/src/it/test1/
Author: jdcasey
Date: Tue Jan 10 19:15:30 2006
New Revision: 367892
URL: http://svn.apache.org/viewcvs?rev=367892&view=rev
Log:
Adding goalsFile parameter to allow customization of the goals to be called on a per-project basis.
Added:
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml (with props)
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/build.log
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt (with props)
maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml (with props)
Modified:
maven/sandbox/plugins/maven-it-plugin/src/main/java/org/apache/maven/plugin/it/ForkMojo.java
Modified: maven/sandbox/plugins/maven-it-plugin/src/main/java/org/apache/maven/plugin/it/ForkMojo.java
URL: http://svn.apache.org/viewcvs/maven/sandbox/plugins/maven-it-plugin/src/main/java/org/apache/maven/plugin/it/ForkMojo.java?rev=367892&r1=367891&r2=367892&view=diff
==============================================================================
--- maven/sandbox/plugins/maven-it-plugin/src/main/java/org/apache/maven/plugin/it/ForkMojo.java (original)
+++ maven/sandbox/plugins/maven-it-plugin/src/main/java/org/apache/maven/plugin/it/ForkMojo.java Tue Jan 10 19:15:30 2006
@@ -30,7 +30,10 @@
import org.apache.maven.project.ProjectSorter;
import org.codehaus.plexus.util.dag.CycleDetectedException;
+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.Iterator;
@@ -61,7 +64,7 @@
/**
* Directory to search for integration tests.
- * @parameter default-value="${project.basedir}/src/it/" expression="${it.testDir}"
+ * @parameter default-value="${basedir}/src/it/" expression="${it.testDir}"
*/
private File integrationTestsDirectory;
@@ -99,6 +102,13 @@
* @parameter expression="${it.goals}" default-value="package"
*/
private String goals;
+
+ /**
+ * The name of the project-specific file that contains the enumeration of goals to execute for that test.
+ *
+ * @parameter
+ */
+ private String goalFile;
public void execute()
throws MojoExecutionException, MojoFailureException
@@ -164,6 +174,22 @@
List projectGoals = goalList;
+ if ( goalFile != null )
+ {
+ File projectGoalList = new File( project.getFile().getParentFile(), goalFile );
+
+ if ( projectGoalList.exists() )
+ {
+ List goals = readFromFile( projectGoalList );
+
+ if ( goals != null && !goals.isEmpty() )
+ {
+ getLog().info( "Using goals specified in file: " + projectGoalList );
+ projectGoals = goals;
+ }
+ }
+ }
+
String defaultGoal = project.getDefaultGoal();
if ( defaultGoal != null && defaultGoal.trim().length() > 0 )
@@ -172,6 +198,10 @@
projectGoals = Collections.singletonList( defaultGoal );
}
+ else
+ {
+ getLog().info( "Executing goals: " + projectGoals + " for project: " + project.getId() );
+ }
getLog().info( "Running test: " + project.getId() + "..." );
@@ -241,6 +271,46 @@
{
throw new MojoFailureException( this, "There were test failures.", failures.size() + " tests failed." );
}
+ }
+
+ private List readFromFile( File projectGoalList )
+ {
+ BufferedReader reader = null;
+
+ List result = null;
+
+ try
+ {
+ reader = new BufferedReader( new FileReader( projectGoalList ) );
+
+ result = new ArrayList();
+
+ String line = null;
+ while( ( line = reader.readLine() ) != null )
+ {
+ result.addAll( collectListFromCSV( line ) );
+ }
+ }
+ catch( IOException e )
+ {
+ getLog().warn( "Failed to load goal list from file: " + projectGoalList + ". Using 'goal' parameter configured on this plugin instead." );
+ getLog().debug( "Error reading goals file: " + projectGoalList, e );
+ }
+ finally
+ {
+ if ( reader != null )
+ {
+ try
+ {
+ reader.close();
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+ }
+
+ return result;
}
private List collectListFromCSV( String csv )
Added: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml?rev=367892&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml (added)
+++ maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml Tue Jan 10 19:15:30 2006
@@ -0,0 +1,31 @@
+<model
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>it-plugin-test</artifactId>
+ <version>1.0-alpha-1-SNAPSHOT</version>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-it-plugin</artifactId>
+
+ <configuration>
+ <goalFile>goals.txt</goalFile>
+ </configuration>
+
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</model>
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/build.log
URL: http://svn.apache.org/viewcvs/maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/build.log?rev=367892&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/build.log (added)
+++ maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/build.log Tue Jan 10 19:15:30 2006
@@ -0,0 +1 @@
+[info] [resources:resources][info] [compiler:compile][info] [resources:testResources][info] [compiler:testCompile][info] [surefire:test][info] [jar:jar][info] [resources:resources][info] [compiler:compile]
\ No newline at end of file
Added: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt
URL: http://svn.apache.org/viewcvs/maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt?rev=367892&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt (added)
+++ maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt Tue Jan 10 19:15:30 2006
@@ -0,0 +1 @@
+compile
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/goals.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml
URL: http://svn.apache.org/viewcvs/maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml?rev=367892&view=auto
==============================================================================
--- maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml (added)
+++ maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml Tue Jan 10 19:15:30 2006
@@ -0,0 +1,6 @@
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.plugins.it.tests</groupId>
+ <artifactId>test1</artifactId>
+ <version>1.0</version>
+</project>
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/plugins/maven-it-plugin/test-with-goals-file/src/it/test1/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"