[SUREFIRE] refactoring Class<?>, timer with Executors.newScheduledThreadPool, 
public method modifiers to private.


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/e8cd8cc8
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/e8cd8cc8
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/e8cd8cc8

Branch: refs/heads/master
Commit: e8cd8cc8764835374ef9865ed1369fdda62f1d6a
Parents: e53ab12
Author: Tibor17 <tibo...@lycos.com>
Authored: Mon Jul 13 12:30:50 2015 +0200
Committer: Tibor17 <tibo...@lycos.com>
Committed: Thu Jul 23 23:28:03 2015 +0200

----------------------------------------------------------------------
 .../surefire/booterclient/BooterSerializer.java |  1 -
 .../surefire/booterclient/ForkStarter.java      | 19 +++--------
 .../booterclient/output/ForkClient.java         | 19 +++++------
 .../output/ThreadedStreamConsumer.java          |  7 ++--
 .../runorder/RunEntryStatisticsMapTest.java     | 16 +++++----
 .../surefire/runorder/PrioritizedTest.java      |  6 ++--
 .../runorder/RunEntryStatisticsMap.java         | 25 ++++++--------
 .../runorder/ThreadedExecutionScheduler.java    | 11 +++---
 .../surefire/providerapi/SurefireProvider.java  |  3 +-
 .../surefire/util/DefaultDirectoryScanner.java  |  8 +----
 .../util/DefaultRunOrderCalculator.java         | 10 +++---
 .../maven/surefire/util/DefaultScanResult.java  |  4 +--
 .../maven/surefire/util/ReflectionUtils.java    | 15 +++------
 .../apache/maven/surefire/util/TestsToRun.java  | 31 ++++++++---------
 .../surefire/util/internal/StringUtils.java     | 14 ++++++++
 .../ThreadedExecutionSchedulerTest.java         |  2 +-
 .../surefire/util/RunOrderCalculatorTest.java   |  4 +--
 .../maven/surefire/util/TestsToRunTest.java     | 14 ++++----
 .../maven/surefire/booter/ForkedBooter.java     | 35 ++++++++++----------
 .../maven/surefire/booter/LazyTestsToRun.java   | 26 +++++++--------
 .../maven/surefire/booter/ProviderFactory.java  |  7 ++--
 .../surefire/testprovider/TestProvider.java     |  3 +-
 .../maven/surefire/junit/JUnit3Provider.java    |  5 ++-
 .../maven/surefire/junit4/JUnit4Provider.java   |  5 ++-
 .../surefire/junitcore/JUnitCoreProvider.java   |  5 ++-
 .../surefire/junitcore/JUnitCoreWrapper.java    |  2 +-
 .../testng/TestNGDirectoryTestSuite.java        |  1 -
 .../maven/surefire/testng/TestNGProvider.java   |  9 +++--
 28 files changed, 144 insertions(+), 163 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
index 4b2aeaf..0164ba9 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
@@ -41,7 +41,6 @@ import org.apache.maven.surefire.util.RunOrder;
 
 // CHECKSTYLE_OFF: imports
 import static org.apache.maven.surefire.booter.BooterConstants.*;
-import static org.apache.maven.surefire.cli.CommandLineOption.*;
 
 /**
  * Knows how to serialize and deserialize the booter configuration.

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
index 0514e47..64bce8b 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
@@ -57,8 +57,6 @@ import java.io.InputStream;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Queue;
 import java.util.concurrent.ArrayBlockingQueue;
@@ -217,20 +215,13 @@ public class ForkStarter
         {
             // Ask to the executorService to run all tasks
             RunResult globalResult = new RunResult( 0, 0, 0, 0 );
-
-            List<Class<?>> suites = new ArrayList<Class<?>>();
-            for ( Iterator<Class<?>> suitesIterator = getSuitesIterator(); 
suitesIterator.hasNext(); )
-            {
-                suites.add( suitesIterator.next() );
-            }
             final Queue<String> messageQueue = new 
ConcurrentLinkedQueue<String>();
-            for ( Class<?> clazz : suites )
+            for ( Class<?> clazz : getSuitesIterator() )
             {
                 messageQueue.add( clazz.getName() );
             }
 
-
-            for ( int forkNum = 0; forkNum < forkCount && forkNum < 
suites.size(); forkNum++ )
+            for ( int forkNum = 0, total = messageQueue.size(); forkNum < 
forkCount && forkNum < total; forkNum++ )
             {
                 Callable<RunResult> pf = new Callable<RunResult>()
                 {
@@ -303,9 +294,8 @@ public class ForkStarter
             // Ask to the executorService to run all tasks
             RunResult globalResult = new RunResult( 0, 0, 0, 0 );
 
-            for ( final Iterator<Class<?>> suites = getSuitesIterator(); 
suites.hasNext(); )
+            for ( final Object testSet : getSuitesIterator() )
             {
-                final Object testSet = suites.next();
                 Callable<RunResult> pf = new Callable<RunResult>()
                 {
                     public RunResult call()
@@ -532,8 +522,7 @@ public class ForkStarter
         return runResult;
     }
 
-    @SuppressWarnings( "unchecked" )
-    private Iterator<Class<?>> getSuitesIterator()
+    private Iterable<Class<?>> getSuitesIterator()
         throws SurefireBooterForkException
     {
         try

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
index 54ee5e4..8e12e04 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
@@ -82,12 +82,16 @@ public class ForkClient
 
     public void consumeLine( String s )
     {
+        if ( StringUtils.isNotBlank( s ) )
+        {
+            processLine( s );
+        }
+    }
+
+    private void processLine( String s )
+    {
         try
         {
-            if ( s.length() == 0 )
-            {
-                return;
-            }
             final byte operationId = (byte) s.charAt( 0 );
             int commma = s.indexOf( ",", 3 );
             if ( commma < 0 )
@@ -253,17 +257,12 @@ public class ForkClient
 
     private String nullableCsv( String source )
     {
-        if ( "null".equals( source ) )
-        {
-            return null;
-        }
-        return unescape( source );
+        return "null".equals( source ) ? null : unescape( source );
     }
 
     private String unescape( String source )
     {
         StringBuilder stringBuffer = new StringBuilder( source.length() );
-
         StringUtils.unescapeString( stringBuffer, source );
         return stringBuffer.toString();
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
index c7b4e66..fdb88ec 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ThreadedStreamConsumer.java
@@ -30,14 +30,15 @@ import java.util.concurrent.LinkedBlockingQueue;
  *
  * @author Kristian Rosenvold
  */
