Please consider the attached patch which applies the upstream patch [1]. References: [1] https://github.com/gradle/gradle/commit/ac15612d41b43c39c8e39d12fdd6621589b0f782 On Sat, Sep 29, 2018 at 8:33 PM Tiago Stürmer Daitx <tiago.da...@canonical.com> wrote: > > Package: gradle > Version: 4.4-2 > Severity: normal > > Dear Maintainer, > > gradle 4.4-2 currently FTBFS when build with openjdk-11. > > * Exception is: > java.lang.IllegalArgumentException: Could not determine java version from > '11'. > at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:72) > at org.gradle.api.JavaVersion.current(JavaVersion.java:82) > at > org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:42) > at > org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:32) > at > org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) > at > org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) > at > org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) > at > org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:257) > at > org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:191) > at org.gradle.launcher.Main.doAction(Main.java:33) > at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60) > at > org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37) > at org.gradle.launcher.GradleMain.main(GradleMain.java:23) > > it needs either to be updated to 4.7 or have the upstream patch [1] > applied. > > References: > [1] > https://github.com/gradle/gradle/commit/ac15612d41b43c39c8e39d12fdd6621589b0f782#diff-1992c69962eb418e832c020dd61b2f1b.diff > > > -- System Information: > Debian Release: buster/sid > APT prefers cosmic > APT policy: (500, 'cosmic'), (400, 'cosmic-proposed') > Architecture: amd64 (x86_64) > > Kernel: Linux 4.18.0-7-generic (SMP w/4 CPU cores) > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), > LANGUAGE=en_US (charmap=UTF-8) > Shell: /bin/sh linked to /bin/dash > Init: systemd (via /run/systemd/system) > LSM: AppArmor: enabled
-- Tiago Stürmer Daitx Software Engineer tiago.da...@canonical.com PGP Key: 4096R/F5B213BE (hkp://keyserver.ubuntu.com) Fingerprint = 45D0 FE5A 8109 1E91 866E 8CA4 1931 8D5E F5B2 13BE
diff -Nru gradle-4.4/debian/changelog gradle-4.4/debian/changelog --- gradle-4.4/debian/changelog 2018-09-17 10:15:05.000000000 +0100 +++ gradle-4.4/debian/changelog 2018-09-29 18:50:56.000000000 +0100 @@ -1,3 +1,10 @@ +gradle (4.4-3) UNRELEASED; urgency=medium + + * debian/patches/enable-jdk-11-support-ac15612d41b43c39c.patch: enable + support for openjdk-11. (Closes: #909905) + + -- Tiago Stürmer Daitx <tiago.da...@ubuntu.com> Sat, 29 Sep 2018 17:50:56 +0000 + gradle (4.4-2) unstable; urgency=medium * Team upload. diff -Nru gradle-4.4/debian/patches/enable-jdk-11-support-ac15612d41b43c39c.patch gradle-4.4/debian/patches/enable-jdk-11-support-ac15612d41b43c39c.patch --- gradle-4.4/debian/patches/enable-jdk-11-support-ac15612d41b43c39c.patch 1970-01-01 01:00:00.000000000 +0100 +++ gradle-4.4/debian/patches/enable-jdk-11-support-ac15612d41b43c39c.patch 2018-09-29 18:50:56.000000000 +0100 @@ -0,0 +1,560 @@ +Description: make JavaVersion support JDK 11 and JEP-223 + Add JavaVersion.VERSION_11 and support JEP223 +Origin: upstream, https://github.com/gradle/gradle/commit/ac15612d41b43c39c8e39d12fdd6621589b0f782 +Bug-Debian: http://bugs.debian.org/909905 +Forwarded: not-needed +Applied-Upstream: ac15612d41b43c39c8e39d12fdd6621589b0f782 +Last-Update: 2018-09-29 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ + +From ac15612d41b43c39c8e39d12fdd6621589b0f782 Mon Sep 17 00:00:00 2001 +From: Bo Zhang <b...@gradle.com> +Date: Wed, 21 Mar 2018 16:08:44 +0800 +Subject: [PATCH] Make JavaVersion support JDK 11 and JEP-223 (#4759) + +Add JavaVersion.VERSION_11 and support JEP223 +--- + .../main/java/org/gradle/api/JavaVersion.java | 123 ++++++---- + .../org/gradle/api/JavaVersionSpec.groovy | 212 ++++++++---------- + .../changes/accepted-public-api-changes.json | 20 ++ + .../cli/BuildActionsFactoryTest.groovy | 8 +- + 4 files changed, 199 insertions(+), 164 deletions(-) + +--- a/subprojects/base-services/src/main/java/org/gradle/api/JavaVersion.java ++++ b/subprojects/base-services/src/main/java/org/gradle/api/JavaVersion.java +@@ -17,25 +17,26 @@ package org.gradle.api; + + import com.google.common.annotations.VisibleForTesting; + +-import java.util.regex.Matcher; +-import java.util.regex.Pattern; ++import java.util.ArrayList; ++import java.util.List; + + /** + * An enumeration of Java versions. ++ * Before 9: http://www.oracle.com/technetwork/java/javase/versioning-naming-139433.html ++ * 9+: http://openjdk.java.net/jeps/223 + */ + public enum JavaVersion { +- VERSION_1_1(false), VERSION_1_2(false), VERSION_1_3(false), VERSION_1_4(false), +- // starting from here versions are 1_ but their official name is "Java 6", "Java 7", ... +- VERSION_1_5(true), VERSION_1_6(true), VERSION_1_7(true), VERSION_1_8(true), VERSION_1_9(true), VERSION_1_10(true); ++ VERSION_1_1, VERSION_1_2, VERSION_1_3, VERSION_1_4, ++ VERSION_1_5, VERSION_1_6, VERSION_1_7, VERSION_1_8, ++ VERSION_1_9, VERSION_1_10, VERSION_11, VERSION_HIGHER; ++ // Since Java 9, version should be X instead of 1.X ++ // However, to keep backward compatibility, we change from 11 ++ private static final int FIRST_MAJOR_VERSION_ORDINAL = 10; + private static JavaVersion currentJavaVersion; +- private final boolean hasMajorVersion; + private final String versionName; +- private final String majorVersion; + +- JavaVersion(boolean hasMajorVersion) { +- this.hasMajorVersion = hasMajorVersion; +- this.versionName = name().substring("VERSION_".length()).replace('_', '.'); +- this.majorVersion = name().substring(10); ++ JavaVersion() { ++ this.versionName = ordinal() >= FIRST_MAJOR_VERSION_ORDINAL ? getMajorVersion() : "1." + getMajorVersion(); + } + + /** +@@ -54,22 +55,18 @@ public enum JavaVersion { + } + + String name = value.toString(); +- Matcher matcher = Pattern.compile("(\\d{1,2})(\\D.+)?").matcher(name); +- if (matcher.matches()) { +- int index = Integer.parseInt(matcher.group(1)) - 1; +- if (index > 0 && index < values().length && values()[index].hasMajorVersion) { +- return values()[index]; +- } +- } + +- matcher = Pattern.compile("1\\.(\\d{1,2})(\\D.+)?").matcher(name); +- if (matcher.matches()) { +- int versionIdx = Integer.parseInt(matcher.group(1)) - 1; +- if (versionIdx >= 0 && versionIdx < values().length) { +- return values()[versionIdx]; +- } ++ int firstNonVersionCharIndex = findFirstNonVersionCharIndex(name); ++ ++ String[] versionStrings = name.substring(0, firstNonVersionCharIndex).split("\\."); ++ List<Integer> versions = convertToNumber(name, versionStrings); ++ ++ if (isLegacyVersion(versions)) { ++ assertTrue(name, versions.get(1) > 0); ++ return getVersionForMajor(versions.get(1)); ++ } else { ++ return getVersionForMajor(versions.get(0)); + } +- throw new IllegalArgumentException(String.format("Could not determine java version from '%s'.", name)); + } + + /** +@@ -90,11 +87,7 @@ public enum JavaVersion { + } + + public static JavaVersion forClassVersion(int classVersion) { +- int index = classVersion - 45; //class file versions: 1.1 == 45, 1.2 == 46... +- if (index >= 0 && index < values().length) { +- return values()[index]; +- } +- throw new IllegalArgumentException(String.format("Could not determine java version from '%d'.", classVersion)); ++ return getVersionForMajor(classVersion - 44); //class file versions: 1.1 == 45, 1.2 == 46... + } + + public static JavaVersion forClass(byte[] classData) { +@@ -116,18 +109,22 @@ public enum JavaVersion { + return this == VERSION_1_7; + } + +- private boolean isJava8() { ++ public boolean isJava8() { + return this == VERSION_1_8; + } + +- private boolean isJava9() { ++ public boolean isJava9() { + return this == VERSION_1_9; + } + +- private boolean isJava10() { ++ public boolean isJava10() { + return this == VERSION_1_10; + } + ++ public boolean isJava11() { ++ return this == VERSION_11; ++ } ++ + public boolean isJava5Compatible() { + return this.compareTo(VERSION_1_5) >= 0; + } +@@ -148,21 +145,69 @@ public enum JavaVersion { + return this.compareTo(VERSION_1_9) >= 0; + } + +- @Incubating + public boolean isJava10Compatible() { + return this.compareTo(VERSION_1_10) >= 0; + } + +- @Override +- public String toString() { +- return getName(); ++ public boolean isJava11Compatible() { ++ return this.compareTo(VERSION_11) >= 0; + } + +- private String getName() { ++ @Override ++ public String toString() { + return versionName; + } + + public String getMajorVersion() { +- return majorVersion; ++ return String.valueOf(ordinal() + 1); ++ } ++ ++ private static JavaVersion getVersionForMajor(int major) { ++ return major >= values().length ? JavaVersion.VERSION_HIGHER : values()[major - 1]; ++ } ++ ++ private static void assertTrue(String value, boolean condition) { ++ if (!condition) { ++ throw new IllegalArgumentException("Could not determine java version from '" + value + "'."); ++ } ++ } ++ ++ private static boolean isLegacyVersion(List<Integer> versions) { ++ return 1 == versions.get(0) && versions.size() > 1; ++ } ++ ++ private static List<Integer> convertToNumber(String value, String[] versionStrs) { ++ List<Integer> result = new ArrayList<Integer>(); ++ for (String s : versionStrs) { ++ assertTrue(value, !isNumberStartingWithZero(s)); ++ try { ++ result.add(Integer.parseInt(s)); ++ } catch (NumberFormatException e) { ++ assertTrue(value, false); ++ } ++ } ++ assertTrue(value, !result.isEmpty() && result.get(0) > 0); ++ return result; ++ } ++ ++ private static boolean isNumberStartingWithZero(String number) { ++ return number.length() > 1 && number.startsWith("0"); ++ } ++ ++ private static int findFirstNonVersionCharIndex(String s) { ++ assertTrue(s, s.length() != 0); ++ ++ for (int i = 0; i < s.length(); ++i) { ++ if (!isDigitOrPeriod(s.charAt(i))) { ++ assertTrue(s, i != 0); ++ return i; ++ } ++ } ++ ++ return s.length(); ++ } ++ ++ private static boolean isDigitOrPeriod(char c) { ++ return (c >= '0' && c <= '9') || c == '.'; + } + } +--- a/subprojects/base-services/src/test/groovy/org/gradle/api/JavaVersionSpec.groovy ++++ b/subprojects/base-services/src/test/groovy/org/gradle/api/JavaVersionSpec.groovy +@@ -13,16 +13,20 @@ + * See the License for the specific language governing permissions and + * limitations under the License. + */ +-package org.gradle.api; ++package org.gradle.api + + + import org.gradle.util.SetSystemProperties + import org.junit.Rule + import spock.lang.Specification ++import spock.lang.Unroll + +-public class JavaVersionSpec extends Specification { ++class JavaVersionSpec extends Specification { ++ private static final BigInteger TOO_BIG = (BigInteger.valueOf(Integer.MAX_VALUE)).add(BigInteger.ONE) ++ private static final String TOO_BIG_STR = TOO_BIG.toString() + +- @Rule SetSystemProperties sysProp = new SetSystemProperties() ++ @Rule ++ SetSystemProperties sysProp = new SetSystemProperties() + + def setup() { + JavaVersion.resetCurrent() +@@ -42,6 +46,8 @@ public class JavaVersionSpec extends Spe + JavaVersion.VERSION_1_8.toString() == "1.8" + JavaVersion.VERSION_1_9.toString() == "1.9" + JavaVersion.VERSION_1_10.toString() == "1.10" ++ JavaVersion.VERSION_11.toString() == "11" ++ JavaVersion.VERSION_HIGHER.toString() == "12" + } + + def convertsStringToVersion() { +@@ -71,6 +77,10 @@ public class JavaVersionSpec extends Spe + JavaVersion.toVersion("10.1.2") == JavaVersion.VERSION_1_10 + JavaVersion.toVersion("10-ea") == JavaVersion.VERSION_1_10 + JavaVersion.toVersion("10-internal") == JavaVersion.VERSION_1_10 ++ ++ JavaVersion.toVersion("11-ea") == JavaVersion.VERSION_11 ++ JavaVersion.toVersion("12-ea") == JavaVersion.VERSION_HIGHER ++ JavaVersion.toVersion("999-ea") == JavaVersion.VERSION_HIGHER + } + + def convertClassVersionToJavaVersion() { +@@ -85,27 +95,26 @@ public class JavaVersionSpec extends Spe + JavaVersion.forClassVersion(52) == JavaVersion.VERSION_1_8 + JavaVersion.forClassVersion(53) == JavaVersion.VERSION_1_9 + JavaVersion.forClassVersion(54) == JavaVersion.VERSION_1_10 ++ JavaVersion.forClassVersion(55) == JavaVersion.VERSION_11 ++ JavaVersion.forClassVersion(999) == JavaVersion.VERSION_HIGHER + } + + def failsToConvertStringToVersionForUnknownVersion() { + expect: +- conversionFails("1"); +- conversionFails("2"); +- +- conversionFails("17"); +- +- conversionFails("a"); +- conversionFails("java-9"); +- conversionFails(""); +- conversionFails(" "); +- +- conversionFails("0.1"); +- conversionFails("1.54"); +- conversionFails("2.0"); +- conversionFails("1_4"); +- +- conversionFails("9-"); +- conversionFails("11-ea"); ++ conversionFails("a") ++ conversionFails("java-9") ++ conversionFails("") ++ conversionFails(" ") ++ ++ conversionFails("0.1") ++ conversionFails("0.1") ++ ++ conversionFails('foo') ++ conversionFails('0') ++ conversionFails('1.00') ++ conversionFails('00') ++ conversionFails('09') ++ conversionFails(TOO_BIG_STR) + } + + def convertsVersionToVersion() { +@@ -127,16 +136,6 @@ public class JavaVersionSpec extends Spe + JavaVersion.toVersion(10) == JavaVersion.VERSION_1_10 + } + +- def failsToConvertNumberToVersionForUnknownVersion() { +- expect: +- conversionFails(1); +- conversionFails(2); +- conversionFails(17); +- conversionFails(1.21); +- conversionFails(2.0); +- conversionFails(4.2); +- } +- + def currentReturnsJvmVersion() { + expect: + JavaVersion.current() == JavaVersion.toVersion(System.getProperty("java.version")) +@@ -149,118 +148,89 @@ public class JavaVersionSpec extends Spe + + private void conversionFails(Object value) { + try { +- JavaVersion.toVersion(value); +- org.junit.Assert.fail(); ++ JavaVersion.toVersion(value) ++ org.junit.Assert.fail() + } catch (IllegalArgumentException e) { + assert e.getMessage() == "Could not determine java version from '" + value + "'." + } + } + +- def "uses system property to determine if compatible with Java 5"() { +- System.properties['java.version'] = '1.5' +- +- expect: +- JavaVersion.current().java5 +- !JavaVersion.current().java6 +- !JavaVersion.current().java7 +- !JavaVersion.current().java8 +- +- and: +- JavaVersion.current().java5Compatible +- !JavaVersion.current().java6Compatible +- !JavaVersion.current().java7Compatible +- !JavaVersion.current().java8Compatible +- } +- +- def "uses system property to determine if compatible with Java 6"() { +- System.properties['java.version'] = '1.6' +- +- expect: +- !JavaVersion.current().java5 +- JavaVersion.current().java6 +- !JavaVersion.current().java7 +- !JavaVersion.current().java8 +- +- and: +- JavaVersion.current().java5Compatible +- JavaVersion.current().java6Compatible +- !JavaVersion.current().java7Compatible +- !JavaVersion.current().java8Compatible +- } +- +- def "uses system property to determine if compatible with Java 7"() { +- System.properties['java.version'] = '1.7' +- +- expect: +- !JavaVersion.current().java5 +- !JavaVersion.current().java6 +- JavaVersion.current().java7 +- !JavaVersion.current().java8 +- +- and: +- JavaVersion.current().java5Compatible +- JavaVersion.current().java6Compatible +- JavaVersion.current().java7Compatible +- !JavaVersion.current().java8Compatible +- } +- +- def "uses system property to determine if compatible with Java 8"() { +- System.properties['java.version'] = '1.8' +- +- expect: +- !JavaVersion.current().java5 +- !JavaVersion.current().java6 +- !JavaVersion.current().java7 +- JavaVersion.current().java8 +- +- and: +- JavaVersion.current().java5Compatible +- JavaVersion.current().java6Compatible +- JavaVersion.current().java7Compatible +- JavaVersion.current().java8Compatible +- } +- +- def "uses system property to determine if compatible with Java 9"() { +- System.properties['java.version'] = javaVersion +- +- expect: +- !JavaVersion.current().java5 +- !JavaVersion.current().java6 +- !JavaVersion.current().java7 +- !JavaVersion.current().java8 +- JavaVersion.current().java9 +- +- and: +- JavaVersion.current().java5Compatible +- JavaVersion.current().java6Compatible +- JavaVersion.current().java7Compatible +- JavaVersion.current().java8Compatible +- JavaVersion.current().java9Compatible +- +- where: +- javaVersion << ['1.9', '9-ea'] +- } +- +- def "uses system property to determine if compatible with Java 10"() { +- System.properties['java.version'] = javaVersion +- +- expect: +- !JavaVersion.current().java5 +- !JavaVersion.current().java6 +- !JavaVersion.current().java7 +- !JavaVersion.current().java8 +- !JavaVersion.current().java9 +- JavaVersion.current().java10 +- +- and: +- JavaVersion.current().java5Compatible +- JavaVersion.current().java6Compatible +- JavaVersion.current().java7Compatible +- JavaVersion.current().java8Compatible +- JavaVersion.current().java9Compatible +- JavaVersion.current().java10Compatible ++ @Unroll ++ def "uses system property to determine if compatible with Java #versionString"() { ++ System.properties['java.version'] = versionString ++ ++ expect: ++ JavaVersion.current() == current ++ JavaVersion.current().java6 == isJava6 ++ JavaVersion.current().java7 == isJava7 ++ JavaVersion.current().java8 == isJava8 ++ JavaVersion.current().java9 == isJava9 ++ JavaVersion.current().java10 == isJava10 ++ JavaVersion.current().java11 == isJava11 ++ ++ and: ++ JavaVersion.current().java6Compatible == isJava6Compatible ++ JavaVersion.current().java7Compatible == isJava7Compatible ++ JavaVersion.current().java8Compatible == isJava8Compatible ++ JavaVersion.current().java9Compatible == isJava9Compatible ++ JavaVersion.current().java10Compatible == isJava10Compatible ++ JavaVersion.current().java11Compatible == isJava11Compatible + + where: +- javaVersion << ['1.10', '10-ea'] ++ versionString | current | isJava6 | isJava7 | isJava8 | isJava9 | isJava10 | isJava11 | isJava6Compatible | isJava7Compatible | isJava8Compatible | isJava9Compatible | isJava10Compatible | isJava11Compatible ++ '1.5' | JavaVersion.VERSION_1_5 | false | false | false | false | false | false | false | false | false | false | false | false ++ '1.6' | JavaVersion.VERSION_1_6 | true | false | false | false | false | false | true | false | false | false | false | false ++ '1.7' | JavaVersion.VERSION_1_7 | false | true | false | false | false | false | true | true | false | false | false | false ++ '1.8' | JavaVersion.VERSION_1_8 | false | false | true | false | false | false | true | true | true | false | false | false ++ '1.9' | JavaVersion.VERSION_1_9 | false | false | false | true | false | false | true | true | true | true | false | false ++ '9-ea' | JavaVersion.VERSION_1_9 | false | false | false | true | false | false | true | true | true | true | false | false ++ '1.10' | JavaVersion.VERSION_1_10 | false | false | false | false | true | false | true | true | true | true | true | false ++ '10-ea' | JavaVersion.VERSION_1_10 | false | false | false | false | true | false | true | true | true | true | true | false ++ '1.11' | JavaVersion.VERSION_11 | false | false | false | false | false | true | true | true | true | true | true | true ++ '11-ea' | JavaVersion.VERSION_11 | false | false | false | false | false | true | true | true | true | true | true | true ++ '12' | JavaVersion.VERSION_HIGHER | false | false | false | false | false | false | true | true | true | true | true | true ++ '999' | JavaVersion.VERSION_HIGHER | false | false | false | false | false | false | true | true | true | true | true | true ++ } ++ ++ /* Following test cases are from http://hg.openjdk.java.net/jdk/jdk/file/af37d9997bd6/test/jdk/java/lang/Runtime/Version/Basic.java */ ++ ++ def 'can recognize multiple version number'() { ++ expect: ++ JavaVersion.toVersion('9') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9.1') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9.0.1') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9.0.0.1') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9.0.0.0.1') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('404.1.2') == JavaVersion.VERSION_HIGHER ++ JavaVersion.toVersion('9.1.2.3') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('1000.0.0.0.0.0.99999999') == JavaVersion.VERSION_HIGHER ++ } ++ ++ def 'can recognize version with $pre'() { ++ expect: ++ JavaVersion.toVersion('9-ea') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9-internal') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9-0') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9.2.7-8') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('2.3.4.5-1a') == JavaVersion.VERSION_1_2 ++ } ++ ++ def 'can recognize $build'() { ++ expect: ++ JavaVersion.toVersion('9+0') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('3.14+9999900') == JavaVersion.VERSION_1_3 ++ JavaVersion.toVersion('9-pre+105') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('6.0.42-8beta+4') == JavaVersion.VERSION_1_6 ++ } ++ ++ def 'can recognize version with $opt'() { ++ expect: ++ JavaVersion.toVersion('9+-foo') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('9-pre-opt') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion('42+---bar') == JavaVersion.VERSION_HIGHER ++ JavaVersion.toVersion('2.91+-8061493-') == JavaVersion.VERSION_1_2 ++ JavaVersion.toVersion('24+-foo.bar') == JavaVersion.VERSION_HIGHER ++ JavaVersion.toVersion('9-ribbit+17-...') == JavaVersion.VERSION_1_9 ++ JavaVersion.toVersion("7+1-$TOO_BIG_STR") == JavaVersion.VERSION_1_7 + } + } +--- a/subprojects/distributions/src/changes/accepted-public-api-changes.json ++++ b/subprojects/distributions/src/changes/accepted-public-api-changes.json +@@ -170,6 +170,26 @@ + "type": "org.gradle.api.publish.maven.plugins.MavenPublishPlugin", + "member": "Constructor org.gradle.api.publish.maven.plugins.MavenPublishPlugin(org.gradle.internal.reflect.Instantiator,org.gradle.api.internal.artifacts.configurations.DependencyMetaDataProvider,org.gradle.api.internal.file.FileResolver,org.gradle.api.publish.internal.ProjectDependencyPublicationResolver,org.gradle.api.internal.file.FileCollectionFactory,org.gradle.api.internal.ExperimentalFeatures)", + "acceptation": "Change to constructor of incubating plugin" ++ }, ++ { ++ "type": "org.gradle.api.JavaVersion", ++ "member": "Field VERSION_11", ++ "acceptation": "Support JDK 11" ++ }, ++ { ++ "type": "org.gradle.api.JavaVersion", ++ "member": "Field VERSION_HIGHER", ++ "acceptation": "Support JDK 11" ++ }, ++ { ++ "type": "org.gradle.api.JavaVersion", ++ "member": "Method org.gradle.api.JavaVersion.isJava11()", ++ "acceptation": "Support JDK 11" ++ }, ++ { ++ "type": "org.gradle.api.JavaVersion", ++ "member": "Method org.gradle.api.JavaVersion.isJava11Compatible()", ++ "acceptation": "Support JDK 11" + } + ] + } +--- a/subprojects/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy ++++ b/subprojects/launcher/src/test/groovy/org/gradle/launcher/cli/BuildActionsFactoryTest.groovy +@@ -57,10 +57,10 @@ class BuildActionsFactoryTest extends Sp + PropertiesToStartParameterConverter propertiesToStartParameterConverter = Stub() + JvmVersionDetector jvmVersionDetector = Stub() + ParametersConverter parametersConverter = new ParametersConverter( +- Stub(LayoutCommandLineConverter), Stub(SystemPropertiesCommandLineConverter), +- Stub(LayoutToPropertiesConverter), propertiesToStartParameterConverter, +- new DefaultCommandLineConverter(), new DaemonCommandLineConverter(), +- propertiesToDaemonParametersConverter) ++ Stub(LayoutCommandLineConverter), Stub(SystemPropertiesCommandLineConverter), ++ Stub(LayoutToPropertiesConverter), propertiesToStartParameterConverter, ++ new DefaultCommandLineConverter(), new DaemonCommandLineConverter(), ++ propertiesToDaemonParametersConverter) + + BuildActionsFactory factory = new BuildActionsFactory(loggingServices, parametersConverter, jvmVersionDetector) + diff -Nru gradle-4.4/debian/patches/series gradle-4.4/debian/patches/series --- gradle-4.4/debian/patches/series 2018-09-16 17:42:50.000000000 +0100 +++ gradle-4.4/debian/patches/series 2018-09-29 18:50:51.000000000 +0100 @@ -24,3 +24,4 @@ gradle-4-compatibility.patch disable-google-apis.patch disable-internal-android-performance-testing.patch +enable-jdk-11-support-ac15612d41b43c39c.patch