1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.surefire.extensions;
20
21 import org.apache.maven.plugin.surefire.report.StatelessXmlReporter;
22 import org.apache.maven.plugin.surefire.report.TestSetStats;
23 import org.apache.maven.plugin.surefire.report.WrappedReportEntry;
24 import org.apache.maven.surefire.api.util.ReflectionUtils;
25 import org.apache.maven.surefire.extensions.StatelessReportEventListener;
26 import org.apache.maven.surefire.extensions.StatelessReporter;
27
28
29
30
31
32
33
34
35
36
37
38
39 public class SurefireStatelessReporter
40 extends StatelessReporter<WrappedReportEntry, TestSetStats, DefaultStatelessReportMojoConfiguration> {
41
42
43
44 public SurefireStatelessReporter() {
45 this(false, "3.0.2");
46 }
47
48
49
50
51
52
53
54 public SurefireStatelessReporter(boolean disable, String version) {
55 setDisable(disable);
56 setVersion(version);
57 }
58
59 @Override
60 public StatelessReportEventListener<WrappedReportEntry, TestSetStats> createListener(
61 DefaultStatelessReportMojoConfiguration configuration) {
62 return new StatelessXmlReporter(
63 configuration.getReportsDirectory(),
64 configuration.getReportNameSuffix(),
65 configuration.isTrimStackTrace(),
66 configuration.getRerunFailingTestsCount(),
67 configuration.getTestClassMethodRunHistory(),
68 configuration.getXsdSchemaLocation(),
69 getVersion(),
70 false,
71 false,
72 false,
73 false,
74 configuration.isEnableOutErrElements(),
75 configuration.isEnablePropertiesElement(),
76 configuration.isReportTestTimestamp());
77 }
78
79 @Override
80 public Object clone(ClassLoader target) {
81 try {
82 Class<?> cls = ReflectionUtils.reloadClass(target, this);
83 Object clone = cls.newInstance();
84
85 cls.getMethod("setDisable", boolean.class).invoke(clone, isDisable());
86 cls.getMethod("setVersion", String.class).invoke(clone, getVersion());
87
88 return clone;
89 } catch (ReflectiveOperationException e) {
90 throw new IllegalStateException(e.getLocalizedMessage());
91 }
92 }
93 }