[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; } }