diff --git a/build.gradle b/build.gradle index 29dafbc..fbdcdee 100644 --- a/build.gradle +++ b/build.gradle @@ -15,3 +15,7 @@ task install { task uploadArchives { dependsOn gradle.includedBuild('gradle-retrolambda').task(':uploadArchives') } + +task publishPlugins { + dependsOn gradle.includedBuild('gradle-retrolambda').task(':publishPlugins') +} diff --git a/gradle-retrolambda/build.gradle b/gradle-retrolambda/build.gradle index 45eeae4..b16cb36 100644 --- a/gradle-retrolambda/build.gradle +++ b/gradle-retrolambda/build.gradle @@ -26,7 +26,7 @@ group = props['group'] version = props['version'] ext.androidPluginVersion = props['androidPluginVersion'] -sourceCompatibility = '1.6' +sourceCompatibility = '1.7' repositories { maven { url 'https://maven.google.com' } diff --git a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaExec.groovy b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaExec.groovy index aa3ef3a..c90c0b1 100644 --- a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaExec.groovy +++ b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaExec.groovy @@ -67,11 +67,11 @@ class RetrolambdaExec { exec.classpath = project.files(retrolambdaConfig) exec.main = 'net.orfjackal.retrolambda.Main' - exec.jvmArgs = [ - "-Dretrolambda.inputDir=$inputDir", - "-Dretrolambda.outputDir=$outputDir", - "-Dretrolambda.classpath=${path}", - "-Dretrolambda.bytecodeVersion=$bytecodeVersion", + exec.jvmArgs = (Iterable) [ + '-Dretrolambda.inputDir=' + String.valueOf(inputDir), + '-Dretrolambda.outputDir=' + String.valueOf(outputDir), + '-Dretrolambda.classpath=' + path, + '-Dretrolambda.bytecodeVersion=' + String.valueOf(bytecodeVersion), ] VersionNumber retrolambdaVersion = retrolambdaVersion(retrolambdaConfig) @@ -148,7 +148,8 @@ class RetrolambdaExec { } - private static boolean requireVersion(VersionNumber retrolambdaVersion, String version, boolean fallback = false) { + private + static boolean requireVersion(VersionNumber retrolambdaVersion, String version, boolean fallback = false) { if (retrolambdaVersion == null) { // Don't know version, assume fallback return fallback diff --git a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy index 98bd9b0..82cc2da 100644 --- a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy +++ b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy @@ -84,7 +84,7 @@ public class RetrolambdaPlugin implements Plugin { * @param file * @return */ - static String checkIfExecutableExists(String file) { + static boolean checkIfExecutableExists(String file) { new File(file).exists() || new File(file + '.exe').exists() } diff --git a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy index b634ec0..d046615 100644 --- a/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy +++ b/gradle-retrolambda/src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy @@ -46,13 +46,14 @@ public class RetrolambdaPluginJava implements Plugin { def compileJavaTask = project.tasks.getByName(set.compileJavaTaskName) as JavaCompile compileJavaTask.destinationDir = newOutputDir - def retrolambdaTask = project.task(taskName, dependsOn: compileJavaTask, type: RetrolambdaTask) { RetrolambdaTask task -> - task.inputDir = newOutputDir - task.outputDir = oldOutputDir - task.classpath = set.compileClasspath + project.files(newOutputDir) - task.javaVersion = retrolambda.javaVersion - task.jvmArgs = retrolambda.jvmArgs - task.enabled = !set.allJava.isEmpty() + def retrolambdaTask = project.task(taskName, dependsOn: compileJavaTask, type: RetrolambdaTask) { Task task -> + RetrolambdaTask t = task as RetrolambdaTask + t.inputDir = newOutputDir + t.outputDir = oldOutputDir + t.classpath = set.compileClasspath + project.files(newOutputDir) + t.javaVersion = retrolambda.javaVersion + t.jvmArgs = retrolambda.jvmArgs + t.enabled = !set.allJava.isEmpty() } // enable retrolambdaTask dynamically, based on up-to-date source set before running diff --git a/gradle-retrolambda/src/test/java/me/tatarka/AndroidFeaturePluginTest.java b/gradle-retrolambda/src/test/java/me/tatarka/AndroidFeaturePluginTest.java index cfe1e11..110ee66 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/AndroidFeaturePluginTest.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/AndroidFeaturePluginTest.java @@ -113,7 +113,7 @@ public void assembleDebug() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("assembleDebug", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("assembleDebug", "--stacktrace") .forwardStdError(errorOutput) .build(); @@ -204,7 +204,7 @@ public void unitTest() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("test", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("test", "--stacktrace") .forwardStdError(errorOutput) .build(); @@ -291,7 +291,7 @@ public void androidTest() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("installDebugAndroidTest", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("connectedCheck", "--stacktrace") .forwardStdError(errorOutput) .build(); diff --git a/gradle-retrolambda/src/test/java/me/tatarka/AndroidLibPluginTest.java b/gradle-retrolambda/src/test/java/me/tatarka/AndroidLibPluginTest.java index 8a1b0e2..788f0ef 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/AndroidLibPluginTest.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/AndroidLibPluginTest.java @@ -113,7 +113,7 @@ public void assembleDebug() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("assembleDebug", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("assembleDebug", "--stacktrace") .forwardStdError(errorOutput) .build(); @@ -204,7 +204,7 @@ public void unitTest() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("test", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("test", "--stacktrace") .forwardStdError(errorOutput) .build(); @@ -291,7 +291,7 @@ public void androidTest() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("install", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("connectedCheck", "--stacktrace") .forwardStdError(errorOutput) .build(); diff --git a/gradle-retrolambda/src/test/java/me/tatarka/AndroidTestPluginTest.java b/gradle-retrolambda/src/test/java/me/tatarka/AndroidTestPluginTest.java index 8f0ab16..9e6723c 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/AndroidTestPluginTest.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/AndroidTestPluginTest.java @@ -186,7 +186,7 @@ public void test() throws Exception { BuildResult result = GradleRunner.create() .withGradleVersion(gradleVersion) .withProjectDir(rootDir) - .withArguments("connectedCheck", "--stacktrace", "-Pandroid.enableAapt2=false") + .withArguments("connectedCheck", "--stacktrace") .forwardStdError(errorOutput) .build(); diff --git a/gradle-retrolambda/src/test/java/me/tatarka/GroovyPluginTest.java b/gradle-retrolambda/src/test/java/me/tatarka/GroovyPluginTest.java index d7945b5..547d878 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/GroovyPluginTest.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/GroovyPluginTest.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.StringWriter; +import static me.tatarka.TestHelpers.findFile; import static me.tatarka.TestHelpers.getPluginClasspath; import static me.tatarka.TestHelpers.writeFile; import static org.assertj.core.api.Assertions.assertThat; @@ -68,8 +69,8 @@ public void assemble() throws Exception { assertThat(result.task(":assemble").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - File mainClassFile = new File(rootDir, "build/classes/main/Main.class"); - File lambdaClassFile = new File(rootDir, "build/classes/main/Main$$Lambda$1.class"); + File mainClassFile = findFile(rootDir, "Main.class"); + File lambdaClassFile = findFile(rootDir, "Main$$Lambda$1.class"); assertThat(mainClassFile).exists(); assertThat(lambdaClassFile).exists(); diff --git a/gradle-retrolambda/src/test/java/me/tatarka/JavaPluginTest.java b/gradle-retrolambda/src/test/java/me/tatarka/JavaPluginTest.java index a2b4f5d..febd710 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/JavaPluginTest.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/JavaPluginTest.java @@ -14,6 +14,7 @@ import java.io.File; import java.io.StringWriter; +import static me.tatarka.TestHelpers.findFile; import static me.tatarka.TestHelpers.getPluginClasspath; import static me.tatarka.TestHelpers.writeFile; import static org.assertj.core.api.Assertions.assertThat; @@ -64,8 +65,8 @@ public void assemble() throws Exception { assertThat(result.task(":assemble").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - File mainClassFile = new File(rootDir, "build/classes/main/Main.class"); - File lambdaClassFile = new File(rootDir, "build/classes/main/Main$$Lambda$1.class"); + File mainClassFile = findFile(rootDir, "Main.class"); + File lambdaClassFile = findFile(rootDir, "Main$$Lambda$1.class"); assertThat(mainClassFile).exists(); assertThat(lambdaClassFile).exists(); diff --git a/gradle-retrolambda/src/test/java/me/tatarka/TestHelpers.java b/gradle-retrolambda/src/test/java/me/tatarka/TestHelpers.java index 86163c8..a2dc88e 100644 --- a/gradle-retrolambda/src/test/java/me/tatarka/TestHelpers.java +++ b/gradle-retrolambda/src/test/java/me/tatarka/TestHelpers.java @@ -51,7 +51,7 @@ public static String[] oldestSupportedAndroidPluginVersion() { return new String[]{ /*androidPluginVersion=*/"1.5.0", /*gradleVersion=*/"2.5", - /*buildToolsVersion=*/"24.0.2" + /*buildToolsVersion=*/"24.0.3" }; } @@ -66,8 +66,8 @@ public static String[] oldestSupportedAndroidFeaturePluginVersion() { public static String[] newestSupportedAndroidPluginVersion() { return new String[]{ /*androidPluginVersion=*/currentAndroidPluginVersion(), - /*gradleVersion=*/"4.0-20170417000025+0000", - /*buildToolsVersion=*/"25.0.2" + /*gradleVersion=*/"4.1-milestone-1", + /*buildToolsVersion=*/"26.0.0" }; } diff --git a/gradle.properties b/gradle.properties index 3ada0c9..f682c3f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,4 @@ group = me.tatarka version = 3.7.0 -androidPluginVersion = 3.0.0-alpha3 -useAlpha = true -android.enableAapt2=false \ No newline at end of file +androidPluginVersion = 3.0.0-alpha7 +useAlpha = true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 9411448..dbbc757 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d4c0656..9ca2ff2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Mar 02 19:52:42 EST 2017 +#Sun Jul 23 13:51:26 EDT 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-4.0-20170417000025+0000-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip diff --git a/gradlew b/gradlew index 9d82f78..4453cce 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,12 +6,30 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,26 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -85,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -150,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index aec9973..e95643d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line