diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
index 0e879ef8fc9..c42ec42b075 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt
@@ -615,7 +615,7 @@ open class Kapt3IT : Kapt3BaseIT() {
val kaptProject = Project("simple", directoryPrefix = "kapt2").apply { setupWorkingDir() }
kaptProject.projectDir.copyRecursively(projectDir.resolve("simple"))
- projectDir.resolve("settings.gradle").writeText("include 'simple'")
+ projectDir.resolve("settings.gradle").appendText("include 'simple'")
gradleBuildScript().appendText("\ndependencies { implementation project(':simple') }")
testResolveAllConfigurations()
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt
index 287da368cda..f3fa5587838 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt
@@ -413,8 +413,10 @@ class KotlinGradleIT : BaseGradleIT() {
val project = Project("kotlinProject")
project.setupWorkingDir()
File(project.projectDir, "build.gradle").modify {
- it.replace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib").apply { check(!equals(it)) } + "\n" + """
- apply plugin: 'maven-publish'
+ """
+ $it
+
+ plugins.apply('maven-publish')
group = "com.example"
version = "1.0"
@@ -442,7 +444,7 @@ class KotlinGradleIT : BaseGradleIT() {
assertSuccessful()
assertTasksExecuted(":compileKotlin", ":compileTestKotlin")
val pomLines = File(project.projectDir, "build/publications/myLibrary/pom-default.xml").readLines()
- val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1
+ val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib-jdk8" in it } + 1
val versionLine = pomLines[stdlibVersionLineNumber]
assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine }
}
@@ -1116,14 +1118,16 @@ class KotlinGradleIT : BaseGradleIT() {
}
@Test
- fun testLoadCompilerEmbeddableAfterOtherKotlinArtifacts() = with(Project("simpleProject")) {
+ fun testLoadCompilerEmbeddableAfterOtherKotlinArtifacts() = with(Project("simpleProjectClasspath")) {
setupWorkingDir()
val buildscriptClasspathPrefix = "buildscript-classpath = "
- gradleBuildScript().appendText(
- "\n" + """
+ gradleBuildScript()
+ .appendText(
+ """
+
println "$buildscriptClasspathPrefix" + Arrays.toString(buildscript.classLoader.getURLs())
- """.trimIndent()
- )
+ """.trimIndent()
+ )
// get the classpath, then reorder it so that kotlin-compiler-embeddable is loaded after all other JARs
lateinit var classpath: List
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt
index bf543a1c4a8..e52c6caf889 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt
@@ -256,22 +256,24 @@ class KotlinSpecificDependenciesIT : BaseGradleIT() {
@Test
fun testNoFailureIfConfigurationIsObserved() = with(jvmProject()) {
- lateinit var originalScript: String
- try {
- gradleBuildScript().modify {
- originalScript = it
- """
- configurations.create("api")
- dependencies {
- api("org.jetbrains.kotlin:kotlin-reflect")
- }
- println(configurations.api.incoming.dependencies.toList())
- """.trimIndent() + "\n" + it
+ gradleBuildScript().modify {
+ //language=Groovy
+ """
+ $it
+
+ configurations {
+ apiTest
+ api.extendsFrom(apiTest)
}
- checkTaskCompileClasspath("compileKotlin", listOf("kotlin-reflect"))
- } finally {
- gradleBuildScript().writeText(originalScript)
+
+ dependencies {
+ apiTest("org.jetbrains.kotlin:kotlin-reflect")
+ }
+ println(configurations.apiTest.incoming.resolutionResult.allDependencies)
+ println(configurations.apiTest.incoming.dependencies.toList())
+ """.trimIndent()
}
+ checkTaskCompileClasspath("compileKotlin", listOf("kotlin-reflect"))
}
private fun Project.checkConfigurationContent(
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt
index 4dbf47c60c1..c14bac16d4e 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt
@@ -115,8 +115,7 @@ class UpToDateIT : BaseGradleIT() {
override fun initProject(project: Project) = with(project) {
buildGradle.appendText(
"\n" + """
- buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-allopen:${'$'}kotlin_version" } }
- apply plugin: "kotlin-allopen"
+ plugins.apply("org.jetbrains.kotlin.plugin.allopen")
allOpen { annotation("allopen.Foo"); annotation("allopen.Bar") }
""".trimIndent()
)
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle
new file mode 100644
index 00000000000..3d37bf0b81c
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle
@@ -0,0 +1,10 @@
+pluginManagement {
+ repositories {
+ mavenLocal()
+ mavenCentral()
+ }
+
+ plugins {
+ id "org.jetbrains.kotlin.jvm" version "$kotlin_version"
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle
index 96f923ba4c2..541a22b92c5 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle
@@ -1,5 +1,6 @@
plugins {
id "org.jetbrains.kotlin.jvm"
+ id "org.jetbrains.kotlin.plugin.allopen" apply false
}
repositories {
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle
index 30321765924..3934435f618 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle
@@ -4,9 +4,11 @@ pluginManagement {
repositories {
mavenLocal()
mavenCentral()
+ gradlePluginPortal()
}
plugins {
id "org.jetbrains.kotlin.jvm" version "$kotlin_version"
+ id "org.jetbrains.kotlin.plugin.allopen" version "$kotlin_version"
}
}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle
new file mode 100644
index 00000000000..3d37bf0b81c
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle
@@ -0,0 +1,10 @@
+pluginManagement {
+ repositories {
+ mavenLocal()
+ mavenCentral()
+ }
+
+ plugins {
+ id "org.jetbrains.kotlin.jvm" version "$kotlin_version"
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle
new file mode 100644
index 00000000000..48160614dc4
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle
@@ -0,0 +1,33 @@
+buildscript {
+ repositories {
+ mavenLocal()
+ mavenCentral()
+ }
+ dependencies {
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ }
+}
+
+apply plugin: "kotlin"
+apply plugin: "java"
+
+sourceSets {
+ deploy
+}
+
+repositories {
+ mavenLocal()
+ mavenCentral()
+}
+
+dependencies {
+ implementation 'com.google.guava:guava:12.0'
+ deployImplementation 'com.google.guava:guava:12.0'
+ testImplementation 'org.testng:testng:6.8'
+ implementation "org.jetbrains.kotlin:kotlin-stdlib"
+ deployImplementation "org.jetbrains.kotlin:kotlin-stdlib"
+}
+
+test {
+ useTestNG()
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt
new file mode 100644
index 00000000000..eec86b34406
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt
@@ -0,0 +1,12 @@
+package demo
+
+import com.google.common.primitives.Ints
+import com.google.common.base.Joiner
+
+class ExampleSource(param : Int) {
+ val property = param
+ fun f() : String? {
+ return "Hello World"
+ }
+}
+
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java
new file mode 100644
index 00000000000..ec2831d8d21
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java
@@ -0,0 +1,17 @@
+package demo;
+
+/**
+ * Created by Nikita.Skvortsov
+ * Date: 3/1/13, 10:53 AM
+ */
+public class Greeter {
+ private final String myGreeting;
+
+ public Greeter(String greeting) {
+ myGreeting = greeting;
+ }
+
+ public String getGreeting() {
+ return myGreeting;
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java
new file mode 100644
index 00000000000..2bc6463319b
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java
@@ -0,0 +1,18 @@
+package demo;
+
+/**
+ * Created by Nikita.Skvortsov
+ * Date: 3/1/13, 10:50 AM
+ */
+public class HelloWorld {
+ public static void main(String[] args) {
+ final KotlinGreetingJoiner example = new KotlinGreetingJoiner(new Greeter("Hi"));
+
+ example.addName("Harry");
+ example.addName("Ron");
+ example.addName(null);
+ example.addName("Hermione");
+
+ System.out.println(example.getJoinedGreeting());
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt
new file mode 100644
index 00000000000..b3e99bbdd59
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt
@@ -0,0 +1,20 @@
+package demo
+
+import com.google.common.primitives.Ints
+import com.google.common.base.Joiner
+import java.util.ArrayList
+
+class KotlinGreetingJoiner(val greeter : Greeter) {
+
+ val names = ArrayList()
+
+ fun addName(name : String?): Unit{
+ names.add(name)
+ }
+
+ fun getJoinedGreeting() : String? {
+ val joiner = Joiner.on(" and ").skipNulls();
+ return "${greeter.getGreeting()} ${joiner.join(names)}"
+ }
+}
+
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt
new file mode 100644
index 00000000000..1a7a3a23b80
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt
@@ -0,0 +1,21 @@
+package demo
+
+import com.google.common.primitives.Ints
+import com.google.common.base.Joiner
+import org.testng.Assert.*
+import org.testng.annotations.AfterMethod
+import org.testng.annotations.BeforeMethod
+import org.testng.annotations.Test as test
+
+class TestSource() {
+ @test fun f() {
+ val example : KotlinGreetingJoiner = KotlinGreetingJoiner(Greeter("Hi"))
+ example.addName("Harry")
+ example.addName("Ron")
+ example.addName(null)
+ example.addName("Hermione")
+
+ assertEquals(example.getJoinedGreeting(), "Hi Harry and Ron and Hermione")
+ }
+}
+