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 protected abstract boolean isDebug();
49 protected abstract int getForkCount();
50 protected abstract boolean isReuseForks();
51 @Nonnull protected abstract Platform getPluginPlatform();
52 @Nonnull protected abstract JdkAttributes getJdkForTests();
53 @Nonnull protected abstract Classpath getBooterClasspath();
54
55
56
57
58
59
60
61
62
63 @Nonnull
64 public abstract OutputStreamFlushableCommandline createCommandLine( @Nonnull StartupConfiguration config,
65 int forkNumber,
66 @Nonnull File dumpLogDirectory )
67 throws SurefireBooterForkException;
68 }