Author: krosenvold
Date: Wed Nov 24 13:51:02 2010
New Revision: 1038600
URL: http://svn.apache.org/viewvc?rev=1038600&view=rev
Log:
o Added interface for scanner filter that will be used by directoryscanner
No functional change
Added:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/NonAbstractClassScannerFilter.java
- copied, changed from r1037309,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/ScannerFilter.java
- copied, changed from r1037309,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
Copied:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/NonAbstractClassScannerFilter.java
(from r1037309,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java)
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/NonAbstractClassScannerFilter.java?p2=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/NonAbstractClassScannerFilter.java&p1=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java&r1=1037309&r2=1038600&rev=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/NonAbstractClassScannerFilter.java
Wed Nov 24 13:51:02 2010
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.util;
+package org.apache.maven.surefire;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -17,14 +17,18 @@ package org.apache.maven.surefire.util;
* specific language governing permissions and limitations
* under the License.
*/
+import org.apache.maven.surefire.util.ScannerFilter;
-import org.apache.maven.surefire.testset.TestSetFailedException;
+import java.lang.reflect.Modifier;
/**
* @author Kristian Rosenvold
*/
-public interface DirectoryScanner
+public class NonAbstractClassScannerFilter
+ implements ScannerFilter
{
- Class[] locateTestClasses( ClassLoader classLoader )
- throws TestSetFailedException;
+ public boolean accept( Class testClass )
+ {
+ return !Modifier.isAbstract( testClass.getModifiers() );
+ }
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java?rev=1038600&r1=1038599&r2=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/suite/AbstractDirectoryTestSuite.java
Wed Nov 24 13:51:02 2010
@@ -19,6 +19,7 @@ package org.apache.maven.surefire.suite;
* under the License.
*/
+import org.apache.maven.surefire.NonAbstractClassScannerFilter;
import org.apache.maven.surefire.Surefire;
import org.apache.maven.surefire.report.ReporterManagerFactory;
import org.apache.maven.surefire.util.DefaultDirectoryScanner;
@@ -67,7 +68,7 @@ public abstract class AbstractDirectoryT
}
testSets = new TreeMap();
- Class[] locatedClasses = surefireDirectoryScanner.locateTestClasses(
classLoader );
+ Class[] locatedClasses = surefireDirectoryScanner.locateTestClasses(
classLoader, new NonAbstractClassScannerFilter() );
for ( int i = 0; i < locatedClasses.length; i++ )
{
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java?rev=1038600&r1=1038599&r2=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
Wed Nov 24 13:51:02 2010
@@ -57,7 +57,7 @@ public class DefaultDirectoryScanner
this.excludes = excludes;
}
- public Class[] locateTestClasses( ClassLoader classLoader )
+ public Class[] locateTestClasses( ClassLoader classLoader, ScannerFilter
scannerFilter )
throws TestSetFailedException
{
String[] testClassNames = collectTests();
@@ -77,9 +77,7 @@ public class DefaultDirectoryScanner
throw new TestSetFailedException( "Unable to create test class
'" + className + "'", e );
}
- if ( !Modifier.isAbstract( testClass.getModifiers() ) )
- {
-
+ if (scannerFilter.accept( testClass)){
result.add( testClass );
}
}
Modified:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java?rev=1038600&r1=1038599&r2=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
Wed Nov 24 13:51:02 2010
@@ -25,6 +25,13 @@ import org.apache.maven.surefire.testset
*/
public interface DirectoryScanner
{
- Class[] locateTestClasses( ClassLoader classLoader )
+ /**
+ * Locates tests based on scanning directories
+ * @param classLoader
+ * @param scannerFilter
+ * @return
+ * @throws TestSetFailedException
+ */
+ Class[] locateTestClasses( ClassLoader classLoader, ScannerFilter
scannerFilter )
throws TestSetFailedException;
}
Copied:
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/ScannerFilter.java
(from r1037309,
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java)
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/ScannerFilter.java?p2=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/ScannerFilter.java&p1=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java&r1=1037309&r2=1038600&rev=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/DirectoryScanner.java
(original)
+++
maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/util/ScannerFilter.java
Wed Nov 24 13:51:02 2010
@@ -18,13 +18,16 @@ package org.apache.maven.surefire.util;
* under the License.
*/
-import org.apache.maven.surefire.testset.TestSetFailedException;
-
/**
* @author Kristian Rosenvold
*/
-public interface DirectoryScanner
+public interface ScannerFilter
{
- Class[] locateTestClasses( ClassLoader classLoader )
- throws TestSetFailedException;
+ /**
+ * Indicates if the class should be accepted by the directory scanner
+ *
+ * @param testClass The class in question
+ * @return true if the class should be part of the directory scan result.
+ */
+ boolean accept( Class testClass );
}
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java?rev=1038600&r1=1038599&r2=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4TestChecker.java
Wed Nov 24 13:51:02 2010
@@ -18,16 +18,16 @@ package org.apache.maven.surefire.junit4
* under the License.
*/
-import org.apache.maven.surefire.testset.TestSetFailedException;
+import org.apache.maven.surefire.util.ScannerFilter;
import java.lang.annotation.Annotation;
-import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
* @author Kristian Rosenvold
*/
public class JUnit4TestChecker
+ implements ScannerFilter
{
private final Class junitClass;
@@ -39,9 +39,13 @@ public class JUnit4TestChecker
this.runWith = getJUnitClass( testClassLoader,
org.junit.runner.RunWith.class.getName() );
}
+ public boolean accept( Class testClass )
+ {
+ return isValidJUnit4Test( testClass );
+ }
+
@SuppressWarnings( { "unchecked" } )
public boolean isValidJUnit4Test( Class testClass )
- throws TestSetFailedException
{
if ( junitClass != null && junitClass.isAssignableFrom( testClass ) )
{
@@ -55,8 +59,10 @@ public class JUnit4TestChecker
}
Class classToCheck = testClass;
- while (classToCheck != null){
- if ( checkforTestAnnotatedMethod( classToCheck )){
+ while ( classToCheck != null )
+ {
+ if ( checkforTestAnnotatedMethod( classToCheck ) )
+ {
return true;
}
classToCheck = classToCheck.getSuperclass();
Modified:
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
URL:
http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java?rev=1038600&r1=1038599&r2=1038600&view=diff
==============================================================================
---
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
(original)
+++
maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreDirectoryTestSuite.java
Wed Nov 24 13:51:02 2010
@@ -19,6 +19,7 @@
package org.apache.maven.surefire.junitcore;
+import org.apache.maven.surefire.NonAbstractClassScannerFilter;
import org.apache.maven.surefire.report.ReporterException;
import org.apache.maven.surefire.report.ReporterManagerFactory;
import org.apache.maven.surefire.suite.SurefireTestSuite;
@@ -99,7 +100,7 @@ public class JUnitCoreDirectoryTestSuite
throw new IllegalStateException( "You can't call locateTestSets
twice" );
}
- Class[] locatedClasses = directoryScanner.locateTestClasses(
classLoader );
+ Class[] locatedClasses = directoryScanner.locateTestClasses(
classLoader, new NonAbstractClassScannerFilter() );
testsToRun = new TestsToRun( locatedClasses );
return testsToRun.getTestSets();
}