diff --git a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.kt b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.kt index 2b3236763d9a..f1afed26cc55 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.kt +++ b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.kt @@ -475,21 +475,13 @@ class PluginMainDescriptor( @ApiStatus.Internal companion object { - private fun convertContentModules(contentElements: List): List { - return contentElements.mapNotNull { elem -> - when (elem) { - is ContentElement.Module -> { - val index = elem.name.lastIndexOf('/') - val configFile: String? = if (index != -1) { - "${elem.name.substring(0, index)}.${elem.name.substring(index + 1)}.xml" - } else null - PluginContentDescriptor.ModuleItem(elem.name, configFile, elem.embeddedDescriptorContent, elem.loadingRule.convert()) - } - else -> { - LOG.error("Unknown content element: $elem") - null - } - } + private fun convertContentModules(contentElements: List): List { + return contentElements.map { elem -> + val index = elem.name.lastIndexOf('/') + val configFile: String? = if (index != -1) { + "${elem.name.substring(0, index)}.${elem.name.substring(index + 1)}.xml" + } else null + PluginContentDescriptor.ModuleItem(elem.name, configFile, elem.embeddedDescriptorContent, elem.loadingRule.convert()) } } diff --git a/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt b/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt index be1447afe14e..229e69294b8b 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt +++ b/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt @@ -7,7 +7,7 @@ import com.fasterxml.jackson.core.JsonFactory import com.fasterxml.jackson.core.JsonGenerator import com.intellij.openapi.extensions.PluginId import com.intellij.platform.plugins.parser.impl.RawPluginDescriptor -import com.intellij.platform.plugins.parser.impl.elements.ContentElement +import com.intellij.platform.plugins.parser.impl.elements.ContentModuleElement import com.intellij.platform.plugins.parser.impl.elements.DependenciesElement import com.intellij.platform.plugins.parser.impl.elements.ModuleLoadingRule import com.intellij.platform.plugins.testFramework.LoadFromSourceXIncludeLoader @@ -288,8 +288,6 @@ class PluginModelValidator( } val moduleNameToLoadingRule = pluginInfo.descriptor.contentModules - .asSequence() - .filterIsInstance() .associateBy({ it.name }, { it.loadingRule }) checkDependencies( dependenciesElements = descriptor.dependencies, @@ -528,13 +526,12 @@ class PluginModelValidator( // 2) no depends + no dependency on plugin in a referenced descriptor = directly injected into plugin (separate classloader is not created // during a transition period). In old format: xi:include (e.g. ). private fun checkContent( - contentElements: List, + contentElements: List, referencingModuleInfo: ModuleInfo, sourceModuleNameToFileInfo: Map, moduleNameToInfo: MutableMap ) { for (contentElement in contentElements) { - contentElement as ContentElement.Module fun registerError(message: String, additionalParams: Map = emptyMap()) { reportError( message, diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilder.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilder.kt index 010564ef5060..bb22c2eb29ff 100644 --- a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilder.kt +++ b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilder.kt @@ -58,8 +58,8 @@ interface PluginDescriptorBuilder { fun addExtension(qualifiedExtensionPointName: String, extension: ExtensionElement) val extensions: Map> - fun addContentModule(contentModule: ContentElement) - val contentModules: List + fun addContentModule(contentModule: ContentModuleElement) + val contentModules: List fun addDependency(dependency: DependenciesElement) val dependencies: List diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilderImpl.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilderImpl.kt index 779ab1185489..adc13857459e 100644 --- a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilderImpl.kt +++ b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/PluginDescriptorBuilderImpl.kt @@ -96,14 +96,14 @@ internal class PluginDescriptorBuilderImpl : PluginDescriptorBuilder { override val extensions: Map> get() = _extensions ?: Java11Shim.INSTANCE.mapOf() - private var _contentModules: MutableList? = null - override fun addContentModule(contentModule: ContentElement) { + private var _contentModules: MutableList? = null + override fun addContentModule(contentModule: ContentModuleElement) { if (_contentModules == null) { _contentModules = ArrayList() } _contentModules!!.add(contentModule) } - override val contentModules: List + override val contentModules: List get() = _contentModules ?: Java11Shim.INSTANCE.listOf() private var _dependencies: MutableList? = null diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/RawPluginDescriptor.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/RawPluginDescriptor.kt index 56e42a7561db..12b0bb83b870 100644 --- a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/RawPluginDescriptor.kt +++ b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/RawPluginDescriptor.kt @@ -58,6 +58,6 @@ class RawPluginDescriptor( * */ val extensions: Map>, - val contentModules: List, + val contentModules: List, val dependencies: List, ) diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/XmlReader.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/XmlReader.kt index 9061d820ace0..23335325636d 100644 --- a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/XmlReader.kt +++ b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/XmlReader.kt @@ -670,7 +670,7 @@ private fun readContent(reader: XMLStreamReader2, builder: PluginDescriptorBuild val isEndElement = reader.next() == XMLStreamConstants.END_ELEMENT if (isEndElement) { if (os == null || readContext.elementOsFilter(os)) { - builder.addContentModule(ContentElement.Module(name = name, loadingRule = loadingRule, embeddedDescriptorContent = null)) + builder.addContentModule(ContentModuleElement(name = name, loadingRule = loadingRule, embeddedDescriptorContent = null)) } } else { @@ -679,7 +679,7 @@ private fun readContent(reader: XMLStreamReader2, builder: PluginDescriptorBuild val toIndex = fromIndex + reader.textLength val length = toIndex - fromIndex val descriptorContent = if (length == 0) null else reader.textCharacters.copyOfRange(fromIndex, toIndex) - builder.addContentModule(ContentElement.Module(name = name, loadingRule = loadingRule, embeddedDescriptorContent = descriptorContent)) + builder.addContentModule(ContentModuleElement(name = name, loadingRule = loadingRule, embeddedDescriptorContent = descriptorContent)) } var nesting = 1 diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentElement.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentElement.kt deleted file mode 100644 index c3ba0fd7365a..000000000000 --- a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentElement.kt +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.platform.plugins.parser.impl.elements - -abstract class ContentElement { - class Module( - val name: String, - val loadingRule: ModuleLoadingRule = ModuleLoadingRule.OPTIONAL, - val embeddedDescriptorContent: CharArray? = null, - ) : ContentElement() { - override fun toString(): String { - return "Module(name=$name, loadingRule=$loadingRule)" - } - } -} \ No newline at end of file diff --git a/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentModuleElement.kt b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentModuleElement.kt new file mode 100644 index 000000000000..68827bbc409a --- /dev/null +++ b/platform/plugins/parser/impl/src/com/intellij/platform/plugins/parser/impl/elements/ContentModuleElement.kt @@ -0,0 +1,12 @@ +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.platform.plugins.parser.impl.elements + +class ContentModuleElement( + val name: String, + val loadingRule: ModuleLoadingRule = ModuleLoadingRule.OPTIONAL, + val embeddedDescriptorContent: CharArray? = null, +) { + override fun toString(): String { + return "Module(name=$name, loadingRule=$loadingRule)" + } +} \ No newline at end of file