From c4147bc2fd6e289f91c83dc101c85195203aaea1 Mon Sep 17 00:00:00 2001 From: Andrey Zinovyev Date: Thu, 1 Apr 2021 12:30:41 +0300 Subject: [PATCH] [lombok] Add integration test for gradle plugin --- .../build.gradle.kts | 1 + .../jetbrains/kotlin/gradle/SubpluginsIT.kt | 8 ++++++ .../testProject/lombokProject/build.gradle | 18 +++++++++++++ .../lombokProject/nokapt/build.gradle | 14 +++++++++++ .../nokapt/src/main/java/lab/JavaUsage.java | 12 +++++++++ .../nokapt/src/main/java/lab/SomePojo.java | 14 +++++++++++ .../nokapt/src/main/kotlin/lab/KotlinUsage.kt | 10 ++++++++ .../testProject/lombokProject/settings.gradle | 1 + .../lombokProject/withconfig/build.gradle | 25 +++++++++++++++++++ .../lombokProject/withconfig/lombok.config | 3 +++ .../src/main/java/lab2/JavaUsage.java | 12 +++++++++ .../src/main/java/lab2/ManualPojo.java | 22 ++++++++++++++++ .../src/main/java/lab2/SomePojo.java | 18 +++++++++++++ .../src/main/kotlin/lab2/KotlinUsage.kt | 16 ++++++++++++ .../lombokProject/yeskapt/build.gradle | 21 ++++++++++++++++ .../yeskapt/src/main/java/lab/JavaUsage.java | 10 ++++++++ .../yeskapt/src/main/java/lab/SomePojo.java | 13 ++++++++++ .../src/main/kotlin/lab/KotlinUsage.kt | 9 +++++++ 18 files changed, 227 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/JavaUsage.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/SomePojo.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/kotlin/lab/KotlinUsage.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/settings.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/lombok.config create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/JavaUsage.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/ManualPojo.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/SomePojo.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/kotlin/lab2/KotlinUsage.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/JavaUsage.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/SomePojo.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/kotlin/lab/KotlinUsage.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index d135987dee9..ac4014a021f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -20,6 +20,7 @@ dependencies { testImplementation(project(":kotlin-gradle-subplugin-example")) testImplementation(project(":kotlin-allopen")) testImplementation(project(":kotlin-noarg")) + testImplementation(project(":kotlin-lombok")) testImplementation(project(":kotlin-sam-with-receiver")) testImplementation(project(":kotlin-test:kotlin-test-jvm")) testImplementation(project(":native:kotlin-native-utils")) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SubpluginsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SubpluginsIT.kt index 6eda7f5b207..2a8665d035a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SubpluginsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SubpluginsIT.kt @@ -263,4 +263,12 @@ class SubpluginsIT : BaseGradleIT() { } } } + + @Test + fun testLombokPlugin() { + Project("lombokProject").build("build") { + assertSuccessful() + } + + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/build.gradle new file mode 100644 index 00000000000..e4c38240b15 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/build.gradle @@ -0,0 +1,18 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + } + + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath "org.jetbrains.kotlin:kotlin-lombok:$kotlin_version" + } +} + +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/build.gradle new file mode 100644 index 00000000000..813833cbb05 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/build.gradle @@ -0,0 +1,14 @@ +plugins { + id "java" + id "kotlin" + id "kotlin-lombok" + id "io.freefair.lombok" version "5.3.0" +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" +} + + + + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/JavaUsage.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/JavaUsage.java new file mode 100644 index 00000000000..42794bcd8de --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/JavaUsage.java @@ -0,0 +1,12 @@ +package lab; + +public class JavaUsage { + + public static void main(String[] args) { + SomePojo obj = new SomePojo(); + obj.setAge(12); + boolean v = obj.isHuman(); + obj.setHuman(!v); + System.out.println(obj); + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/SomePojo.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/SomePojo.java new file mode 100644 index 00000000000..724305252d4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/java/lab/SomePojo.java @@ -0,0 +1,14 @@ +package lab; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter @Setter @ToString +public class SomePojo { + + private String name; + private int age; + private boolean human; + +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/kotlin/lab/KotlinUsage.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/kotlin/lab/KotlinUsage.kt new file mode 100644 index 00000000000..3d5076ce518 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/nokapt/src/main/kotlin/lab/KotlinUsage.kt @@ -0,0 +1,10 @@ +package lab + +fun main() { + val obj = SomePojo() + obj.name = "test" + obj.age = 12 + val v = obj.isHuman + obj.isHuman = !v + println(obj) +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/settings.gradle new file mode 100644 index 00000000000..a5ca1d5dd7c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/settings.gradle @@ -0,0 +1 @@ +include ':nokapt', ':yeskapt', ":withconfig" diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/build.gradle new file mode 100644 index 00000000000..69ef142e26a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/build.gradle @@ -0,0 +1,25 @@ +plugins { + id "java" + id "kotlin" + id "kotlin-kapt" + id "kotlin-lombok" + id "io.freefair.lombok" version "5.3.0" +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + + kapt "com.google.dagger:dagger-compiler:2.33" +} + +kapt { + keepJavacAnnotationProcessors = true +} + +kotlinLombok { + lombokConfigurationFile file("lombok.config") +} + + + + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/lombok.config b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/lombok.config new file mode 100644 index 00000000000..ba3e71620c0 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/lombok.config @@ -0,0 +1,3 @@ +config.stopBubbling = true + +lombok.getter.noIsPrefix = true diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/JavaUsage.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/JavaUsage.java new file mode 100644 index 00000000000..0b8f8f3a548 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/JavaUsage.java @@ -0,0 +1,12 @@ +package lab2; + +public class JavaUsage { + + public static void main(String[] args) { + SomePojo obj = new SomePojo(); + obj.setAge(12); + boolean v = obj.getHuman(); + obj.setHuman(!v); + System.out.println(obj); + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/ManualPojo.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/ManualPojo.java new file mode 100644 index 00000000000..d18d17396b4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/ManualPojo.java @@ -0,0 +1,22 @@ +package lab2; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class ManualPojo { + + public String getFoo() { + return null; + } + +// @NotNull + public String getBar() { + return "234"; + } + + @Nullable + public Object someMethod() { + return null; + } + +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/SomePojo.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/SomePojo.java new file mode 100644 index 00000000000..8f61a75f130 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/java/lab2/SomePojo.java @@ -0,0 +1,18 @@ +package lab2; + +import lombok.Getter; +import lombok.NonNull; +import lombok.Setter; +import lombok.ToString; +import org.jetbrains.annotations.Nullable; + +@Getter @Setter @ToString +public class SomePojo { + + @NonNull + private String name; + private int age; + + private boolean human; + +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/kotlin/lab2/KotlinUsage.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/kotlin/lab2/KotlinUsage.kt new file mode 100644 index 00000000000..ceecc40a755 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/withconfig/src/main/kotlin/lab2/KotlinUsage.kt @@ -0,0 +1,16 @@ +package lab2 + +fun main() { + val obj = SomePojo() + obj.name = "test" + val s: String = obj.name + obj.age = 12 + val v = obj.human + obj.human = !v + println(obj) + + val manualPojo = ManualPojo() + + val foo: String? = manualPojo.getFoo() + val res: Any? = manualPojo.someMethod() +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/build.gradle new file mode 100644 index 00000000000..e16077ef8f6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/build.gradle @@ -0,0 +1,21 @@ +plugins { + id "java" + id "kotlin" + id "kotlin-kapt" + id "kotlin-lombok" + id "io.freefair.lombok" version "5.3.0" +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + + kapt "com.google.dagger:dagger-compiler:2.33" +} + +kapt { + keepJavacAnnotationProcessors = true +} + + + + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/JavaUsage.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/JavaUsage.java new file mode 100644 index 00000000000..44b6921f8ca --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/JavaUsage.java @@ -0,0 +1,10 @@ +package lab; + +public class JavaUsage { + + public static void main(String[] args) { + SomePojo obj = new SomePojo(); + obj.setAge(12); + System.out.println(obj); + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/SomePojo.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/SomePojo.java new file mode 100644 index 00000000000..9c41f52a277 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/java/lab/SomePojo.java @@ -0,0 +1,13 @@ +package lab; + +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +@Getter @Setter @ToString +public class SomePojo { + + private String name; + private int age; + +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/kotlin/lab/KotlinUsage.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/kotlin/lab/KotlinUsage.kt new file mode 100644 index 00000000000..1f1fdada494 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/lombokProject/yeskapt/src/main/kotlin/lab/KotlinUsage.kt @@ -0,0 +1,9 @@ +package lab + +fun main() { + val obj = SomePojo() + obj.name = "test" + obj.age = 12 + println(obj.getName()) + println(obj) +}