This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository gradle.
commit b06af42d2f19351e370ac88419a98a1fd091846b Author: Emmanuel Bourg <ebo...@apache.org> Date: Wed Apr 4 16:43:02 2018 +0200 Backported a fix to support the javac --module-source-path option --- debian/changelog | 7 ++ ...w-both-module-source-path-and-source-path.patch | 114 +++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 122 insertions(+) diff --git a/debian/changelog b/debian/changelog index 9af791e..7bbf1fc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +gradle (3.4.1-5) UNRELEASED; urgency=medium + + * Team upload. + * Backported a fix to support the javac --module-source-path option + + -- Emmanuel Bourg <ebo...@apache.org> Wed, 04 Apr 2018 13:34:54 +0200 + gradle (3.4.1-4) unstable; urgency=medium * Team upload. diff --git a/debian/patches/disallow-both-module-source-path-and-source-path.patch b/debian/patches/disallow-both-module-source-path-and-source-path.patch new file mode 100644 index 0000000..e9e4c0a --- /dev/null +++ b/debian/patches/disallow-both-module-source-path-and-source-path.patch @@ -0,0 +1,114 @@ +From e9f4cb3be4b0a16506ad54b44485b7f0862f6c59 Mon Sep 17 00:00:00 2001 +From: Pepper Lebeck-Jobe <pep...@gradle.com> +Date: Thu, 20 Jul 2017 14:58:11 +0200 +Subject: [PATCH] Disallow both --module-source-path and -sourcepath (#2542) + +Java 9 introduces a `--module-source-path` option which is mutually +exclusive with `-sourcepath` or `--source-path`. If they are both +provided, the sourcepath should be stripped and the +`--module-source-path` should remain. + +If both have been specified explicitly by the user either as a +`optiions.compilerArgs` argument or, in the case of `sourcepath` as +the `options.sourcepath` property, then a warning should also be +emitted to let the user know that they did something wrong. + +Fixes #2537 +--- + .../compile/JavaCompilerArgumentsBuilder.java | 20 +++- + .../JavaCompilerArgumentsBuilderTest.groovy | 10 ++ + 3 files changed, 125 insertions(+), 12 deletions(-) + +--- a/subprojects/language-java/src/main/java/org/gradle/api/internal/tasks/compile/JavaCompilerArgumentsBuilder.java ++++ b/subprojects/language-java/src/main/java/org/gradle/api/internal/tasks/compile/JavaCompilerArgumentsBuilder.java +@@ -19,14 +19,19 @@ + import com.google.common.base.Joiner; + import org.gradle.api.JavaVersion; + import org.gradle.api.file.FileCollection; ++import org.gradle.api.logging.Logger; ++import org.gradle.api.logging.Logging; + import org.gradle.api.tasks.compile.CompileOptions; + import org.gradle.api.tasks.compile.ForkOptions; ++import org.gradle.util.DeprecationLogger; + + import java.io.File; + import java.util.ArrayList; ++import java.util.Iterator; + import java.util.List; + + public class JavaCompilerArgumentsBuilder { ++ public static final Logger LOGGER = Logging.getLogger(JavaCompilerArgumentsBuilder.class); + public static final String USE_UNSHARED_COMPILER_TABLE_OPTION = "-XDuseUnsharedTable=true"; + public static final String EMPTY_SOURCE_PATH_REF_DIR = "emptySourcePathRef"; + +@@ -155,9 +160,10 @@ + } + + FileCollection sourcepath = compileOptions.getSourcepath(); +- if (!noEmptySourcePath || sourcepath != null && sourcepath.isEmpty()) { ++ String userProvidedSourcepath = extractSourcepathFrom(compilerArgs, false); ++ if (!noEmptySourcePath || sourcepath != null && !sourcepath.isEmpty() || !userProvidedSourcepath.isEmpty()) { + args.add("-sourcepath"); +- args.add(sourcepath == null ? "" : sourcepath.getAsPath()); ++ args.add(sourcepath == null ? userProvidedSourcepath : Joiner.on(File.pathSeparator).skipNulls().join(sourcepath.getAsPath(), userProvidedSourcepath.isEmpty() ? null : userProvidedSourcepath)); + } + + if (spec.getSourceCompatibility() == null || JavaVersion.toVersion(spec.getSourceCompatibility()).compareTo(JavaVersion.VERSION_1_6) >= 0) { +@@ -188,10 +194,38 @@ + + List<String> compilerArgs = spec.getCompileOptions().getCompilerArgs(); + if (compilerArgs != null) { ++ if (compilerArgs.contains("--module-source-path")) { ++ if (!extractSourcepathFrom(args, true).isEmpty()) { ++ LOGGER.warn("You specified both --module-source-path and a sourcepath. These options are mutually exclusive. Removing sourcepath."); ++ } ++ } + args.addAll(compilerArgs); + } + } + ++ private String extractSourcepathFrom(List<String> compilerArgs, boolean silently) { ++ Iterator<String> argIterator = compilerArgs.iterator(); ++ String userProvidedSourcepath = ""; ++ while (argIterator.hasNext()) { ++ String current = argIterator.next(); ++ if (current.equals("-sourcepath") || current.equals("--source-path")) { ++ if (!silently) { ++ DeprecationLogger.nagUserOfDeprecated( ++ "Specifying the source path in the CompilerOptions compilerArgs property", ++ "Instead, use the CompilerOptions sourcepath property directly"); ++ } ++ argIterator.remove(); ++ if (argIterator.hasNext()) { ++ // Only conditional in case the user didn't supply an argument to the -sourcepath option. ++ // Protecting the call to "next()" inside the conditional protects against a NoSuchElementException ++ userProvidedSourcepath = argIterator.next(); ++ argIterator.remove(); ++ } ++ } ++ } ++ return userProvidedSourcepath; ++ } ++ + private boolean releaseOptionIsSet(List<String> compilerArgs) { + return compilerArgs != null && compilerArgs.contains("-release"); + } +--- a/subprojects/language-java/src/test/groovy/org/gradle/api/internal/tasks/compile/JavaCompilerArgumentsBuilderTest.groovy ++++ b/subprojects/language-java/src/test/groovy/org/gradle/api/internal/tasks/compile/JavaCompilerArgumentsBuilderTest.groovy +@@ -321,6 +321,16 @@ + builder.build() == ["-g", "-sourcepath", fc.asPath, "-proc:none", USE_UNSHARED_COMPILER_TABLE_OPTION, "-classpath", ""] + } + ++ def "removes sourcepath when module-source-path is provided"() { ++ given: ++ spec.compileOptions.compilerArgs = ['--module-source-path', '/src/other'] ++ def expected = ["-g", "-proc:none", USE_UNSHARED_COMPILER_TABLE_OPTION, "-classpath", "", "--module-source-path", "/src/other"] ++ ++ expect: ++ builder.build() == expected ++ builder.noEmptySourcePath().build() == expected ++ } ++ + String defaultEmptySourcePathRefFolder() { + new File(spec.tempDir, JavaCompilerArgumentsBuilder.EMPTY_SOURCE_PATH_REF_DIR).absolutePath + } diff --git a/debian/patches/series b/debian/patches/series index e93162e..cc47f22 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -27,3 +27,4 @@ cast-estimated-runtime-to-long.patch support-running-gradle-on-jdk-10-500485df3a18.patch add-test-case-for-10-internal_c1fe5e40a76b.patch support-zulu9-version-number_d9c35cf9d74c.patch +disallow-both-module-source-path-and-source-path.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/gradle.git _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits