1 package org.apache.maven.plugin.surefire.extensions;
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.plugin.surefire.report.ConsoleOutputFileReporter;
23 import org.apache.maven.plugin.surefire.report.DirectConsoleOutput;
24 import org.apache.maven.surefire.extensions.ConsoleOutputReportEventListener;
25 import org.apache.maven.surefire.extensions.ConsoleOutputReporter;
26 import org.apache.maven.surefire.api.util.ReflectionUtils;
27
28 import java.io.File;
29 import java.io.PrintStream;
30
31
32
33
34
35
36
37
38
39
40
41 public class SurefireConsoleOutputReporter
42 extends ConsoleOutputReporter
43 {
44 @Override
45 public ConsoleOutputReportEventListener createListener( File reportsDirectory, String reportNameSuffix,
46 Integer forkNumber )
47 {
48 return new ConsoleOutputFileReporter( reportsDirectory, reportNameSuffix, false, forkNumber, getEncoding() );
49 }
50
51 @Override
52 public ConsoleOutputReportEventListener createListener( PrintStream out, PrintStream err )
53 {
54 return new DirectConsoleOutput( out, err );
55 }
56
57 @Override
58 public Object clone( ClassLoader target )
59 {
60 try
61 {
62 Class<?> cls = ReflectionUtils.reloadClass( target, this );
63 Object clone = cls.newInstance();
64
65 cls.getMethod( "setDisable", boolean.class )
66 .invoke( clone, isDisable() );
67 cls.getMethod( "setEncoding", String.class )
68 .invoke( clone, getEncoding() );
69
70 return clone;
71 }
72 catch ( ReflectiveOperationException e )
73 {
74 throw new IllegalStateException( e.getLocalizedMessage() );
75 }
76 }
77
78 @Override
79 public String toString()
80 {
81 return "SurefireConsoleOutputReporter{"
82 + "disable=" + isDisable()
83 + ", encoding=" + getEncoding()
84 + '}';
85 }
86 }