brett 2005/04/03 19:57:28
Modified: maven-plugins/maven-surefire-plugin pom.xml
maven-mboot2/src/main/java/model Dependency.java
maven-mboot2/src/main/java/test SurefireBooter.java
SurefirePlugin.java
maven-mboot2/src/main/java MBoot.java
maven-mboot2 pom.xml
Log:
use surefire pom for surefire dependencies
Revision Changes Path
1.9 +6 -0
maven-components/maven-plugins/maven-surefire-plugin/pom.xml
Index: pom.xml
===================================================================
RCS file:
/home/cvs/maven-components/maven-plugins/maven-surefire-plugin/pom.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- pom.xml 23 Mar 2005 06:52:54 -0000 1.8
+++ pom.xml 4 Apr 2005 02:57:27 -0000 1.9
@@ -24,5 +24,11 @@
<type>jar</type>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>runtime</scope>
+ </dependency>
</dependencies>
</model>
1.4 +6 -1
maven-components/maven-mboot2/src/main/java/model/Dependency.java
Index: Dependency.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/model/Dependency.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- Dependency.java 4 Apr 2005 02:31:56 -0000 1.3
+++ Dependency.java 4 Apr 2005 02:57:27 -0000 1.4
@@ -198,4 +198,9 @@
{
return getArtifactDirectory() + "/" + getType() + "s/" +
getArtifact();
}
+
+ public String toString()
+ {
+ return getRepositoryPath();
+ }
}
1.3 +10 -117
maven-components/maven-mboot2/src/main/java/test/SurefireBooter.java
Index: SurefireBooter.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/test/SurefireBooter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SurefireBooter.java 15 Mar 2005 21:35:06 -0000 1.2
+++ SurefireBooter.java 4 Apr 2005 02:57:27 -0000 1.3
@@ -2,30 +2,26 @@
import util.IsolatedClassLoader;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.StringTokenizer;
-public class
- SurefireBooter
+public class SurefireBooter
{
private List batteries = new ArrayList();
private List reports = new ArrayList();
private List classpathUrls = new ArrayList();
-
+
private String reportsDir;
public SurefireBooter()
{
}
-
+
public void setReportsDirectory( String reportsDirectory )
{
this.reportsDir = reportsDirectory;
@@ -33,12 +29,12 @@
public void addBattery( String battery, Object[] params )
{
- batteries.add( new Object[]{ battery, params } );
+ batteries.add( new Object[]{battery, params} );
}
public void addBattery( String battery )
{
- batteries.add( new Object[]{ battery, null } );
+ batteries.add( new Object[]{battery, null} );
}
public void addReport( String report )
@@ -73,123 +69,20 @@
Object batteryExecutor = batteryExecutorClass.newInstance();
- Method run = batteryExecutorClass.getMethod( "run", new Class[] {
List.class, List.class, ClassLoader.class, String.class } );
+ Method run = batteryExecutorClass.getMethod( "run",
+ new Class[]{List.class,
List.class, ClassLoader.class,
+
String.class} );
ClassLoader oldContextClassLoader =
Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader( surefireClassLoader );
- Boolean result = (Boolean) run.invoke( batteryExecutor, new
Object[]{ reports, batteries, surefireClassLoader, reportsDir } );
+ Boolean result = (Boolean) run.invoke( batteryExecutor,
+ new Object[]{reports,
batteries, surefireClassLoader, reportsDir} );
Thread.currentThread().setContextClassLoader( oldContextClassLoader
);
return result.booleanValue();
}
- public void reset()
- {
- batteries.clear();
-
- reports.clear();
-
- classpathUrls.clear();
- }
-
- // ----------------------------------------------------------------------
- // Main
- // ----------------------------------------------------------------------
-
- public static void main( String[] args )
- throws Exception
- {
- String basedir = args[0];
-
- System.setProperty( "basedir", basedir );
-
- String mavenRepoLocal = args[1];
-
- File dependenciesFile = new File( args[2] );
-
- List dependencies = new ArrayList();
-
- BufferedReader buf = new BufferedReader( new FileReader(
dependenciesFile ) );
-
- String line;
-
- while ( ( line = buf.readLine() ) != null )
- {
- dependencies.add( line );
- }
-
- buf.close();
-
- File includesFile = new File( args[3] );
-
- List includes = new ArrayList();
-
- buf = new BufferedReader( new FileReader( includesFile ) );
-
- line = buf.readLine();
-
- String includesStr = line.substring( line.indexOf( "@" ) + 1 );
-
- StringTokenizer st = new StringTokenizer( includesStr, "," );
-
- while ( st.hasMoreTokens() )
- {
- String inc = st.nextToken().trim();
-
- includes.add( inc );
- }
-
- buf.close();
-
- File excludesFile = new File( args[4] );
-
- List excludes = new ArrayList();
-
- buf = new BufferedReader( new FileReader( excludesFile ) );
-
- line = buf.readLine();
-
- String excludesStr = line.substring( line.indexOf( "@" ) + 1 );
-
- st = new StringTokenizer( excludesStr, "," );
-
- while ( st.hasMoreTokens() )
- {
- excludes.add( st.nextToken().trim() );
- }
-
- buf.close();
-
- SurefireBooter surefireBooter = new SurefireBooter();
-
- surefireBooter.addBattery(
"org.codehaus.surefire.battery.DirectoryBattery", new Object[]{ basedir,
includes, excludes } );
-
- surefireBooter.addClassPathUrl( new File( mavenRepoLocal,
"junit/jars/junit-3.8.1.jar" ).getPath() );
-
- surefireBooter.addClassPathUrl( new File( mavenRepoLocal,
"surefire/jars/surefire-1.2-SNAPSHOT.jar" ).getPath() );
-
- surefireBooter.addClassPathUrl( new File( basedir, "target/classes/"
).getPath() );
-
- surefireBooter.addClassPathUrl( new File( basedir,
"target/test-classes/" ).getPath() );
-
- processDependencies( dependencies, surefireBooter );
-
- surefireBooter.addReport(
"org.codehaus.surefire.report.ConsoleReport" );
-
- surefireBooter.run();
- }
-
- private static void processDependencies( List dependencies,
SurefireBooter sureFire )
- throws Exception
- {
- for ( Iterator i = dependencies.iterator(); i.hasNext(); )
- {
- String dep = (String) i.next();
-
- sureFire.addClassPathUrl( new File( dep ).getPath() );
- }
- }
}
1.3 +7 -20
maven-components/maven-mboot2/src/main/java/test/SurefirePlugin.java
Index: SurefirePlugin.java
===================================================================
RCS file:
/home/cvs/maven-components/maven-mboot2/src/main/java/test/SurefirePlugin.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SurefirePlugin.java 15 Mar 2005 21:35:06 -0000 1.2
+++ SurefirePlugin.java 4 Apr 2005 02:57:27 -0000 1.3
@@ -1,17 +1,11 @@
package test;
-import java.io.File;
+import java.util.Iterator;
import java.util.List;
public class SurefirePlugin
{
- public boolean execute( String mavenRepoLocal,
- String basedir,
- String classesDirectory,
- String testClassesDirectory,
- List includes,
- List excludes,
- String[] classpathElements,
+ public boolean execute( String basedir, List includes, List excludes,
List classpathElements,
String reportsDirectory )
throws Exception
{
@@ -19,21 +13,14 @@
SurefireBooter surefireBooter = new SurefireBooter();
- surefireBooter.addBattery(
"org.codehaus.surefire.battery.DirectoryBattery", new Object[]{basedir,
includes, excludes} );
+ surefireBooter.addBattery(
"org.codehaus.surefire.battery.DirectoryBattery",
+ new Object[]{basedir, includes, excludes}
);
- surefireBooter.addClassPathUrl( new File( mavenRepoLocal,
"junit/jars/junit-3.8.1.jar" ).getPath() );
-
- surefireBooter.addClassPathUrl( new File( mavenRepoLocal,
"surefire/jars/surefire-1.2-SNAPSHOT.jar" ).getPath() );
-
- surefireBooter.addClassPathUrl( new File( classesDirectory
).getPath() );
-
- surefireBooter.addClassPathUrl( new File( testClassesDirectory
).getPath() );
-
- for ( int i = 0; i < classpathElements.length; i++ )
+ for ( Iterator i = classpathElements.iterator(); i.hasNext(); )
{
- surefireBooter.addClassPathUrl( classpathElements[i] );
+ surefireBooter.addClassPathUrl( (String) i.next() );
}
-
+
surefireBooter.setReportsDirectory( reportsDirectory );
surefireBooter.addReport(
"org.codehaus.surefire.report.ConsoleReporter" );
1.85 +18 -10 maven-components/maven-mboot2/src/main/java/MBoot.java
Index: MBoot.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/src/main/java/MBoot.java,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -r1.84 -r1.85
--- MBoot.java 4 Apr 2005 02:31:56 -0000 1.84
+++ MBoot.java 4 Apr 2005 02:57:27 -0000 1.85
@@ -97,8 +97,6 @@
private boolean online = true;
- private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
private static final String SCOPE_TEST = "test";
private static final String SCOPE_COMPILE = "compile";
@@ -256,6 +254,10 @@
ClassLoader bootstrapClassLoader =
createClassloaderFromDependencies( reader.getDependencies(), null );
reader = new ModelReader( downloader );
+ reader.parse( new File( basedir,
"maven-plugins/maven-surefire-plugin/pom.xml" ) );
+ List surefireDependencies = reader.getDependencies();
+
+ reader = new ModelReader( downloader );
// Install maven-components POM
installPomFile( repoLocal, new File( basedir, "pom.xml" ) );
@@ -282,7 +284,7 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, builds[i],
bootstrapClassLoader );
+ reader = buildProject( directory, builds[i],
bootstrapClassLoader, surefireDependencies );
if ( reader.getArtifactId().equals( "maven-core" ) )
{
@@ -308,7 +310,7 @@
System.setProperty( "basedir", directory );
- reader = buildProject( directory, pluginBuilds[i], cl );
+ reader = buildProject( directory, pluginBuilds[i], cl,
surefireDependencies );
System.out.println(
"--------------------------------------------------------------------" );
}
@@ -427,7 +429,8 @@
System.out.println( "Finished at: " + fullStop );
}
- public ModelReader buildProject( String basedir, String projectId,
ClassLoader classLoader )
+ public ModelReader buildProject( String basedir, String projectId,
ClassLoader classLoader,
+ List surefireDependencies )
throws Exception
{
System.out.println( "Building project in " + basedir );
@@ -578,7 +581,7 @@
// Run tests
//
----------------------------------------------------------------------
- runTests( basedir, classes, testClasses, reader );
+ runTests( basedir, classes, testClasses, reader,
surefireDependencies );
//
----------------------------------------------------------------------
// Create JAR
@@ -750,7 +753,8 @@
}
}
- private void runTests( String basedir, String classes, String
testClasses, ModelReader reader )
+ private void runTests( String basedir, String classes, String
testClasses, ModelReader reader,
+ List surefireDependencies )
throws Exception
{
SurefirePlugin testRunner = new SurefirePlugin();
@@ -769,9 +773,13 @@
String reportsDir = new File( basedir, "target/surefire-reports"
).getAbsolutePath();
- String[] cp = (String[]) classpath( reader.getDependencies(), null,
SCOPE_TEST ).toArray( EMPTY_STRING_ARRAY );
- boolean success = testRunner.execute( repoLocal, basedir, classes,
testClasses, includes, excludes, cp,
- reportsDir );
+ List depList = new ArrayList( reader.getDependencies() );
+ depList.addAll( surefireDependencies );
+
+ List classpath = classpath( depList, null, SCOPE_TEST );
+ classpath.add( classes );
+ classpath.add( testClasses );
+ boolean success = testRunner.execute( basedir, includes, excludes,
classpath, reportsDir );
if ( !success )
{
1.7 +0 -14 maven-components/maven-mboot2/pom.xml
Index: pom.xml
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/pom.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- pom.xml 4 Apr 2005 02:31:56 -0000 1.6
+++ pom.xml 4 Apr 2005 02:57:27 -0000 1.7
@@ -36,20 +36,6 @@
<scope>runtime</scope>
</dependency>
- <!-- TODO: should get these from the surefire plugin -->
- <dependency>
- <groupId>surefire</groupId>
- <artifactId>surefire-booter</artifactId>
- <version>1.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>surefire</groupId>
- <artifactId>surefire</artifactId>
- <version>1.2</version>
- <scope>test</scope>
- </dependency>
-
<!-- Just for install... possibly not needed here? -->
<dependency>
<groupId>classworlds</groupId>