You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by kr...@apache.org on 2011/03/02 21:30:50 UTC

svn commit: r1076367 - in /maven/surefire/trunk: maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ surefire-api/src/main/java/org/apache/maven/surefire/booter/ surefire-api/src/main/java/org/apache/maven/surefire/provid...

Author: krosenvold
Date: Wed Mar  2 20:30:49 2011
New Revision: 1076367

URL: http://svn.apache.org/viewvc?rev=1076367&view=rev
Log:
[SUREFIRE-705] Fixed problem with timeout in parallel

Analysis also revealed that SUREFIRE-468 needs to be reopened.

Added:
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkTimeoutException.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/AbstractProvider.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java   (with props)
    maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkTimeoutTest.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml   (with props)
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java
      - copied, changed from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
Modified:
    maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
    maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManagerFactory.java
    maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java
    maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
    maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java
    maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java
    maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
    maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
    maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
    maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
    maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java

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=1076367&r1=1076366&r2=1076367&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 Wed Mar  2 20:30:49 2011
@@ -36,6 +36,12 @@ import org.apache.maven.surefire.booter.
 import org.apache.maven.surefire.booter.SystemPropertyManager;
 import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.suite.RunResult;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.cli.CommandLineException;
+import org.codehaus.plexus.util.cli.CommandLineTimeOutException;
+import org.codehaus.plexus.util.cli.CommandLineUtils;
+import org.codehaus.plexus.util.cli.Commandline;
+import org.codehaus.plexus.util.cli.StreamConsumer;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -44,13 +50,6 @@ import java.io.IOException;
 import java.util.Iterator;
 import java.util.Properties;
 
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.cli.CommandLineException;
-import org.codehaus.plexus.util.cli.CommandLineTimeOutException;
-import org.codehaus.plexus.util.cli.CommandLineUtils;
-import org.codehaus.plexus.util.cli.Commandline;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-
 
 /**
  * Starts the fork or runs in-process.
@@ -191,7 +190,7 @@ public class ForkStarter
             throw new SurefireBooterForkException( "Error creating properties files for forking", e );
         }
 
-        final Classpath bootClasspathConfiguration =  forkConfiguration.getBootClasspath();
+        final Classpath bootClasspathConfiguration = forkConfiguration.getBootClasspath();
         final Classpath additionlClassPathUrls = startupConfiguration.useSystemClassLoader()
             ? startupConfiguration.getClasspathConfiguration().getTestClasspath()
             : null;
@@ -229,7 +228,8 @@ public class ForkStarter
 
         try
         {
-            returnCode = CommandLineUtils.executeCommandLine( cli, out, err, forkedProcessTimeoutInSeconds > 0 ? forkedProcessTimeoutInSeconds + 1 : 0 );
+            returnCode = CommandLineUtils.executeCommandLine( cli, out, err, forkedProcessTimeoutInSeconds > 0 ?
+                forkedProcessTimeoutInSeconds: 0 );
         }
         catch ( CommandLineTimeOutException e )
         {
@@ -240,6 +240,13 @@ public class ForkStarter
             throw new SurefireBooterForkException( "Error while executing forked tests.", e.getCause() );
         }
 
+       /*if ( !providerConfiguration.isSurefireForkReturnCode( returnCode ) )
+        {
+            throw new SurefireBooterForkException( "Uncontrolled error while forking surefire."
+                                                       + "You need to inspect log files (with reportFormat=plain and redirectTestOutputToFile=true )"
+                                                       + " to see stacktrace" );
+        }  */
+
         if ( startupConfiguration.isRedirectTestOutputToFile() )
         {
             // ensure the FileOutputConsumerProxy flushes/closes the output file
@@ -279,6 +286,7 @@ public class ForkStarter
         return returnCode;
     }
 
+
     private ForkingStreamConsumer getForkingStreamConsumer( boolean showHeading, boolean showFooter,
                                                             boolean redirectTestOutputToFile, boolean mustBeThreadSafe,
                                                             boolean printSummary )

Copied: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkTimeoutException.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkTimeoutException.java?p2=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkTimeoutException.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkTimeoutException.java Wed Mar  2 20:30:49 2011
@@ -22,16 +22,8 @@ package org.apache.maven.surefire.booter
 import org.apache.maven.surefire.util.NestedCheckedException;
 
 /**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
+ * @author Kristian Rosenvold
  */
