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.StatelessXmlReporter;
23 import org.apache.maven.plugin.surefire.report.TestSetStats;
24 import org.apache.maven.plugin.surefire.report.WrappedReportEntry;
25 import org.apache.maven.surefire.extensions.StatelessReportEventListener;
26 import org.apache.maven.surefire.extensions.StatelessReporter;
27 import org.apache.maven.surefire.api.util.ReflectionUtils;
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
45 public SurefireStatelessReporter()
46 {
47 this( false, "3.0" );
48 }
49
50
51
52
53
54
55 public SurefireStatelessReporter( boolean disable, String version )
56 {
57 setDisable( disable );
58 setVersion( version );
59 }
60
61 @Override
62 public StatelessReportEventListener<WrappedReportEntry, TestSetStats> createListener(
63 DefaultStatelessReportMojoConfiguration configuration )
64 {
65 return new StatelessXmlReporter( configuration.getReportsDirectory(),
66 configuration.getReportNameSuffix(),
67 configuration.isTrimStackTrace(),
68 configuration.getRerunFailingTestsCount(),
69 configuration.getTestClassMethodRunHistory(),
70 configuration.getXsdSchemaLocation(),
71 getVersion(),
72 false,
73 false,
74 false,
75 false );
76 }
77
78 @Override
79 public Object clone( ClassLoader target )
80 {
81 try
82 {
83 Class<?> cls = ReflectionUtils.reloadClass( target, this );
84 Object clone = cls.newInstance();
85
86 cls.getMethod( "setDisable", boolean.class )
87 .invoke( clone, isDisable() );
88 cls.getMethod( "setVersion", String.class )
89 .invoke( clone, getVersion() );
90
91 return clone;
92 }
93 catch ( ReflectiveOperationException e )
94 {
95 throw new IllegalStateException( e.getLocalizedMessage() );
96 }
97 }
98 }