1 package org.apache.maven.surefire.booter;
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.report.ForkingConsoleReporter;
23 import org.codehaus.plexus.util.cli.StreamConsumer;
24
25 import java.io.PrintWriter;
26 import java.io.Writer;
27
28
29
30
31
32
33 public class ForkingWriterStreamConsumer
34 implements StreamConsumer
35 {
36 private PrintWriter printWriter;
37
38 private int standardPrefixLength;
39
40 private int headingPrefixLength;
41
42 private boolean showHeading;
43
44 private int footerPrefixLength;
45
46 private boolean showFooter;
47
48 public ForkingWriterStreamConsumer( Writer writer, boolean showHeading, boolean showFooter )
49 {
50 this.showHeading = showHeading;
51
52 this.showFooter = showFooter;
53
54 printWriter = new PrintWriter( writer );
55
56 standardPrefixLength = ForkingConsoleReporter.FORKING_PREFIX_STANDARD.length();
57
58 headingPrefixLength = ForkingConsoleReporter.FORKING_PREFIX_HEADING.length();
59
60 footerPrefixLength = ForkingConsoleReporter.FORKING_PREFIX_FOOTER.length();
61 }
62
63 public void consumeLine( String line )
64 {
65 if ( line.startsWith( ForkingConsoleReporter.FORKING_PREFIX_HEADING ) )
66 {
67 if ( showHeading )
68 {
69 printWriter.println( line.substring( headingPrefixLength ) );
70 }
71 }
72 else if ( line.startsWith( ForkingConsoleReporter.FORKING_PREFIX_STANDARD ) )
73 {
74 printWriter.println( line.substring( standardPrefixLength ) );
75 }
76 else if ( line.startsWith( ForkingConsoleReporter.FORKING_PREFIX_FOOTER ) )
77 {
78 if ( showFooter )
79 {
80 printWriter.println( line.substring( footerPrefixLength ) );
81 }
82 }
83 else
84 {
85
86 printWriter.println( line );
87 }
88 printWriter.flush();
89 }
90 }