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();
     }


Reply via email to