[FE] Move ServiceLoaderLite to :compiler:frontend.common
This is needed to be able to use this class inside FIR part of IDE plugin
This commit is contained in:
committed by
teamcity
parent
441f3d202a
commit
f587c02d38
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollectorUtil
|
||||
import org.jetbrains.kotlin.compiler.plugin.*
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite
|
||||
import java.io.File
|
||||
import java.net.URLClassLoader
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.cli.common.repl.*
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.cli.jvm.config.configureJdkClasspathRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||
import org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar
|
||||
import org.jetbrains.kotlin.config.*
|
||||
|
||||
+8
-4
@@ -1,9 +1,9 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* 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.jetbrains.kotlin.cli.jvm.plugins
|
||||
package org.jetbrains.kotlin.util
|
||||
|
||||
import java.io.File
|
||||
import java.io.IOError
|
||||
@@ -63,6 +63,10 @@ object ServiceLoaderLite {
|
||||
return loadImplementations(Service::class.java, classLoader)
|
||||
}
|
||||
|
||||
inline fun <reified Service : Any> loadImplementations(files: List<File>, classLoader: ClassLoader): List<Service> {
|
||||
return loadImplementations(Service::class.java, files, classLoader)
|
||||
}
|
||||
|
||||
fun findImplementations(service: Class<*>, files: List<File>): Set<String> {
|
||||
return files.flatMapTo(linkedSetOf()) { findImplementations(service, it) }
|
||||
}
|
||||
@@ -72,7 +76,7 @@ object ServiceLoaderLite {
|
||||
|
||||
return when {
|
||||
file.isDirectory -> findImplementationsInDirectory(classIdentifier, file)
|
||||
file.isFile && file.extension.toLowerCase() == "jar" -> findImplementationsInJar(classIdentifier, file)
|
||||
file.isFile && file.extension.lowercase() == "jar" -> findImplementationsInJar(classIdentifier, file)
|
||||
else -> emptySet()
|
||||
}
|
||||
}
|
||||
@@ -117,4 +121,4 @@ object ServiceLoaderLite {
|
||||
private fun getClassIdentifier(service: Class<*>): String {
|
||||
return service.name
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.cli.serviceLoaderLite
|
||||
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.ServiceLoaderLite.ServiceLoadingException
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite.ServiceLoadingException
|
||||
import java.io.File
|
||||
import javax.annotation.processing.Processor
|
||||
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.cli.serviceLoaderLite
|
||||
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite
|
||||
import java.net.URLClassLoader
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
@@ -130,4 +130,4 @@ class ServiceLoaderLiteTestWithClassLoader : AbstractServiceLoaderLiteTest() {
|
||||
}
|
||||
return Entry("META-INF/services/" + Intf::class.java.name, content)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.OUTPUT
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil
|
||||
import org.jetbrains.kotlin.cli.common.output.writeAll
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.util.ServiceLoaderLite
|
||||
import org.jetbrains.kotlin.codegen.ClassBuilderMode
|
||||
import org.jetbrains.kotlin.codegen.DefaultCodegenFactory
|
||||
import org.jetbrains.kotlin.codegen.KotlinCodegenFacade
|
||||
|
||||
Reference in New Issue
Block a user