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 8f195e303ae4..ca8170ef5570 100644 --- a/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt +++ b/platform/platform-tests/testSrc/com/intellij/ide/plugins/PluginModelValidator.kt @@ -535,19 +535,34 @@ class PluginModelValidator( * Checks elements in the main module or a content module */ private fun checkModuleElements(moduleDescriptor: RawPluginDescriptor, sourceModule: JpsModule, descriptorFile: Path) { - for (extensionPointElement in moduleDescriptor.moduleElementsContainer.extensionPoints) { + fun reportError(message: String) { reportError( - message = """ - |Module-level extension point '$extensionPointElement' is defined in '${sourceModule.name}'. - |Module-level extension points are deprecated in general and forbidden in intellij monorepo. - |Use application-level or project-level extension point, and pass 'Module' instance as a parameter if needed. - |""".trimMargin(), + message = message, sourceModule = sourceModule, mapOf( "descriptorFile" to descriptorFile, - ), + ), ) } + + for (extensionPointElement in moduleDescriptor.moduleElementsContainer.extensionPoints) { + reportError(""" + |Module-level extension point '$extensionPointElement' is defined in '${sourceModule.name}'. + |Module-level extension points are deprecated in general and forbidden in intellij monorepo. + |Use application-level or project-level extension point, and pass 'Module' instance as a parameter if needed. + |""".trimMargin()) + } + for (componentElement in moduleDescriptor.moduleElementsContainer.components) { + reportError(""" + |Module-level component '$componentElement' is defined in '${sourceModule.name}'. + |Module-level components are deprecated in general and forbidden in intellij monorepo. + |Use application-level or project-level services instead, and pass 'Module' instance as a parameter if needed. + """.trimMargin() + ) + } + for (listenerElement in moduleDescriptor.moduleElementsContainer.listeners) { + reportError("Module-level listener '$listenerElement' is defined in '${sourceModule.name}', but they aren't supported.") + } } // TODO same for depends