-public class SurefireBooterForkException
-    extends NestedCheckedException
+public class ForkTimeoutException extends NestedCheckedException
 {
-
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
-    }
 }

Copied: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/AbstractProvider.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/AbstractProvider.java?p2=maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/AbstractProvider.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/AbstractProvider.java Wed Mar  2 20:30:49 2011
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.booter;
+package org.apache.maven.surefire.providerapi;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,19 +19,24 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
-
 /**
- * Encapsulates exceptions thrown during Surefire forking.
+ * A provider base class that all providers should extend to shield themselves from interface changes
  *
- * @version $Id$
+ * @author Kristian Rosenvold
  */
-public class SurefireBooterForkException
-    extends NestedCheckedException
+public abstract class AbstractProvider
+    implements SurefireProvider
 {
+    private final Thread creatingThread = Thread.currentThread();
 
-    public SurefireBooterForkException( String message, Throwable cause )
+    public void cancel()
     {
-        super( message, cause );
+        synchronized ( creatingThread )
+        {
+            if ( creatingThread.isAlive() )
+            {
+                creatingThread.interrupt();
+            }
+        }
     }
 }

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/providerapi/SurefireProvider.java Wed Mar  2 20:30:49 2011
@@ -66,4 +66,22 @@ public interface SurefireProvider
 
     RunResult invoke( Object forkTestSet )
         throws TestSetFailedException, ReporterException;
+
+    /**
+     * Makes an attempt at cancelling the current run, giving the provider a chance to notify
+     * reporting that the remaining tests have been cancelled due to timeout.
+     *
+     * If the provider thinks it can terminate properly it is the responsibility of
+     * the invoke method to return a RunResult with a booter code of failure.
+     *
+     * It is up to the provider to find out how to implement this method properly.
+     * A provider may also choose to not do anything at all in this method,
+     * which means surefire will kill the forked process soon afterwards anyway.
+     *
+     * Will be called on a different thread than the one calling invoke.
+     */
+    // Todo: Need to think a lot closer about how/if this works and if there is a use case for it.
+    // Killing a process is slightly non-deterministic
+    // And it
+    void cancel();
 }

