diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/pom.xml new file mode 100644 index 00000000000..20ee11bf958 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/pom.xml @@ -0,0 +1,86 @@ + + + + 4.0.0 + + org.jetbrains.kotlin.examples + test-enable-extensions-kapt-allopen + 1.0-SNAPSHOT + + + 4.13.1 + coffee.CoffeeApp + UTF-8 + 1.8.255-SNAPSHOT + + + + + com.google.dagger + dagger + 2.9 + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + junit + junit + ${junit.version} + test + + + + + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + true + + + + all-open + + + + + + + com.google.dagger + dagger-compiler + 2.9 + + + + src/main/kotlin + src/main/java + + + + + + org.jetbrains.kotlin + kotlin-maven-allopen + ${kotlin.version} + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.5.1 + + none + 1.6 + 1.6 + + + + + diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/AllOpenTest.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/AllOpenTest.kt new file mode 100644 index 00000000000..1c924f086a8 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/AllOpenTest.kt @@ -0,0 +1,8 @@ +package coffee + +annotation class AllOpen + +@AllOpen +class MyClass + +class MyClass2 : MyClass() \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeApp.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeApp.kt new file mode 100755 index 00000000000..9e1d910ef48 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeApp.kt @@ -0,0 +1,18 @@ +package coffee + +import dagger.Component +import javax.inject.Singleton + +object CoffeeApp { + @Singleton + @Component(modules = arrayOf(DripCoffeeModule::class)) + interface Coffee { + fun maker(): CoffeeMaker + } + + @JvmStatic + fun main(args: Array) { + val coffee = DaggerCoffeeApp_Coffee.builder().build() + coffee.maker().brew() + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeMaker.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeMaker.kt new file mode 100755 index 00000000000..58e9de6e830 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/CoffeeMaker.kt @@ -0,0 +1,17 @@ +package coffee + +import dagger.Lazy +import javax.inject.Inject + +class CoffeeMaker @Inject constructor( + private val heater: Lazy, + private val pump: Pump +) { + + fun brew() { + heater.get().on() + pump.pump() + println(" [_]P coffee! [_]P ") + heater.get().off() + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/DripCoffeeModule.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/DripCoffeeModule.kt new file mode 100755 index 00000000000..a8c1dae2071 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/DripCoffeeModule.kt @@ -0,0 +1,13 @@ +package coffee + +import dagger.Module +import dagger.Provides +import javax.inject.Singleton + +@Module(includes = arrayOf(PumpModule::class)) +class DripCoffeeModule { + @Provides @Singleton + fun provideHeater(): Heater { + return ElectricHeater() + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/ElectricHeater.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/ElectricHeater.kt new file mode 100755 index 00000000000..6c1f1586a40 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/ElectricHeater.kt @@ -0,0 +1,14 @@ +package coffee + +open class ElectricHeater : Heater { + override var isHot: Boolean = false + + override fun on() { + println("~ ~ ~ heating ~ ~ ~") + this.isHot = true + } + + override fun off() { + this.isHot = false + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Heater.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Heater.kt new file mode 100755 index 00000000000..f2ec5dabcc8 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Heater.kt @@ -0,0 +1,7 @@ +package coffee + +interface Heater { + fun on() + fun off() + val isHot: Boolean +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Pump.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Pump.kt new file mode 100755 index 00000000000..5c454538984 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Pump.kt @@ -0,0 +1,5 @@ +package coffee + +interface Pump { + fun pump() +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/PumpModule.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/PumpModule.kt new file mode 100755 index 00000000000..a892e2b7700 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/PumpModule.kt @@ -0,0 +1,10 @@ +package coffee + +import dagger.Binds +import dagger.Module + +@Module +abstract class PumpModule { + @Binds + abstract fun providePump(pump: Thermosiphon): Pump +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Thermosiphon.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Thermosiphon.kt new file mode 100755 index 00000000000..09c84cff056 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/main/kotlin/Thermosiphon.kt @@ -0,0 +1,12 @@ +package coffee + +import javax.inject.Inject + +class Thermosiphon @Inject +constructor(private val heater: Heater) : Pump { + override fun pump() { + if (heater.isHot) { + println("=> => pumping => =>") + } + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/test/kotlin/hello/tests/ExampleTest.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/test/kotlin/hello/tests/ExampleTest.kt new file mode 100644 index 00000000000..9b3f523e866 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/src/test/kotlin/hello/tests/ExampleTest.kt @@ -0,0 +1,39 @@ +package hello.tests + +import coffee.* +import dagger.Component +import dagger.Module +import dagger.Provides +import junit.framework.TestCase +import javax.inject.Singleton + +private var executed = false + +class ExampleTest : TestCase() { + @Singleton + @Component(modules = arrayOf(TestCoffeeModule::class)) + interface Coffee { + fun maker(): CoffeeMaker + } + + @Module(includes = arrayOf(PumpModule::class)) + class TestCoffeeModule { + @Provides @Singleton + fun provideHeater(): Heater { + return object: ElectricHeater() { + override fun on() { + println("~ psh ~ psh ~ psh ~") + println("(from tests)") + executed = true + super.on() + } + } + } + } + + fun testAssert() { + val coffee = DaggerExampleTest_Coffee.builder().build() + coffee.maker().brew() + assert(executed) + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/verify.bsh new file mode 100644 index 00000000000..c4962df0334 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions-kapt-allopen/verify.bsh @@ -0,0 +1,11 @@ +import java.io.*; + +File file = new File(basedir, "target/test-enable-extensions-kapt-allopen-1.0-SNAPSHOT.jar"); +if (!file.exists() || !file.isFile()) { + throw new FileNotFoundException("Could not find generated JAR: " + file); +} + +File generatedFile = new File(basedir, "target/generated-sources/kapt/compile/coffee/CoffeeMaker_Factory.java"); +if (!generatedFile.exists() || !generatedFile.isFile()) { + throw new FileNotFoundException("Kapt was not executed, file is absent: " + generatedFile); +} \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/pom.xml new file mode 100644 index 00000000000..95b0d1c05d5 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + org.jetbrains.kotlin + test-enable-extensions + 1.0-SNAPSHOT + + + + junit + junit + 4.13.1 + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + + + src/main/kotlin + src/test/kotlin + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + true + + + + + \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/main/kotlin/org/jetbrains/HelloWorld.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/main/kotlin/org/jetbrains/HelloWorld.kt new file mode 100644 index 00000000000..51fff4c4038 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/main/kotlin/org/jetbrains/HelloWorld.kt @@ -0,0 +1,10 @@ +package org.jetbrains + + +fun main(args : Array) { + System.out?.println(getGreeting()) +} + +fun getGreeting() : String { + return "Hello, World!" +} \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/test/java/org/jetbrains/HelloWorldJavaTest.java b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/test/java/org/jetbrains/HelloWorldJavaTest.java new file mode 100644 index 00000000000..312e9ae713d --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/src/test/java/org/jetbrains/HelloWorldJavaTest.java @@ -0,0 +1,13 @@ +package org.jetbrains; + +import org.junit.Test; + +import static junit.framework.Assert.assertEquals; + +public class HelloWorldJavaTest { + + @Test + public void greeting() { + assertEquals("Hello, World!", org.jetbrains.HelloWorldKt.getGreeting()); + } +} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/verify.bsh new file mode 100644 index 00000000000..6124024aabf --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-enable-extensions/verify.bsh @@ -0,0 +1,6 @@ +import java.io.*; + +File file = new File(basedir, "target/test-enable-extensions-1.0-SNAPSHOT.jar"); +if (!file.exists() || !file.isFile()) { + throw new FileNotFoundException("Could not find generated JAR: " + file); +}