From a9cdbfc0ecb0c749888563ad420ddc5eda90bdfe Mon Sep 17 00:00:00 2001 From: Bruno Bowden Date: Sun, 10 Jan 2016 02:34:48 -0800 Subject: [PATCH] Gradle 2.9 unsupported error - Throws explanatory error for gradle version 2.9 or later - Meant to be temporary until #568 is fixed - Fixes #581 --- .../j2objcgradle/J2objcPlugin.groovy | 2 +- .../j2objcgradle/tasks/Utils.groovy | 11 +++++++++-- .../j2objcgradle/tasks/UtilsTest.groovy | 18 +++++++++++------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/groovy/com/github/j2objccontrib/j2objcgradle/J2objcPlugin.groovy b/src/main/groovy/com/github/j2objccontrib/j2objcgradle/J2objcPlugin.groovy index c773dd16..45a0e9a3 100644 --- a/src/main/groovy/com/github/j2objccontrib/j2objcgradle/J2objcPlugin.groovy +++ b/src/main/groovy/com/github/j2objccontrib/j2objcgradle/J2objcPlugin.groovy @@ -56,7 +56,7 @@ class J2objcPlugin implements Plugin { // This avoids a lot of "project." prefixes, such as "project.tasks.create" project.with { - Utils.checkMinGradleVersion(GradleVersion.current()) + Utils.checkGradleVersion(GradleVersion.current()) getPluginManager().apply(JavaPlugin) extensions.create('j2objcConfig', J2objcConfig, project) diff --git a/src/main/groovy/com/github/j2objccontrib/j2objcgradle/tasks/Utils.groovy b/src/main/groovy/com/github/j2objccontrib/j2objcgradle/tasks/Utils.groovy index 9009aa25..07e15272 100644 --- a/src/main/groovy/com/github/j2objccontrib/j2objcgradle/tasks/Utils.groovy +++ b/src/main/groovy/com/github/j2objccontrib/j2objcgradle/tasks/Utils.groovy @@ -55,12 +55,19 @@ class Utils { // Prevent construction of this class, confines usage to static methods private Utils() { } - static void checkMinGradleVersion(GradleVersion gradleVersion) { + static void checkGradleVersion(GradleVersion gradleVersion) { final GradleVersion minGradleVersion = GradleVersion.version('2.4') - if (gradleVersion.compareTo(minGradleVersion) < 0) { + if (gradleVersion.compareTo(GradleVersion.version('2.4')) < 0) { throw new InvalidUserDataException( "J2ObjC Gradle Plugin requires minimum Gradle version: $minGradleVersion") } + + final GradleVersion unsupportedGradleVersion = GradleVersion.version('2.9') + if (gradleVersion.compareTo(unsupportedGradleVersion) >= 0) { + throw new InvalidUserDataException( + "Switch to Gradle 2.8 as version $unsupportedGradleVersion is unsupported due to:\n" + + "https://github.com/j2objc-contrib/j2objc-gradle/issues/568") + } } static List parseVersionComponents(String ver) { diff --git a/src/test/groovy/com/github/j2objccontrib/j2objcgradle/tasks/UtilsTest.groovy b/src/test/groovy/com/github/j2objccontrib/j2objcgradle/tasks/UtilsTest.groovy index cfb8e06c..56b78457 100644 --- a/src/test/groovy/com/github/j2objccontrib/j2objcgradle/tasks/UtilsTest.groovy +++ b/src/test/groovy/com/github/j2objccontrib/j2objcgradle/tasks/UtilsTest.groovy @@ -59,16 +59,20 @@ class UtilsTest { @Test void testCheckMinGradleVersion_valid() { - Utils.checkMinGradleVersion(GradleVersion.version('2.4')) - Utils.checkMinGradleVersion(GradleVersion.version('2.4.1')) - Utils.checkMinGradleVersion(GradleVersion.version('2.5')) - Utils.checkMinGradleVersion(GradleVersion.version('3.0')) - Utils.checkMinGradleVersion(GradleVersion.version('10.0')) + Utils.checkGradleVersion(GradleVersion.version('2.4')) + Utils.checkGradleVersion(GradleVersion.version('2.4.1')) + Utils.checkGradleVersion(GradleVersion.version('2.5')) + Utils.checkGradleVersion(GradleVersion.version('2.8')) } @Test(expected=InvalidUserDataException) - void testCheckMinGradleVersion_invalid() { - Utils.checkMinGradleVersion(GradleVersion.version('2.3')) + void testCheckMinGradleVersion_belowMinimum() { + Utils.checkGradleVersion(GradleVersion.version('2.3')) + } + + @Test(expected=InvalidUserDataException) + void testCheckMinGradleVersion_aboveMaximum() { + Utils.checkGradleVersion(GradleVersion.version('2.9')) } @Test