J2K: LibraryPresentationProviderUtil convert
This commit is contained in:
@@ -71,13 +71,13 @@ public class JSLibraryStdPresentationProvider extends LibraryPresentationProvide
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getJsStdLibJar(@NotNull Library library) {
|
public static VirtualFile getJsStdLibJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME);
|
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.JS_LIB_JAR_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getJsStdLibSrcJar(@NotNull Library library) {
|
public static VirtualFile getJsStdLibSrcJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME);
|
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.SOURCES)), PathUtil.JS_LIB_SRC_JAR_NAME);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,25 +61,25 @@ public class JavaRuntimePresentationProvider extends LibraryPresentationProvider
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getRuntimeJar(@NotNull Library library) {
|
public static VirtualFile getRuntimeJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
JavaRuntimeDetectionUtil.getRuntimeJar(Arrays.asList(library.getFiles(OrderRootType.CLASSES)));
|
JavaRuntimeDetectionUtil.getRuntimeJar(Arrays.asList(library.getFiles(OrderRootType.CLASSES)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getReflectJar(@NotNull Library library) {
|
public static VirtualFile getReflectJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_JAVA_REFLECT_JAR);
|
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_JAVA_REFLECT_JAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getRuntimeSrcJar(@NotNull Library library) {
|
public static VirtualFile getRuntimeSrcJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
getRuntimeSrcJar(Arrays.asList(library.getFiles(OrderRootType.SOURCES)));
|
getRuntimeSrcJar(Arrays.asList(library.getFiles(OrderRootType.SOURCES)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static VirtualFile getTestJar(@NotNull Library library) {
|
public static VirtualFile getTestJar(@NotNull Library library) {
|
||||||
return LibraryPresentationProviderUtil.isExternalLibrary(library) ? null :
|
return LibraryPresentationProviderUtilKt.isExternalLibrary(library) ? null :
|
||||||
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR);
|
LibraryUtils.getJarFile(Arrays.asList(library.getFiles(OrderRootType.CLASSES)), PathUtil.KOTLIN_TEST_JAR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,38 +14,30 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.framework;
|
package org.jetbrains.kotlin.idea.framework
|
||||||
|
|
||||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
|
import com.intellij.openapi.externalSystem.model.ProjectSystemId
|
||||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
|
||||||
import com.intellij.openapi.roots.OrderRootType;
|
import com.intellij.openapi.roots.OrderRootType
|
||||||
import com.intellij.openapi.roots.libraries.Library;
|
import com.intellij.openapi.roots.libraries.Library
|
||||||
import com.intellij.openapi.roots.libraries.LibraryPresentationProvider;
|
import com.intellij.openapi.roots.libraries.LibraryPresentationProvider
|
||||||
import com.intellij.openapi.roots.libraries.LibraryProperties;
|
import com.intellij.openapi.roots.libraries.LibraryProperties
|
||||||
import org.jetbrains.annotations.NotNull;
|
import java.util.*
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
fun <LP : LibraryProperties<out Any>> isDetected(provider: LibraryPresentationProvider<LP>, library: Library): Boolean {
|
||||||
|
return getLibraryProperties(provider, library) != null
|
||||||
public class LibraryPresentationProviderUtil {
|
|
||||||
private LibraryPresentationProviderUtil() {}
|
|
||||||
|
|
||||||
public static <LP extends LibraryProperties> boolean isDetected(@NotNull LibraryPresentationProvider<LP> provider, @NotNull Library library) {
|
|
||||||
return getLibraryProperties(provider, library) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public static <LP extends LibraryProperties> LP getLibraryProperties(@NotNull LibraryPresentationProvider<LP> 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun <LP : LibraryProperties<out Any>> getLibraryProperties(provider: LibraryPresentationProvider<LP>, library: Library): LP? {
|
||||||
|
if (isExternalLibrary(library)) return null
|
||||||
|
return provider.detect(Arrays.asList(*library.getFiles(OrderRootType.CLASSES)))
|
||||||
|
}
|
||||||
|
|
||||||
|
private val MAVEN_SYSTEM_ID = ProjectSystemId("MAVEN")
|
||||||
|
private val GRADLE_SYSTEM_ID = ProjectSystemId("GRADLE")
|
||||||
|
|
||||||
|
fun isExternalLibrary(library: Library): Boolean {
|
||||||
|
return ExternalSystemApiUtil.isExternalSystemLibrary(library, ProjectSystemId.IDE) ||
|
||||||
|
ExternalSystemApiUtil.isExternalSystemLibrary(library, GRADLE_SYSTEM_ID) ||
|
||||||
|
ExternalSystemApiUtil.isExternalSystemLibrary(library, MAVEN_SYSTEM_ID)
|
||||||
|
}
|
||||||
@@ -44,7 +44,7 @@ import org.jetbrains.kotlin.idea.configuration.createConfigureKotlinNotification
|
|||||||
import org.jetbrains.kotlin.idea.configuration.getConfiguratorByName
|
import org.jetbrains.kotlin.idea.configuration.getConfiguratorByName
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
||||||
import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtil
|
import org.jetbrains.kotlin.idea.framework.isDetected
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
|
import org.jetbrains.kotlin.serialization.deserialization.BinaryVersion
|
||||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
@@ -75,7 +75,7 @@ fun updateLibraries(project: Project, libraries: Collection<Library>) {
|
|||||||
val collector = createConfigureKotlinNotificationCollector(project)
|
val collector = createConfigureKotlinNotificationCollector(project)
|
||||||
|
|
||||||
for (library in libraries) {
|
for (library in libraries) {
|
||||||
if (LibraryPresentationProviderUtil.isDetected(JavaRuntimePresentationProvider.getInstance(), library)) {
|
if (isDetected(JavaRuntimePresentationProvider.getInstance(), library)) {
|
||||||
updateJar(project, JavaRuntimePresentationProvider.getRuntimeJar(library), LibraryJarDescriptor.RUNTIME_JAR)
|
updateJar(project, JavaRuntimePresentationProvider.getRuntimeJar(library), LibraryJarDescriptor.RUNTIME_JAR)
|
||||||
updateJar(project, JavaRuntimePresentationProvider.getReflectJar(library), LibraryJarDescriptor.REFLECT_JAR)
|
updateJar(project, JavaRuntimePresentationProvider.getReflectJar(library), LibraryJarDescriptor.REFLECT_JAR)
|
||||||
updateJar(project, JavaRuntimePresentationProvider.getTestJar(library), LibraryJarDescriptor.TEST_JAR)
|
updateJar(project, JavaRuntimePresentationProvider.getTestJar(library), LibraryJarDescriptor.TEST_JAR)
|
||||||
@@ -87,7 +87,7 @@ fun updateLibraries(project: Project, libraries: Collection<Library>) {
|
|||||||
updateJar(project, JavaRuntimePresentationProvider.getRuntimeSrcJar(library), LibraryJarDescriptor.RUNTIME_SRC_JAR)
|
updateJar(project, JavaRuntimePresentationProvider.getRuntimeSrcJar(library), LibraryJarDescriptor.RUNTIME_SRC_JAR)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (LibraryPresentationProviderUtil.isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
else if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||||
updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR)
|
updateJar(project, JSLibraryStdPresentationProvider.getJsStdLibJar(library), LibraryJarDescriptor.JS_STDLIB_JAR)
|
||||||
|
|
||||||
if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) {
|
if (kJsConfigurator.changeOldSourcesPathIfNeeded(library, collector)) {
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ import com.intellij.util.text.VersionComparatorUtil
|
|||||||
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
import org.jetbrains.kotlin.idea.KotlinPluginUtil
|
||||||
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
import org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider
|
||||||
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
import org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider
|
||||||
import org.jetbrains.kotlin.idea.framework.LibraryPresentationProviderUtil
|
import org.jetbrains.kotlin.idea.framework.getLibraryProperties
|
||||||
|
import org.jetbrains.kotlin.idea.framework.isDetected
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import javax.swing.event.HyperlinkEvent
|
import javax.swing.event.HyperlinkEvent
|
||||||
@@ -50,8 +51,8 @@ fun findOutdatedKotlinLibraries(project: Project): List<VersionedLibrary> {
|
|||||||
|
|
||||||
for ((library, modules) in findAllUsedLibraries(project).entrySet()) {
|
for ((library, modules) in findAllUsedLibraries(project).entrySet()) {
|
||||||
val libraryVersionProperties =
|
val libraryVersionProperties =
|
||||||
LibraryPresentationProviderUtil.getLibraryProperties(JavaRuntimePresentationProvider.getInstance(), library) ?:
|
getLibraryProperties(JavaRuntimePresentationProvider.getInstance(), library) ?:
|
||||||
LibraryPresentationProviderUtil.getLibraryProperties(JSLibraryStdPresentationProvider.getInstance(), library) ?:
|
getLibraryProperties(JSLibraryStdPresentationProvider.getInstance(), library) ?:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
val libraryVersion = libraryVersionProperties.versionString
|
val libraryVersion = libraryVersionProperties.versionString
|
||||||
@@ -136,7 +137,7 @@ private fun suggestDeleteKotlinJsIfNeeded(project: Project, outdatedLibraries: C
|
|||||||
|
|
||||||
var addNotification = false
|
var addNotification = false
|
||||||
for (library in outdatedLibraries) {
|
for (library in outdatedLibraries) {
|
||||||
if (LibraryPresentationProviderUtil.isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
if (isDetected(JSLibraryStdPresentationProvider.getInstance(), library)) {
|
||||||
val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library)
|
val jsStdlibJar = JSLibraryStdPresentationProvider.getJsStdLibJar(library)
|
||||||
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
assert(jsStdlibJar != null) { "jslibFile should not be null" }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user