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