You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2012/08/14 16:29:33 UTC

svn commit: r1372903 - in /maven/surefire/trunk: maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/ maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ maven-surefire-common/src/main/java/org/apache/mav...

Author: krosenvold
Date: Tue Aug 14 14:29:32 2012
New Revision: 1372903

URL: http://svn.apache.org/viewvc?rev=1372903&view=rev
Log:
o Worked on simplifying the reporting stuff

Added:
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java
      - copied, changed from r1372602, maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterFactory.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java
      - copied, changed from r1372602, maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputDirectReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java
      - copied, changed from r1372602, maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java
Removed:
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputDirectReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterFactory.java
Modified:
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/AbstractReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/MulticastingReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/Reporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/XMLReporter.java
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
    maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java
    maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
    maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java
    maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentReporterManagerTest.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/CommonReflector.java Tue Aug 14 14:29:32 2012
@@ -21,7 +21,7 @@ package org.apache.maven.plugin.surefire
 
 import java.io.File;
 import java.lang.reflect.Constructor;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.util.ReflectionUtils;
 import org.apache.maven.surefire.util.SurefireReflectionException;
 
@@ -53,7 +53,7 @@ public class CommonReflector
         Class<?>[] args = new Class[]{ this.startupReportConfiguration };
         Object src = createStartupReportConfiguration( startupReportConfiguration );
         Object[] params = new Object[]{ src };
-        return ReflectionUtils.instantiateObject( FileReporterFactory.class.getName(), args, params,
+        return ReflectionUtils.instantiateObject( DefaultReporterFactory.class.getName(), args, params,
                                                   surefireClassLoader );
     }
 

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/StartupReportConfiguration.java Tue Aug 14 14:29:32 2012
@@ -19,21 +19,13 @@ package org.apache.maven.plugin.surefire
  * under the License.
  */
 
+import org.apache.maven.plugin.surefire.report.*;
+import org.apache.maven.plugin.surefire.runorder.StatisticsReporter;
+import org.apache.maven.plugin.surefire.report.TestcycleConsoleOutputReceiver;
+
 import java.io.File;
 import java.io.PrintStream;
 import java.util.Properties;
-import org.apache.maven.plugin.surefire.report.AbstractConsoleReporter;
-import org.apache.maven.plugin.surefire.report.AbstractFileReporter;
-import org.apache.maven.plugin.surefire.report.BriefConsoleReporter;
-import org.apache.maven.plugin.surefire.report.BriefFileReporter;
-import org.apache.maven.plugin.surefire.report.ConsoleOutputDirectReporter;
-import org.apache.maven.plugin.surefire.report.ConsoleOutputFileReporter;
-import org.apache.maven.plugin.surefire.report.ConsoleReporter;
-import org.apache.maven.plugin.surefire.report.DetailedConsoleReporter;
-import org.apache.maven.plugin.surefire.report.FileReporter;
-import org.apache.maven.plugin.surefire.report.Reporter;
-import org.apache.maven.plugin.surefire.report.XMLReporter;
-import org.apache.maven.plugin.surefire.runorder.StatisticsReporter;
 
 /**
  * All the parameters used to construct reporters
@@ -43,6 +35,10 @@ import org.apache.maven.plugin.surefire.
  */
 public class StartupReportConfiguration
 {
+    private final PrintStream originalSystemOut;
+
+    private final PrintStream originalSystemErr;
+
     private final boolean useFile;
 
     private final boolean printSummary;
@@ -84,6 +80,8 @@ public class StartupReportConfiguration
         this.reportNameSuffix = reportNameSuffix;
         this.configurationHash = configurationHash;
         this.requiresRunHistory = requiresRunHistory;
+        this.originalSystemOut = System.out;
+        this.originalSystemErr = System.err;
     }
 
     public static StartupReportConfiguration defaultValue()
@@ -178,7 +176,7 @@ public class StartupReportConfiguration
         return null;
     }
 
-    public Reporter instantiateConsoleOutputFileReporter( PrintStream originalSystemOut )
+    public TestcycleConsoleOutputReceiver instantiateConsoleOutputFileReporter()
     {
         if ( isRedirectTestOutputToFile() )
         {
@@ -186,7 +184,7 @@ public class StartupReportConfiguration
         }
         else
         {
-            return new ConsoleOutputDirectReporter( originalSystemOut );
+            return new DirectConsoleOutput( originalSystemOut, originalSystemErr );
         }
     }
 
@@ -226,4 +224,14 @@ public class StartupReportConfiguration
     {
         return requiresRunHistory;
     }
+
+    public PrintStream getOriginalSystemOut()
+    {
+        return originalSystemOut;
+    }
+
+    public PrintStream getOriginalSystemErr()
+    {
+        return originalSystemErr;
+    }
 }

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java Tue Aug 14 14:29:32 2012
@@ -36,7 +36,7 @@ import org.apache.maven.plugin.surefire.
 import org.apache.maven.plugin.surefire.SurefireProperties;
 import org.apache.maven.plugin.surefire.booterclient.output.ForkClient;
 import org.apache.maven.plugin.surefire.booterclient.output.ThreadedStreamConsumer;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.booter.Classpath;
 import org.apache.maven.surefire.booter.ClasspathConfiguration;
 import org.apache.maven.surefire.booter.ProviderConfiguration;
@@ -84,7 +84,7 @@ public class ForkStarter
 
     private final SurefireProperties effectiveSystemProperties;
 
-    private final FileReporterFactory fileReporterFactory;
+    private final DefaultReporterFactory fileReporterFactory;
 
     private static volatile int systemPropertiesFileCounter = 0;
 
@@ -100,7 +100,7 @@ public class ForkStarter
         this.startupConfiguration = startupConfiguration;
         this.startupReportConfiguration = startupReportConfiguration;
         this.effectiveSystemProperties = effectiveSystemProperties;
-        fileReporterFactory = new FileReporterFactory( startupReportConfiguration );
+        fileReporterFactory = new DefaultReporterFactory( startupReportConfiguration );
     }
 
     public RunResult run( DefaultScanResult scanResult, String requestedForkMode )

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/output/ForkClient.java Tue Aug 14 14:29:32 2012
@@ -28,13 +28,14 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
 import java.util.StringTokenizer;
