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 org.apache.maven.surefire.api.report.ConsoleOutputReceiver;
23
24 import java.util.Queue;
25 import java.util.concurrent.ConcurrentLinkedQueue;
26
27
28
29
30 final class LogicalStream
31 {
32 private final Queue<Entry> output = new ConcurrentLinkedQueue<>();
33
34 private static final class Entry
35 {
36 private final boolean stdout;
37 private final String text;
38 private final boolean newLine;
39
40 Entry( boolean stdout, String text, boolean newLine )
41 {
42 this.stdout = stdout;
43 this.text = text;
44 this.newLine = newLine;
45 }
46 }
47
48 synchronized void write( boolean stdout, String text, boolean newLine )
49 {
50 output.add( new Entry( stdout, text, newLine ) );
51 }
52
53 void writeDetails( ConsoleOutputReceiver outputReceiver )
54 {
55 for ( Entry entry = output.poll(); entry != null; entry = output.poll() )
56 {
57 outputReceiver.writeTestOutput( entry.text, entry.newLine, entry.stdout );
58 }
59 }
60 }