Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
evant committed Aug 11, 2015
2 parents 463fecd + 48c5d50 commit 937deba
Show file tree
Hide file tree
Showing 13 changed files with 255 additions and 42 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
### 3.2.0
### 3.2.1
- Fixed unit tests on android gradle plugin 1.3.0
- Bumped default retrolambda version to 2.0.5

#### 3.2.0
- Support for targeting java 5 with retrolambda.
- Don't depend on the android gradle plugin being on the classpath when using in pure java projects.
- Delay calculating classpath for retrolambda. This fixes missing aar libs added by the android
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Usage
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.2.0'
classpath 'me.tatarka:gradle-retrolambda:3.2.1'
}
}
Expand All @@ -39,7 +39,7 @@ Usage
alternatively, you can use the new plugin syntax for gradle `2.1+`
```groovy
plugins {
id "me.tatarka.retrolambda" version "3.2.0"
id "me.tatarka.retrolambda" version "3.2.1"
}
```

Expand Down Expand Up @@ -92,7 +92,7 @@ retrolambda {
### Using a Different Version of the retrolambda.jar

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

```groovy
Expand Down
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ repositories {
}

group = 'me.tatarka'
version = '3.2.0'
version = '3.2.1'

sourceCompatibility = '1.6'

Expand All @@ -44,6 +44,8 @@ dependencies {
provided 'com.android.tools.build:gradle:1.0.0'

testCompile 'org.assertj:assertj-core:2.1.0'
testCompile 'com.android.tools.build:gradle:1.0.0'
testCompile 'com.neenbedankt.gradle.plugins:android-apt:1.6'
}

task javadocJar(type: Jar, dependsOn: javadoc) {
Expand Down
21 changes: 13 additions & 8 deletions sample-android-app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,26 @@ buildscript {
repositories {
mavenLocal()
jcenter()
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.6'
classpath 'com.android.databinding:dataBinder:1.0-rc1'
classpath "me.tatarka:gradle-retrolambda:${rootProject.version}"
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
}

configurations.classpath.exclude group: 'com.android.tools.external.lombok'
}

apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.android.databinding'

repositories {
mavenCentral()
jcenter()
}

dependencies {
Expand All @@ -30,10 +31,10 @@ dependencies {
apt "com.google.dagger:dagger-compiler:2.0"
provided 'javax.annotation:jsr250-api:1.0'

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.1'

androidTestCompile 'com.android.support:support-annotations:22.2.0'
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
androidTestCompile 'com.android.support:support-annotations:22.2.1'
androidTestCompile 'com.android.support.test:runner:0.3'
androidTestCompile 'org.assertj:assertj-core:2.1.0'

testCompile 'junit:junit:4.12'
Expand Down Expand Up @@ -72,3 +73,7 @@ android {
exclude 'LICENSE.txt'
}
}

retrolambda {
javaVersion JavaVersion.VERSION_1_7
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package me.tatarka.retrolambda.sample.app;

import android.app.Activity;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import javax.inject.Inject;

import me.tatarka.retrolambda.sample.app.databinding.ActivityMainBinding;
import me.tatarka.retrolambda.sample.lib.Function;

/**
* Created by evan on 3/29/15.
*/
Expand All @@ -26,14 +29,18 @@ protected void onCreate(Bundle savedInstanceState) {
.build()
.inject(this);

setContentView(R.layout.activity_main);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);

TextView text = (TextView) findViewById(R.id.text);
text.setText(hello.run(getResources()));

TextView textLib = (TextView) findViewById(R.id.text_lib);
textLib.setText(libHello.run());


Function helloDatabinding = () -> "Hello, Retrolambda! (from databinding)";
binding.setFun(helloDatabinding);
binding.executePendingBindings();

ResFunction lambda = (res) -> "Foo";
}
}
54 changes: 36 additions & 18 deletions sample-android-app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,21 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
tools:text="Hello, retrolambda!"/>

<TextView
android:id="@+id/text_lib"
<data>

<variable
name="fun"
type="me.tatarka.retrolambda.sample.lib.Function" />
</data>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
tools:text="Hello, retrolambda (from lib)!"/>
</LinearLayout>
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
tools:text="Hello, retrolambda!" />

<TextView
android:id="@+id/text_lib"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
tools:text="Hello, retrolambda (from lib)!" />

<TextView
android:id="@+id/text_databinding"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@{fun}"
tools:text="Hello, retrolambda (from databinding)!" />
</LinearLayout>
</layout>
9 changes: 5 additions & 4 deletions sample-android-lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ buildscript {
repositories {
mavenLocal()
jcenter()
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.android.databinding:dataBinder:1.0-rc1'
classpath "me.tatarka:gradle-retrolambda:${rootProject.version}"
classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2'
}
Expand All @@ -15,11 +15,12 @@ buildscript {
}

repositories {
mavenCentral()
jcenter()
}

apply plugin: 'com.android.library'
apply plugin: 'me.tatarka.retrolambda'
apply plugin: 'com.android.databinding'

android {
compileSdkVersion 22
Expand All @@ -46,5 +47,5 @@ android {
}

dependencies {
compile 'com.android.support:support-annotations:22.2.0'
compile 'com.android.support:support-annotations:22.2.1'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package me.tatarka.retrolambda.sample.lib;

import android.databinding.BindingAdapter;
import android.widget.TextView;

public class BindingAdapters {
@BindingAdapter("android:text")
public static void setTextFunction(TextView textView, Function function) {
String value = function.run();
textView.setText(value);
}
}
2 changes: 1 addition & 1 deletion src/main/groovy/me/tatarka/RetrolambdaPlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import org.gradle.api.plugins.JavaPlugin
* To change this template use File | Settings | File Templates.
*/
public class RetrolambdaPlugin implements Plugin<Project> {
protected static def retrolambdaCompile = "net.orfjackal.retrolambda:retrolambda:2.0.3"
protected static def retrolambdaCompile = "net.orfjackal.retrolambda:retrolambda:2.0.5"

@Override
void apply(Project project) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/groovy/me/tatarka/RetrolambdaPluginAndroid.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ public class RetrolambdaPluginAndroid implements Plugin<Project> {
def android = project.extensions.getByType(AppExtension)
android.applicationVariants.all { BaseVariant variant ->
configureCompileJavaTask(project, variant.name, variant.javaCompile)


}
android.testVariants.all { TestVariant variant ->
configureCompileJavaTask(project, variant.name, variant.javaCompile)
Expand Down Expand Up @@ -125,7 +123,9 @@ public class RetrolambdaPluginAndroid implements Plugin<Project> {
project.logger.warn("$extractAnnotations.name is incompatible with java 8 sources and has been disabled.")
}

JavaCompile compileUnitTest = (JavaCompile) project.tasks.findByName("compile${variant.capitalize()}UnitTestJava")
JavaCompile compileUnitTest = (JavaCompile) project.tasks.find { task ->
task.name.startsWith("compile${variant.capitalize()}UnitTestJava")
}
if (compileUnitTest) {
configureUnitTestTask(project, variant, compileUnitTest)
}
Expand Down
104 changes: 104 additions & 0 deletions src/test/groovy/me/tatarka/RetrolambdaAndroidPluginTest.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package me.tatarka

import org.gradle.api.Project
import org.gradle.testfixtures.ProjectBuilder
import org.junit.Test

import static org.junit.Assert.assertNotNull

class RetrolambdaAndroidPluginTest {
@Test
void testCreateTask() {
Project project = ProjectBuilder.builder().build()
project.apply plugin: 'com.android.application'
project.apply plugin: 'me.tatarka.retrolambda'
project.android {
compileSdkVersion 19
buildToolsVersion "19.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
}
project.evaluate()
assertNotNull project.tasks.findByName('compileRetrolambdaDebug')
}

@Test
void testCreateBuildTypeTask() {
Project project = ProjectBuilder.builder().build()
project.apply plugin: 'com.android.application'
project.apply plugin: 'me.tatarka.retrolambda'
project.android {
compileSdkVersion 19
buildToolsVersion "19.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}

buildTypes {
other
}
}
project.evaluate()
assertNotNull project.tasks.findByName('compileRetrolambdaOther')
}

@Test
void testCreateFlavorTask() {
Project project = ProjectBuilder.builder().build()
project.apply plugin: 'com.android.application'
project.apply plugin: 'me.tatarka.retrolambda'
project.android {
compileSdkVersion 19
buildToolsVersion "19.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}

productFlavors {
other
}
}
project.evaluate()
assertNotNull project.tasks.findByName('compileRetrolambdaOtherDebug')
}

@Test
void testAptCompatibility() {
Project project = ProjectBuilder.builder().build()
project.apply plugin: 'com.android.application'
project.apply plugin: 'com.neenbedankt.android-apt'
project.apply plugin: 'me.tatarka.retrolambda'
project.android {
compileSdkVersion 19
buildToolsVersion "19.1"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
}
project.repositories {
mavenCentral()
}
project.dependencies {
apt 'com.google.dagger:dagger-compiler:2.0'
}
project.evaluate()
//TODO: what exactly should I be looking for?
}
}
Loading

0 comments on commit 937deba

Please sign in to comment.