private void setupBooter( String tmpDir, String dumpFileName, String surefirePropsFileName,
String effectiveSystemPropertiesFileName )
throws IOException
{
BooterDeserializer booterDeserializer =
new BooterDeserializer( createSurefirePropertiesIfFileExists( tmpDir, surefirePropsFileName ) );
pingScheduler = isDebugging() ? null : listenToShutdownCommands( booterDeserializer.getPluginPid() );
setSystemProperties( new File( tmpDir, effectiveSystemPropertiesFileName ) );
providerConfiguration = booterDeserializer.deserialize();
DumpErrorSingleton.getSingleton()
.init( providerConfiguration.getReporterConfiguration().getReportsDirectory(), dumpFileName );
startupConfiguration = booterDeserializer.getProviderConfiguration();
systemExitTimeoutInSeconds = providerConfiguration.systemExitTimeout( DEFAULT_SYSTEM_EXIT_TIMEOUT_IN_SECONDS );
AbstractPathConfiguration classpathConfiguration = startupConfiguration.getClasspathConfiguration();
if ( classpathConfiguration.isClassPathConfig() )
{
if ( startupConfiguration.isManifestOnlyJarRequestedAndUsable() )
{
classpathConfiguration.toRealPath( ClasspathConfiguration.class )
.trickClassPathWhenManifestOnlyClasspath();
}
startupConfiguration.writeSurefireTestClasspathProperty();
}
ClassLoader classLoader = currentThread().getContextClassLoader();
classLoader.setDefaultAssertionStatus( classpathConfiguration.isEnableAssertions() );
boolean readTestsFromCommandReader = providerConfiguration.isReadTestsFromInStream();
testSet = createTestSet( providerConfiguration.getTestForFork(), readTestsFromCommandReader, classLoader );
}