diff --git a/libraries/tools/kotlin-maven-plugin-test/pom.xml b/libraries/tools/kotlin-maven-plugin-test/pom.xml
index 2df1c39f552..6625860322e 100644
--- a/libraries/tools/kotlin-maven-plugin-test/pom.xml
+++ b/libraries/tools/kotlin-maven-plugin-test/pom.xml
@@ -107,8 +107,6 @@
maven-invoker-plugin
2.0.0
- src/it
- ${project.build.directory}/it
*/pom.xml
@@ -131,6 +129,10 @@
org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.version}
org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.version}
org.jetbrains.kotlin:kotlin-reflect:${project.version}
+ org.jetbrains.kotlin:kotlin-stdlib:${project.version}:jar:modular
+ org.jetbrains.kotlin:kotlin-stdlib-jdk7:${project.version}:jar:modular
+ org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.version}:jar:modular
+ org.jetbrains.kotlin:kotlin-reflect:${project.version}:jar:modular
org.jetbrains.kotlin:kotlin-test-common:${project.version}
org.jetbrains.kotlin:kotlin-test-annotations-common:${project.version}
org.jetbrains.kotlin:kotlin-test:${project.version}
@@ -152,12 +154,28 @@
integration-test
+
+ src/it
+ ${project.build.directory}/it
+
install
run
+
+ integration-test-java9
+
+ src/it/java9
+ ${project.build.directory}/it/java9
+ ${env.JDK_9}
+
+
+ install
+ run
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/pom.xml
new file mode 100644
index 00000000000..72309cf3233
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+ test-mavenModular
+ org.test
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ test-mavenModularApp
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+
+
+
+ org.jetbrains.kotlin
+ kotlin-test-junit
+ ${kotlin.version}
+ test
+
+
+
+
+ src/main/java
+ src/test/java
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ compile
+ process-sources
+
+ compile
+
+
+
+ test-compile
+ test-compile
+
+ test-compile
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/module-info.java b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/module-info.java
new file mode 100644
index 00000000000..66b859df73e
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/module-info.java
@@ -0,0 +1,6 @@
+module org.test.modularApp {
+ requires transitive kotlin.stdlib;
+ requires kotlin.stdlib.jdk8;
+
+ exports org.test.modularApp;
+}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/org/test/modularApp/Hello.kt b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/org/test/modularApp/Hello.kt
new file mode 100644
index 00000000000..d81c2e48a69
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/app/src/main/java/org/test/modularApp/Hello.kt
@@ -0,0 +1,13 @@
+/*
+ * Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
+ * that can be found in the license/LICENSE.txt file.
+ */
+
+package org.test.modularApp
+
+import kotlin.math.*
+import kotlin.random.*
+
+fun main() {
+ println(Random.nextDouble(abs(sin(PI) + cos(PI))))
+}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/jlinked/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/jlinked/pom.xml
new file mode 100644
index 00000000000..6567fbbad7d
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/jlinked/pom.xml
@@ -0,0 +1,105 @@
+
+
+
+ test-mavenModular
+ org.test
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ test-mavenModular-jlinked
+ jar
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+ modular
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-common
+
+
+ org.jetbrains
+ annotations
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk7
+ ${kotlin.version}
+ modular
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+ ${kotlin.version}
+ modular
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk7
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+
+
+
+
+
+ org.test
+ test-mavenModularApp
+ 1.0-SNAPSHOT
+
+
+ org.jetbrains.kotlin
+ kotlin-stdlib-jdk8
+
+
+
+
+
+
+
+
+
+ maven-jar-plugin
+
+
+
+ default-jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jlink-plugin
+ 3.0.0-alpha-1
+
+
+ jlink
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/pom.xml
new file mode 100644
index 00000000000..d3b42401e17
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/pom.xml
@@ -0,0 +1,43 @@
+
+
+
+ 4.0.0
+
+ org.test
+ test-mavenModular
+ 1.0-SNAPSHOT
+ pom
+
+ mavenModular Example
+
+
+ UTF-8
+ 4.12
+
+
+
+ app
+ jlinked
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.9
+ 1.9
+
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/verify.groovy b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/verify.groovy
new file mode 100644
index 00000000000..7cd23c168d1
--- /dev/null
+++ b/libraries/tools/kotlin-maven-plugin-test/src/it/java9/test-jlink-modular-artifacts/verify.groovy
@@ -0,0 +1,22 @@
+import java.io.*;
+
+File file = new File(basedir, "jlinked/target/maven-jlink/release")
+if (!file.exists() || !file.isFile()) {
+ throw new FileNotFoundException("Could not find generated image release file: " + file)
+}
+
+def releaseProps = new Properties()
+releaseProps.load(new FileReader(file))
+
+def modules = releaseProps.getProperty("MODULES")
+assert modules != null : "MODULES property missing"
+
+if (modules.startsWith("\"") && modules.endsWith("\"")) modules = modules[1..-2]
+
+println("jlink has built an image with modules: $modules")
+
+def moduleSet = modules.tokenize(" ").toSet()
+
+for (module in ["java.base", "kotlin.stdlib", "kotlin.stdlib.jdk7", "kotlin.stdlib.jdk8", "org.test.modularApp"]) {
+ assert moduleSet.contains(module) : "Expected to find $module in image modules: $modules"
+}
\ No newline at end of file