Modified: maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManagerFactory.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManagerFactory.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManagerFactory.java (original)
+++ maven/surefire/trunk/surefire-api/src/main/java/org/apache/maven/surefire/report/ReporterManagerFactory.java Wed Mar  2 20:30:49 2011
@@ -27,7 +27,6 @@ import java.lang.reflect.Constructor;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Timer;
 
 /**
  * Creates ReporterManager instances for the providers.
@@ -64,27 +63,12 @@ public class ReporterManagerFactory
 
     private final SystemStreamCapturer systemStreamCapturer = new SystemStreamCapturer();
 
-    private final SurefireTimeoutMonitor timeoutTask;
-
-    private final Timer timer;
-
     public ReporterManagerFactory( ClassLoader surefireClassLoader, ReporterConfiguration reporterConfiguration )
     {
         this.reportDefinitions = reporterConfiguration.getReports();
         this.surefireClassLoader = surefireClassLoader;
         this.reporterConfiguration = reporterConfiguration;
         this.reports = instantiateReportsNewStyle( reportDefinitions, reporterConfiguration, surefireClassLoader );
-        if ( reporterConfiguration.getForkTimeout() != null )
-        {
-            timeoutTask = new SurefireTimeoutMonitor( reporterConfiguration );
-            timer = new Timer( "Surefire fork timeout timer" );
-        }
-        else
-        {
-            timeoutTask = null;
-            timer = null;
-        }
-
     }
 
     public RunStatistics getGlobalRunStatistics()
@@ -94,7 +78,6 @@ public class ReporterManagerFactory
 
     public Reporter createReporter()
     {
-        startTimer();
         reports = instantiateReportsNewStyle( reportDefinitions, reporterConfiguration, surefireClassLoader );
         return setupReporter( reports );
     }
@@ -124,7 +107,6 @@ public class ReporterManagerFactory
     public RunResult close()
     {
         warnIfNoTests();
-        cancelTimerIfActive();
         synchronized ( lock )
         {
             if ( first != null )
@@ -190,21 +172,4 @@ public class ReporterManagerFactory
             new MulticastingReporter( reports ).writeMessage( "There are no tests to run." );
         }
     }
-
-    private void startTimer()
-    {
-        if ( timer != null )
-        {
-            timer.schedule( timeoutTask, reporterConfiguration.getForkTimeout().intValue() * 1000 );
-        }
-    }
-
-    private void cancelTimerIfActive()
-    {
-        if ( timer != null )
-        {
-            timer.cancel();
-        }
-    }
-
 }

Added: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java?rev=1076367&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java (added)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java Wed Mar  2 20:30:49 2011
@@ -0,0 +1,72 @@
+package org.apache.maven.surefire.booter;
+
+/*
+ * 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.providerapi.SurefireProvider;
+import org.apache.maven.surefire.report.ReporterConfiguration;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * Handles timeout of the forked process. Basically disables reporting
+ * when the timeout has expired, to avoid leaving incorrect files on disk.
+ *
+ * @author Kristian Rosenvold
+ */
+class ForkTimeout
+{
+
+    private final Timer timer;
+
+
+    ForkTimeout( int timeOutInMs, ReporterConfiguration reporterConfiguration, SurefireProvider surefireProvider )
+    {
+        SurefireTimeoutMonitor timeoutTask = new SurefireTimeoutMonitor( reporterConfiguration, surefireProvider );
+        timer = new Timer( "Surefire fork timeout timer" );
+        timer.schedule( timeoutTask, timeOutInMs );
+    }
+
+    public void close()
+    {
+        timer.cancel();
+    }
+
+    private static class SurefireTimeoutMonitor
+        extends TimerTask
+    {
+        private final ReporterConfiguration reporterConfiguration;
+        private final SurefireProvider surefireProvider;
+
+
+        public SurefireTimeoutMonitor( ReporterConfiguration reporterConfiguration, SurefireProvider surefireProvider )
+        {
+            this.reporterConfiguration = reporterConfiguration;
+            this.surefireProvider = surefireProvider;
+        }
+
+        public void run()
+        {
+            reporterConfiguration.setTimedOut( true );
+            surefireProvider.cancel();
+        }
+    }
+
+}

Propchange: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkTimeout.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ProviderConfiguration.java Wed Mar  2 20:30:49 2011
@@ -148,5 +148,13 @@ public class ProviderConfiguration
         return (String) forkTestSet;
     }
 
+    public boolean isSurefireForkReturnCode( int returnCode )
+    {
+        return TESTS_SUCCEEDED_EXIT_CODE == returnCode ||
+               NO_TESTS_EXIT_CODE == returnCode ||
+            TESTS_FAILED_EXIT_CODE == returnCode;
+
+    }
+
 
 }

Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java Wed Mar  2 20:30:49 2011
@@ -34,4 +34,9 @@ public class SurefireBooterForkException
     {
         super( message, cause );
     }
+
+    public SurefireBooterForkException( String msg )
+    {
+        super( msg );
+    }
 }

Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireStarter.java Wed Mar  2 20:30:49 2011
@@ -20,6 +20,7 @@ package org.apache.maven.surefire.booter
  */
 
 import org.apache.maven.surefire.providerapi.SurefireProvider;
+import org.apache.maven.surefire.report.ReporterConfiguration;
 import org.apache.maven.surefire.report.ReporterException;
 import org.apache.maven.surefire.suite.RunResult;
 import org.apache.maven.surefire.testset.TestSetFailedException;

