Repository: maven-surefire Updated Branches: refs/heads/SUREFIRE-1262 bac0fb56a -> 569a9b7a8
SUREFIRE-1262: extract testClassesDirectory and test packages for ForkConfiguration with modulepath Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/569a9b7a Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/569a9b7a Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/569a9b7a Branch: refs/heads/SUREFIRE-1262 Commit: 569a9b7a8d9c1d9102037ac1f233fcc8378e6d9e Parents: bac0fb5 Author: rfscholte <[email protected]> Authored: Wed Sep 6 22:46:55 2017 +0200 Committer: rfscholte <[email protected]> Committed: Wed Sep 6 22:46:55 2017 +0200 ---------------------------------------------------------------------- maven-surefire-common/pom.xml | 2 +- .../maven/plugin/surefire/AbstractSurefireMojo.java | 16 ++++++++++++---- .../surefire/booterclient/ForkConfiguration.java | 12 +++++++----- .../booterclient/ForkConfigurationTest.java | 10 +++++----- pom.xml | 4 ++-- .../surefire/booter/ClasspathConfiguration.java | 12 ++++++++++-- 6 files changed, 37 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/maven-surefire-common/pom.xml ---------------------------------------------------------------------- diff --git a/maven-surefire-common/pom.xml b/maven-surefire-common/pom.xml index 35a1055..5d06323 100644 --- a/maven-surefire-common/pom.xml +++ b/maven-surefire-common/pom.xml @@ -92,7 +92,7 @@ <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-java</artifactId> - <version>0.9.3-SNAPSHOT</version> + <version>0.9.3</version> </dependency> <dependency> <groupId>com.google.code.findbugs</groupId> http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java index abf6bb5..be7dc62 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java @@ -21,7 +21,6 @@ import java.lang.reflect.Array; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; @@ -32,10 +31,13 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; +import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nonnull; +import org.apache.commons.lang3.StringUtils; + /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -1683,12 +1685,18 @@ public abstract class AbstractSurefireMojo Classpath testClasspath = new Classpath( result.getClasspathElements() ); Classpath testModulepath = new Classpath( result.getModulepathElements().keySet() ); - Collection<String> packages = null; + Set<String> packages = new TreeSet<>(); + + for ( Object file : scanResult.getFiles() ) + { + String className = (String) file; + packages.add( StringUtils.substringBeforeLast( className, "." ) ); + } classpathConfiguration = new ClasspathConfiguration( testClasspath, testModulepath, providerClasspath, inprocClassPath, - moduleDescriptor, packages, effectiveIsEnableAssertions(), - isChildDelegation() ); + moduleDescriptor, packages, getTestClassesDirectory(), + effectiveIsEnableAssertions(), isChildDelegation() ); getConsoleLogger().debug( testClasspath.getLogMessage( "test-classpath" ) ); getConsoleLogger().debug( testModulepath.getLogMessage( "test-modulepath" ) ); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java index 419c771..8e614df 100644 --- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java +++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java @@ -157,6 +157,7 @@ public class ForkConfiguration testModulePath != null ? testModulePath.getClassPath() : null, startupConfiguration.getClasspathConfiguration().getModuleDescriptor(), startupConfiguration.getClasspathConfiguration().getPackages(), + startupConfiguration.getClasspathConfiguration().getPatchFile(), startupConfiguration.getClassLoaderConfiguration().isManifestOnlyJarRequestedAndUsable(), startupConfiguration.isShadefire(), startupConfiguration.isProviderMainClass() ? startupConfiguration.getActualClassName() @@ -165,7 +166,7 @@ public class ForkConfiguration OutputStreamFlushableCommandline createCommandLine( List<String> classPath, List<String> modulePath, File moduleDescriptor, Collection<String> packages, - boolean useJar, boolean shadefire, + File patchFile, boolean useJar, boolean shadefire, String providerThatHasMainMethod, int threadNumber ) throws SurefireBooterForkException { @@ -196,7 +197,8 @@ public class ForkConfiguration try { File argsFile = - createArgsFile( moduleDescriptor, modulePath, classPath, packages, providerThatHasMainMethod ); + createArgsFile( moduleDescriptor, modulePath, classPath, packages, patchFile, + providerThatHasMainMethod ); cli.createArg().setValue( "@" + escapeToPlatformPath( argsFile.getAbsolutePath() ) ); } @@ -346,7 +348,7 @@ public class ForkConfiguration } private File createArgsFile( File moduleDescriptor, List<String> modulePath, List<String> classPath, - Collection<String> packages, String startClassName ) + Collection<String> packages, File patchFile, String startClassName ) throws IOException { File file = File.createTempFile( "surefireargs", "", tempDirectory ); @@ -390,10 +392,10 @@ public class ForkConfiguration writer.write( "--patch-module" ); writer.newLine(); - writer.append( moduleName ).append( '=' ).append( "target/test-classes" ); + writer.append( moduleName ).append( '=' ).append( patchFile.getPath() ); writer.newLine(); - for ( String pckg : Collections.singletonList( "com.app" ) ) + for ( String pckg : packages ) { writer.write( "--add-exports" ); writer.newLine(); http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java ---------------------------------------------------------------------- diff --git a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java index de1f012..20c5ba5 100644 --- a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java +++ b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/ForkConfigurationTest.java @@ -45,7 +45,7 @@ public class ForkConfigurationTest File cpElement = getTempClasspathFile(); Commandline cli = - config.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), null, null, null, true, false, null, 1 ); + config.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), null, null, null, null, true, false, null, 1 ); String line = StringUtils.join( cli.getCommandline(), " " ); assertTrue( line.contains( "-jar" ) ); @@ -59,7 +59,7 @@ public class ForkConfigurationTest ForkConfiguration forkConfiguration = getForkConfiguration( "abc\ndef", null ); final Commandline commandLine = - forkConfiguration.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), null, null, null, false, false, + forkConfiguration.createCommandLine( Collections.singletonList( cpElement.getAbsolutePath() ), null, null, null, null, false, false, null, 1 ); assertTrue( commandLine.toString().contains( "abc def" ) ); } @@ -76,7 +76,7 @@ public class ForkConfigurationTest File cwd = new File( baseDir, "fork_${surefire.forkNumber}" ); ForkConfiguration config = getForkConfiguration( null, "java", cwd.getCanonicalFile() ); - Commandline commandLine = config.createCommandLine( Collections.<String>emptyList(), null, null, null, true, false, null, 1 ); + Commandline commandLine = config.createCommandLine( Collections.<String>emptyList(), null, null, null, null, true, false, null, 1 ); File forkDirectory = new File( baseDir, "fork_1" ); forkDirectory.deleteOnExit(); @@ -101,7 +101,7 @@ public class ForkConfigurationTest try { - config.createCommandLine( Collections.<String>emptyList(), null, null, null, true, false, null, 1 ); + config.createCommandLine( Collections.<String>emptyList(), null, null, null, null, true, false, null, 1 ); } catch ( SurefireBooterForkException sbfe ) { @@ -130,7 +130,7 @@ public class ForkConfigurationTest try { - config.createCommandLine( Collections.<String>emptyList(), null, null, null, true, false, null, 1 ); + config.createCommandLine( Collections.<String>emptyList(), null, null, null, null, true, false, null, 1 ); } catch ( SurefireBooterForkException sbfe ) { http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 567e763..7c1dba8 100644 --- a/pom.xml +++ b/pom.xml @@ -364,8 +364,8 @@ <configuration> <signature> <groupId>org.codehaus.mojo.signature</groupId> - <artifactId>java16</artifactId> - <version>1.1</version> + <artifactId>java17</artifactId> + <version>1.0</version> </signature> </configuration> </plugin> http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/569a9b7a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java ---------------------------------------------------------------------- diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java index 74c76b3..4f61539 100644 --- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java +++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java @@ -49,6 +49,8 @@ public class ClasspathConfiguration private final File moduleDescriptor; private final Collection<String> packages; + + private final File patchFile; /** * The surefire classpath to use when invoking in-process with the plugin @@ -88,12 +90,12 @@ public class ClasspathConfiguration this.moduleDescriptor = null; this.modulepathUrls = null; this.packages = null; + this.patchFile = null; } public ClasspathConfiguration( Classpath testClasspath, Classpath testModulepath, Classpath surefireClassPathUrls, Classpath inprocClasspath, File moduleDescriptor, Collection<String> packages, - boolean enableAssertions, - boolean childDelegation ) + File patchFile, boolean enableAssertions, boolean childDelegation ) { this.enableAssertions = enableAssertions; this.childDelegation = childDelegation; @@ -103,6 +105,7 @@ public class ClasspathConfiguration this.surefireClasspathUrls = surefireClassPathUrls; this.moduleDescriptor = moduleDescriptor; this.packages = packages; + this.patchFile = patchFile; } public ClassLoader createMergedClassLoader() @@ -153,4 +156,9 @@ public class ClasspathConfiguration { return packages; } + + public File getPatchFile() + { + return patchFile; + } }
