Index: src/test/java/org/apache/maven/surefire/its/ClassPathOrderTest.java =================================================================== --- src/test/java/org/apache/maven/surefire/its/ClassPathOrderTest.java (revision 0) +++ src/test/java/org/apache/maven/surefire/its/ClassPathOrderTest.java (revision 0) @@ -0,0 +1,31 @@ +package org.apache.maven.surefire.its; + + +import junit.framework.TestCase; +import org.apache.maven.it.Verifier; +import org.apache.maven.it.util.ResourceExtractor; + +import java.io.File; + +/** + * Test for checking the order of class path elements + * + * @author Dan Fabulich + * + */ +public class ClassPathOrderTest + extends TestCase +{ + public void testClassPathOrder () + throws Exception + { + File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/classpath-order" ); + + Verifier verifier = new Verifier( testDir.getAbsolutePath() ); + verifier.executeGoal( "test" ); + verifier.verifyErrorFreeLog(); + verifier.resetStreams(); + + HelperAssertions.assertTestSuiteResults( 2, 0, 0, 0, testDir ); + } +} Property changes on: src\test\java\org\apache\maven\surefire\its\ClassPathOrderTest.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Property changes on: src\test\resources\classpath-order ___________________________________________________________________ Name: svn:ignore + .classpath .project target .settings log.txt Index: src/test/resources/classpath-order/pom.xml =================================================================== --- src/test/resources/classpath-order/pom.xml (revision 0) +++ src/test/resources/classpath-order/pom.xml (revision 0) @@ -0,0 +1,56 @@ + + + + + 4.0.0 + + org.apache.maven.plugins.surefire + classpath-order + 1.0-SNAPSHOT + Test proper order of class path elements: test-classes, classes, dependencies + + + + + maven-surefire-plugin + + true + + + + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.3.1 + + + junit + junit + 3.8.1 + test + + + + Property changes on: src\test\resources\classpath-order\pom.xml ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/pom.xml =================================================================== --- src/test/resources/classpath-order/pom.xml (revision 0) +++ src/test/resources/classpath-order/pom.xml (revision 0) @@ -0,0 +1,56 @@ + + + + + 4.0.0 + + org.apache.maven.plugins.surefire + classpath-order + 1.0-SNAPSHOT + Test proper order of class path elements: test-classes, classes, dependencies + + + + + maven-surefire-plugin + + true + + + + + + + + org.apache.maven.plugins + maven-surefire-report-plugin + 2.3.1 + + + junit + junit + 3.8.1 + test + + + + Property changes on: src\test\resources\classpath-order\pom.xml ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties =================================================================== --- src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties (revision 0) +++ src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named file from the project's test resources +Surefire: classes Property changes on: src\test\resources\classpath-order\src\main\resources\surefire-classpath-order.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/main/resources/surefire-report.properties =================================================================== --- src/test/resources/classpath-order/src/main/resources/surefire-report.properties (revision 0) +++ src/test/resources/classpath-order/src/main/resources/surefire-report.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named i18n bundle in the Surefire Report Plugin +Surefire: classes Property changes on: src\test\resources\classpath-order\src\main\resources\surefire-report.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties =================================================================== --- src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties (revision 0) +++ src/test/resources/classpath-order/src/main/resources/surefire-classpath-order.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named file from the project's test resources +Surefire: classes Property changes on: src\test\resources\classpath-order\src\main\resources\surefire-classpath-order.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/main/resources/surefire-report.properties =================================================================== --- src/test/resources/classpath-order/src/main/resources/surefire-report.properties (revision 0) +++ src/test/resources/classpath-order/src/main/resources/surefire-report.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named i18n bundle in the Surefire Report Plugin +Surefire: classes Property changes on: src\test\resources\classpath-order\src\main\resources\surefire-report.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/test/java/it/BasicTest.java =================================================================== --- src/test/resources/classpath-order/src/test/java/it/BasicTest.java (revision 0) +++ src/test/resources/classpath-order/src/test/java/it/BasicTest.java (revision 0) @@ -0,0 +1,42 @@ +package it; + +import java.io.InputStream; +import java.io.IOException; +import java.util.Properties; + +import junit.framework.TestCase; + +public class BasicTest + extends TestCase +{ + + public void testTestClassesBeforeMainClasses() + { + Properties props = getProperties( "/surefire-classpath-order.properties" ); + assertEquals( "test-classes", props.getProperty( "Surefire" ) ); + } + + public void testMainClassesBeforeDependencies() + { + Properties props = getProperties( "/surefire-report.properties" ); + assertEquals( "classes", props.getProperty( "Surefire" ) ); + } + + private Properties getProperties(String resource) + { + InputStream in = getClass().getResourceAsStream( resource ); + assertNotNull( in ); + try + { + Properties props = new Properties(); + props.load( in ); + return props; + } + catch (IOException e) + { + fail(e.toString()); + return null; + } + } + +} Property changes on: src\test\resources\classpath-order\src\test\java\it\BasicTest.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/test/java/it/BasicTest.java =================================================================== --- src/test/resources/classpath-order/src/test/java/it/BasicTest.java (revision 0) +++ src/test/resources/classpath-order/src/test/java/it/BasicTest.java (revision 0) @@ -0,0 +1,42 @@ +package it; + +import java.io.InputStream; +import java.io.IOException; +import java.util.Properties; + +import junit.framework.TestCase; + +public class BasicTest + extends TestCase +{ + + public void testTestClassesBeforeMainClasses() + { + Properties props = getProperties( "/surefire-classpath-order.properties" ); + assertEquals( "test-classes", props.getProperty( "Surefire" ) ); + } + + public void testMainClassesBeforeDependencies() + { + Properties props = getProperties( "/surefire-report.properties" ); + assertEquals( "classes", props.getProperty( "Surefire" ) ); + } + + private Properties getProperties(String resource) + { + InputStream in = getClass().getResourceAsStream( resource ); + assertNotNull( in ); + try + { + Properties props = new Properties(); + props.load( in ); + return props; + } + catch (IOException e) + { + fail(e.toString()); + return null; + } + } + +} Property changes on: src\test\resources\classpath-order\src\test\java\it\BasicTest.java ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties =================================================================== --- src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties (revision 0) +++ src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named file from the project's main resources +Surefire: test-classes Property changes on: src\test\resources\classpath-order\src\test\resources\surefire-classpath-order.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Index: src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties =================================================================== --- src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties (revision 0) +++ src/test/resources/classpath-order/src/test/resources/surefire-classpath-order.properties (revision 0) @@ -0,0 +1,2 @@ +# This file collides with the equally named file from the project's main resources +Surefire: test-classes Property changes on: src\test\resources\classpath-order\src\test\resources\surefire-classpath-order.properties ___________________________________________________________________ Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native