Copied: maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkTimeoutTest.java (from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkTimeoutTest.java?p2=maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkTimeoutTest.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java (original)
+++ maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ForkTimeoutTest.java Wed Mar  2 20:30:49 2011
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.testprovider;
+package org.apache.maven.surefire.booter;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,45 +19,58 @@ package org.apache.maven.surefire.testpr
  * under the License.
  */
 
-import org.apache.maven.surefire.providerapi.ProviderParameters;
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.SurefireProvider;
+import org.apache.maven.surefire.report.ReporterConfiguration;
 import org.apache.maven.surefire.report.ReporterException;
-import org.apache.maven.surefire.report.ReporterFactory;
-import org.apache.maven.surefire.report.ReporterManagerFactory;
 import org.apache.maven.surefire.suite.RunResult;
 import org.apache.maven.surefire.testset.TestSetFailedException;
 
 import java.util.Iterator;
 
+import junit.framework.TestCase;
+
 /**
  * @author Kristian Rosenvold
  */
-public class TestProvider
-    implements SurefireProvider
+public class ForkTimeoutTest
+    extends TestCase
 {
-    private final ReporterFactory reporterManagerFactory;
-    private final ClassLoader testClassLoader;
-
-    public TestProvider( ProviderParameters booterParameters )
+    public void testClose()
+        throws Exception
     {
-        this.reporterManagerFactory = booterParameters.getReporterFactory();
-        this.testClassLoader = booterParameters.getTestClassLoader();
-    }
-
+        final Integer forkTimeout1 = new Integer( 100 );
+        SurefireProvider surefireProvider = new TestProvider();
+        ReporterConfiguration reporterConfiguration = new ReporterConfiguration( null, null, null, forkTimeout1 );
+        new ForkTimeout( 100, reporterConfiguration, surefireProvider );
+        try
+        {
+            Thread.sleep( 1500 );
+        }
+        catch ( InterruptedException ignore )
+        {
 
-    public Boolean isRunnable()
-    {
-        return Boolean.TRUE;
+        }
     }
 
-    public Iterator getSuites()
+    public class TestProvider
+        extends AbstractProvider
     {
-        return null;
-    }
 
-    public RunResult invoke( Object forkTestSet )
-        throws TestSetFailedException, ReporterException
-    {
-        return new RunResult( 1,0,0,2 );
+        public TestProvider()
+        {
+        }
+
+        public Iterator getSuites()
+        {
+            return null;
+        }
+
+        public RunResult invoke( Object forkTestSet )
+            throws TestSetFailedException, ReporterException
+        {
+            return new RunResult( 1, 0, 0, 2 );
+        }
     }
+
 }

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java (from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/Surefire705ParallelForkTimeoutIT.java Wed Mar  2 20:30:49 2011
@@ -23,15 +23,15 @@ import org.apache.maven.it.VerificationE
 /**
  * Test
  *
- * @author <a href="mailto:dfabulich@apache.org">Dan Fabulich</a>
+ * @author Kristian Rosenvold
  */
-public class TimeoutForkedTestIT
+public class Surefire705ParallelForkTimeoutIT
     extends SurefireVerifierTestClass
 {
 
-    public TimeoutForkedTestIT()
+    public Surefire705ParallelForkTimeoutIT()
     {
-        super( "/timeout-forked" );
+        super( "/fork-timeout" );
     }
 
     public void testTimeoutForked()
@@ -39,8 +39,9 @@ public class TimeoutForkedTestIT
     {
         try
         {
-            addGoal( "-DsleepLength=10000" );
-            addGoal( "-DforkTimeout=1" );
+            addGoal( "-Djunit.version=4.8.1" );
+            addGoal( "-Djunit.parallel=classes" );
+            addGoal( "-DtimeOut=1" );
             executeTest();
             verifyErrorFreeLog();
             fail( "Build didn't fail, but it should have" );
@@ -48,7 +49,7 @@ public class TimeoutForkedTestIT
         catch ( VerificationException ignore )
         {
         }
-        assertFalse( getSurefireReportsFile( "TEST-timeoutForked.BasicTest.xml" ).exists() );
-        assertFalse( getSurefireReportsFile( "timeoutForked.BasicTest.txt" ).exists() );
+    //    assertFalse( getSurefireReportsFile( "TEST-timeoutForked.BasicTest.xml" ).exists() );
+    //    assertFalse( getSurefireReportsFile( "timeoutForked.BasicTest.txt" ).exists() );
     }
 }

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java Wed Mar  2 20:30:49 2011
@@ -48,7 +48,8 @@ public class TimeoutForkedTestIT
         catch ( VerificationException ignore )
         {
         }
-        assertFalse( getSurefireReportsFile( "TEST-timeoutForked.BasicTest.xml" ).exists() );
-        assertFalse( getSurefireReportsFile( "timeoutForked.BasicTest.txt" ).exists() );
+        // SUREFIRE-468 test that had to be reverted due to SUREFIRE-705
+       //assertFalse( getSurefireReportsFile( "TEST-timeoutForked.BasicTest.xml" ).exists() );
+        // assertFalse( getSurefireReportsFile( "timeoutForked.BasicTest.txt" ).exists() );
     }
 }

Added: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml?rev=1076367&view=auto
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml (added)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml Wed Mar  2 20:30:49 2011
@@ -0,0 +1,49 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.maven.plugins.surefire</groupId>
+  <artifactId>fork-timeout-test</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>fork-timeout</name>
+  <url>http://maven.apache.org</url>
+  <properties>
+    <junit.version>4.8.1</junit.version>
+    <junit.parallel>classes</junit.parallel>
+    <forkMode>once</forkMode>
+    <timeOut>1</timeOut>
+  </properties>
+  <dependencies>
+      <dependency>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+          <version>${junit.version}</version>
+      </dependency>
+  </dependencies>
+  <build>
+     <plugins>
+        <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
+           <artifactId>maven-compiler-plugin</artifactId>
+           <version>2.3.2</version>
+        </plugin>
+        <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
+           <artifactId>maven-surefire-plugin</artifactId>
+           <version>${surefire.version}</version>
+           <configuration>
+             <forkMode>${forkMode}</forkMode>
+             <parallel>${junit.parallel}</parallel>
+             <threadCount>5</threadCount>
+             <redirectTestOutputToFile>true</redirectTestOutputToFile>
+             <forkedProcessTimeoutInSeconds>${timeOut}</forkedProcessTimeoutInSeconds>
+             <reportFormat>plain</reportFormat>
+             <useFile>true</useFile>
+             <includes>
+                <include>**/Test*.java</include>
+             </includes>
+           </configuration>
+        </plugin>
+     </plugins>
+  </build>
+</project>

Propchange: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java (from r1075071, maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java&p1=maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/TimeoutForkedTestIT.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/BaseForkTimeout.java Wed Mar  2 20:30:49 2011
@@ -1,4 +1,5 @@
-package org.apache.maven.surefire.its;
+package forktimeout;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,37 +19,35 @@ package org.apache.maven.surefire.its;
  * under the License.
  */
 
-import org.apache.maven.it.VerificationException;
-
-/**
- * Test
- *
- * @author <a href="mailto:dfabulich@apache.org">Dan Fabulich</a>
- */
-public class TimeoutForkedTestIT
-    extends SurefireVerifierTestClass
+public abstract class BaseForkTimeout
 {
-
-    public TimeoutForkedTestIT()
+    protected void dumpStuff( String prefix )
     {
-        super( "/timeout-forked" );
+        reallySleep( 990 );
+        for ( int i = 0; i < 200; i++ )
+        {
+            System.out.println( prefix + " with lots of output " + i );
+            System.err.println( prefix + "e with lots of output " + i );
+        }
+        System.out.println( prefix + "last line" );
+        System.err.println( prefix + "e last line" );
     }
 
-    public void testTimeoutForked()
-        throws Exception
+    private void reallySleep( long timeout )
     {
+        long endAt = System.currentTimeMillis() + timeout;
         try
         {
-            addGoal( "-DsleepLength=10000" );
-            addGoal( "-DforkTimeout=1" );
-            executeTest();
-            verifyErrorFreeLog();
-            fail( "Build didn't fail, but it should have" );
+            Thread.sleep( timeout );
+            while ( System.currentTimeMillis() < endAt )
+            {
+                Thread.yield();
+                Thread.sleep( 5 );
+            }
         }
-        catch ( VerificationException ignore )
+        catch ( InterruptedException e )
         {
+            throw new RuntimeException( e );
         }
-        assertFalse( getSurefireReportsFile( "TEST-timeoutForked.BasicTest.xml" ).exists() );
-        assertFalse( getSurefireReportsFile( "timeoutForked.BasicTest.txt" ).exists() );
     }
 }

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test1.java Wed Mar  2 20:30:49 2011
@@ -1,4 +1,4 @@
-package org.apache.maven.surefire.booter;
+package forktimeout;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -19,19 +19,15 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
 
-/**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
- */
-public class SurefireBooterForkException
-    extends NestedCheckedException
-{
+import org.junit.Test;
 
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
+public class Test1 extends BaseForkTimeout
+{
+    @Test
+    public void test690() {
+        dumpStuff(  "test690" );
+        System.out.println(" with lots of output ");
+        System.err.println( "e with lots of output ");
     }
-}
+}
\ No newline at end of file

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test2.java Wed Mar  2 20:30:49 2011
@@ -1,5 +1,4 @@
-package org.apache.maven.surefire.booter;
-
+package forktimeout;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,19 +18,13 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
 
-/**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
- */
-public class SurefireBooterForkException
-    extends NestedCheckedException
-{
+import org.junit.Test;
 
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
+public class Test2 extends BaseForkTimeout
+{
+    @Test
+    public void test690_2() {
+        dumpStuff( "test690_2" );
     }
-}
+}
\ No newline at end of file

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test3.java Wed Mar  2 20:30:49 2011
@@ -1,5 +1,4 @@
-package org.apache.maven.surefire.booter;
-
+package forktimeout;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,19 +18,15 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
 
-/**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
- */
-public class SurefireBooterForkException
-    extends NestedCheckedException
+import org.junit.Test;
+
+public class Test3 extends BaseForkTimeout
 {
 
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
+    @Test
+    public void test690_3() {
+        dumpStuff( "test690_3" );
     }
-}
+
+}
\ No newline at end of file

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test4.java Wed Mar  2 20:30:49 2011
@@ -1,5 +1,4 @@
-package org.apache.maven.surefire.booter;
-
+package forktimeout;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,19 +18,15 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
 
-/**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
- */
-public class SurefireBooterForkException
-    extends NestedCheckedException
-{
+import org.junit.Test;
 
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
+public class Test4
+    extends BaseForkTimeout
+{
+    @Test
+    public void test690_4() {
+        dumpStuff( "test690_4" );
     }
-}
+
+}
\ No newline at end of file

Copied: maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java (from r1075071, maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java)
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java?p2=maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java&p1=maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java&r1=1075071&r2=1076367&rev=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SurefireBooterForkException.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/fork-timeout/src/test/java/forktimeout/Test5.java Wed Mar  2 20:30:49 2011
@@ -1,5 +1,4 @@
-package org.apache.maven.surefire.booter;
-
+package forktimeout;
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -19,19 +18,15 @@ package org.apache.maven.surefire.booter
  * under the License.
  */
 
-import org.apache.maven.surefire.util.NestedCheckedException;
 
-/**
- * Encapsulates exceptions thrown during Surefire forking.
- *
- * @version $Id$
- */
-public class SurefireBooterForkException
-    extends NestedCheckedException
-{
+import org.junit.Test;
 
-    public SurefireBooterForkException( String message, Throwable cause )
-    {
-        super( message, cause );
+public class Test5
+    extends BaseForkTimeout
+{
+    @Test
+    public void test690_5() {
+        dumpStuff( "test690_5" );
     }
-}
+
+}
\ No newline at end of file

Modified: maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java (original)
+++ maven/surefire/trunk/surefire-integration-tests/src/test/resources/surefire-141-pluggableproviders/test-provider/src/main/java/org/apache/maven/surefire/testprovider/TestProvider.java Wed Mar  2 20:30:49 2011
@@ -19,11 +19,10 @@ package org.apache.maven.surefire.testpr
  * under the License.
  */
 
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
-import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.report.ReporterException;
 import org.apache.maven.surefire.report.ReporterFactory;
-import org.apache.maven.surefire.report.ReporterManagerFactory;
 import org.apache.maven.surefire.suite.RunResult;
 import org.apache.maven.surefire.testset.TestSetFailedException;
 
@@ -32,8 +31,7 @@ import java.util.Iterator;
 /**
  * @author Kristian Rosenvold
  */
-public class TestProvider
-    implements SurefireProvider
+public class TestProvider  extends AbstractProvider
 {
     private final ReporterFactory reporterManagerFactory;
     private final ClassLoader testClassLoader;

Modified: maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit3/src/main/java/org/apache/maven/surefire/junit/JUnit3Provider.java Wed Mar  2 20:30:49 2011
@@ -21,8 +21,8 @@ package org.apache.maven.surefire.junit;
 
 import org.apache.maven.surefire.common.junit3.JUnit3Reflector;
 import org.apache.maven.surefire.common.junit3.JUnit3TestChecker;
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
-import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.Reporter;
 import org.apache.maven.surefire.report.ReporterException;
@@ -39,8 +39,7 @@ import java.util.Iterator;
  * @author Kristian Rosenvold
  * @noinspection UnusedDeclaration
  */
-public class JUnit3Provider
-    implements SurefireProvider
+public class JUnit3Provider extends AbstractProvider
 {
     private final ReporterFactory reporterFactory;
 

Modified: maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit4/src/main/java/org/apache/maven/surefire/junit4/JUnit4Provider.java Wed Mar  2 20:30:49 2011
@@ -23,8 +23,8 @@ import org.apache.maven.surefire.Surefir
 import org.apache.maven.surefire.common.junit4.JUnit4RunListener;
 import org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory;
 import org.apache.maven.surefire.common.junit4.JUnit4TestChecker;
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
-import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.report.PojoStackTraceWriter;
 import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.Reporter;
@@ -36,20 +36,20 @@ import org.apache.maven.surefire.testset
 import org.apache.maven.surefire.util.DefaultDirectoryScanner;
 import org.apache.maven.surefire.util.DirectoryScanner;
 import org.apache.maven.surefire.util.TestsToRun;
-import org.junit.runner.notification.RunListener;
-import org.junit.runner.notification.RunNotifier;
 
 import java.util.Iterator;
 import java.util.List;
 import java.util.ResourceBundle;
 
+import org.junit.runner.notification.RunListener;
+import org.junit.runner.notification.RunNotifier;
+
 
 /**
  * @author Kristian Rosenvold
  */
 @SuppressWarnings( { "UnusedDeclaration" } )
-public class JUnit4Provider
-    implements SurefireProvider
+public class JUnit4Provider extends AbstractProvider
 {
 
     private static ResourceBundle bundle = ResourceBundle.getBundle( Surefire.SUREFIRE_BUNDLE_NAME );

Modified: maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-junit47/src/main/java/org/apache/maven/surefire/junitcore/JUnitCoreProvider.java Wed Mar  2 20:30:49 2011
@@ -21,6 +21,7 @@ package org.apache.maven.surefire.junitc
 
 import org.apache.maven.surefire.common.junit4.JUnit4RunListenerFactory;
 import org.apache.maven.surefire.common.junit4.JUnit4TestChecker;
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
 import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.report.Reporter;
@@ -32,19 +33,19 @@ import org.apache.maven.surefire.testset
 import org.apache.maven.surefire.util.DirectoryScanner;
 import org.apache.maven.surefire.util.ScannerFilter;
 import org.apache.maven.surefire.util.TestsToRun;
-import org.junit.runner.notification.RunListener;
 
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.junit.runner.notification.RunListener;
+
 /**
  * @author Kristian Rosenvold
  */
 @SuppressWarnings( { "UnusedDeclaration" } )
-public class JUnitCoreProvider
-    implements SurefireProvider
+public class JUnitCoreProvider extends AbstractProvider
 {
     private final ReporterFactory reporterFactory;
 

Modified: maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java?rev=1076367&r1=1076366&r2=1076367&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java (original)
+++ maven/surefire/trunk/surefire-providers/surefire-testng/src/main/java/org/apache/maven/surefire/testng/TestNGProvider.java Wed Mar  2 20:30:49 2011
@@ -19,8 +19,8 @@ package org.apache.maven.surefire.testng
  * under the License.
  */
 
+import org.apache.maven.surefire.providerapi.AbstractProvider;
 import org.apache.maven.surefire.providerapi.ProviderParameters;
-import org.apache.maven.surefire.providerapi.SurefireProvider;
 import org.apache.maven.surefire.report.ReporterConfiguration;
 import org.apache.maven.surefire.report.ReporterException;
 import org.apache.maven.surefire.report.ReporterFactory;
@@ -43,8 +43,7 @@ import java.util.Properties;
  * @author Kristian Rosenvold
  * @noinspection UnusedDeclaration
  */
-public class TestNGProvider
-    implements SurefireProvider
+public class TestNGProvider extends AbstractProvider
 {
     private final Properties providerProperties;