1 package org.apache.maven.plugin.surefire.booterclient;
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.JdkAttributes;
23 import org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
24 import org.apache.maven.surefire.booter.Classpath;
25 import org.apache.maven.surefire.booter.ForkedBooter;
26 import org.apache.maven.surefire.booter.StartupConfiguration;
27 import org.apache.maven.surefire.booter.SurefireBooterForkException;
28
29 import javax.annotation.Nonnull;
30 import javax.annotation.Nullable;
31 import java.io.File;
32 import java.util.Map;
33 import java.util.Properties;
34
35
36
37
38 public abstract class ForkConfiguration
39 {
40 static final String DEFAULT_PROVIDER_CLASS = ForkedBooter.class.getName();
41
42 @Nonnull public abstract File getTempDirectory();
43 @Nullable protected abstract String getDebugLine();
44 @Nonnull protected abstract File getWorkingDirectory();
45 @Nonnull protected abstract Properties getModelProperties();
46 @Nullable protected abstract String getArgLine();
47 @Nonnull protected abstract Map<String, String> getEnvironmentVariables();
48 @Nonnull protected abstract String[] getExcludedEnvironmentVariables();
49 protected abstract boolean isDebug();
50 protected abstract int getForkCount();
51 protected abstract boolean isReuseForks();
52 @Nonnull protected abstract Platform getPluginPlatform();
53 @Nonnull protected abstract JdkAttributes getJdkForTests();
54 @Nonnull protected abstract Classpath getBooterClasspath();
55
56
57
58
59
60
61
62
63
64 @Nonnull
65 public abstract OutputStreamFlushableCommandline createCommandLine( @Nonnull StartupConfiguration config,
66 int forkNumber,
67 @Nonnull File dumpLogDirectory )
68 throws SurefireBooterForkException;
69 }