From 3a90f3618a00b19f839a25e524fe7d0260e5dc2f Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 14 Nov 2017 18:46:22 +0300 Subject: [PATCH] Don't force configure with kotlin-jdk artifacts for early versions (KT-21028) #KT-21028 Fixed --- ...ureProjectByChangingFileTestGenerated.java | 6 ++ ...ureProjectByChangingFileTestGenerated.java | 6 ++ .../testData/configurator/jvm/jreLib/pom.xml | 16 +++++ .../configurator/jvm/jreLib/pom_after.xml | 64 +++++++++++++++++++ .../idea/versions/KotlinRuntimeLibraryUtil.kt | 7 +- .../gradle/jreLib/build_after.gradle | 28 ++++++++ .../gradle/jreLib/build_before.gradle | 2 + .../gsk/eap11Version/build_after.gradle.kts | 2 +- 8 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 idea/idea-maven/testData/configurator/jvm/jreLib/pom.xml create mode 100644 idea/idea-maven/testData/configurator/jvm/jreLib/pom_after.xml create mode 100644 idea/testData/configuration/gradle/jreLib/build_after.gradle create mode 100644 idea/testData/configuration/gradle/jreLib/build_before.gradle diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java index d9db3671e0d..8bfa80c1126 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java @@ -50,6 +50,12 @@ public class GradleConfigureProjectByChangingFileTestGenerated extends AbstractG doTestGradle(fileName); } + @TestMetadata("jreLib") + public void testJreLib() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/jreLib/"); + doTestGradle(fileName); + } + @TestMetadata("js") public void testJs() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/configuration/gradle/js/"); diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java index ddefb0a0d0f..32a13bf88cc 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java @@ -44,6 +44,12 @@ public class MavenConfigureProjectByChangingFileTestGenerated extends AbstractMa doTestWithMaven(fileName); } + @TestMetadata("jreLib") + public void testJreLib() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/configurator/jvm/jreLib/"); + doTestWithMaven(fileName); + } + @TestMetadata("libraryMissed") public void testLibraryMissed() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/idea-maven/testData/configurator/jvm/libraryMissed/"); diff --git a/idea/idea-maven/testData/configurator/jvm/jreLib/pom.xml b/idea/idea-maven/testData/configurator/jvm/jreLib/pom.xml new file mode 100644 index 00000000000..a72673feadc --- /dev/null +++ b/idea/idea-maven/testData/configurator/jvm/jreLib/pom.xml @@ -0,0 +1,16 @@ + + + 4.0.0 + + maventest + maventest + 1.0-SNAPSHOT + + + + + \ No newline at end of file diff --git a/idea/idea-maven/testData/configurator/jvm/jreLib/pom_after.xml b/idea/idea-maven/testData/configurator/jvm/jreLib/pom_after.xml new file mode 100644 index 00000000000..6cc105c4911 --- /dev/null +++ b/idea/idea-maven/testData/configurator/jvm/jreLib/pom_after.xml @@ -0,0 +1,64 @@ + + + 4.0.0 + + maventest + maventest + 1.0-SNAPSHOT + + + $VERSION$ + + + + + org.jetbrains.kotlin + kotlin-stdlib-jre8 + ${kotlin.version} + + + org.jetbrains.kotlin + kotlin-test + ${kotlin.version} + test + + + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + 1.8 + + + + + + + + + \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt index 723a70acffc..fd0197d1f09 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt @@ -315,10 +315,13 @@ fun getStdlibArtifactId(sdk: Sdk?, version: String): String { return MAVEN_STDLIB_ID } + val areSDKArtifactsAvailable = VersionComparatorUtil.COMPARATOR.compare("1.2.0-rc-39", version) >= 0 val sdkVersion = sdk?.version return when { - sdkVersion != null && sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_8) -> MAVEN_STDLIB_ID_JDK8 - sdkVersion == JavaSdkVersion.JDK_1_7 -> MAVEN_STDLIB_ID_JDK7 + sdkVersion != null && sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_8) -> + if (areSDKArtifactsAvailable) MAVEN_STDLIB_ID_JDK8 else MAVEN_STDLIB_ID_JDK7 + sdkVersion == JavaSdkVersion.JDK_1_7 -> + if (areSDKArtifactsAvailable) MAVEN_STDLIB_ID_JDK7 else MAVEN_STDLIB_ID_JRE7 else -> MAVEN_STDLIB_ID } } diff --git a/idea/testData/configuration/gradle/jreLib/build_after.gradle b/idea/testData/configuration/gradle/jreLib/build_after.gradle new file mode 100644 index 00000000000..73bfa0e6621 --- /dev/null +++ b/idea/testData/configuration/gradle/jreLib/build_after.gradle @@ -0,0 +1,28 @@ +// VERSION: $VERSION$ +buildscript { + ext.kotlin_version = '$VERSION$' + repositories { + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} +apply plugin: 'kotlin' +repositories { + mavenCentral() +} +dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" +} +compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} +compileTestKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} +// JDK: 1.8 \ No newline at end of file diff --git a/idea/testData/configuration/gradle/jreLib/build_before.gradle b/idea/testData/configuration/gradle/jreLib/build_before.gradle new file mode 100644 index 00000000000..58f03887a89 --- /dev/null +++ b/idea/testData/configuration/gradle/jreLib/build_before.gradle @@ -0,0 +1,2 @@ +// VERSION: 1.1.60 +// JDK: 1.8 \ No newline at end of file diff --git a/idea/testData/configuration/gsk/eap11Version/build_after.gradle.kts b/idea/testData/configuration/gsk/eap11Version/build_after.gradle.kts index dd1ae4e4de4..091bf09f82e 100644 --- a/idea/testData/configuration/gsk/eap11Version/build_after.gradle.kts +++ b/idea/testData/configuration/gsk/eap11Version/build_after.gradle.kts @@ -36,7 +36,7 @@ repositories { dependencies { testCompile("junit:junit:4.12") - compile(kotlinModule("stdlib-jdk8", kotlin_version)) + compile(kotlinModule("stdlib-jre8", kotlin_version)) } // VERSION: $VERSION$