From 2c9b2652c14c6f7361f9c3a3224fd49cb4cbf7f7 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Wed, 12 Oct 2016 04:03:32 +0300 Subject: [PATCH] kotlin-maven-plugin: Add apiVersion parameter linked with kotlin.compiler.apiVersion property. Test apiVersion parameter is applied as explicitly and as implicitly inferred from languageVersion. #KT-14298 --- .../src/it/test-apiVersion/invoker.properties | 1 + .../src/it/test-apiVersion/pom.xml | 67 +++++++++++++++++++ .../test-apiVersion/src/main/kotlin/main.kt | 4 ++ .../src/it/test-apiVersion/verify.bsh | 4 ++ .../src/it/test-languageVersion/pom.xml | 2 +- .../src/main/kotlin/main.kt | 4 ++ .../src/it/test-languageVersion/verify.bsh | 1 + .../kotlin/maven/KotlinCompileMojoBase.java | 5 ++ 8 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/invoker.properties create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/pom.xml create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/src/main/kotlin/main.kt create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/verify.bsh diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/invoker.properties b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/invoker.properties new file mode 100644 index 00000000000..c21e972fc6b --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/invoker.properties @@ -0,0 +1 @@ +invoker.buildResult = failure diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/pom.xml new file mode 100644 index 00000000000..c9f308adce1 --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + org.jetbrains.kotlin + test-apiVersion + 1.0-SNAPSHOT + + + + junit + junit + 4.9 + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + + + + + 1.0 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.6 + 1.6 + + + + org.apache.maven.plugins + maven-source-plugin + 2.1.2 + + + + + ${project.basedir}/src/main/kotlin + + + kotlin-maven-plugin + org.jetbrains.kotlin + ${kotlin.version} + + + compile + process-sources + + compile + + + + + + + + diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/src/main/kotlin/main.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/src/main/kotlin/main.kt new file mode 100644 index 00000000000..b894766ebde --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/src/main/kotlin/main.kt @@ -0,0 +1,4 @@ +fun useApiFrom11() { + mapOf().toMutableMap() +} + diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/verify.bsh new file mode 100644 index 00000000000..8959db27a9d --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-apiVersion/verify.bsh @@ -0,0 +1,4 @@ +source(new File(basedir, "../../../verify-common.bsh").getAbsolutePath()); + +assertBuildLogHasLine("[INFO] BUILD FAILURE"); +assertBuildLogHasLineThatContains("Unresolved reference: toMutableMap"); diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml index 5da0f97072e..5baec33d41a 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/pom.xml @@ -16,7 +16,7 @@ org.jetbrains.kotlin - kotlin-runtime + kotlin-stdlib ${kotlin.version} diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt index a4c2f854f25..6a0652d0885 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/src/main/kotlin/main.kt @@ -1,3 +1,7 @@ sealed class Base class Derived : Base() + +fun useApiFrom11() { + mapOf().toMutableMap() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh index d5c0ef985e5..dcca2c06e44 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh +++ b/libraries/tools/kotlin-maven-plugin-test/src/it/test-languageVersion/verify.bsh @@ -2,3 +2,4 @@ source(new File(basedir, "../../../verify-common.bsh").getAbsolutePath()); assertBuildLogHasLine("[INFO] BUILD FAILURE"); assertBuildLogHasLineThatContains("This type is sealed"); +assertBuildLogHasLineThatContains("Unresolved reference: toMutableMap"); diff --git a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java index b2bc42c9eed..7c0943983dc 100644 --- a/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java +++ b/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java @@ -114,6 +114,10 @@ public abstract class KotlinCompileMojoBase e @Parameter(property = "kotlin.compiler.languageVersion", required = false, readonly = false) protected String languageVersion; + + @Parameter(property = "kotlin.compiler.apiVersion", required = false, readonly = false) + protected String apiVersion; + /** * Additional command line arguments for Kotlin compiler. */ @@ -222,6 +226,7 @@ public abstract class KotlinCompileMojoBase e arguments.suppressWarnings = nowarn; arguments.languageVersion = languageVersion; + arguments.apiVersion = apiVersion; getLog().info("Compiling Kotlin sources from " + sources);