+
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.booter.ForkingRunListener;
 import org.apache.maven.surefire.report.CategorizedReportEntry;
 import org.apache.maven.surefire.report.ConsoleLogger;
 import org.apache.maven.surefire.report.ConsoleOutputReceiver;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.ReporterException;
-import org.apache.maven.surefire.report.ReporterFactory;
 import org.apache.maven.surefire.report.RunListener;
 import org.apache.maven.surefire.report.SimpleReportEntry;
 import org.apache.maven.surefire.report.StackTraceWriter;
@@ -50,7 +51,7 @@ import org.codehaus.plexus.util.cli.Stre
 public class ForkClient
     implements StreamConsumer
 {
-    private final ReporterFactory providerReporterFactory;
+    private final DefaultReporterFactory providerReporterFactory;
 
     private final Map<Integer, RunListener> testSetReporters =
         Collections.synchronizedMap( new HashMap<Integer, RunListener>() );
@@ -59,7 +60,7 @@ public class ForkClient
 
     private volatile boolean saidGoodBye = false;
 
-    public ForkClient( ReporterFactory providerReporterFactory, Properties testVmSystemProperties )
+    public ForkClient( DefaultReporterFactory providerReporterFactory, Properties testVmSystemProperties )
     {
         this.providerReporterFactory = providerReporterFactory;
         this.testVmSystemProperties = testVmSystemProperties;
@@ -81,40 +82,34 @@ public class ForkClient
                 return;
             }
             final Integer channelNumber = Integer.parseInt( s.substring( 2, commma ), 16 );
-            RunListener reporter = testSetReporters.get( channelNumber );
-            if ( reporter == null )
-            {
-                reporter = providerReporterFactory.createReporter();
-                testSetReporters.put( channelNumber, reporter );
-            }
             int rest = s.indexOf( ",", commma );
             final String remaining = s.substring( rest + 1 );
 
             switch ( operationId )
             {
                 case ForkingRunListener.BOOTERCODE_TESTSET_STARTING:
-                    reporter.testSetStarting( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testSetStarting( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TESTSET_COMPLETED:
-                    reporter.testSetCompleted( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testSetCompleted( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_STARTING:
-                    reporter.testStarting( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testStarting( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_SUCCEEDED:
-                    reporter.testSucceeded( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testSucceeded( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_FAILED:
-                    reporter.testFailed( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testFailed( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_SKIPPED:
-                    reporter.testSkipped( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testSkipped( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_ERROR:
-                    reporter.testError( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testError( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_TEST_ASSUMPTIONFAILURE:
-                    reporter.testAssumptionFailure( createReportEntry( remaining ) );
+                    getOrCreateReporter(channelNumber).testAssumptionFailure( createReportEntry( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_SYSPROPS:
                     int keyEnd = remaining.indexOf( "," );
@@ -131,15 +126,15 @@ public class ForkClient
                 case ForkingRunListener.BOOTERCODE_STDOUT:
                     byte[] bytes = new byte[remaining.length() * 2];
                     int len = StringUtils.unescapeJava( bytes, remaining );
-                    ( (ConsoleOutputReceiver) reporter ).writeTestOutput( bytes, 0, len, true );
+                    getOrCreateConsoleOutputReceiver(channelNumber).writeTestOutput( bytes, 0, len, true );
                     break;
                 case ForkingRunListener.BOOTERCODE_STDERR:
                     bytes = new byte[remaining.length() * 2];
                     len = StringUtils.unescapeJava( bytes, remaining );
-                    ( (ConsoleOutputReceiver) reporter ).writeTestOutput( bytes, 0, len, false );
+                    getOrCreateConsoleOutputReceiver(channelNumber).writeTestOutput( bytes, 0, len, false );
                     break;
                 case ForkingRunListener.BOOTERCODE_CONSOLE:
-                    ( (ConsoleLogger) reporter ).info( createConsoleMessage( remaining ) );
+                    getOrCreateConsoleLogger(channelNumber).info( createConsoleMessage( remaining ) );
                     break;
                 case ForkingRunListener.BOOTERCODE_BYE:
                     saidGoodBye = true;
@@ -233,9 +228,26 @@ public class ForkClient
      */
     public RunListener getReporter( Integer channelNumber )
     {
-        return testSetReporters.get( channelNumber );
+        return testSetReporters.get(channelNumber);
+    }
+
+    private RunListener getOrCreateReporter(Integer channelNumber) {
+        RunListener reporter = testSetReporters.get( channelNumber );
+        if ( reporter == null )
+        {
+            reporter = providerReporterFactory.createReporter();
+            testSetReporters.put( channelNumber, reporter );
+        }
+        return reporter;
     }
 
+    private ConsoleOutputReceiver getOrCreateConsoleOutputReceiver(Integer channelNumber){
+        return (ConsoleOutputReceiver) getOrCreateReporter(channelNumber);
+    }
+
+    private ConsoleLogger getOrCreateConsoleLogger(Integer channelNumber){
+        return (ConsoleLogger) getOrCreateReporter(channelNumber);
+    }
 
     public void close()
     {

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/AbstractReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/AbstractReporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/AbstractReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/AbstractReporter.java Tue Aug 14 14:29:32 2012
@@ -66,13 +66,6 @@ public abstract class AbstractReporter
     }
 
 
-    public void writeMessage( byte[] b, int off, int len )
-    {
-        // Keep quiet about console output
-        // Reporting is itching for a cleanup
-    }
-
-
     public void testSetStarting( ReportEntry report )
         throws ReporterException
     {

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java Tue Aug 14 14:29:32 2012
@@ -19,41 +19,31 @@ package org.apache.maven.plugin.surefire
  * under the License.
  */
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.ReporterException;
 import org.apache.maven.surefire.util.NestedRuntimeException;
 
+import java.io.*;
+
 /**
  * Surefire output consumer proxy that writes test output to a {@link java.io.File} for each test suite.
  * <p/>
- * This class is not threadsafe, but can be encapsulated with a SynchronizedOutputConsumer. It may still be
- * accessed from different threads (serially).
+ * This class is not threadsafe, but can be serially handed off from thread to thread.
  *
- * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
- * @version $Id$
- * @since 2.1
+ * @author Kristian Rosenvold
+ * @author Carlos Sanchez
  */
 public class ConsoleOutputFileReporter
-    implements Reporter
+    implements TestcycleConsoleOutputReceiver
 {
     private final File reportsDirectory;
 
+    private final String reportNameSuffix;
+
     private PrintWriter printWriter = null;
 
     private String reportEntryName;
 
-    private final String reportNameSuffix;
-
-    public ConsoleOutputFileReporter( File reportsDirectory )
-    {
-        this( reportsDirectory, null );
-    }
-
     public ConsoleOutputFileReporter( File reportsDirectory, String reportNameSuffix )
     {
         this.reportsDirectory = reportsDirectory;
@@ -77,6 +67,10 @@ public class ConsoleOutputFileReporter
 
     public void writeMessage( byte[] b, int off, int len )
     {
+        writeTestOutput(b, off,len, true);
+    }
+
+    public void writeTestOutput(byte[] buf, int off, int len, boolean stdout) {
         try
         {
             if ( printWriter == null )
@@ -87,43 +81,14 @@ public class ConsoleOutputFileReporter
                     reportsDirectory.mkdirs();
                 }
                 File file = AbstractFileReporter.getReportFile( reportsDirectory, reportEntryName, reportNameSuffix,
-                                                                "-output.txt" );
+                        "-output.txt" );
                 printWriter = new PrintWriter( new BufferedWriter( new FileWriter( file ) ) );
             }
-            printWriter.write( new String( b, off, len ) );
+            printWriter.write( new String( buf, off, len ) );
         }
         catch ( IOException e )
         {
             throw new NestedRuntimeException( e );
         }
     }
-
-
-    public void testStarting( ReportEntry report )
-    {
-    }
-
-    public void testSucceeded( ReportEntry report )
-    {
-    }
-
-    public void testSkipped( ReportEntry report )
-    {
-    }
-
-    public void testError( ReportEntry report, String stdOut, String stdErr )
-    {
-    }
-
-    public void testFailed( ReportEntry report, String stdOut, String stdErr )
-    {
-    }
-
-    public void writeMessage( String message )
-    {
-    }
-
-    public void reset()
-    {
-    }
 }

Copied: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java (from r1372602, maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterFactory.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java?p2=maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java&p1=maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterFactory.java&r1=1372602&r2=1372903&rev=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporterFactory.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java Tue Aug 14 14:29:32 2012
@@ -1,159 +1,157 @@
-package org.apache.maven.plugin.surefire.report;
-
-/*
- * 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.
- */
-
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.maven.plugin.surefire.StartupReportConfiguration;
-import org.apache.maven.plugin.surefire.runorder.StatisticsReporter;
-import org.apache.maven.surefire.report.ConsoleLogger;
-import org.apache.maven.surefire.report.DefaultDirectConsoleReporter;
-import org.apache.maven.surefire.report.ReporterConfiguration;
-import org.apache.maven.surefire.report.ReporterFactory;
-import org.apache.maven.surefire.report.RunListener;
-import org.apache.maven.surefire.report.RunStatistics;
-import org.apache.maven.surefire.suite.RunResult;
-
-/**
- * Provides RunListener implementations to the providers.
- * <p/>
- * Keeps a centralized count of test run results.
- *
- * @author Kristian Rosenvold
- */
-public class FileReporterFactory
-    implements ReporterFactory
-{
-
-    private final ReporterConfiguration reporterConfiguration;
-
-    private final RunStatistics globalStats = new RunStatistics();
-
-    private final MulticastingReporter multicastingReporter;
-
-    private final StartupReportConfiguration reportConfiguration;
-
-    private final StatisticsReporter statisticsReporter;
-
-    public FileReporterFactory( StartupReportConfiguration reportConfiguration )
-    {
-        this.reportConfiguration = reportConfiguration;
-        this.reporterConfiguration = getReporterConfiguration();
-        multicastingReporter = new MulticastingReporter( instantiateReports() );
-        this.statisticsReporter = reportConfiguration.instantiateStatisticsReporter();
-        runStarting();
-    }
-
-    private ReporterConfiguration getReporterConfiguration()
-    {
-        //noinspection BooleanConstructorCall
-        return new ReporterConfiguration( reportConfiguration.getReportsDirectory(),
-                                          reportConfiguration.isTrimStackTrace() );
-    }
-
-    public RunListener createReporter()
-    {
-        final PrintStream sout = reporterConfiguration.getOriginalSystemOut();
-        return new TestSetRunListener( reportConfiguration.instantiateConsoleReporter(),
-                                       reportConfiguration.instantiateFileReporter(),
-                                       reportConfiguration.instantiateXmlReporter(),
-                                       reportConfiguration.instantiateConsoleOutputFileReporter( sout ),
-                                       statisticsReporter, globalStats );
-    }
-
-    private List<Reporter> instantiateReports()
-    {
-        final PrintStream sout = reporterConfiguration.getOriginalSystemOut();
-        List<Reporter> result = new ArrayList<Reporter>();
-        addIfNotNull( result, reportConfiguration.instantiateConsoleReporter() );
-        addIfNotNull( result, reportConfiguration.instantiateFileReporter() );
-        addIfNotNull( result, reportConfiguration.instantiateXmlReporter() );
-        addIfNotNull( result, reportConfiguration.instantiateConsoleOutputFileReporter( sout ) );
-        addIfNotNull( result, statisticsReporter );
-        return result;
-    }
-
-    private void addIfNotNull( List<Reporter> result, Reporter reporter )
-    {
-        if ( reporter != null )
-        {
-            result.add( reporter );
-        }
-    }
-
-    public RunResult close()
-    {
-        runCompleted();
-        return globalStats.getRunResult();
-    }
-
-    private ConsoleLogger createConsoleLogger()
-    {
-        return new DefaultDirectConsoleReporter( reporterConfiguration.getOriginalSystemOut() );
-    }
-
-    public void runStarting()
-    {
-        final ConsoleLogger consoleReporter = createConsoleLogger();
-        consoleReporter.info( "" );
-        consoleReporter.info( "-------------------------------------------------------" );
-        consoleReporter.info( " T E S T S" );
-        consoleReporter.info( "-------------------------------------------------------" );
-    }
-
-    private void runCompleted()
-    {
-        final ConsoleLogger logger = createConsoleLogger();
-        logger.info( "" );
-        logger.info( "Results :" );
-        logger.info( "" );
-        if ( globalStats.hadFailures() )
-        {
-            multicastingReporter.writeMessage( "Failed tests: " );
-            for ( Object o : this.globalStats.getFailureSources() )
-            {
-                logger.info( "  " + o );
-            }
-            logger.info( "" );
-        }
-        if ( globalStats.hadErrors() )
-        {
-            logger.info( "Tests in error: " );
-            for ( Object o : this.globalStats.getErrorSources() )
-            {
-                logger.info( "  " + o );
-            }
-            logger.info( "" );
-        }
-        logger.info( globalStats.getSummary() );
-        logger.info( "" );
-    }
-
-    public RunStatistics getGlobalRunStatistics()
-    {
-        return globalStats;
-    }
-
-    public static FileReporterFactory defaultNoXml()
-    {
-        return new FileReporterFactory( StartupReportConfiguration.defaultNoXml() );
-    }
-}
+package org.apache.maven.plugin.surefire.report;
+
+/*
+ * 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.
+ */
+
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.maven.plugin.surefire.StartupReportConfiguration;
+import org.apache.maven.plugin.surefire.runorder.StatisticsReporter;
+import org.apache.maven.surefire.report.ConsoleLogger;
+import org.apache.maven.surefire.report.DefaultDirectConsoleReporter;
+import org.apache.maven.surefire.report.ReporterConfiguration;
+import org.apache.maven.surefire.report.ReporterFactory;
+import org.apache.maven.surefire.report.RunListener;
+import org.apache.maven.surefire.report.RunStatistics;
+import org.apache.maven.surefire.suite.RunResult;
+
+/**
+ * Provides reporting modules on the plugin side.
+ * <p/>
+ * Keeps a centralized count of test run results.
+ *
+ * @author Kristian Rosenvold
+ */
+public class DefaultReporterFactory
+    implements ReporterFactory
+{
+    private final ReporterConfiguration reporterConfiguration;
+
+    private final RunStatistics globalStats = new RunStatistics();
+
+    private final MulticastingReporter multicastingReporter;
+
+    private final StartupReportConfiguration reportConfiguration;
+
+    private final StatisticsReporter statisticsReporter;
+
+    public DefaultReporterFactory( StartupReportConfiguration reportConfiguration )
+    {
+        this.reportConfiguration = reportConfiguration;
+        this.reporterConfiguration = getReporterConfiguration();
+        multicastingReporter = new MulticastingReporter( instantiateReports() );
+        this.statisticsReporter = reportConfiguration.instantiateStatisticsReporter();
+        runStarting();
+    }
+
+    private ReporterConfiguration getReporterConfiguration()
+    {
+        //noinspection BooleanConstructorCall
+        return new ReporterConfiguration( reportConfiguration.getReportsDirectory(),
+                                          reportConfiguration.isTrimStackTrace() );
+    }
+
+    public RunListener createReporter()
+    {
+        final PrintStream sout = reportConfiguration.getOriginalSystemOut();
+        final PrintStream serr = reportConfiguration.getOriginalSystemErr();
+        return new TestSetRunListener( reportConfiguration.instantiateConsoleReporter(),
+                                       reportConfiguration.instantiateFileReporter(),
+                                       reportConfiguration.instantiateXmlReporter(),
+                                       reportConfiguration.instantiateConsoleOutputFileReporter(),
+                                       statisticsReporter, globalStats );
+    }
+
+    private List<Reporter> instantiateReports()
+    {
+        List<Reporter> result = new ArrayList<Reporter>();
+        addIfNotNull( result, reportConfiguration.instantiateConsoleReporter() );
+        addIfNotNull( result, reportConfiguration.instantiateFileReporter() );
+        addIfNotNull( result, reportConfiguration.instantiateXmlReporter() );
+        addIfNotNull( result, statisticsReporter );
+        return result;
+    }
+
+    private void addIfNotNull( List<Reporter> result, Reporter reporter )
+    {
+        if ( reporter != null )
+        {
+            result.add( reporter );
+        }
+    }
+
+    public RunResult close()
+    {
+        runCompleted();
+        return globalStats.getRunResult();
+    }
+
+    private DefaultDirectConsoleReporter createConsoleLogger()
+    {
+        return new DefaultDirectConsoleReporter( reportConfiguration.getOriginalSystemOut() );
+    }
+
+    public void runStarting()
+    {
+        final DefaultDirectConsoleReporter consoleReporter = createConsoleLogger();
+        consoleReporter.info( "" );
+        consoleReporter.info( "-------------------------------------------------------" );
+        consoleReporter.info( " T E S T S" );
+        consoleReporter.info( "-------------------------------------------------------" );
+    }
+
+    private void runCompleted()
+    {
+        final DefaultDirectConsoleReporter logger = createConsoleLogger();
+        logger.info( "" );
+        logger.info( "Results :" );
+        logger.info( "" );
+        if ( globalStats.hadFailures() )
+        {
+            multicastingReporter.writeMessage( "Failed tests: " );
+            for ( Object o : this.globalStats.getFailureSources() )
+            {
+                logger.info( "  " + o );
+            }
+            logger.info( "" );
+        }
+        if ( globalStats.hadErrors() )
+        {
+            logger.info( "Tests in error: " );
+            for ( Object o : this.globalStats.getErrorSources() )
+            {
+                logger.info( "  " + o );
+            }
+            logger.info( "" );
+        }
+        logger.info( globalStats.getSummary() );
+        logger.info( "" );
+    }
+
+    public RunStatistics getGlobalRunStatistics()
+    {
+        return globalStats;
+    }
+
+    public static DefaultReporterFactory defaultNoXml()
+    {
+        return new DefaultReporterFactory( StartupReportConfiguration.defaultNoXml() );
+    }
+}

Copied: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java (from r1372602, maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputDirectReporter.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java?p2=maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java&p1=maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputDirectReporter.java&r1=1372602&r2=1372903&rev=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputDirectReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DirectConsoleOutput.java Tue Aug 14 14:29:32 2012
@@ -1,83 +1,57 @@
-package org.apache.maven.plugin.surefire.report;
-
-/*
- * 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.
- */
-
-import java.io.PrintStream;
-import org.apache.maven.surefire.report.ReportEntry;
-
-/**
- * Outputs test system out/system err directly to the console
- * <p/>
- * Just a step on the road to getting the separation of reporting concerns
- * operating properly.
- *
- * @author Kristian Rosenvold
- */
-public class ConsoleOutputDirectReporter
-    implements Reporter
-{
-    private final PrintStream reportsDirectory;
-
-    public ConsoleOutputDirectReporter( PrintStream reportsDirectory )
-    {
-        this.reportsDirectory = reportsDirectory;
-    }
-
-    public void testSetStarting( ReportEntry reportEntry )
-    {
-    }
-
-    public void testSetCompleted( ReportEntry report )
-    {
-    }
-
-    public void testStarting( ReportEntry report )
-    {
-    }
-
-    public void testSucceeded( ReportEntry report )
-    {
-    }
-
-    public void testSkipped( ReportEntry report )
-    {
-    }
-
-    public void testError( ReportEntry report, String stdOut, String stdErr )
-    {
-    }
-
-    public void testFailed( ReportEntry report, String stdOut, String stdErr )
-    {
-    }
-
-    public void writeMessage( String message )
-    {
-    }
-
-    public void writeMessage( byte[] b, int off, int len )
-    {
-        reportsDirectory.write( b, off, len );
-    }
-
-    public void reset()
-    {
-    }
-}
+package org.apache.maven.plugin.surefire.report;
+
+/*
+ * 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.
+ */
+
+import java.io.PrintStream;
+
+import org.apache.maven.surefire.report.ReportEntry;
+
+/**
+ * Outputs test system out/system err directly to the console
+ * <p/>
+ * Just a step on the road to getting the separation of reporting concerns
+ * operating properly.
+ *
+ * @author Kristian Rosenvold
+ */
+public class DirectConsoleOutput
+    implements TestcycleConsoleOutputReceiver
+{
+    private final PrintStream sout;
+    private final PrintStream serr;
+
+    public DirectConsoleOutput(PrintStream sout, PrintStream serr)
+    {
+        this.sout = sout;
+        this.serr = serr;
+    }
+
+
+    public void writeTestOutput(byte[] buf, int off, int len, boolean stdout) {
+        PrintStream stream = stdout ? sout : serr;
+        stream.write(buf, off, len);
+    }
+
+    public void testSetStarting(ReportEntry reportEntry) {
+    }
+
+    public void testSetCompleted(ReportEntry report) {
+    }
+}

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/MulticastingReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/MulticastingReporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/MulticastingReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/MulticastingReporter.java Tue Aug 14 14:29:32 2012
@@ -126,14 +126,6 @@ public class MulticastingReporter
         }
     }
 
-    public void writeMessage( byte[] b, int off, int len )
-    {
-        for ( int i = 0; i < size; i++ )
-        {
-            target[i].writeMessage( b, off, len );
-        }
-    }
-
     public void reset()
     {
         for ( int i = 0; i < size; i++ )

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/Reporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/Reporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/Reporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/Reporter.java Tue Aug 14 14:29:32 2012
@@ -96,8 +96,6 @@ public interface Reporter
      */
     void writeMessage( String message );
 
-    void writeMessage( byte[] b, int off, int len );
-
     /**
      * Restores the instance of the reporter, making the instance re-usable for a subsequent run in the
      * same thread.

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java Tue Aug 14 14:29:32 2012
@@ -23,12 +23,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import org.apache.maven.plugin.surefire.runorder.StatisticsReporter;
-import org.apache.maven.surefire.report.ConsoleLogger;
-import org.apache.maven.surefire.report.ConsoleOutputReceiver;
-import org.apache.maven.surefire.report.ReportEntry;
-import org.apache.maven.surefire.report.RunListener;
-import org.apache.maven.surefire.report.RunStatistics;
-import org.apache.maven.surefire.report.TestSetStatistics;
+import org.apache.maven.surefire.report.*;
 import org.apache.maven.surefire.util.internal.ByteBuffer;
 
 /**
@@ -48,12 +43,12 @@ public class TestSetRunListener
 
     private final List<ByteBuffer> testStdErr = Collections.synchronizedList( new ArrayList<ByteBuffer>() );
 
+    private final TestcycleConsoleOutputReceiver consoleOutputReceiver;
 
     public TestSetRunListener( AbstractConsoleReporter consoleReporter, AbstractFileReporter fileReporter,
-                               XMLReporter xmlReporter, Reporter reporter, StatisticsReporter statisticsReporter,
+                               XMLReporter xmlReporter, TestcycleConsoleOutputReceiver consoleOutputReceiver, StatisticsReporter statisticsReporter,
                                RunStatistics globalStats )
     {
-
         List<Reporter> reporters = new ArrayList<Reporter>();
         if ( consoleReporter != null )
         {
@@ -67,14 +62,13 @@ public class TestSetRunListener
         {
             reporters.add( xmlReporter );
         }
-        if ( reporter != null )
-        {
-            reporters.add( reporter );
-        }
         if ( statisticsReporter != null )
         {
             reporters.add( statisticsReporter );
         }
+
+        this.consoleOutputReceiver = consoleOutputReceiver;
+
         multicastingReporter = new MulticastingReporter( reporters );
         this.testSetStatistics = new TestSetStatistics();
         this.globalStatistics = globalStats;
@@ -85,16 +79,6 @@ public class TestSetRunListener
         multicastingReporter.writeMessage( message );
     }
 
-    public void writeMessage( String message )
-    {
-        info( message );
-    }
-
-    public void writeMessage( byte[] b, int off, int len )
-    {
-        multicastingReporter.writeMessage( b, off, len );
-    }
-
     public void writeTestOutput( byte[] buf, int off, int len, boolean stdout )
     {
         ByteBuffer byteBuffer = new ByteBuffer( buf, off, len );
@@ -106,12 +90,13 @@ public class TestSetRunListener
         {
             testStdErr.add( byteBuffer );
         }
-        multicastingReporter.writeMessage( buf, off, len );
+        consoleOutputReceiver.writeTestOutput( buf, off, len, stdout );
     }
 
     public void testSetStarting( ReportEntry report )
     {
-        multicastingReporter.testSetStarting( report );
+        multicastingReporter.testSetStarting(report);
+        consoleOutputReceiver.testSetStarting( report);
     }
 
     public void clearCapture()
@@ -123,8 +108,9 @@ public class TestSetRunListener
     public void testSetCompleted( ReportEntry report )
     {
         multicastingReporter.testSetCompleted( report );
+        consoleOutputReceiver.testSetCompleted( report);
         multicastingReporter.reset();
-        globalStatistics.add( testSetStatistics );
+        globalStatistics.add(testSetStatistics);
         testSetStatistics.reset();
     }
 
@@ -153,30 +139,12 @@ public class TestSetRunListener
         clearCapture();
     }
 
-    public void testError( ReportEntry reportEntry, String stdOutLog, String stdErrLog )
-    {
-        multicastingReporter.testError( reportEntry, stdOutLog, stdErrLog );
-        testSetStatistics.incrementErrorsCount();
-        testSetStatistics.incrementCompletedCount();
-        globalStatistics.addErrorSource( reportEntry.getName(), reportEntry.getStackTraceWriter() );
-        clearCapture();
-    }
-
     public void testFailed( ReportEntry reportEntry )
     {
-        multicastingReporter.testFailed( reportEntry, getAsString( testStdOut ), getAsString( testStdErr ) );
-        testSetStatistics.incrementFailureCount();
-        testSetStatistics.incrementCompletedCount();
-        globalStatistics.addFailureSource( reportEntry.getName(), reportEntry.getStackTraceWriter() );
-        clearCapture();
-    }
-
-    public void testFailed( ReportEntry reportEntry, String stdOutLog, String stdErrLog )
-    {
-        multicastingReporter.testFailed( reportEntry, stdOutLog, stdErrLog );
+        multicastingReporter.testFailed(reportEntry, getAsString(testStdOut), getAsString(testStdErr));
         testSetStatistics.incrementFailureCount();
         testSetStatistics.incrementCompletedCount();
-        globalStatistics.addFailureSource( reportEntry.getName(), reportEntry.getStackTraceWriter() );
+        globalStatistics.addFailureSource(reportEntry.getName(), reportEntry.getStackTraceWriter());
         clearCapture();
     }
 
@@ -189,12 +157,12 @@ public class TestSetRunListener
         clearCapture();
         testSetStatistics.incrementSkippedCount();
         testSetStatistics.incrementCompletedCount();
-        multicastingReporter.testSkipped( report );
+        multicastingReporter.testSkipped(report);
     }
 
     public void testAssumptionFailure( ReportEntry report )
     {
-        testSkipped( report );
+        testSkipped(report);
     }
 
     public String getAsString( List<ByteBuffer> byteBufferList )

Copied: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java (from r1372602, maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java?p2=maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java&p1=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java&r1=1372602&r2=1372903&rev=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestcycleConsoleOutputReceiver.java Tue Aug 14 14:29:32 2012
@@ -1,45 +1,34 @@
-package org.apache.maven.surefire.report;
-
-/*
- * 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.
- */
-
-import org.apache.maven.surefire.suite.RunResult;
-
-/**
- * @author Kristian Rosenvold
- */
-public interface ReporterFactory
-{
-    /**
-     * Creates a reporter. The reporter is a singleton that is expected to be
-     * used in the provider.
-     *
-     * @return A reporter instance
-     */
-    RunListener createReporter();
-
-    /**
-     * Closes the factory, freeing resources allocated in the factory.
-     *
-     * @return The run result
-     */
-    RunResult close();
-
-    RunStatistics getGlobalRunStatistics();
-}
+package org.apache.maven.plugin.surefire.report;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.surefire.report.ConsoleOutputReceiver;
+import org.apache.maven.surefire.report.ReportEntry;
+
+/**
+ * @author Kristian Rosenvold
+ */
+public interface TestcycleConsoleOutputReceiver extends ConsoleOutputReceiver
+{
+
+    void testSetStarting( ReportEntry reportEntry );
+    void testSetCompleted( ReportEntry report );
+
+}

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/XMLReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/XMLReporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/XMLReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/XMLReporter.java Tue Aug 14 14:29:32 2012
@@ -109,10 +109,6 @@ public class XMLReporter
     {
     }
 
-    public void writeMessage( byte[] b, int off, int len )
-    {
-    }
-
     public void testSetStarting( ReportEntry report )
         throws ReporterException
     {

Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java Tue Aug 14 14:29:32 2012
@@ -88,10 +88,6 @@ public class StatisticsReporter
     {
     }
 
-    public void writeMessage( byte[] b, int off, int len )
-    {
-    }
-
     public void reset()
     {
     }

Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkingRunListenerTest.java Tue Aug 14 14:29:32 2012
@@ -51,9 +51,9 @@ public class ForkingRunListenerTest
 
     private final PrintStream printStream;
 
-    final Integer defaultChannel = new Integer( 17 );
+    final Integer defaultChannel = 17;
 
-    final Integer anotherChannel = new Integer( 18 );
+    final Integer anotherChannel = 18;
 
     public ForkingRunListenerTest()
     {
@@ -210,7 +210,7 @@ public class ForkingRunListenerTest
         standardTestRun.run();
 
         reset();
-        RunListener forkingReporter = createForkingRunListener( defaultChannel );
+        createForkingRunListener( defaultChannel );
 
         TestSetMockReporterFactory providerReporterFactory = new TestSetMockReporterFactory();
         final Properties testVmSystemProperties = new Properties();
@@ -257,8 +257,8 @@ public class ForkingRunListenerTest
         ReportEntry expected = createDefaultReportEntry();
         final SimpleReportEntry secondExpected = createAnotherDefaultReportEntry();
 
-        new ForkingRunListener( printStream, defaultChannel.intValue() ).testStarting( expected );
-        new ForkingRunListener( printStream, anotherChannel.intValue() ).testSkipped( secondExpected );
+        new ForkingRunListener( printStream, defaultChannel, false).testStarting( expected );
+        new ForkingRunListener( printStream, anotherChannel, false).testSkipped( secondExpected );
 
         TestSetMockReporterFactory providerReporterFactory = new TestSetMockReporterFactory();
         final ForkClient forkStreamClient = new ForkClient( providerReporterFactory, new Properties() );
@@ -279,12 +279,12 @@ public class ForkingRunListenerTest
 
     private SimpleReportEntry createDefaultReportEntry()
     {
-        return new SimpleReportEntry( "com.abc.TestClass", "testMethod", new Integer( 22 ) );
+        return new SimpleReportEntry( "com.abc.TestClass", "testMethod", 22);
     }
 
     private SimpleReportEntry createAnotherDefaultReportEntry()
     {
-        return new SimpleReportEntry( "com.abc.AnotherTestClass", "testAnotherMethod", new Integer( 42 ) );
+        return new SimpleReportEntry( "com.abc.AnotherTestClass", "testAnotherMethod", 42);
     }
 
     private SimpleReportEntry createReportEntryWithStackTrace()
@@ -298,7 +298,7 @@ public class ForkingRunListenerTest
             StackTraceWriter stackTraceWriter =
                 new PojoStackTraceWriter( "org.apache.tests.TestClass", "testMethod11", e );
             return new CategorizedReportEntry( "com.abc.TestClass", "testMethod", "aGroup", stackTraceWriter,
-                                               new Integer( 77 ) );
+                    77);
         }
     }
 
@@ -313,13 +313,13 @@ public class ForkingRunListenerTest
             StackTraceWriter stackTraceWriter =
                 new PojoStackTraceWriter( "org.apache.tests.TestClass", "testMethod11", e );
             return new CategorizedReportEntry( "com.abc.TestClass", "testMethod", "aGroup", stackTraceWriter,
-                                               new Integer( 77 ) );
+                    77);
         }
     }
 
     private RunListener createForkingRunListener( Integer testSetCHannel )
     {
-        return new ForkingRunListener( printStream, testSetCHannel.intValue() );
+        return new ForkingRunListener( printStream, testSetCHannel, false);
     }
 
     private class StandardTestRun
@@ -345,7 +345,7 @@ public class ForkingRunListenerTest
 
         public String getFirstEvent()
         {
-            return (String) reporter.getEvents().get( 0 );
+            return reporter.getEvents().get( 0 );
         }
 
         public ReportEntry getFirstData()
@@ -361,6 +361,7 @@ public class ForkingRunListenerTest
             final ReportEntry firstData = getFirstData();
             assertEquals( expected.getSourceName(), firstData.getSourceName() );
             assertEquals( expected.getName(), firstData.getName() );
+            //noinspection deprecation
             assertEquals( expected.getElapsed(), firstData.getElapsed() );
             assertEquals( expected.getGroup(), firstData.getGroup() );
             if ( expected.getStackTraceWriter() != null )

Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/TestSetMockReporterFactory.java Tue Aug 14 14:29:32 2012
@@ -20,14 +20,14 @@ package org.apache.maven.plugin.surefire
  */
 
 import org.apache.maven.plugin.surefire.StartupReportConfiguration;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.report.RunListener;
 
 /**
  * @author Kristian Rosenvold
  */
 public class TestSetMockReporterFactory
-    extends FileReporterFactory
+    extends DefaultReporterFactory
 {
     public TestSetMockReporterFactory()
     {

Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/ConsoleOutputFileReporterTest.java Tue Aug 14 14:29:32 2012
@@ -41,7 +41,7 @@ public class ConsoleOutputFileReporterTe
     {
         File reportDir = new File( System.getProperty( "java.io.tmpdir" ) );
         reportEntry = new SimpleReportEntry( this.getClass().getName(), testName );
-        reporter = new ConsoleOutputFileReporter( reportDir );
+        reporter = new ConsoleOutputFileReporter( reportDir, null );
         reporter.testSetStarting( reportEntry );
         reporter.writeMessage( "some text".getBytes(), 0, 5 );
         reporter.testSetCompleted( reportEntry );

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java Tue Aug 14 14:29:32 2012
@@ -42,7 +42,7 @@ import org.apache.maven.surefire.util.in
  * This class is threadsafe.
  * <p/>
  * The synchronization in the underlying PrintStream (target instance)
- * is used to preserve thread safety of the ouput stream. To perform
+ * is used to preserve thread safety of the output stream. To perform
  * multiple writes/prints for a single request, they must
  * synchronize on "target" variable in this class.
  *
@@ -87,11 +87,6 @@ public class ForkingRunListener
 
     private final byte[] stdErrHeader;
 
-    public ForkingRunListener( PrintStream target, int testSetChannelId )
-    {
-        this( target, testSetChannelId, false );
-    }
-
     public ForkingRunListener( PrintStream target, int testSetChannelId, boolean trimStackTraces )
     {
         this.target = target;
@@ -100,7 +95,6 @@ public class ForkingRunListener
         stdOutHeader = createHeader( BOOTERCODE_STDOUT, testSetChannelId );
         stdErrHeader = createHeader( BOOTERCODE_STDERR, testSetChannelId );
         sendProps();
-
     }
 
     public void testSetStarting( ReportEntry report )

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterFactory.java Tue Aug 14 14:29:32 2012
@@ -22,6 +22,7 @@ package org.apache.maven.surefire.report
 import org.apache.maven.surefire.suite.RunResult;
 
 /**
+ * Used by the providers to request (per-thread) run listeners.
  * @author Kristian Rosenvold
  */
 public interface ReporterFactory
@@ -41,5 +42,4 @@ public interface ReporterFactory
      */
     RunResult close();
 
-    RunStatistics getGlobalRunStatistics();
 }

Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java Tue Aug 14 14:29:32 2012
@@ -72,7 +72,7 @@ public class ForkedBooter
             startupConfiguration.writeSurefireTestClasspathProperty();
 
             Object testSet = forkedTestSet != null ? forkedTestSet.getDecodedValue( testClassLoader ) : null;
-            runSuitesInProcess( testSet, testClassLoader, startupConfiguration, providerConfiguration );
+            runSuitesInProcess( testSet, testClassLoader, startupConfiguration, providerConfiguration, originalOut );
             // Say bye.
             originalOut.println( "Z,0,BYE!" );
             originalOut.flush();
@@ -100,7 +100,8 @@ public class ForkedBooter
 
     public static RunResult runSuitesInProcess( Object testSet, ClassLoader testsClassLoader,
                                                 StartupConfiguration startupConfiguration,
-                                                ProviderConfiguration providerConfiguration )
+                                                ProviderConfiguration providerConfiguration,
+                                                PrintStream originalSystemOut )
         throws SurefireExecutionException
     {
         final ClasspathConfiguration classpathConfiguration = startupConfiguration.getClasspathConfiguration();
@@ -108,17 +109,18 @@ public class ForkedBooter
 
         SurefireReflector surefireReflector = new SurefireReflector( surefireClassLoader );
 
-        final Object factory = createForkingReporterFactory( surefireReflector, providerConfiguration );
+        final Object factory =
+            createForkingReporterFactory( surefireReflector, providerConfiguration, originalSystemOut );
 
         return ProviderFactory.invokeProvider( testSet, testsClassLoader, surefireClassLoader, factory,
                                                providerConfiguration, true, startupConfiguration );
     }
 
     private static Object createForkingReporterFactory( SurefireReflector surefireReflector,
-                                                        ProviderConfiguration providerConfiguration )
+                                                        ProviderConfiguration providerConfiguration,
+                                                        PrintStream originalSystemOut )
     {
         final Boolean trimStackTrace = providerConfiguration.getReporterConfiguration().isTrimStackTrace();
-        final PrintStream originalSystemOut = providerConfiguration.getReporterConfiguration().getOriginalSystemOut();
         return surefireReflector.createForkingReporterFactory( trimStackTrace, originalSystemOut );
     }
 

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentReporterManagerTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentReporterManagerTest.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentReporterManagerTest.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/ConcurrentReporterManagerTest.java Tue Aug 14 14:29:32 2012
@@ -23,7 +23,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
 import java.util.HashMap;
 import java.util.Map;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.report.DefaultConsoleReporter;
 import org.apache.maven.surefire.report.ReporterFactory;
 import org.apache.maven.surefire.report.RunListener;
@@ -145,7 +145,7 @@ public class ConcurrentReporterManagerTe
     private void runClasses( int success, int ignored, int failure, Class<?>... classes )
         throws TestSetFailedException
     {
-        ReporterFactory reporterFactory = createReporterFactory();
+        DefaultReporterFactory reporterFactory = createReporterFactory();
         HashMap<String, TestSet> classMethodCounts = new HashMap<String, TestSet>();
         final DefaultConsoleReporter defaultConsoleReporter = new DefaultConsoleReporter( System.out );
         RunListener reporter =
@@ -166,7 +166,7 @@ public class ConcurrentReporterManagerTe
         throws TestSetFailedException
     {
         HashMap<String, TestSet> classMethodCounts = new HashMap<String, TestSet>();
-        final ReporterFactory reporterManagerFactory = createReporterFactory();
+        final DefaultReporterFactory reporterManagerFactory = createReporterFactory();
         org.junit.runner.notification.RunListener demultiplexingRunListener =
             createRunListener( reporterManagerFactory, classMethodCounts );
 
@@ -180,7 +180,7 @@ public class ConcurrentReporterManagerTe
         return reporterManagerFactory.getGlobalRunStatistics();
     }
 
-    private RunStatistics runClasses( ReporterFactory reporterManagerFactory,
+    private RunStatistics runClasses( DefaultReporterFactory reporterManagerFactory,
                                       org.junit.runner.notification.RunListener demultiplexingRunListener,
                                       Class<?>... classes )
         throws TestSetFailedException
@@ -379,9 +379,9 @@ public class ConcurrentReporterManagerTe
     }
 
 
-    private ReporterFactory createReporterFactory()
+    private DefaultReporterFactory createReporterFactory()
     {
-        return FileReporterFactory.defaultNoXml();
+        return DefaultReporterFactory.defaultNoXml();
     }
 
 

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/JUnitCoreTester.java Tue Aug 14 14:29:32 2012
@@ -21,7 +21,7 @@ package org.apache.maven.surefire.junitc
 
 import java.util.HashMap;
 import java.util.concurrent.ExecutionException;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.report.ConsoleOutputCapture;
 import org.apache.maven.surefire.report.ConsoleOutputReceiver;
 import org.apache.maven.surefire.report.DefaultConsoleReporter;
@@ -54,7 +54,7 @@ public class JUnitCoreTester
     public Result run( boolean parallelClasses, Class<?>... classes )
         throws TestSetFailedException, ExecutionException
     {
-        ReporterFactory reporterManagerFactory = FileReporterFactory.defaultNoXml();
+        ReporterFactory reporterManagerFactory = DefaultReporterFactory.defaultNoXml();
 
         final HashMap<String, TestSet> classMethodCounts = new HashMap<String, TestSet>();
         RunListener reporter =

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java?rev=1372903&r1=1372902&r2=1372903&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/test/java/org/apache/maven/surefire/junitcore/Surefire746Test.java Tue Aug 14 14:29:32 2012
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
-import org.apache.maven.plugin.surefire.report.FileReporterFactory;
+import org.apache.maven.plugin.surefire.report.DefaultReporterFactory;
 import org.apache.maven.surefire.booter.BaseProviderFactory;
 import org.apache.maven.surefire.booter.ProviderParameterNames;
 import org.apache.maven.surefire.report.ConsoleLogger;
@@ -82,7 +82,7 @@ public class Surefire746Test
     public void surefireIsConfused_ByMultipleIgnore_OnClassLevel()
         throws Exception
     {
-        ReporterFactory reporterFactory = FileReporterFactory.defaultNoXml();
+        ReporterFactory reporterFactory = DefaultReporterFactory.defaultNoXml();
         BaseProviderFactory providerParameters = new BaseProviderFactory( reporterFactory, true );
         ConsoleLogger consoleLogger = new DefaultConsoleReporter( System.out );