You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/07/10 20:25:41 UTC
[maven-surefire] 03/03: adapt unit tests to a new stread format of
commands and fix build
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch maven2surefire-jvm-communication
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
commit 9041e7ad9c1141f537c4b80ede1330e9892bc921
Author: tibordigana <ti...@apache.org>
AuthorDate: Wed Jul 10 20:18:03 2019 +0200
adapt unit tests to a new stread format of commands and fix build
---
.../plugin/surefire/booterclient/ForkStarter.java | 2 +-
.../lazytestprovider/TestLessInputStream.java | 2 -
.../lazytestprovider/TestProvidingInputStream.java | 2 +-
.../TestProvidingInputStreamTest.java | 94 ++++++++++++++++------
pom.xml | 2 +-
.../surefire/booter/MasterProcessCommand.java | 8 +-
.../maven/surefire/booter/SurefireReflector.java | 20 +++--
.../maven/surefire/util/ReflectionUtils.java | 19 -----
.../apache/maven/surefire/booter/ForkedBooter.java | 8 +-
.../maven/surefire/booter/ProviderFactory.java | 4 +-
.../spi/DefaultMasterProcessChannelDecoder.java | 1 +
...surefire.spi.MasterProcessChannelDecoderFactory | 20 ++++-
.../java/org/apache/maven/surefire/booter/Foo.java | 7 ++
.../surefire/booter/MasterProcessCommandTest.java | 12 +--
.../surefire/booter/SurefireReflectorTest.java | 32 +++++++-
surefire-extensions-api/pom.xml | 5 --
surefire-providers/pom.xml | 1 -
surefire-providers/surefire-junit-platform/pom.xml | 5 --
surefire-providers/surefire-junit3/pom.xml | 5 --
surefire-providers/surefire-junit4/pom.xml | 5 --
.../maven/surefire/junit4/JUnit4ProviderTest.java | 2 +-
surefire-providers/surefire-junit47/pom.xml | 5 --
.../maven/surefire/junitcore/Surefire746Test.java | 3 +-
surefire-providers/surefire-testng/pom.xml | 5 --
24 files changed, 165 insertions(+), 104 deletions(-)
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 1056c5a..eb10582 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
@@ -670,7 +670,7 @@ public class ForkStarter
//noinspection ThrowFromFinallyBlock
throw new SurefireBooterForkException( "There was an error in the forked process"
+ detail
- + ( stackTrace == null ? "" : stackTrace ), cause );
+ + ( stackTrace == null ? "" : "\n" + stackTrace ), cause );
}
if ( !forkClient.isSaidGoodBye() )
{
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestLessInputStream.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestLessInputStream.java
index 5cabe7b..3014486 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestLessInputStream.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestLessInputStream.java
@@ -21,10 +21,8 @@ package org.apache.maven.plugin.surefire.booterclient.lazytestprovider;
import org.apache.maven.surefire.booter.Command;
import org.apache.maven.surefire.booter.Shutdown;
-import org.apache.maven.surefire.extensions.ForkedChannelServer;
import java.io.IOException;
-import java.io.InputStream;
import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Queue;
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
index a51bb37..3af1cfe 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStream.java
@@ -185,7 +185,7 @@ public final class TestProvidingInputStream
{
// help GC to free this object because StreamFeeder Thread cannot read it anyway after IOE
invalidateInternalBuffer();
- throw new IOException( e.getLocalizedMessage() );
+ throw new IOException( e.getLocalizedMessage(), e );
}
}
}
\ No newline at end of file
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStreamTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStreamTest.java
index f7506e4..ebd23bf 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStreamTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/lazytestprovider/TestProvidingInputStreamTest.java
@@ -25,6 +25,8 @@ import org.apache.maven.surefire.providerapi.MasterProcessChannelDecoder;
import org.junit.Test;
import java.io.IOException;
+import java.io.InputStream;
+import java.lang.Thread.State;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.concurrent.Callable;
@@ -36,6 +38,7 @@ import static org.apache.maven.surefire.booter.MasterProcessCommand.BYE_ACK;
import static org.apache.maven.surefire.booter.MasterProcessCommand.NOOP;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
+import static org.junit.Assert.assertTrue;
/**
* Asserts that this stream properly reads bytes from queue.
@@ -62,13 +65,13 @@ public class TestProvidingInputStreamTest
Queue<String> commands = new ArrayDeque<>();
final TestProvidingInputStream is = new TestProvidingInputStream( commands );
final Thread streamThread = Thread.currentThread();
- FutureTask<Thread.State> futureTask = new FutureTask<>( new Callable<Thread.State>()
+ FutureTask<State> futureTask = new FutureTask<>( new Callable<State>()
{
@Override
- public Thread.State call()
+ public State call()
{
- sleep( 1000 );
- Thread.State state = streamThread.getState();
+ sleep( 1000L );
+ State state = streamThread.getState();
is.close();
return state;
}
@@ -76,8 +79,8 @@ public class TestProvidingInputStreamTest
Thread assertionThread = new Thread( futureTask );
assertionThread.start();
assertThat( is.read(), is( -1 ) );
- Thread.State state = futureTask.get();
- assertThat( state, is( Thread.State.WAITING ) );
+ State state = futureTask.get();
+ assertThat( state, is( State.WAITING ) );
}
@Test
@@ -95,15 +98,19 @@ public class TestProvidingInputStreamTest
is.provideNewTest();
}
} ).start();
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 1 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
+
+ StringBuilder stream = new StringBuilder();
+ for ( int i = 0; i < 82; i++ )
+ {
+ stream.append( (char) is.read() );
+ }
+ assertThat( stream.toString(),
+ is( ":maven-surefire-std-out:testset-finished::maven-surefire-std-out:testset-finished:" ) );
+
+ boolean emptyStream = isInputStreamEmpty( is );
+
is.close();
+ assertTrue( emptyStream );
assertThat( is.read(), is( -1 ) );
}
@@ -122,18 +129,16 @@ public class TestProvidingInputStreamTest
is.provideNewTest();
}
} ).start();
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 0 ) );
- assertThat( is.read(), is( 4 ) );
- assertThat( is.read(), is( (int) 'T' ) );
- assertThat( is.read(), is( (int) 'e' ) );
- assertThat( is.read(), is( (int) 's' ) );
- assertThat( is.read(), is( (int) 't' ) );
+
+ StringBuilder stream = new StringBuilder();
+ for ( int i = 0; i < 43; i++ )
+ {
+ stream.append( (char) is.read() );
+ }
+ assertThat( stream.toString(),
+ is( ":maven-surefire-std-out:run-testclass:Test:" ) );
+
+ is.close();
}
@Test
@@ -163,4 +168,41 @@ public class TestProvidingInputStreamTest
// do nothing
}
}
+
+ /**
+ * Waiting (max of 20 seconds)
+ * @param is examined stream
+ * @return {@code true} if the {@link InputStream#read()} is waiting for a new byte.
+ */
+ private static boolean isInputStreamEmpty( final TestProvidingInputStream is )
+ {
+ Thread t = new Thread( new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ //noinspection ResultOfMethodCallIgnored
+ is.read();
+ }
+ catch ( IOException e )
+ {
+ Throwable cause = e.getCause();
+ Throwable err = cause == null ? e : cause;
+ System.err.println( err.toString() );
+ }
+ }
+ } );
+ t.start();
+ State state;
+ int loops = 0;
+ do
+ {
+ sleep( 100L );
+ state = t.getState();
+ } while ( state == State.NEW && loops++ < 200 );
+ t.interrupt();
+ return state == State.WAITING || state == State.TIMED_WAITING;
+ }
}
diff --git a/pom.xml b/pom.xml
index fde43d5..1ecda32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,7 @@
<module>surefire-logger-api</module>
<module>surefire-api</module>
<module>surefire-extensions-api</module>
+ <module>surefire-extensions-spi</module>
<module>surefire-booter</module>
<module>surefire-grouper</module>
<module>surefire-providers</module>
@@ -61,7 +62,6 @@
<module>maven-failsafe-plugin</module>
<module>maven-surefire-report-plugin</module>
<module>surefire-its</module>
- <module>surefire-extensions-spi</module>
</modules>
<scm>
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
index d4c24d8..182eddc 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
@@ -128,6 +128,12 @@ public enum MasterProcessCommand
.append( MAGIC_NUMBER )
.append( operation );
- return data == null ? s.append( ':' ) : s.append( ':' ).append( data ).append( ':' );
+ if ( data != null )
+ {
+ s.append( ':' )
+ .append( data );
+ }
+
+ return s.append( ':' );
}
}
diff --git a/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java b/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
index 0be675d..df47df4 100644
--- a/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
+++ b/surefire-api/src/main/java/org/apache/maven/surefire/booter/SurefireReflector.java
@@ -46,7 +46,6 @@ import static java.util.Collections.checkedList;
import static org.apache.maven.surefire.util.ReflectionUtils.getConstructor;
import static org.apache.maven.surefire.util.ReflectionUtils.getMethod;
import static org.apache.maven.surefire.util.ReflectionUtils.instantiateOneArg;
-import static org.apache.maven.surefire.util.ReflectionUtils.instantiateTwoArgs;
import static org.apache.maven.surefire.util.ReflectionUtils.invokeGetter;
import static org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray;
import static org.apache.maven.surefire.util.ReflectionUtils.invokeSetter;
@@ -205,11 +204,9 @@ public final class SurefireReflector
return newInstance( constructor, reporterConfig.getReportsDirectory(), reporterConfig.isTrimStackTrace() );
}
- public Object createBooterConfiguration( ClassLoader surefireClassLoader, Object factoryInstance,
- boolean insideFork )
+ public Object createBooterConfiguration( ClassLoader surefireClassLoader, boolean insideFork )
{
- return instantiateTwoArgs( surefireClassLoader, BaseProviderFactory.class.getName(),
- reporterFactory, factoryInstance, boolean.class, insideFork );
+ return instantiateOneArg( surefireClassLoader, BaseProviderFactory.class.getName(), boolean.class, insideFork );
}
public Object instantiateProvider( String providerClassName, Object booterParameters )
@@ -345,6 +342,19 @@ public final class SurefireReflector
invokeSetter( o, "setTestArtifactInfo", this.testArtifactInfo, param );
}
+ public void setReporterFactoryAware( Object o, Object reporterFactory )
+ {
+ if ( baseProviderFactory.isAssignableFrom( o.getClass() ) )
+ {
+ setReporterFactory( o, reporterFactory );
+ }
+ }
+
+ void setReporterFactory( Object o, Object reporterFactory )
+ {
+ invokeSetter( o, "setReporterFactory", this.reporterFactory, reporterFactory );
+ }
+
private boolean isRunResult( Object o )
{
return runResult.isAssignableFrom( o.getClass() );
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 57e9ea7..2273842 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
@@ -132,25 +132,6 @@ public final class ReflectionUtils
}
}
- public static Object instantiateTwoArgs( ClassLoader classLoader, String className, Class<?> param1Class,
- Object param1, Class param2Class, Object param2 )
- {
- try
- {
- Class<?> aClass = loadClass( classLoader, className );
- Constructor constructor = getConstructor( aClass, param1Class, param2Class );
- return constructor.newInstance( param1, param2 );
- }
- catch ( InvocationTargetException e )
- {
- throw new SurefireReflectionException( e.getTargetException() );
- }
- catch ( ReflectiveOperationException e )
- {
- throw new SurefireReflectionException( e );
- }
- }
-
public static void invokeSetter( Object o, String name, Class<?> value1clazz, Object value )
{
Method setter = getMethod( o, name, value1clazz );
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 892a46b..35ce8fa 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
@@ -26,6 +26,7 @@ import org.apache.maven.surefire.providerapi.MasterProcessChannelDecoder;
import org.apache.maven.surefire.providerapi.ProviderParameters;
import org.apache.maven.surefire.providerapi.SurefireProvider;
import org.apache.maven.surefire.report.LegacyPojoStackTraceWriter;
+import org.apache.maven.surefire.report.StackTraceWriter;
import org.apache.maven.surefire.spi.MasterProcessChannelDecoderFactory;
import org.apache.maven.surefire.testset.TestSetFailedException;
@@ -90,8 +91,6 @@ public final class ForkedBooter
{
BooterDeserializer booterDeserializer =
new BooterDeserializer( createSurefirePropertiesIfFileExists( tmpDir, surefirePropsFileName ) );
- // todo: print PID in debug console logger in version 2.21.2
- pingScheduler = isDebugging() ? null : listenToShutdownCommands( booterDeserializer.getPluginPid() );
setSystemProperties( new File( tmpDir, effectiveSystemPropertiesFileName ) );
providerConfiguration = booterDeserializer.deserialize();
@@ -107,6 +106,9 @@ public final class ForkedBooter
MasterProcessChannelDecoder decoder = lookupDecoderFactory().createDecoder( communicationConfig, logger );
commandReader = new CommandReader( decoder, providerConfiguration.getShutdown(), logger );
+ // todo: print PID in debug console logger
+ pingScheduler = isDebugging() ? null : listenToShutdownCommands( booterDeserializer.getPluginPid() );
+
systemExitTimeoutInSeconds = providerConfiguration.systemExitTimeout( DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS );
AbstractPathConfiguration classpathConfiguration = startupConfiguration.getClasspathConfiguration();
@@ -425,6 +427,8 @@ public final class ForkedBooter
{
DumpErrorSingleton.getSingleton().dumpException( t );
t.printStackTrace();
+ StackTraceWriter stack = new LegacyPojoStackTraceWriter( "test subsystem", "no method", t );
+ booter.eventChannel.consoleErrorLog( stack, false );
booter.cancelPingScheduler();
booter.exit1();
}
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 41badfd..614ff92 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
@@ -99,7 +99,8 @@ public class ProviderFactory
final ClassLoader systemClassLoader = currentThread.getContextClassLoader();
currentThread.setContextClassLoader( classLoader );
// Note: Duplicated in ForkedBooter#createProviderInCurrentClassloader
- Object o = surefireReflector.createBooterConfiguration( classLoader, reporterManagerFactory, isInsideFork );
+ Object o = surefireReflector.createBooterConfiguration( classLoader, isInsideFork );
+ surefireReflector.setReporterFactoryAware( o, reporterManagerFactory );
surefireReflector.setTestSuiteDefinitionAware( o, providerConfiguration.getTestSuiteDefinition() );
surefireReflector.setProviderPropertiesAware( o, providerConfiguration.getProviderProperties() );
surefireReflector.setReporterConfigurationAware( o, providerConfiguration.getReporterConfiguration() );
@@ -109,7 +110,6 @@ public class ProviderFactory
surefireReflector.setIfDirScannerAware( o, providerConfiguration.getDirScannerParams() );
surefireReflector.setMainCliOptions( o, providerConfiguration.getMainCliOptions() );
surefireReflector.setSkipAfterFailureCount( o, providerConfiguration.getSkipAfterFailureCount() );
- surefireReflector.setShutdown( o, providerConfiguration.getShutdown() );
if ( isInsideFork )
{
surefireReflector.setSystemExitTimeout( o, providerConfiguration.getSystemExitTimeout() );
diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/spi/DefaultMasterProcessChannelDecoder.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/spi/DefaultMasterProcessChannelDecoder.java
index 3fdedf2..4b363ee 100644
--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/spi/DefaultMasterProcessChannelDecoder.java
+++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/spi/DefaultMasterProcessChannelDecoder.java
@@ -55,6 +55,7 @@ public class DefaultMasterProcessChannelDecoder implements MasterProcessChannelD
return cmd == null || cmd.hasDataType();
}
+ @SuppressWarnings( "checkstyle:innerassignment" )
@Override
public Command decode() throws IOException
{
diff --git a/surefire-booter/src/main/resources/META-INF/services/org.apache.maven.surefire.spi.MasterProcessChannelDecoderFactory b/surefire-booter/src/main/resources/META-INF/services/org.apache.maven.surefire.spi.MasterProcessChannelDecoderFactory
index 41c6342..2b44ee1 100644
--- a/surefire-booter/src/main/resources/META-INF/services/org.apache.maven.surefire.spi.MasterProcessChannelDecoderFactory
+++ b/surefire-booter/src/main/resources/META-INF/services/org.apache.maven.surefire.spi.MasterProcessChannelDecoderFactory
@@ -1 +1,19 @@
-org.apache.maven.surefire.booter.spi.DefaultMasterProcessChannelDecoderFactory
\ No newline at end of file
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+org.apache.maven.surefire.booter.spi.DefaultMasterProcessChannelDecoderFactory
diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/Foo.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/Foo.java
index 4e4d1b2..3b71b36 100644
--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/Foo.java
+++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/Foo.java
@@ -21,6 +21,7 @@ package org.apache.maven.surefire.booter;
import java.util.Map;
import org.apache.maven.surefire.report.ReporterConfiguration;
+import org.apache.maven.surefire.report.ReporterFactory;
import org.apache.maven.surefire.testset.DirectoryScannerParameters;
import org.apache.maven.surefire.testset.RunOrderParameters;
import org.apache.maven.surefire.testset.TestArtifactInfo;
@@ -108,4 +109,10 @@ public class Foo extends BaseProviderFactory
this.runOrderParameters = runOrderParameters;
this.called = true;
}
+
+ @Override
+ public void setReporterFactory( ReporterFactory reporterFactory )
+ {
+ called = true;
+ }
}
diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/MasterProcessCommandTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/MasterProcessCommandTest.java
index 623c90b..c9ea095 100644
--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/MasterProcessCommandTest.java
+++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/MasterProcessCommandTest.java
@@ -47,7 +47,7 @@ public class MasterProcessCommandTest
assertEquals( String.class, commandType.getDataType() );
byte[] encoded = commandType.encode( "pkg.Test" );
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:run-testclass:pkg.Test" );
+ .isEqualTo( ":maven-surefire-std-out:run-testclass:pkg.Test:" );
byte[] line = addNL( encoded, '\n' );
InputStream is = new ByteArrayInputStream( line );
DefaultMasterProcessChannelDecoder decoder = new DefaultMasterProcessChannelDecoder( is, null );
@@ -60,7 +60,7 @@ public class MasterProcessCommandTest
assertEquals( Void.class, commandType.getDataType() );
encoded = commandType.encode();
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:testset-finished" );
+ .isEqualTo( ":maven-surefire-std-out:testset-finished:" );
is = new ByteArrayInputStream( encoded );
decoder = new DefaultMasterProcessChannelDecoder( is, null );
command = decoder.decode();
@@ -72,7 +72,7 @@ public class MasterProcessCommandTest
assertEquals( Void.class, commandType.getDataType() );
encoded = commandType.encode();
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:skip-since-next-test" );
+ .isEqualTo( ":maven-surefire-std-out:skip-since-next-test:" );
is = new ByteArrayInputStream( encoded );
decoder = new DefaultMasterProcessChannelDecoder( is, null );
command = decoder.decode();
@@ -83,7 +83,7 @@ public class MasterProcessCommandTest
assertEquals( String.class, commandType.getDataType() );
encoded = commandType.encode( Shutdown.EXIT.name() );
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:shutdown:EXIT" );
+ .isEqualTo( ":maven-surefire-std-out:shutdown:EXIT:" );
is = new ByteArrayInputStream( encoded );
decoder = new DefaultMasterProcessChannelDecoder( is, null );
command = decoder.decode();
@@ -95,7 +95,7 @@ public class MasterProcessCommandTest
assertEquals( Void.class, commandType.getDataType() );
encoded = commandType.encode();
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:noop" );
+ .isEqualTo( ":maven-surefire-std-out:noop:" );
is = new ByteArrayInputStream( encoded );
decoder = new DefaultMasterProcessChannelDecoder( is, null );
command = decoder.decode();
@@ -107,7 +107,7 @@ public class MasterProcessCommandTest
assertEquals( Void.class, commandType.getDataType() );
encoded = commandType.encode();
assertThat( new String( encoded ) )
- .isEqualTo( ":maven-surefire-std-out:bye-ack" );
+ .isEqualTo( ":maven-surefire-std-out:bye-ack:" );
is = new ByteArrayInputStream( encoded );
decoder = new DefaultMasterProcessChannelDecoder( is, null );
command = decoder.decode();
diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
index cbd2d16..9b3b7a8 100644
--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
+++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/SurefireReflectorTest.java
@@ -85,10 +85,10 @@ public class SurefireReflectorTest
};
ClassLoader cl = Thread.currentThread().getContextClassLoader();
SurefireReflector reflector = new SurefireReflector( cl );
- BaseProviderFactory baseProviderFactory =
- (BaseProviderFactory) reflector.createBooterConfiguration( cl, factory, true );
- assertNotNull( baseProviderFactory.getReporterFactory() );
- assertSame( factory, baseProviderFactory.getReporterFactory() );
+ BaseProviderFactory bpf = (BaseProviderFactory) reflector.createBooterConfiguration( cl, true );
+ bpf.setReporterFactory( factory );
+ assertNotNull( bpf.getReporterFactory() );
+ assertSame( factory, bpf.getReporterFactory() );
}
public void testSetDirectoryScannerParameters()
@@ -168,6 +168,30 @@ public class SurefireReflectorTest
assertTrue( isCalled( foo ) );
}
+ public void testReporterFactoryAware()
+ {
+ SurefireReflector surefireReflector = getReflector();
+ Object foo = getFoo();
+
+ ReporterFactory reporterFactory = new ReporterFactory()
+ {
+ @Override
+ public RunListener createReporter()
+ {
+ return null;
+ }
+
+ @Override
+ public RunResult close()
+ {
+ return null;
+ }
+ };
+
+ surefireReflector.setReporterFactory( foo, reporterFactory );
+ assertTrue( isCalled( foo ) );
+ }
+
private SurefireReflector getReflector()
{
return new SurefireReflector( this.getClass().getClassLoader() );
diff --git a/surefire-extensions-api/pom.xml b/surefire-extensions-api/pom.xml
index bfce047..18d48ed 100644
--- a/surefire-extensions-api/pom.xml
+++ b/surefire-extensions-api/pom.xml
@@ -40,11 +40,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-component-annotations</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.agent</artifactId>
<classifier>runtime</classifier>
diff --git a/surefire-providers/pom.xml b/surefire-providers/pom.xml
index 3d5cf3e..ad66f38 100644
--- a/surefire-providers/pom.xml
+++ b/surefire-providers/pom.xml
@@ -44,7 +44,6 @@
<module>surefire-junit-platform</module>
<module>surefire-testng-utils</module>
<module>surefire-testng</module>
- <module>surefire-provider-api</module>
</modules>
<dependencies>
diff --git a/surefire-providers/surefire-junit-platform/pom.xml b/surefire-providers/surefire-junit-platform/pom.xml
index 354fa7c..823885f 100644
--- a/surefire-providers/surefire-junit-platform/pom.xml
+++ b/surefire-providers/surefire-junit-platform/pom.xml
@@ -83,11 +83,6 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-provider-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
<artifactId>common-java5</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/surefire-providers/surefire-junit3/pom.xml b/surefire-providers/surefire-junit3/pom.xml
index 8da4a26..d38b312 100644
--- a/surefire-providers/surefire-junit3/pom.xml
+++ b/surefire-providers/surefire-junit3/pom.xml
@@ -43,11 +43,6 @@
<artifactId>common-junit3</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-provider-api</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
<build>
diff --git a/surefire-providers/surefire-junit4/pom.xml b/surefire-providers/surefire-junit4/pom.xml
index 7a32b19..fc4d450 100644
--- a/surefire-providers/surefire-junit4/pom.xml
+++ b/surefire-providers/surefire-junit4/pom.xml
@@ -43,11 +43,6 @@
<artifactId>common-junit4</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-provider-api</artifactId>
- <version>${project.version}</version>
- </dependency>
</dependencies>
<build>
diff --git a/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java b/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java
index 2e411b9..003d411 100644
--- a/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java
+++ b/surefire-providers/surefire-junit4/src/test/java/org/apache/maven/surefire/junit4/JUnit4ProviderTest.java
@@ -45,7 +45,7 @@ public class JUnit4ProviderTest
private JUnit4Provider getJUnit4Provider()
{
- BaseProviderFactory providerParameters = new BaseProviderFactory( null, true );
+ BaseProviderFactory providerParameters = new BaseProviderFactory( true );
providerParameters.setProviderProperties( new HashMap<String, String>() );
providerParameters.setClassLoaders( getClass().getClassLoader() );
providerParameters.setTestRequest( new TestRequest( null, null, null ) );
diff --git a/surefire-providers/surefire-junit47/pom.xml b/surefire-providers/surefire-junit47/pom.xml
index c958201..d08b0b4 100644
--- a/surefire-providers/surefire-junit47/pom.xml
+++ b/surefire-providers/surefire-junit47/pom.xml
@@ -34,11 +34,6 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-provider-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
<artifactId>common-junit48</artifactId>
<version>${project.version}</version>
</dependency>
diff --git a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java
index aded93f..8ffe1ca 100644
--- a/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java
+++ b/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java
@@ -87,7 +87,8 @@ public class Surefire746Test
throws Exception
{
ReporterFactory reporterFactory = JUnitCoreTester.defaultNoXml();
- BaseProviderFactory providerParameters = new BaseProviderFactory( reporterFactory, true );
+ BaseProviderFactory providerParameters = new BaseProviderFactory( true );
+ providerParameters.setReporterFactory( reporterFactory );
providerParameters.setReporterConfiguration( new ReporterConfiguration( new File( "" ), false ) );
Map<String, String> junitProps = new HashMap<>();
diff --git a/surefire-providers/surefire-testng/pom.xml b/surefire-providers/surefire-testng/pom.xml
index 4023e0f..df1bf4f 100644
--- a/surefire-providers/surefire-testng/pom.xml
+++ b/surefire-providers/surefire-testng/pom.xml
@@ -33,11 +33,6 @@
<dependencies>
<dependency>
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>surefire-provider-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>