Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
Conflicts:
	README.md
	build.gradle
  • Loading branch information
evant committed Mar 29, 2014
2 parents 88782aa + fb8962d commit f3b5c57
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 25 deletions.
52 changes: 35 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Luontola.
Usage
----

1. Download openjdk8 early access from https://jdk8.java.net/download.html
1. Download [jdk8](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).

2. Add the following to your build.gradle

Expand All @@ -20,7 +20,7 @@ Usage
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:1.3.0'
classpath 'me.tatarka:gradle-retrolambda:1.3.1'
}
}
Expand All @@ -37,36 +37,49 @@ Usage
The plugin will compile the source code with java8 and then replace the class
files with the output of retrolambda.

Configuation
------------
Configuration
-------------

You can add a block like the following to configure the plugin:

```groovy
retrolambda {
compile "net.orfjackal.retrolambda:retrolambda:1.1.2"
jdk System.getenv("JAVA8_HOME")
oldJdk System.getenv("JAVA6_HOME")
javaVersion JavaVersion.VERSION_1_6
}
```

- `compile` Set the path to retrolambda.jar. The default is the one on maven
central.
- `jdk` Set the path to the java 8 jdk. The default is found using either
`JAVA8_HOME`. If you a running gradle with java 6 or 7, you must have either
`JAVA8_HOME` or this property set.
- `oldJdk` Sets the path to the java 6 or 7 jdk. The default is found using
`JAVA6_HOME`/`JAVA7_HOME`. If you are running gradle with java 8 and wish
to run unit tests, you must have either `JAVA6_HOME`/`JAVA7_HOME` or this
property set. This is so the tests can be run with the correct java version.
- `jdk` Set the path to the java 8 jdk. The default is found using the
environment variable `JAVA8_HOME`. If you a running gradle with java 6 or 7,
you must have either `JAVA8_HOME` or this property set.
- `oldJdk` Sets the path to the java 6 or 7 jdk. The default is found using the
environment variable `JAVA6_HOME`/`JAVA7_HOME`. If you are running gradle with
java 8 and wish to run unit tests, you must have either
`JAVA6_HOME`/`JAVA7_HOME` or this property set. This is so the tests can be
run with the correct java version.
- `javaVersion` Set the java version to compile to. The default is 6. Only 6 or
7 are accepted.
- `include 'Debug', 'Release'` Sets which sets/variants to run through
retrolambda. The default is all of them.
- `exclude 'Test'` Sets which sets/variants to not run through retrolambda. Only
one of either `include` or `exclude` should be defined.

### Using a Different Version of the retrolambda.jar

The default version of retrolambda used is
`'net.orfjackal.retrolambda:retrolambda:1.1.4'`. If you want to use a different
one, you can configure it in your dependencies.

```groovy
dependencies {
// Latest one on maven central
retrolambdaConfig 'net.orfjackal.retrolambda:retrolambda:1.+'
// Or a local version
// retrolambdaConfig files('libs/retrolambda.jar')
}
```

Android Studio Setup
--------------------
Luckily Android Studio already has built-in lambda support! Enable it for your
Expand Down Expand Up @@ -105,14 +118,19 @@ Updates
- Fixed bug where java unit tests were not being run through retrolambda
- Allow gradle to be called with java 6 or 7, i.e. Java 8 no longer has to be
your default java.
- Thank you Mart-Bogdan for starting these fixes
- Thank you Mart-Bogdan for starting these fixes.

### 1.1.1
- Fixed not correctly finding java 8 executable when running from java 6 or 7 on
windows. (Mart-Bogdan)

### 1.2.0
- Support android-library projects
- Support android-library projects.

### 1.3.0
- Support android instrument tests
- Support android instrument tests.

### 1.3.1
- Removed `compile` property, which didn't work anyway. Use `retrolambdaConfig`
instead.
- Minor error message improvement.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ repositories {
}

group = 'me.tatarka'
version = '1.3.0'
version = '1.3.1'

dependencies {
compile gradleApi()
Expand Down
5 changes: 0 additions & 5 deletions src/main/groovy/me/tatarka/RetrolambdaExtension.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import org.gradle.api.ProjectConfigurationException
* To change this template use File | Settings | File Templates.
*/
public class RetrolambdaExtension {
Object compile = "net.orfjackal.retrolambda:retrolambda:1.1.2"
int bytecodeVersion = 50
List<String> excludes = []
List<String> includes = []
Expand All @@ -50,10 +49,6 @@ public class RetrolambdaExtension {
includes.addAll(e.collect { i -> i.toString() })
}

public void setCompile(Object c) {
compile = c
}

public void setBytecodeVersion(int v) {
bytecodeVersion = v
if (!oldJdkSet) oldJdk = findOldJdk()
Expand Down
4 changes: 3 additions & 1 deletion src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ import org.gradle.api.Project
* To change this template use File | Settings | File Templates.
*/
public class RetrolambdaPlugin implements Plugin<Project> {
private static def retrolambdaCompile = "net.orfjackal.retrolambda:retrolambda:1.1.4"

@Override
void apply(Project project) {
project.extensions.create('retrolambda', RetrolambdaExtension)
Expand All @@ -36,7 +38,7 @@ public class RetrolambdaPlugin implements Plugin<Project> {
}

project.dependencies {
retrolambdaConfig project.retrolambda.compile
retrolambdaConfig retrolambdaCompile
}

project.task('compileRetrolambda', dependsOn: project.tasks.matching {task ->
Expand Down
5 changes: 4 additions & 1 deletion src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package me.tatarka
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.ProjectConfigurationException
import org.gradle.api.logging.LogLevel
import org.gradle.api.tasks.JavaExec
import org.gradle.util.CollectionUtils

Expand Down Expand Up @@ -82,6 +83,8 @@ public class RetrolambdaPluginAndroid implements Plugin<Project> {
"-Dretrolambda.bytecodeVersion=${project.retrolambda.bytecodeVersion}",
"-javaagent:${classpath.asPath}"
]

logging.captureStandardOutput(LogLevel.INFO)
}

// Set the output dir back so subsequent tasks use it
Expand All @@ -108,7 +111,7 @@ public class RetrolambdaPluginAndroid implements Plugin<Project> {
project.task("patchAndroidJar") {
def rt = "$project.retrolambda.jdk/jre/lib/rt.jar"
def classesPath = "$buildPath/classes"
def jdkPathError = " does not exist, make sure that JAVE_HOME or retrolambda.jdk points to a valid version of java8\n You can download java8 from https://jdk8.java.net/download.html"
def jdkPathError = " does not exist, make sure that the environment variable JAVA_HOME or JAVA8_HOME, or the gradle property retrolambda.jdk points to a valid version of java8."

inputs.dir androidJar
inputs.dir rt
Expand Down
3 changes: 3 additions & 0 deletions src/main/groovy/me/tatarka/RetrolambdaPluginJava.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package me.tatarka
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.ProjectConfigurationException
import org.gradle.api.logging.LogLevel
import org.gradle.api.tasks.JavaExec

import static me.tatarka.RetrolambdaPlugin.checkIfExecutableExists
Expand Down Expand Up @@ -63,6 +64,8 @@ public class RetrolambdaPluginJava implements Plugin<Project> {
"-Dretrolambda.bytecodeVersion=${project.retrolambda.bytecodeVersion}",
"-javaagent:${classpath.getAsPath()}"
]

logging.captureStandardOutput(LogLevel.INFO)
}

// Set the output dir back so subsequent tasks use it
Expand Down

0 comments on commit f3b5c57

Please sign in to comment.