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