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
40 public StartupConfiguration( String providerClassName, ClasspathConfiguration classpathConfiguration,
41 ClassLoaderConfiguration classLoaderConfiguration, String forkMode, boolean inForkedVm )
42 {
43 this.providerClassName = providerClassName;
44 this.classpathConfiguration = classpathConfiguration;
45 this.classLoaderConfiguration = classLoaderConfiguration;
46 isForkRequested = !"never".equals( forkMode );
47 isInForkedVm = inForkedVm;
48 }
49
50 public static StartupConfiguration inForkedVm( String providerClassName,
51 ClasspathConfiguration classpathConfiguration,
52 ClassLoaderConfiguration classLoaderConfiguration, String forkMode )
53 {
54 return new StartupConfiguration( providerClassName, classpathConfiguration, classLoaderConfiguration, forkMode,
55 true );
56 }
57
58 public ClasspathConfiguration getClasspathConfiguration()
59 {
60 return classpathConfiguration;
61 }
62
63 public boolean useSystemClassLoader()
64 {
65
66 return classLoaderConfiguration.isUseSystemClassLoader() && ( isInForkedVm || isForkRequested );
67 }
68
69 public boolean isManifestOnlyJarRequestedAndUsable()
70 {
71 return classLoaderConfiguration.isManifestOnlyJarRequestedAndUsable();
72 }
73
74 public String getProviderClassName()
75 {
76 return providerClassName;
77 }
78
79 public ClassLoaderConfiguration getClassLoaderConfiguration()
80 {
81 return classLoaderConfiguration;
82 }
83
84 public boolean isShadefire()
85 {
86 return providerClassName.startsWith( "org.apache.maven.surefire.shadefire" );
87 }
88 }