From f113a5ce99bcad70b33a1e37ba11bf42a5064fe1 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 15 May 2017 17:48:31 +0200 Subject: [PATCH] Fix stdlib-jre7/8 configuration in new projects #KT-17875 Fixed #KT-17876 Fixed --- .../idea/configuration/KotlinWithLibraryConfigurator.kt | 4 ++++ .../CustomLibraryDescriptorWithDeferredConfig.kt | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt index b78893e4e20..e47270b02bd 100644 --- a/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt +++ b/idea/src/org/jetbrains/kotlin/idea/configuration/KotlinWithLibraryConfigurator.kt @@ -303,6 +303,10 @@ abstract class KotlinWithLibraryConfigurator internal constructor() : KotlinProj if (library == null) return null val libraryFiles = library.getUrls(type) + return getPathFromLibraryUrls(libraryFiles) + } + + fun getPathFromLibraryUrls(libraryFiles: Array): String? { if (libraryFiles.size < 1) return null val pathToJarInLib = VfsUtilCore.urlToPath(libraryFiles[0]) diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt b/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt index 75a143ddf65..254afcc8e7a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt +++ b/idea/src/org/jetbrains/kotlin/idea/framework/CustomLibraryDescriptorWithDeferredConfig.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.idea.framework -import com.google.common.collect.Lists import com.intellij.framework.library.LibraryVersionProperties import com.intellij.openapi.module.Module import com.intellij.openapi.project.Project @@ -77,13 +76,13 @@ abstract class CustomLibraryDescriptorWithDeferredConfig } ?: return val model = library.modifiableModel - val copyToPath = KotlinWithLibraryConfigurator.getPathFromLibrary(library, OrderRootType.CLASSES) try { val collector = createConfigureKotlinNotificationCollector(module.project) copyFileRequests?.performRequests(module.getModuleDir(), model, collector) + val copyToPath = KotlinWithLibraryConfigurator.getPathFromLibraryUrls(model.getUrls(OrderRootType.CLASSES)) if (copyToPath != null) { - val jarState = if (copyFileRequests == null) DO_NOT_COPY else COPY + val jarState = if (copyFileRequests?.isEmpty() != false) DO_NOT_COPY else COPY // Now that we know the SDK which is going to be set for the module, we can add jre 7/8 if required val descriptorsWithSdk = configurator.getLibraryJarDescriptors(rootModel.sdk) @@ -108,7 +107,9 @@ abstract class CustomLibraryDescriptorWithDeferredConfig } class DeferredCopyFileRequests(private val configurator: KotlinWithLibraryConfigurator) { - private val copyFilesRequests = Lists.newArrayList() + private val copyFilesRequests = arrayListOf() + + fun isEmpty() = copyFilesRequests.isEmpty() fun performRequests(relativePath: String, model: Library.ModifiableModel, collector: NotificationMessageCollector) { for (request in copyFilesRequests) {