mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[PY-76337] disable plugins with use-idea-classloader if appcds is enable
GitOrigin-RevId: 6097121559ae18571cad8ee239fe8dda9e085f85
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bfb4e40f3c
commit
b4921470f5
@@ -470,7 +470,15 @@ private fun createModuleContentBasedScope(descriptor: IdeaPluginDescriptorImpl):
|
||||
}
|
||||
return ""
|
||||
}
|
||||
}}
|
||||
}
|
||||
}
|
||||
|
||||
internal val canExtendIdeaClassLoader: Boolean by lazy {
|
||||
runCatching {
|
||||
MethodHandles.lookup().findVirtual(ClassLoaderConfigurator::class.java.classLoader.javaClass, "addFiles",
|
||||
MethodType.methodType(Void.TYPE, MutableList::class.java))
|
||||
}.isSuccess
|
||||
}
|
||||
|
||||
private fun configureUsingIdeaClassloader(classPath: List<Path>, descriptor: IdeaPluginDescriptorImpl): ClassLoader {
|
||||
log.warn("${descriptor.pluginId} uses deprecated `use-idea-classloader` attribute")
|
||||
|
||||
@@ -12,8 +12,6 @@ import org.jetbrains.annotations.Nls
|
||||
import org.jetbrains.annotations.PropertyKey
|
||||
import java.util.*
|
||||
import java.util.function.Supplier
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.collections.HashMap
|
||||
|
||||
@ApiStatus.Internal
|
||||
class PluginSetBuilder(@JvmField val unsortedPlugins: Set<IdeaPluginDescriptorImpl>) {
|
||||
@@ -88,6 +86,12 @@ class PluginSetBuilder(@JvmField val unsortedPlugins: Set<IdeaPluginDescriptorIm
|
||||
val disabledModuleToProblematicPlugin = HashMap<String, PluginId>()
|
||||
|
||||
m@ for (module in moduleGraph.nodes) {
|
||||
if (module.isUseIdeaClassLoader && !canExtendIdeaClassLoader) {
|
||||
module.isEnabled = false
|
||||
logMessages.add("Module ${module.moduleName ?: module.pluginId} is not enabled because it uses deprecated `use-idea-classloader` attribute but PathClassLoader is disabled")
|
||||
continue@m
|
||||
}
|
||||
|
||||
if (module.moduleName == null) {
|
||||
if (module.pluginId != PluginManagerCore.CORE_ID && (!module.isEnabled || (disabler != null && disabler(module)))) {
|
||||
continue
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<idea-plugin use-idea-classloader="true">
|
||||
<idea-plugin>
|
||||
<id>com.intellij.workspace.ide.tests</id>
|
||||
<name>com.intellij.workspace.ide.tests</name>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user