Repository: maven-surefire Updated Branches: refs/heads/master cf64b1137 -> 78dca27ef
[SUREFIRE] refactoring Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/7d9c438d Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/7d9c438d Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/7d9c438d Branch: refs/heads/master Commit: 7d9c438defa0fe847d2b4c14173a8b4098b6c4c6 Parents: cf64b11 Author: Tibor17 <[email protected]> Authored: Sun Jul 5 09:32:29 2015 +0200 Committer: Tibor17 <[email protected]> Committed: Thu Jul 23 23:28:00 2015 +0200 ---------------------------------------------------------------------- .../booterclient/output/ForkClient.java | 3 +-- .../maven/surefire/util/DefaultScanResult.java | 12 ++++------ .../maven/surefire/util/ReflectionUtils.java | 5 ++-- .../apache/maven/surefire/util/ScanResult.java | 2 +- .../common/junit4/JUnit4RunListenerFactory.java | 24 ++++++++++---------- .../maven/surefire/junit/JUnit3Provider.java | 2 +- .../maven/surefire/junit4/JUnit4Provider.java | 19 ++++++++-------- 7 files changed, 32 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/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 b6bbd55..cea1824 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 @@ -209,8 +209,7 @@ public class ForkClient throws IOException { BufferedReader stringReader = new BufferedReader( new StringReader( s ) ); - String s1; - while ( ( s1 = stringReader.readLine() ) != null ) + for ( String s1 = stringReader.readLine(); s1 != null; s1 = stringReader.readLine() ) { consumeLine( s1 ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/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 ae05d0d..ab4c8b2 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 @@ -102,16 +102,16 @@ public class DefaultScanResult return new TestsToRun( result ); } - public List getClassesSkippedByValidation( ScannerFilter scannerFilter, ClassLoader testClassLoader ) + public List<Class<?>> getClassesSkippedByValidation( 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 ) ) { @@ -122,18 +122,16 @@ public class DefaultScanResult return result; } - private static Class loadClass( ClassLoader classLoader, String className ) + private static Class<?> loadClass( ClassLoader classLoader, String className ) { - Class testClass; try { - testClass = classLoader.loadClass( className ); + return classLoader.loadClass( className ); } catch ( ClassNotFoundException e ) { throw new RuntimeException( "Unable to create test class '" + className + "'", e ); } - return testClass; } public DefaultScanResult append( DefaultScanResult other ) http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/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 0d6f7dc..bba1a59 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 @@ -101,13 +101,12 @@ public class ReflectionUtils } } - public static Object instantiate( ClassLoader classLoader, String classname ) + public static <T> T instantiate( ClassLoader classLoader, String classname, Class<T> returnType ) { try { - Class clazz = loadClass( classLoader, classname ); - return clazz.newInstance(); + return returnType.cast( clazz.newInstance() ); } catch ( InstantiationException e ) { http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/surefire-api/src/main/java/org/apache/maven/surefire/util/ScanResult.java ---------------------------------------------------------------------- diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/util/ScanResult.java b/surefire-api/src/main/java/org/apache/maven/surefire/util/ScanResult.java index 2a73a47..5960ee6 100644 --- a/surefire-api/src/main/java/org/apache/maven/surefire/util/ScanResult.java +++ b/surefire-api/src/main/java/org/apache/maven/surefire/util/ScanResult.java @@ -33,7 +33,7 @@ public interface ScanResult TestsToRun applyFilter( ScannerFilter scannerFilter, ClassLoader testClassLoader ); - List getClassesSkippedByValidation( ScannerFilter scannerFilter, ClassLoader testClassLoader ); + List<Class<?>> getClassesSkippedByValidation( ScannerFilter scannerFilter, ClassLoader testClassLoader ); void writeTo( Map<String, String> properties ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java ---------------------------------------------------------------------- diff --git a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java index 83a74a0..1cf5417 100644 --- a/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java +++ b/surefire-providers/common-junit4/src/main/java/org/apache/maven/surefire/common/junit4/JUnit4RunListenerFactory.java @@ -21,6 +21,8 @@ package org.apache.maven.surefire.common.junit4; import java.util.LinkedList; import java.util.List; + +import org.apache.maven.shared.utils.StringUtils; import org.apache.maven.surefire.util.ReflectionUtils; import org.junit.runner.notification.RunListener; @@ -30,22 +32,20 @@ import org.junit.runner.notification.RunListener; */ public class JUnit4RunListenerFactory { - public static List<RunListener> createCustomListeners( String listenerProperty ) + public static List<RunListener> createCustomListeners( String listeners ) { List<RunListener> result = new LinkedList<RunListener>(); - if ( listenerProperty == null ) + if ( StringUtils.isNotBlank( listeners ) ) { - return result; + ClassLoader cl = Thread.currentThread().getContextClassLoader(); + for ( String listener : listeners.split( "," ) ) + { + if ( StringUtils.isNotBlank( listener ) ) + { + result.add( ReflectionUtils.instantiate( cl, listener, RunListener.class ) ); + } + } } - - for ( String thisListenerName : listenerProperty.split( "," ) ) - { - RunListener customRunListener = - (RunListener) ReflectionUtils.instantiate( Thread.currentThread().getContextClassLoader(), - thisListenerName ); - result.add( customRunListener ); - } - return result; } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/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 be90068..d520c4f 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 @@ -97,7 +97,7 @@ public class JUnit3Provider if ( smClassName != null ) { SecurityManager securityManager = - (SecurityManager) ReflectionUtils.instantiate( this.getClass().getClassLoader(), smClassName ); + ReflectionUtils.instantiate( getClass().getClassLoader(), smClassName, SecurityManager.class ); System.setSecurityManager( securityManager ); } http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/7d9c438d/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 45b907d..7f3d1b6 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 @@ -44,6 +44,7 @@ import org.apache.maven.surefire.report.RunListener; import org.apache.maven.surefire.report.SimpleReportEntry; import org.apache.maven.surefire.suite.RunResult; import org.apache.maven.surefire.testset.TestListResolver; +import org.apache.maven.surefire.testset.TestRequest; import org.apache.maven.surefire.testset.TestSetFailedException; import org.apache.maven.surefire.util.RunOrderCalculator; import org.apache.maven.surefire.util.ScanResult; @@ -87,11 +88,12 @@ public class JUnit4Provider testClassLoader = booterParameters.getTestClassLoader(); scanResult = booterParameters.getScanResult(); runOrderCalculator = booterParameters.getRunOrderCalculator(); - customRunListeners = JUnit4RunListenerFactory. - createCustomListeners( booterParameters.getProviderProperties().get( "listener" ) ); + String listeners = booterParameters.getProviderProperties().get( "listener" ); + customRunListeners = JUnit4RunListenerFactory.createCustomListeners( listeners ); jUnit4TestChecker = new JUnit4TestChecker( testClassLoader ); - testResolver = booterParameters.getTestRequest().getTestListResolver(); - rerunFailingTestsCount = booterParameters.getTestRequest().getRerunFailingTestsCount(); + TestRequest testRequest = booterParameters.getTestRequest(); + testResolver = testRequest.getTestListResolver(); + rerunFailingTestsCount = testRequest.getRerunFailingTestsCount(); } public RunResult invoke( Object forkTestSet ) @@ -176,8 +178,8 @@ public class JUnit4Provider { for ( int i = 0; i < rerunFailingTestsCount && !failureListener.getAllFailures().isEmpty(); i++ ) { - Set<ClassMethod> failedTests = JUnit4ProviderUtil.generateFailingTests( - failureListener.getAllFailures( ) ); + Set<ClassMethod> failedTests = + JUnit4ProviderUtil.generateFailingTests( failureListener.getAllFailures() ); failureListener.reset(); if ( !failedTests.isEmpty() ) { @@ -203,7 +205,7 @@ public class JUnit4Provider // I am not entirely sure as to why we do this explicit freeing, it's one of those // pieces of code that just seem to linger on in here ;) private static void closeRunNotifier( org.junit.runner.notification.RunListener main, - List<org.junit.runner.notification.RunListener> others ) + Iterable<org.junit.runner.notification.RunListener> others ) { RunNotifier notifier = new RunNotifier(); notifier.removeListener( main ); @@ -225,13 +227,12 @@ public class JUnit4Provider return runOrderCalculator.orderTestClasses( scannedClasses ); } - @SuppressWarnings( "unchecked" ) private void upgradeCheck() throws TestSetFailedException { if ( isJUnit4UpgradeCheck() ) { - List<Class> classesSkippedByValidation = + Collection<Class<?>> classesSkippedByValidation = scanResult.getClassesSkippedByValidation( jUnit4TestChecker, testClassLoader ); if ( !classesSkippedByValidation.isEmpty() ) {
