Author: krosenvold Date: Thu Aug 9 18:31:02 2012 New Revision: 1371363 URL: http://svn.apache.org/viewvc?rev=1371363&view=rev Log: o Made forkConfiguration immutable, refactored away more mutable state
Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java Thu Aug 9 18:31:02 2012 @@ -729,6 +729,12 @@ public abstract class AbstractSurefireMo else { ForkConfiguration forkConfiguration = getForkConfiguration(); + if ( getLog().isDebugEnabled() ) + { + showMap( getEnvironmentVariables(), "environment variable" ); + } + + Properties originalSystemProperties = (Properties) System.getProperties().clone(); try { @@ -1017,7 +1023,7 @@ public abstract class AbstractSurefireMo logClasspath( testClasspath, "test classpath" ); logClasspath( providerClasspath, "provider classpath" ); final ClasspathConfiguration classpathConfiguration = - new ClasspathConfiguration( testClasspath, providerClasspath, inprocClassPath, isEnableAssertions(), + new ClasspathConfiguration( testClasspath, providerClasspath, inprocClassPath, effectiveIsEnableAssertions(), isChildDelegation() ); return new StartupConfiguration( providerName, classpathConfiguration, classLoaderConfiguration, @@ -1238,45 +1244,19 @@ public abstract class AbstractSurefireMo final Classpath bootClasspathConfiguration = getArtifactClasspath( shadeFire != null ? shadeFire : surefireBooterArtifact ); - ForkConfiguration fork = new ForkConfiguration( bootClasspathConfiguration, tmpDir ); - - setUseSystemClassLoader( isUseSystemClassLoader() ); - - fork.setDebugLine( getEffectiveDebugForkedProcess() ); - - fork.setJvmExecutable( getEffectiveJvm() ); - - fork.setWorkingDirectory( getWorkingDirectory() != null ? getWorkingDirectory() : getBasedir() ); - - fork.setArgLine( getArgLine() ); - - fork.setEnvironmentVariables( getEnvironmentVariables() ); + ForkConfiguration fork = + new ForkConfiguration( bootClasspathConfiguration, tmpDir, getEffectiveDebugForkedProcess(), + getEffectiveJvm(), + getWorkingDirectory() != null ? getWorkingDirectory() : getBasedir(), getArgLine(), + getEnvironmentVariables(), getLog().isDebugEnabled(), getEffectiveForkCount() ); - if ( getLog().isDebugEnabled() ) - { - showMap( getEnvironmentVariables(), "environment variable" ); - - fork.setDebug( true ); - } + return fork; + } - if ( getArgLine() != null ) - { - List<String> args = Arrays.asList( getArgLine().split( " " ) ); - if ( args.contains( "-da" ) || args.contains( "-disableassertions" ) ) - { - setEnableAssertions( false ); - } - } - if ( ForkConfiguration.FORK_PERTHREAD.equals( getEffectiveForkMode() ) ) - { - fork.setThreadCount( getThreadCount() ); - } - else - { - fork.setThreadCount( 1 ); - } - return fork; + private int getEffectiveForkCount() + { + return ( ForkConfiguration.FORK_PERTHREAD.equals( getEffectiveForkMode() ) ) ? getThreadCount() : 1; } private String getEffectiveDebugForkedProcess() @@ -1333,7 +1313,7 @@ public abstract class AbstractSurefireMo /** * Operates on raw plugin paramenters, not the "effective" values. * - * @return The checksum + * @return The checksum */ private String getConfigChecksum() { @@ -2214,6 +2194,18 @@ public abstract class AbstractSurefireMo return enableAssertions; } + public boolean effectiveIsEnableAssertions(){ + if ( getArgLine() != null ) + { + List<String> args = Arrays.asList( getArgLine().split( " " ) ); + if ( args.contains( "-da" ) || args.contains( "-disableassertions" ) ) + { + return false; + } + } + return isEnableAssertions(); + } + @SuppressWarnings( "UnusedDeclaration" ) public void setEnableAssertions( boolean enableAssertions ) { Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java Thu Aug 9 18:31:02 2012 @@ -54,28 +54,37 @@ public class ForkConfiguration public static final String FORK_PERTHREAD = "perthread"; - private int threadCount; + private final int forkCount; private final Classpath bootClasspathConfiguration; - private String jvmExecutable; + private final String jvmExecutable; - private String argLine; + private final String argLine; - private Map<String, String> environmentVariables; + private final Map<String, String> environmentVariables; - private File workingDirectory; + private final File workingDirectory; private final File tempDirectory; - private boolean debug; + private final boolean debug; - private String debugLine; + private final String debugLine; - public ForkConfiguration(Classpath bootClasspathConfiguration, File tmpDir) + public ForkConfiguration( Classpath bootClasspathConfiguration, File tmpDir, String debugLine, String jvmExecutable, + File workingDirectory, String argLine, Map<String, String> environmentVariables, + boolean debugEnabled, int forkCount ) { this.bootClasspathConfiguration = bootClasspathConfiguration; this.tempDirectory = tmpDir; + this.debugLine = debugLine; + this.jvmExecutable = jvmExecutable; + this.workingDirectory = workingDirectory; + this.argLine = argLine; + this.environmentVariables = environmentVariables; + this.debug = debugEnabled; + this.forkCount = forkCount; } public Classpath getBootClasspath() @@ -104,31 +113,6 @@ public class ForkConfiguration } } - public void setJvmExecutable( String jvmExecutable ) - { - this.jvmExecutable = jvmExecutable; - } - - public void setArgLine( String argLine ) - { - this.argLine = argLine; - } - - public void setDebugLine( String debugLine ) - { - this.debugLine = debugLine; - } - - public void setEnvironmentVariables( Map<String, String> environmentVariables ) - { - this.environmentVariables = new HashMap<String, String>( environmentVariables ); - } - - public void setWorkingDirectory( File workingDirectory ) - { - this.workingDirectory = workingDirectory; - } - /** * @param classPath cla the classpath arguments @@ -246,11 +230,6 @@ public class ForkConfiguration return file; } - public void setDebug( boolean debug ) - { - this.debug = debug; - } - public boolean isDebug() { return debug; @@ -266,19 +245,13 @@ public class ForkConfiguration return debugLine; } - public File getTempDirectory() { return tempDirectory; } - public int getThreadCount() - { - return threadCount; - } - - public void setThreadCount( int threadCount ) + public int getForkCount() { - this.threadCount = threadCount; + return forkCount; } } Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkStarter.java Thu Aug 9 18:31:02 2012 @@ -123,7 +123,7 @@ public class ForkStarter } else if ( ForkConfiguration.FORK_PERTHREAD.equals( requestedForkMode ) ) { - result = runSuitesForkPerTestSet( providerProperties, forkConfiguration.getThreadCount() ); + result = runSuitesForkPerTestSet( providerProperties, forkConfiguration.getForkCount() ); } else { Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerProviderConfigurationTest.java Thu Aug 9 18:31:02 2012 @@ -170,7 +170,7 @@ public class BooterDeserializerProviderC StartupConfiguration testProviderConfiguration ) throws IOException { - final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration(); + final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration( null, null ); Properties props = new Properties(); BooterSerializer booterSerializer = new BooterSerializer( forkConfiguration, props ); String aTest = "aTest"; Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java Thu Aug 9 18:31:02 2012 @@ -126,7 +126,7 @@ public class BooterDeserializerStartupCo private StartupConfiguration saveAndReload( StartupConfiguration startupConfiguration ) throws IOException { - final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration(); + final ForkConfiguration forkConfiguration = ForkConfigurationTest.getForkConfiguration( null, null ); Properties props = new Properties(); BooterSerializer booterSerializer = new BooterSerializer( forkConfiguration, props ); String aTest = "aTest"; Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java?rev=1371363&r1=1371362&r2=1371363&view=diff ============================================================================== --- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java (original) +++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java Thu Aug 9 18:31:02 2012 @@ -36,15 +36,14 @@ public class ForkConfigurationTest public void testCreateCommandLine_UseSystemClassLoaderForkOnce_ShouldConstructManifestOnlyJar() throws IOException, SurefireBooterForkException { - ForkConfiguration config = getForkConfiguration(); + ForkConfiguration config = getForkConfiguration(null, "java"); File cpElement = getTempClasspathFile(); - config.setJvmExecutable( "java" ); Commandline cli = config.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), true, false ); String line = StringUtils.join( cli.getCommandline(), " " ); - assertTrue( line.indexOf( "-jar" ) > -1 ); + assertTrue( line.contains( "-jar" ) ); } public void testArglineWithNewline() @@ -52,9 +51,7 @@ public class ForkConfigurationTest { // SUREFIRE-657 File cpElement = getTempClasspathFile(); - ForkConfiguration forkConfiguration = getForkConfiguration(); - - forkConfiguration.setArgLine( "abc\ndef" ); + ForkConfiguration forkConfiguration = getForkConfiguration("abc\ndef", null ); final Commandline commandLine = forkConfiguration.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), false, @@ -70,12 +67,12 @@ public class ForkConfigurationTest return cpElement; } - public static ForkConfiguration getForkConfiguration() + public static ForkConfiguration getForkConfiguration( String argLine, String jvm ) throws IOException { ForkConfiguration forkConfiguration = - new ForkConfiguration( new Classpath(), null ); - forkConfiguration.setWorkingDirectory( new File( "." ).getCanonicalFile() ); + new ForkConfiguration( new Classpath(), null, null, jvm, new File( "." ).getCanonicalFile() , + argLine, null, false, 1 ); return forkConfiguration; }