1 package org.apache.maven.surefire.booter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public class StartupConfiguration
28 {
29 private final String providerClassName;
30
31 private final ClasspathConfiguration classpathConfiguration;
32
33 private final ClassLoaderConfiguration classLoaderConfiguration;
34
35 private final boolean isForkRequested;
36
37 private final boolean isInForkedVm;
38
39 private final static String SUREFIRE_TEST_CLASSPATH = "surefire.test.class.path";
40
41
42 public StartupConfiguration( String providerClassName, ClasspathConfiguration classpathConfiguration,
43 ClassLoaderConfiguration classLoaderConfiguration, boolean isForkRequested,
44 boolean inForkedVm )
45 {
46 this.providerClassName = providerClassName;
47 this.classpathConfiguration = classpathConfiguration;
48 this.classLoaderConfiguration = classLoaderConfiguration;
49 this.isForkRequested = isForkRequested;
50 isInForkedVm = inForkedVm;
51 }
52
53 public static StartupConfiguration inForkedVm( String providerClassName,
54 ClasspathConfiguration classpathConfiguration,
55 ClassLoaderConfiguration classLoaderConfiguration )
56 {
57 return new StartupConfiguration( providerClassName, classpathConfiguration, classLoaderConfiguration, true,
58 true );
59 }
60
61 public ClasspathConfiguration getClasspathConfiguration()
62 {
63 return classpathConfiguration;
64 }
65
66 public boolean useSystemClassLoader()
67 {
68
69 return classLoaderConfiguration.isUseSystemClassLoader() && ( isInForkedVm || isForkRequested );
70 }
71
72 public boolean isManifestOnlyJarRequestedAndUsable()
73 {
74 return classLoaderConfiguration.isManifestOnlyJarRequestedAndUsable();
75 }
76
77 public String getProviderClassName()
78 {
79 return providerClassName;
80 }
81
82 public ClassLoaderConfiguration getClassLoaderConfiguration()
83 {
84 return classLoaderConfiguration;
85 }
86
87 public boolean isShadefire()
88 {
89 return providerClassName.startsWith( "org.apache.maven.surefire.shadefire" );
90 }
91
92 public void writeSurefireTestClasspathProperty()
93 {
94 ClasspathConfiguration classpathConfiguration = getClasspathConfiguration();
95 classpathConfiguration.getTestClasspath().writeToSystemProperty( SUREFIRE_TEST_CLASSPATH );
96 }
97
98 }