1 package org.apache.maven.surefire.junitcore;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Map;
23
24 import org.apache.maven.surefire.report.ConsoleStream;
25 import org.apache.maven.surefire.report.ReporterFactory;
26 import org.apache.maven.surefire.testset.TestSetFailedException;
27 import org.junit.runner.notification.RunListener.ThreadSafe;
28
29
30
31
32 @ThreadSafe
33 public class MethodsParallelRunListener
34 extends ConcurrentRunListener
35 {
36 private volatile TestSet lastStarted;
37
38 private final Object lock = new Object();
39
40 public MethodsParallelRunListener( Map<String, TestSet> classMethodCounts, ReporterFactory reporterFactory,
41 boolean reportImmediately, ConsoleStream consoleStream )
42 throws TestSetFailedException
43 {
44 super( reporterFactory, consoleStream, reportImmediately, classMethodCounts );
45 }
46
47 @Override
48 protected void checkIfTestSetCanBeReported( TestSet testSetForTest )
49 {
50 synchronized ( lock )
51 {
52 if ( testSetForTest != lastStarted )
53 {
54 if ( lastStarted != null )
55 {
56 lastStarted.setAllScheduled( getRunListener() );
57 }
58 lastStarted = testSetForTest;
59 }
60 }
61 }
62 }