diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java index d41059c244e..98a9422af34 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JSLibraryStdPresentationProvider.java @@ -71,11 +71,13 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide @Nullable public static VirtualFile getJsStdLibJar(@NotNull Library library) { - return LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME); } @Nullable public static VirtualFile getJsStdLibSrcJar(@NotNull Library library) { - return LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME); } } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java b/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java index c99e079ed5f..81364ee669c 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/JavaRuntimePresentationProvider.java @@ -61,21 +61,25 @@ public class JavaRuntimePresentationProvider extends LibraryPresentationProvider @Nullable public static VirtualFile getRuntimeJar(@NotNull Library library) { - return JavaRuntimeDetectionUtil.getRuntimeJar(Arrays.asList(library.getFiles(OrderRootType.CLASSES))); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + JavaRuntimeDetectionUtil.getRuntimeJar(Arrays.asList(library.getFiles(OrderRootType.CLASSES))); } @Nullable public static VirtualFile getReflectJar(@NotNull Library library) { - return LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_JAVA_REFLECT_JAR); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_JAVA_REFLECT_JAR); } @Nullable public static VirtualFile getRuntimeSrcJar(@NotNull Library library) { - return getRuntimeSrcJar(Arrays.asList(library.getFiles(OrderRootType.SOURCES))); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + getRuntimeSrcJar(Arrays.asList(library.getFiles(OrderRootType.SOURCES))); } @Nullable public static VirtualFile getTestJar(@NotNull Library library) { - return LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR); + return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null : + LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR); } } diff --git a/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.java b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.java index 9dfa8a3eb06..bd16d09953d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.java +++ b/idea/src/org/jetbrains/kotlin/idea/framework/LibraryPresentationProviderUtil.java @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.idea.framework; +import com.intellij.openapi.externalSystem.model.ProjectSystemId; +import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryPresentationProvider; @@ -34,6 +36,16 @@ public class LibraryPresentationProviderUtil { @Nullable public static LP getLibraryProperties(@NotNull LibraryPresentationProvider provider, @NotNull Library library) { + if (isExternalLibrary(library)) return null; return provider.detect(Arrays.asList(library.getFiles(OrderRootType.CLASSES))); } + + private static final ProjectSystemId MAVEN_SYSTEM_ID = new ProjectSystemId("MAVEN"); + private static final ProjectSystemId GRADLE_SYSTEM_ID = new ProjectSystemId("GRADLE"); + + public static boolean isExternalLibrary(@NotNull Library library) { + return ExternalSystemApiUtil.isExternalSystemLibrary(library, ProjectSystemId.IDE) || + ExternalSystemApiUtil.isExternalSystemLibrary(library, GRADLE_SYSTEM_ID) || + ExternalSystemApiUtil.isExternalSystemLibrary(library, MAVEN_SYSTEM_ID); + } } diff --git a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt index 84abde0bb92..26891b7a22e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/versions/KotlinRuntimeLibraryUtil.kt @@ -64,9 +64,7 @@ fun getLibraryRootsWithAbiIncompatibleForKotlinJs(module: Module): Collection) { +fun updateLibraries(project: Project, libraries: Collection) { ApplicationManager.getApplication().invokeLater { val kJvmConfigurator = getConfiguratorByName(KotlinJavaModuleConfigurator.NAME) as KotlinJavaModuleConfigurator? ?: error("Configurator with given name doesn't exists: " + KotlinJavaModuleConfigurator.NAME)