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 );