-public class ThreadedStreamConsumer
+public final class ThreadedStreamConsumer
     implements StreamConsumer
 {
-    private final BlockingQueue<String> items = new 
LinkedBlockingQueue<String>();
-
     private static final String POISON = "Pioson";
+
     private static final int ITEM_LIMIT_BEFORE_SLEEP = 10000;
 
+    private final BlockingQueue<String> items = new 
LinkedBlockingQueue<String>();
+
     private final Thread thread;
 
     private final Pumper pumper;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
index e86ac4b..5a171ab 100644
--- 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
+++ 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMapTest.java
@@ -39,8 +39,9 @@ public class RunEntryStatisticsMapTest
         throws IOException
     {
         final RunEntryStatisticsMap runEntryStatisticsMap = 
RunEntryStatisticsMap.fromReader( getStatisticsFile() );
-        final List<?> list = Arrays.asList( new Class[]{ A.class, B.class, 
C.class } );
-        final List<?> prioritizedTestsClassRunTime = 
runEntryStatisticsMap.getPrioritizedTestsClassRunTime( list, 2 );
+        final List<Class<?>> list = Arrays.<Class<?>>asList( A.class, B.class, 
C.class );
+        final List<Class<?>> prioritizedTestsClassRunTime =
+            runEntryStatisticsMap.getPrioritizedTestsClassRunTime( list, 2 );
         assertEquals( C.class, prioritizedTestsClassRunTime.get( 0 ) );
         assertEquals( B.class, prioritizedTestsClassRunTime.get( 1 ) );
         assertEquals( A.class, prioritizedTestsClassRunTime.get( 2 ) );
@@ -50,8 +51,9 @@ public class RunEntryStatisticsMapTest
         throws IOException
     {
         final RunEntryStatisticsMap runEntryStatisticsMap = 
RunEntryStatisticsMap.fromReader( getStatisticsFile() );
-        final List<?> list = Arrays.asList( A.class, B.class, NewClass.class, 
C.class );
-        final List<?> prioritizedTestsClassRunTime = 
runEntryStatisticsMap.getPrioritizedTestsByFailureFirst( list );
+        final List<Class<?>> list = Arrays.<Class<?>>asList( A.class, B.class, 
NewClass.class, C.class );
+        final List<Class<?>> prioritizedTestsClassRunTime =
+            runEntryStatisticsMap.getPrioritizedTestsByFailureFirst( list );
         assertEquals( A.class, prioritizedTestsClassRunTime.get( 0 ) );
         assertEquals( NewClass.class, prioritizedTestsClassRunTime.get( 1 ) );
         assertEquals( C.class, prioritizedTestsClassRunTime.get( 2 ) );
@@ -73,9 +75,9 @@ public class RunEntryStatisticsMapTest
         RunEntryStatisticsMap existingEntries = 
RunEntryStatisticsMap.fromFile( data );
         RunEntryStatisticsMap newResults = new RunEntryStatisticsMap();
 
-        ReportEntry reportEntry1 = new SimpleReportEntry( "abc", "method1", 
new Integer( 42 ) );
-        ReportEntry reportEntry2 = new SimpleReportEntry( "abc", "willFail", 
new Integer( 17 ) );
-        ReportEntry reportEntry3 = new SimpleReportEntry( "abc", "method3", 
new Integer( 100 ) );
+        ReportEntry reportEntry1 = new SimpleReportEntry( "abc", "method1", 42 
);
+        ReportEntry reportEntry2 = new SimpleReportEntry( "abc", "willFail", 
17 );
+        ReportEntry reportEntry3 = new SimpleReportEntry( "abc", "method3", 
100 );
 
         newResults.add( existingEntries.createNextGeneration( reportEntry1 ) );
         newResults.add( existingEntries.createNextGeneration( reportEntry2 ) );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/PrioritizedTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/PrioritizedTest.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/PrioritizedTest.java
index 2109a50..280d710 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/PrioritizedTest.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/PrioritizedTest.java
@@ -24,11 +24,11 @@ package org.apache.maven.plugin.surefire.runorder;
  */
 public class PrioritizedTest
 {
-    private final Class clazz;
+    private final Class<?> clazz;
 
     private final Priority priority;
 
-    public PrioritizedTest( Class clazz, Priority pri )
+    public PrioritizedTest( Class<?> clazz, Priority pri )
     {
         this.clazz = clazz;
         this.priority = pri;
@@ -45,7 +45,7 @@ public class PrioritizedTest
         return priority.getTotalRuntime();
     }
 
-    public Class getClazz()
+    public Class<?> getClazz()
     {
         return clazz;
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
index bfed9c3..9e9bf10 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
@@ -147,9 +147,9 @@ public class RunEntryStatisticsMap
         }
     }
 
-    public List<Class> getPrioritizedTestsClassRunTime( List testsToRun, int 
threadCount )
+    public List<Class<?>> getPrioritizedTestsClassRunTime( List<Class<?>> 
testsToRun, int threadCount )
     {
-        final List<PrioritizedTest> prioritizedTests = getPrioritizedTests( 
testsToRun, new TestRuntimeComparator() );
+        List<PrioritizedTest> prioritizedTests = getPrioritizedTests( 
testsToRun, new TestRuntimeComparator() );
         ThreadedExecutionScheduler threadedExecutionScheduler = new 
ThreadedExecutionScheduler( threadCount );
         for ( Object prioritizedTest1 : prioritizedTests )
         {
@@ -157,24 +157,22 @@ public class RunEntryStatisticsMap
         }
 
         return threadedExecutionScheduler.getResult();
-
     }
 
-    public List<Class> getPrioritizedTestsByFailureFirst( List testsToRun )
+    public List<Class<?>> getPrioritizedTestsByFailureFirst( List<Class<?>> 
testsToRun )
     {
-        final List prioritizedTests = getPrioritizedTests( testsToRun, new 
LeastFailureComparator() );
+        List<PrioritizedTest> prioritizedTests = getPrioritizedTests( 
testsToRun, new LeastFailureComparator() );
         return transformToClasses( prioritizedTests );
     }
 
-
-    private List<PrioritizedTest> getPrioritizedTests( List testsToRun, 
Comparator<Priority> priorityComparator )
+    private List<PrioritizedTest> getPrioritizedTests( List<Class<?>> 
testsToRun,
+                                                       Comparator<Priority> 
priorityComparator )
     {
         Map classPriorities = getPriorities( priorityComparator );
 
         List<PrioritizedTest> tests = new ArrayList<PrioritizedTest>();
-        for ( Object aTestsToRun : testsToRun )
+        for ( Class<?> clazz : testsToRun )
         {
-            Class clazz = (Class) aTestsToRun;
             Priority pri = (Priority) classPriorities.get( clazz.getName() );
             if ( pri == null )
             {
@@ -185,15 +183,14 @@ public class RunEntryStatisticsMap
         }
         Collections.sort( tests, new PrioritizedTestComparator() );
         return tests;
-
     }
 
-    private List<Class> transformToClasses( List tests )
+    private List<Class<?>> transformToClasses( List<PrioritizedTest> tests )
     {
-        List<Class> result = new ArrayList<Class>();
-        for ( Object test : tests )
+        List<Class<?>> result = new ArrayList<Class<?>>();
+        for ( PrioritizedTest test : tests )
         {
-            result.add( ( (PrioritizedTest) test ).getClazz() );
+            result.add( test.getClazz() );
         }
         return result;
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionScheduler.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionScheduler.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionScheduler.java
index 7e77625..09ea122 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionScheduler.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionScheduler.java
@@ -32,8 +32,9 @@ public class ThreadedExecutionScheduler
 
     private final int runTime[];
 
-    private final List[] lists;
+    private final List<Class<?>>[] lists;
 
+    @SuppressWarnings( "unchecked" )
     public ThreadedExecutionScheduler( int numThreads )
     {
         this.numThreads = numThreads;
@@ -41,7 +42,7 @@ public class ThreadedExecutionScheduler
         lists = new List[numThreads];
         for ( int i = 0; i < numThreads; i++ )
         {
-            lists[i] = new ArrayList<Class>();
+            lists[i] = new ArrayList<Class<?>>();
         }
     }
 
@@ -53,9 +54,9 @@ public class ThreadedExecutionScheduler
         lists[leastBusySlot].add( prioritizedTest.getClazz() );
     }
 
-    public List<Class> getResult()
+    public List<Class<?>> getResult()
     {
-        List<Class> result = new ArrayList<Class>();
+        List<Class<?>> result = new ArrayList<Class<?>>();
         int index = 0;
         boolean added;
         do
@@ -65,7 +66,7 @@ public class ThreadedExecutionScheduler
             {
                 if ( lists[i].size() > index )
                 {
-                    result.add( (Class) lists[i].get( index ) );
+                    result.add( lists[i].get( index ) );
                     added = true;
                 }
             }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
index 46c541b..9b27c1c 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
@@ -20,7 +20,6 @@ package org.apache.maven.surefire.providerapi;
  */
 
 import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
 import org.apache.maven.surefire.report.ReporterException;
 import org.apache.maven.surefire.suite.RunResult;
 import org.apache.maven.surefire.testset.TestSetFailedException;
@@ -52,7 +51,7 @@ public interface SurefireProvider
      *
      * @return An iterator that will trigger one fork per item
      */
-    Iterator getSuites();
+    Iterable<Class<?>> getSuites();
 
     /**
      * Runs a forked test

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
index f9d48c4..81a6054 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultDirectoryScanner.java
@@ -52,8 +52,6 @@ public class DefaultDirectoryScanner
 
     private final List specificTests;
 
-    private final List<Class> classesSkippedByValidation = new 
ArrayList<Class>();
-
     public DefaultDirectoryScanner( File basedir, List includes, List 
excludes, List specificTests )
     {
         this.basedir = basedir;
@@ -65,7 +63,7 @@ public class DefaultDirectoryScanner
     public TestsToRun locateTestClasses( ClassLoader classLoader, 
ScannerFilter scannerFilter )
     {
         String[] testClassNames = collectTests();
-        List<Class> result = new ArrayList<Class>();
+        List<Class<?>> result = new ArrayList<Class<?>>();
 
         String[] specific = specificTests == null ? new String[0] : 
processIncludesExcludes( specificTests );
         SpecificTestClassFilter specificTestFilter = new 
SpecificTestClassFilter( specific );
@@ -84,10 +82,6 @@ public class DefaultDirectoryScanner
             {
                 result.add( testClass );
             }
-            else
-            {
-                classesSkippedByValidation.add( testClass );
-            }
         }
 
         return new TestsToRun( result );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
index 94277e2..a67052e 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultRunOrderCalculator.java
@@ -55,9 +55,9 @@ public class DefaultRunOrderCalculator
     @SuppressWarnings( "checkstyle:magicnumber" )
     public TestsToRun orderTestClasses( TestsToRun scannedClasses )
     {
-        List<Class> result = new ArrayList<Class>( 512 );
+        List<Class<?>> result = new ArrayList<Class<?>>( 512 );
 
-        for ( Class scannedClass : scannedClasses )
+        for ( Class<?> scannedClass : scannedClasses )
         {
             result.add( scannedClass );
         }
@@ -66,7 +66,7 @@ public class DefaultRunOrderCalculator
         return new TestsToRun( result );
     }
 
-    private void orderTestClasses( List<Class> testClasses, RunOrder runOrder )
+    private void orderTestClasses( List<Class<?>> testClasses, RunOrder 
runOrder )
     {
         if ( RunOrder.RANDOM.equals( runOrder ) )
         {
@@ -75,7 +75,7 @@ public class DefaultRunOrderCalculator
         else if ( RunOrder.FAILEDFIRST.equals( runOrder ) )
         {
             RunEntryStatisticsMap stat = RunEntryStatisticsMap.fromFile( 
runOrderParameters.getRunStatisticsFile() );
-            List<Class> prioritized = stat.getPrioritizedTestsByFailureFirst( 
testClasses );
+            List<Class<?>> prioritized = 
stat.getPrioritizedTestsByFailureFirst( testClasses );
             testClasses.clear();
             testClasses.addAll( prioritized );
 
@@ -83,7 +83,7 @@ public class DefaultRunOrderCalculator
         else if ( RunOrder.BALANCED.equals( runOrder ) )
         {
             RunEntryStatisticsMap stat = RunEntryStatisticsMap.fromFile( 
runOrderParameters.getRunStatisticsFile() );
-            List<Class> prioritized = stat.getPrioritizedTestsClassRunTime( 
testClasses, threadCount );
+            List<Class<?>> prioritized = stat.getPrioritizedTestsClassRunTime( 
testClasses, threadCount );
             testClasses.clear();
             testClasses.addAll( prioritized );
 

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultScanResult.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultScanResult.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultScanResult.java
index ab4c8b2..e8a16c1 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultScanResult.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/DefaultScanResult.java
@@ -84,14 +84,14 @@ public class DefaultScanResult
 
     public TestsToRun applyFilter( ScannerFilter scannerFilter, ClassLoader 
testClassLoader )
     {
-        List<Class> result = new ArrayList<Class>();
+        List<Class<?>> result = new ArrayList<Class<?>>();
 
         int size = size();
         for ( int i = 0; i < size; i++ )
         {
             String className = getClassName( i );
 
-            Class testClass = loadClass( testClassLoader, className );
+            Class<?> testClass = loadClass( testClassLoader, className );
 
             if ( scannerFilter == null || scannerFilter.accept( testClass ) )
             {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
index bba1a59..2d633d8 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/ReflectionUtils.java
@@ -26,12 +26,16 @@ import java.lang.reflect.Method;
 /**
  * @author Kristian Rosenvold
  */
-public class ReflectionUtils
+public final class ReflectionUtils
 {
     private static final Class[] NO_ARGS = new Class[0];
 
     private static final Object[] NO_ARGS_VALUES = new Object[0];
 
+    private ReflectionUtils()
+    {
+        throw new IllegalStateException( "no instantiable constructor" );
+    }
 
     public static Method getMethod( Object instance, String methodName, 
Class[] parameters )
     {
@@ -62,7 +66,6 @@ public class ReflectionUtils
         }
     }
 
-
     public static Object invokeGetter( Object instance, String methodName )
     {
         final Method method = getMethod( instance, methodName, NO_ARGS );
@@ -121,7 +124,6 @@ public class ReflectionUtils
     public static Object instantiateOneArg( ClassLoader classLoader, String 
className, Class param1Class,
                                             Object param1 )
     {
-
         try
         {
             Class aClass = loadClass( classLoader, className );
@@ -145,7 +147,6 @@ public class ReflectionUtils
     public static Object instantiateTwoArgs( ClassLoader classLoader, String 
className, Class param1Class,
                                              Object param1, Class param2Class, 
Object param2 )
     {
-
         try
         {
             Class aClass = loadClass( classLoader, className );
@@ -168,20 +169,17 @@ public class ReflectionUtils
 
 
     public static void invokeSetter( Object o, String name, Class value1clazz, 
Object value )
-
     {
         final Method setter = getMethod( o, name, new Class[]{ value1clazz } );
         invokeSetter( o, setter, value );
     }
 
     public static Object invokeSetter( Object target, Method method, Object 
value )
-
     {
         return invokeMethodWithArray( target, method, new Object[]{ value } );
     }
 
     public static Object invokeMethodWithArray( Object target, Method method, 
Object[] args )
-
     {
         try
         {
@@ -195,12 +193,10 @@ public class ReflectionUtils
         {
             throw new SurefireReflectionException( e.getTargetException() );
         }
-
     }
 
     public static Object invokeMethodWithArray2( Object target, Method method, 
Object[] args )
         throws InvocationTargetException
-
     {
         try
         {
@@ -210,7 +206,6 @@ public class ReflectionUtils
         {
             throw new SurefireReflectionException( e );
         }
-
     }
 
     public static Object instantiateObject( String className, Class[] types, 
Object[] params, ClassLoader classLoader )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
index f3132da..1f88a5c 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/TestsToRun.java
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.util;
  */
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -33,21 +34,21 @@ import 
org.apache.maven.surefire.testset.TestSetFailedException;
  *
  * @author Kristian Rosenvold (junit core adaption)
  */
-public class TestsToRun implements Iterable<Class>
+public class TestsToRun implements Iterable<Class<?>>
 {
-    private final List<Class> locatedClasses;
+    private final List<Class<?>> locatedClasses;
 
     /**
      * Constructor
      *
      * @param locatedClasses A list of java.lang.Class objects representing 
tests to run
      */
-    public TestsToRun( List<Class> locatedClasses )
+    public TestsToRun( List<Class<?>> locatedClasses )
     {
         this.locatedClasses = Collections.unmodifiableList( locatedClasses );
-        Set<Class> testSets = new HashSet<Class>();
+        Set<Class<?>> testSets = new HashSet<Class<?>>();
 
-        for ( Class testClass : locatedClasses )
+        for ( Class<?> testClass : locatedClasses )
         {
             if ( testSets.contains( testClass ) )
             {
@@ -57,10 +58,10 @@ public class TestsToRun implements Iterable<Class>
         }
     }
 
-    public static TestsToRun fromClass( Class clazz )
+    public static TestsToRun fromClass( Class<?> clazz )
         throws TestSetFailedException
     {
-        return new TestsToRun( Collections.singletonList( clazz ) );
+        return new TestsToRun( Collections.<Class<?>>singletonList( clazz ) );
     }
 
     /**
@@ -68,7 +69,7 @@ public class TestsToRun implements Iterable<Class>
      *
      * @return an unmodifiable iterator
      */
-    public Iterator<Class> iterator()
+    public Iterator<Class<?>> iterator()
     {
         return locatedClasses.iterator();
     }
@@ -77,7 +78,7 @@ public class TestsToRun implements Iterable<Class>
     {
         StringBuilder sb = new StringBuilder();
         sb.append( "TestsToRun: [" );
-        for ( Class clazz : this )
+        for ( Class<?> clazz : this )
         {
             sb.append( " " ).append( clazz.getName() );
         }
@@ -121,18 +122,18 @@ public class TestsToRun implements Iterable<Class>
         return true;
     }
 
-    public Class[] getLocatedClasses()
+    public Class<?>[] getLocatedClasses()
     {
         if ( !allowEagerReading() )
         {
             throw new IllegalStateException( "Cannot eagerly read" );
         }
-        List<Class> result = new ArrayList<Class>();
-        for ( Class clazz : this )
+        Collection<Class<?>> result = new ArrayList<Class<?>>();
+        for ( Class<?> clazz : this )
         {
             result.add( clazz );
         }
-        return result.toArray( new Class[result.size()] );
+        return result.toArray( new Class<?>[result.size()] );
     }
 
     /**
@@ -141,9 +142,9 @@ public class TestsToRun implements Iterable<Class>
      * @param className string used to find the test class
      * @return Class object with the matching name, null if could not find a 
class with the matching name
      */
-    public Class getClassByName( String className )
+    public Class<?> getClassByName( String className )
     {
-        for ( Class clazz : this )
+        for ( Class<?> clazz : this )
         {
             if ( clazz.getName().equals( className ) )
             {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java
index 3f29f8a..324f1a0 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/util/internal/StringUtils.java
@@ -128,6 +128,20 @@ public class StringUtils
     }
 
     /**
+     * <p>
+     * Checks if a (trimmed) String is not <code>null</code> and not blank.
+     * </p>
+     *
+     * @param str the String to check
+     * @return <code>true</code> if the String is not <code>null</code> and 
length of trimmed
+     * <code>str</code> is not zero.
+     */
+    public static boolean isNotBlank( String str )
+    {
+        return !isBlank( str );
+    }
+
+    /**
      * Escape the specified string to a representation that only consists of 
nicely printable characters, without any
      * newlines and without a comma.
      * <p>

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/test/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionSchedulerTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/test/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionSchedulerTest.java
 
b/surefire-api/src/test/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionSchedulerTest.java
index 57a2de0..15963d7 100644
--- 
a/surefire-api/src/test/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionSchedulerTest.java
+++ 
b/surefire-api/src/test/java/org/apache/maven/plugin/surefire/runorder/ThreadedExecutionSchedulerTest.java
@@ -50,7 +50,7 @@ public class ThreadedExecutionSchedulerTest
     {
         ThreadedExecutionScheduler threadedExecutionScheduler = new 
ThreadedExecutionScheduler( 2 );
         addPrioritizedTests( threadedExecutionScheduler );
-        final List result = threadedExecutionScheduler.getResult();
+        final List<Class<?>> result = threadedExecutionScheduler.getResult();
         assertEquals( 5, result.size() );
         assertEquals( B.class, result.get( 0 ) );
         assertEquals( C.class, result.get( 1 ) );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
 
b/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
index b4ddc21..965417c 100644
--- 
a/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
+++ 
b/surefire-api/src/test/java/org/apache/maven/surefire/util/RunOrderCalculatorTest.java
@@ -42,9 +42,9 @@ public class RunOrderCalculatorTest
 
     }
 
-    private List<Class> getClassesToRun()
+    private List<Class<?>> getClassesToRun()
     {
-        List<Class> classesToRun = new ArrayList<Class>();
+        List<Class<?>> classesToRun = new ArrayList<Class<?>>();
         classesToRun.add( B.class );
         classesToRun.add( A.class );
         return classesToRun;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java 
b/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
index d569c00..84854d8 100644
--- 
a/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
+++ 
b/surefire-api/src/test/java/org/apache/maven/surefire/util/TestsToRunTest.java
@@ -34,8 +34,8 @@ public class TestsToRunTest
     public void testGetTestSets()
         throws Exception
     {
-        TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ 
T1.class, T2.class } ) );
-        Iterator it = testsToRun.iterator();
+        TestsToRun testsToRun = new TestsToRun( Arrays.<Class<?>>asList( 
T1.class, T2.class ) );
+        Iterator<Class<?>> it = testsToRun.iterator();
         assertTrue( it.hasNext() );
         assertEquals( it.next(), T1.class );
         assertTrue( it.hasNext() );
@@ -45,14 +45,14 @@ public class TestsToRunTest
 
     public void testContainsAtleast()
     {
-        TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ 
T1.class, T2.class } ) );
+        TestsToRun testsToRun = new TestsToRun( Arrays.<Class<?>>asList( 
T1.class, T2.class ) );
         assertTrue( testsToRun.containsAtLeast( 2 ) );
         assertFalse( testsToRun.containsAtLeast( 3 ) );
     }
 
     public void testContainsExactly()
     {
-        TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ 
T1.class, T2.class } ) );
+        TestsToRun testsToRun = new TestsToRun( Arrays.<Class<?>>asList( 
T1.class, T2.class ) );
         assertFalse( testsToRun.containsExactly( 1 ) );
         assertTrue( testsToRun.containsExactly( 2 ) );
         assertFalse( testsToRun.containsExactly( 3 ) );
@@ -60,14 +60,14 @@ public class TestsToRunTest
 
     public void testToRunArray()
     {
-        TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ 
T1.class, T2.class } ) );
-        Class[] locatedClasses = testsToRun.getLocatedClasses();
+        TestsToRun testsToRun = new TestsToRun( Arrays.<Class<?>>asList( 
T1.class, T2.class ) );
+        Class<?>[] locatedClasses = testsToRun.getLocatedClasses();
         assertEquals( 2, locatedClasses.length );
     }
 
     public void testGetClassByName()
     {
-        TestsToRun testsToRun = new TestsToRun( Arrays.asList( new Class[]{ 
T1.class, T2.class } ) );
+        TestsToRun testsToRun = new TestsToRun( Arrays.<Class<?>>asList( 
T1.class, T2.class ) );
         assertEquals( T1.class, testsToRun.getClassByName( 
"org.apache.maven.surefire.util.TestsToRunTest$T1" ) );
         assertEquals( T2.class, testsToRun.getClassByName( 
"org.apache.maven.surefire.util.TestsToRunTest$T2" ) );
         assertEquals( null, testsToRun.getClassByName( 
"org.apache.maven.surefire.util.TestsToRunTest$T3" ) );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
index ac73564..ca5dd26 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
@@ -24,6 +24,9 @@ import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.maven.surefire.providerapi.ProviderParameters;
 import org.apache.maven.surefire.providerapi.SurefireProvider;
@@ -47,8 +50,10 @@ import static 
org.apache.maven.surefire.util.internal.StringUtils.encodeStringFo
  * @author Emmanuel Venisse
  * @author Kristian Rosenvold
  */
-public class ForkedBooter
+public final class ForkedBooter
 {
+    private static final long SYSTEM_EXIT_TIMEOUT_IN_SECONDS = 30;
+
     /**
      * This method is invoked when Surefire is forked - this method parses and 
organizes the arguments passed to it and
      * then calls the Surefire class' run method. <p/> The system exit code 
will be 1 if an exception is thrown.
@@ -106,7 +111,6 @@ public class ForkedBooter
             }
             catch ( InvocationTargetException t )
             {
-
                 LegacyPojoStackTraceWriter stackTraceWriter =
                     new LegacyPojoStackTraceWriter( "test subystem", "no 
method", t.getTargetException() );
                 StringBuilder stringBuilder = new StringBuilder();
@@ -144,15 +148,12 @@ public class ForkedBooter
         out.write( encodeBytes, 0, encodeBytes.length );
     }
 
-    private static final long SYSTEM_EXIT_TIMEOUT = 30 * 1000;
-
     private static void exit( final int returnCode )
     {
         launchLastDitchDaemonShutdownThread( returnCode );
         System.exit( returnCode );
     }
 
-
     private static RunResult runSuitesInProcess( Object testSet, 
StartupConfiguration startupConfiguration,
                                                  ProviderConfiguration 
providerConfiguration,
                                                  PrintStream originalSystemOut 
)
@@ -174,23 +175,22 @@ public class ForkedBooter
     @SuppressWarnings( "checkstyle:emptyblock" )
     private static void launchLastDitchDaemonShutdownThread( final int 
returnCode )
     {
-        DaemonThreadFactory.newDaemonThread( new Runnable()
-        {
-            public void run()
+        ThreadFactory threadFactory =
+            DaemonThreadFactory.newDaemonThreadFactory( 
"last-ditch-daemon-shutdown-thread-"
+                                                            + 
SYSTEM_EXIT_TIMEOUT_IN_SECONDS
+                                                            + "sec" );
+
+        Executors.newScheduledThreadPool( 1, threadFactory )
+            .schedule( new Runnable()
             {
-                try
+                public void run()
                 {
-                    Thread.sleep( SYSTEM_EXIT_TIMEOUT );
                     Runtime.getRuntime().halt( returnCode );
                 }
-                catch ( InterruptedException ignore )
-                {
-                }
-            }
-        }, "last-ditch-daemon-shutdown-thread-" + SYSTEM_EXIT_TIMEOUT 
).start();
+            }, SYSTEM_EXIT_TIMEOUT_IN_SECONDS, TimeUnit.SECONDS );
     }
 
-    public static RunResult invokeProviderInSameClassLoader( Object testSet, 
Object factory,
+    private static RunResult invokeProviderInSameClassLoader( Object testSet, 
Object factory,
                                                              
ProviderConfiguration providerConfiguration,
                                                              boolean 
insideFork,
                                                              
StartupConfiguration startupConfiguration1,
@@ -218,12 +218,11 @@ public class ForkedBooter
         }
     }
 
-    public static SurefireProvider createProviderInCurrentClassloader( 
StartupConfiguration startupConfiguration1,
+    private static SurefireProvider createProviderInCurrentClassloader( 
StartupConfiguration startupConfiguration1,
                                                                        boolean 
isInsideFork,
                                                                        
ProviderConfiguration providerConfiguration,
                                                                        Object 
reporterManagerFactory1 )
     {
-
         BaseProviderFactory bpf = new BaseProviderFactory( (ReporterFactory) 
reporterManagerFactory1, isInsideFork );
         bpf.setTestRequest( providerConfiguration.getTestSuiteDefinition() );
         bpf.setReporterConfiguration( 
providerConfiguration.getReporterConfiguration() );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-booter/src/main/java/org/apache/maven/surefire/booter/LazyTestsToRun.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/LazyTestsToRun.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/LazyTestsToRun.java
index b0d9728..a5611c0 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/LazyTestsToRun.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/LazyTestsToRun.java
@@ -33,6 +33,7 @@ import java.util.List;
 import org.apache.maven.surefire.util.ReflectionUtils;
 import org.apache.maven.surefire.util.TestsToRun;
 
+// CHECKSTYLE_OFF: imports
 import static 
org.apache.maven.surefire.util.internal.StringUtils.FORK_STREAM_CHARSET_NAME;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.encodeStringForForkCommunication;
 
@@ -45,16 +46,16 @@ import static 
org.apache.maven.surefire.util.internal.StringUtils.encodeStringFo
  *
  * @author Andreas Gudian
  */
-class LazyTestsToRun
+final class LazyTestsToRun
     extends TestsToRun
 {
-    private final List<Class> workQueue = new ArrayList<Class>();
+    private final List<Class<?>> workQueue = new ArrayList<Class<?>>();
 
     private final BufferedReader inputReader;
 
     private final PrintStream originalOutStream;
 
-    private boolean streamClosed = false;
+    private boolean streamClosed;
 
     /**
      * C'tor
@@ -64,7 +65,7 @@ class LazyTestsToRun
      */
     public LazyTestsToRun( InputStream testSource, PrintStream 
originalOutStream )
     {
-        super( Collections.<Class>emptyList() );
+        super( Collections.<Class<?>>emptyList() );
 
         this.originalOutStream = originalOutStream;
 
@@ -78,7 +79,7 @@ class LazyTestsToRun
         }
     }
 
-    protected void addWorkItem( String className )
+    private void addWorkItem( String className )
     {
         synchronized ( workQueue )
         {
@@ -86,15 +87,15 @@ class LazyTestsToRun
         }
     }
 
-    protected void requestNextTest()
+    private void requestNextTest()
     {
         byte[] encoded =
             encodeStringForForkCommunication( ( (char) 
ForkingRunListener.BOOTERCODE_NEXT_TEST ) + ",0,want more!\n" );
         originalOutStream.write( encoded, 0, encoded.length );
     }
 
-    private class BlockingIterator
-        implements Iterator<Class>
+    private final class BlockingIterator
+        implements Iterator<Class<?>>
     {
         private int lastPos = -1;
 
@@ -112,11 +113,9 @@ class LazyTestsToRun
                     if ( needsToWaitForInput( nextPos ) )
                     {
                         requestNextTest();
-
-                        String nextClassName;
                         try
                         {
-                            nextClassName = inputReader.readLine();
+                            String nextClassName = inputReader.readLine();
                             if ( nextClassName == null )
                             {
                                 streamClosed = true;
@@ -143,7 +142,7 @@ class LazyTestsToRun
             return workQueue.size() == nextPos && !streamClosed;
         }
 
-        public Class next()
+        public Class<?> next()
         {
             synchronized ( workQueue )
             {
@@ -161,7 +160,7 @@ class LazyTestsToRun
     /* (non-Javadoc)
       * @see org.apache.maven.surefire.util.TestsToRun#iterator()
       */
-    public Iterator<Class> iterator()
+    public Iterator<Class<?>> iterator()
     {
         return new BlockingIterator();
     }
@@ -188,5 +187,4 @@ class LazyTestsToRun
     {
         return false;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderFactory.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderFactory.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderFactory.java
index f5d96c5..d529980 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderFactory.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderFactory.java
@@ -22,14 +22,12 @@ package org.apache.maven.surefire.booter;
 import java.io.PrintStream;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Iterator;
 
 import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.suite.RunResult;
 import org.apache.maven.surefire.testset.TestSetFailedException;
 import org.apache.maven.surefire.util.ReflectionUtils;
 
-
 /**
  * Creates the surefire provider.
  * <p/>
@@ -124,12 +122,13 @@ public class ProviderFactory
             this.testsClassLoader = testsClassLoader;
         }
 
-        public Iterator getSuites()
+        @SuppressWarnings( "unchecked" )
+        public Iterable<Class<?>> getSuites()
         {
             ClassLoader current = swapClassLoader( testsClassLoader );
             try
             {
-                return (Iterator) ReflectionUtils.invokeGetter( 
providerInOtherClassLoader, "getSuites" );
+                return (Iterable<Class<?>>) ReflectionUtils.invokeGetter( 
providerInOtherClassLoader, "getSuites" );
             }
             finally
             {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
 
b/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
index 6cde650..79b2ceb 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
@@ -19,7 +19,6 @@ package org.apache.maven.surefire.testprovider;
  * under the License.
  */
 
-import java.util.Iterator;
 import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
 import org.apache.maven.surefire.report.ReporterException;
@@ -38,7 +37,7 @@ public class TestProvider
         invokeRuntimeExceptionIfSet( System.getProperty( "constructorCrash" ) 
);
     }
 
-    public Iterator getSuites()
+    public Iterable<Class<?>> getSuites()
     {
         invokeRuntimeExceptionIfSet( System.getProperty( "getSuitesCrash" ) );
         return null;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
 
b/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
index d520c4f..470922f 100644
--- 
a/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
+++ 
b/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
@@ -19,7 +19,6 @@ package org.apache.maven.surefire.junit;
  * under the License.
  */
 
-import java.util.Iterator;
 import org.apache.maven.surefire.common.junit3.JUnit3Reflector;
 import org.apache.maven.surefire.common.junit3.JUnit3TestChecker;
 import org.apache.maven.surefire.providerapi.AbstractProvider;
@@ -138,9 +137,9 @@ public class JUnit3Provider
         return runOrderCalculator.orderTestClasses( testsToRun );
     }
 
-    public Iterator getSuites()
+    public Iterable<Class<?>> getSuites()
     {
         testsToRun = scanClassPath();
-        return testsToRun.iterator();
+        return testsToRun;
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
 
b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
index 7f3d1b6..e3b87af 100644
--- 
a/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
+++ 
b/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
@@ -22,7 +22,6 @@ package org.apache.maven.surefire.junit4;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -215,10 +214,10 @@ public class JUnit4Provider
         }
     }
 
-    public Iterator<?> getSuites()
+    public Iterable<Class<?>> getSuites()
     {
         testsToRun = scanClassPath();
-        return testsToRun.iterator();
+        return testsToRun;
     }
 
     private TestsToRun scanClassPath()

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
index 0cebc84..43b8a1e 100644
--- 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
+++ 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
@@ -19,7 +19,6 @@ package org.apache.maven.surefire.junitcore;
  * under the License.
  */
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -91,10 +90,10 @@ public class JUnitCoreProvider
         jUnit48Reflector = new JUnit48Reflector( testClassLoader );
     }
 
-    public Iterator getSuites()
+    public Iterable<Class<?>> getSuites()
     {
         testsToRun = scanClassPath();
-        return testsToRun.iterator();
+        return testsToRun;
     }
 
     private boolean isSingleThreaded()

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
index ee6796c..bf2f71a 100644
--- 
a/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
+++ 
b/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreWrapper.java
@@ -73,7 +73,7 @@ class JUnitCoreWrapper
                                       JUnitCoreParameters jUnitCoreParameters, 
JUnitCore junitCore )
         throws TestSetFailedException
     {
-        Class[] tests = testsToRun.getLocatedClasses();
+        Class<?>[] tests = testsToRun.getLocatedClasses();
         Computer computer = createComputer( logger, jUnitCoreParameters );
         createRequestAndRun( filter, computer, junitCore, tests );
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
index bb68f3a..678280f 100644
--- 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
+++ 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGDirectoryTestSuite.java
@@ -364,7 +364,6 @@ public class TestNGDirectoryTestSuite
                 throw new TestSetFailedException( "Duplicate test set '" + 
testSet.getName() + "'" );
             }
             testSets.put( testSet.getName(), testSet );
-
         }
 
         return Collections.unmodifiableSortedMap( testSets );

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/e8cd8cc8/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
----------------------------------------------------------------------
diff --git 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
index 7cb11d4..d28d6ac 100644
--- 
a/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
+++ 
b/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
@@ -21,7 +21,6 @@ package org.apache.maven.surefire.testng;
 
 import java.io.File;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -138,14 +137,14 @@ public class TestNGProvider
                                        
reporterConfiguration.getReportsDirectory() );
     }
 
-
-    public Iterator getSuites()
+    @SuppressWarnings( "unchecked" )
+    public Iterable<Class<?>> getSuites()
     {
         if ( isTestNGXmlTestSuite( testRequest ) )
         {
             try
             {
-                return getXmlSuite().locateTestSets( testClassLoader 
).keySet().iterator();
+                return getXmlSuite().locateTestSets( testClassLoader 
).keySet();
             }
             catch ( TestSetFailedException e )
             {
@@ -155,7 +154,7 @@ public class TestNGProvider
         else
         {
             testsToRun = scanClassPath();
-            return testsToRun.iterator();
+            return testsToRun;
         }
     }
 

Reply via email to