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
28
29
30 public class ClasspathConfiguration
31 {
32 public static final String CHILD_DELEGATION = "childDelegation";
33
34 public static final String ENABLE_ASSERTIONS = "enableAssertions";
35
36 public static final String CLASSPATH = "classPathUrl.";
37
38 public static final String SUREFIRE_CLASSPATH = "surefireClassPathUrl.";
39
40 private final Classpath classpathUrls;
41
42 private final Classpath surefireClasspathUrls;
43
44
45
46
47 private final Classpath inprocClasspath;
48
49
50
51
52
53 private final boolean enableAssertions;
54
55
56 private final boolean childDelegation;
57
58 public ClasspathConfiguration( boolean enableAssertions, boolean childDelegation )
59 {
60 this( Classpath.emptyClasspath(), Classpath.emptyClasspath(), Classpath.emptyClasspath(), enableAssertions,
61 childDelegation );
62 }
63
64 ClasspathConfiguration( PropertiesWrapper properties )
65 {
66 this( properties.getClasspath( CLASSPATH ), properties.getClasspath( SUREFIRE_CLASSPATH ),
67 Classpath.emptyClasspath(),
68 properties.getBooleanProperty( ENABLE_ASSERTIONS ), properties.getBooleanProperty( CHILD_DELEGATION ) );
69 }
70
71 public ClasspathConfiguration( Classpath testClasspath, Classpath surefireClassPathUrls, Classpath inprocClasspath,
72 boolean enableAssertions, boolean childDelegation )
73 {
74 this.enableAssertions = enableAssertions;
75 this.childDelegation = childDelegation;
76 this.inprocClasspath = inprocClasspath;
77 this.classpathUrls = testClasspath;
78 this.surefireClasspathUrls = surefireClassPathUrls;
79 }
80
81 public ClassLoader createMergedClassLoader()
82 throws SurefireExecutionException
83 {
84 return Classpath.join( inprocClasspath, classpathUrls )
85 .createClassLoader( null, this.childDelegation, enableAssertions, "test" );
86 }
87
88 public Classpath getProviderClasspath()
89 {
90 return surefireClasspathUrls;
91 }
92
93
94 public Classpath getTestClasspath()
95 {
96 return classpathUrls;
97 }
98
99 public void trickClassPathWhenManifestOnlyClasspath()
100 throws SurefireExecutionException
101 {
102 System.setProperty( "surefire.real.class.path", System.getProperty( "java.class.path" ) );
103 getTestClasspath().writeToSystemProperty( "java.class.path" );
104 }
105
106 public boolean isEnableAssertions()
107 {
108 return enableAssertions;
109 }
110
111 public boolean isChildDelegation()
112 {
113 return childDelegation;
114 }
115 }