IJPL-246446 Fold JCEF modules into existing plugin

Move the JCEF API and related platform JCEF content modules into the existing com.intellij.modules.jcef plugin instead of keeping a temporary wrapper plugin. This keeps the public JCEF plugin identity stable for products and plugins while avoiding another bundled plugin layer.

Regenerate product descriptors and packaging baselines so products depend on intellij.jcef.plugin and no longer reference intellij.libraries.jcef.plugin.

IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 IJ-MR-193195 IJ-MR-196957 IJ-MR-199124 IJ-MR-197441 IJ-MR-204135 IJ-MR-204674 IJ-MR-205883

GitOrigin-RevId: fdb1bb06f70c9fcac4e1d51ee78991c6797e3adc
This commit is contained in:
Vladimir Krivosheev
2026-06-09 13:33:16 +00:00
committed by intellij-monorepo-bot
parent 416874153a
commit 224b2ab72b
36 changed files with 64 additions and 143 deletions
+8
View File
@@ -53,6 +53,14 @@ Use `community/tests.cmd` for tests that belong to community-only modules:
./community/tests.cmd --module <module> --test <pattern>
```
### Product layout and packaging changes
When changing `ProductProperties`, `productImplementationModules`, product content descriptors, plugin/module-set packaging, or generated product layout XML, also run:
```bash
./tests.cmd --module intellij.idea.ultimate.build.tests --test com.intellij.idea.ultimate.build.smokeTests.AllProductsPackagingTest
```
### Windows PowerShell note
When running `tests.cmd` from PowerShell, pass JVM `-D...` arguments via stop-parsing mode to avoid argument mangling:
+2
View File
@@ -16,6 +16,8 @@ Guidelines for implementing IntelliJ actions (`AnAction`).
- **NEVER instantiate Presentation in action constructors** - Use no-argument constructors
- **Define text, description, and icon in plugin.xml** - Not in constructor parameters
- **Use AnActionEvent#getCoroutineScope** for launching suspending computations -
actionPerformed runs synchronously with event invocation and may freeze the IDE.
- **Follow the convention:**
1. Set the `id` attribute for the action in plugin.xml
2. Optionally set the `icon` attribute if an icon is needed
+8
View File
@@ -54,6 +54,14 @@ Use `community/tests.cmd` for tests that belong to community-only modules:
./community/tests.cmd --module <module> --test <pattern>
```
### Product layout and packaging changes
When changing `ProductProperties`, `productImplementationModules`, product content descriptors, plugin/module-set packaging, or generated product layout XML, also run:
```bash
./tests.cmd --module intellij.idea.ultimate.build.tests --test com.intellij.idea.ultimate.build.smokeTests.AllProductsPackagingTest
```
### Windows PowerShell note
When running `tests.cmd` from PowerShell, pass JVM `-D...` arguments via stop-parsing mode to avoid argument mangling:
-1
View File
@@ -1062,7 +1062,6 @@
<module fileurl="file://$PROJECT_DIR$/libraries/jaxen/intellij.libraries.jaxen.iml" filepath="$PROJECT_DIR$/libraries/jaxen/intellij.libraries.jaxen.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jbr/intellij.libraries.jbr.iml" filepath="$PROJECT_DIR$/libraries/jbr/intellij.libraries.jbr.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jcef/intellij.libraries.jcef.iml" filepath="$PROJECT_DIR$/libraries/jcef/intellij.libraries.jcef.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jcef/plugin/intellij.libraries.jcef.plugin.iml" filepath="$PROJECT_DIR$/libraries/jcef/plugin/intellij.libraries.jcef.plugin.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jcip/intellij.libraries.jcip.iml" filepath="$PROJECT_DIR$/libraries/jcip/intellij.libraries.jcip.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jediterm-core/intellij.libraries.jediterm.core.iml" filepath="$PROJECT_DIR$/libraries/jediterm-core/intellij.libraries.jediterm.core.iml" />
<module fileurl="file://$PROJECT_DIR$/libraries/jediterm-ui/intellij.libraries.jediterm.ui.iml" filepath="$PROJECT_DIR$/libraries/jediterm-ui/intellij.libraries.jediterm.ui.iml" />
-1
View File
@@ -444,7 +444,6 @@ libraries/javax/annotation
libraries/jaxen
libraries/jbr
libraries/jcef
libraries/jcef/plugin
libraries/jcip
libraries/jediterm-core
libraries/jediterm-ui
+2 -2
View File
@@ -37,7 +37,7 @@ jvm_library(
"//platform/ide-core",
"//platform/util/jdom",
"//libraries/jcef",
"//libraries/jcef/plugin",
"//plugins/jcef/plugin",
"//libraries/kotlinx/serialization/core",
"//libraries/kotlinx/serialization/json",
"//platform/core-impl",
@@ -83,7 +83,7 @@ jvm_library(
"//platform/ide-core:ide-core_test_lib",
"//platform/util/jdom:jdom_test_lib",
"//libraries/jcef:jcef_test_lib",
"//libraries/jcef/plugin:plugin_test_lib",
"//plugins/jcef/plugin:plugin_test_lib",
"//libraries/kotlinx/serialization/core:core_test_lib",
"//libraries/kotlinx/serialization/json:json_test_lib",
"//platform/core-impl:core-impl_test_lib",
+1 -1
View File
@@ -45,7 +45,7 @@
<orderEntry type="module" module-name="intellij.platform.ide.core" />
<orderEntry type="module" module-name="intellij.platform.util.jdom" />
<orderEntry type="module" module-name="intellij.libraries.jcef" />
<orderEntry type="module" module-name="intellij.libraries.jcef.plugin" />
<orderEntry type="module" module-name="intellij.jcef.plugin" />
<orderEntry type="module" module-name="intellij.libraries.kotlinx.serialization.core" />
<orderEntry type="module" module-name="intellij.libraries.kotlinx.serialization.json" />
<orderEntry type="module" module-name="intellij.platform.core.impl" />
+1 -1
View File
@@ -11,7 +11,7 @@
<dependencies>
<plugin id="com.intellij.modules.lang"/>
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<plugin id="intellij.libraries.jcef.plugin"/>
<plugin id="com.intellij.modules.jcef"/>
<module name="intellij.libraries.jcef"/>
<module name="intellij.platform.ui.jcef"/>
<!-- endregion -->
@@ -1 +1 @@
<idea-plugin />
<idea-plugin visibility="internal" />
-39
View File
@@ -1,39 +0,0 @@
load("@rules_jvm//:jvm.bzl", "jvm_library")
### auto-generated section `build intellij.libraries.jcef.plugin` start
jvm_library(
name = "plugin",
srcs = glob(
[],
allow_empty = True,
),
module_name = "intellij.libraries.jcef.plugin",
resource_strip_prefix = "resources",
resources = glob(
["resources/**/*"],
),
visibility = ["//visibility:public"],
)
jvm_library(
name = "plugin_test_lib",
testonly = True,
srcs = glob(
[],
allow_empty = True,
),
module_name = "intellij.libraries.jcef.plugin",
visibility = ["//visibility:public"],
runtime_deps = [":plugin"],
)
### auto-generated section `build intellij.libraries.jcef.plugin` end
### auto-generated section `iml intellij.libraries.jcef.plugin` start
exports_files(
[
"intellij.libraries.jcef.plugin.iml",
],
visibility = ["//visibility:public"],
)
### auto-generated section `iml intellij.libraries.jcef.plugin` end
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
@@ -1,9 +0,0 @@
- name: lib/libraries-jcef-plugin.jar
modules:
- name: intellij.libraries.jcef.plugin
- name: lib/modules/intellij.libraries.jcef.jar
contentModules:
- name: intellij.libraries.jcef
libraries:
jcef:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/jcef/jcef/144/jcef-144.jar
@@ -1,10 +0,0 @@
<!--suppress PluginXmlPluginLogo -->
<idea-plugin>
<id>intellij.libraries.jcef.plugin</id>
<name>Library Modules: JCEF</name>
<description>Provides JCEF API and platform JCEF integration modules for IntelliJ-based IDEs.</description>
<vendor>JetBrains</vendor>
<content namespace="jetbrains">
<module name="intellij.libraries.jcef" loading="required"/>
</content>
</idea-plugin>
@@ -8,6 +8,7 @@
<xi:include href="/META-INF/intellij.moduleSets.ide.common.xml"/>
<!-- region additional -->
<content namespace="jetbrains">
<module name="intellij.platform.whatsNew"/>
<module name="intellij.platform.tips"/>
<module name="intellij.ide.startup.importSettings"/>
<module name="intellij.platform.customization.min"/>
@@ -54,7 +54,6 @@ class MPSProperties : JetBrainsProductProperties() {
"intellij.idea.community.customization",
"intellij.java.ide.resources",
"intellij.platform.buildData",
"intellij.platform.whatsNew",
"intellij.platform.configurationStore.impl",
"intellij.platform.diagnostic.startUpPerformanceReporter",
"intellij.platform.jps.build.javac.rt",
@@ -192,6 +191,7 @@ class MPSProperties : JetBrainsProductProperties() {
moduleSet(CommunityModuleSets.ideCommon())
module("intellij.platform.whatsNew")
module("intellij.platform.tips")
module("intellij.ide.startup.importSettings")
@@ -9,7 +9,6 @@ private const val MODULE_SET_PLUGIN_MODULE_PREFIX: String = "intellij.moduleSet.
private val HAND_WRITTEN_MODULE_SET_PLUGIN_MODULES: Set<String> = setOf(
"intellij.grid.core.plugin",
"intellij.java.aetherDependencyResolver.plugin",
"intellij.libraries.jcef.plugin",
"intellij.libraries.misc.plugin",
"intellij.platform.bookmarks.plugin",
"intellij.platform.execution.serviceView.plugin",
@@ -371,10 +371,6 @@ object CommunityModuleSets {
moduleSet(essential())
moduleSet(compose())
module("intellij.platform.ui.jcef")
module("intellij.platform.ide.newUiOnboarding.jcef")
module("intellij.platform.ide.impl.jcef")
// Additional IDE-specific modules
module("intellij.platform.lvcs.impl")
module("intellij.platform.collaborationTools")
@@ -23,7 +23,6 @@ import org.jetbrains.intellij.build.impl.PluginLayout
val DEFAULT_BUNDLED_PLUGINS: PersistentList<String> = persistentListOf(
"intellij.dev",
"intellij.java.aetherDependencyResolver.plugin",
"intellij.libraries.jcef.plugin",
"intellij.jcef.plugin",
"intellij.libraries.misc.plugin",
"intellij.platform.bookmarks.plugin",
@@ -1,12 +1,8 @@
<idea-plugin>
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<dependencies>
<module name="intellij.platform.core"/>
<module name="intellij.platform.core.impl"/>
<module name="intellij.platform.ide"/>
<module name="intellij.platform.ide.newUiOnboarding"/>
<module name="intellij.platform.ui.jcef"/>
<module name="intellij.platform.util.ui"/>
</dependencies>
<!-- endregion -->
+2 -2
View File
@@ -380,7 +380,7 @@ jvm_library(
"@lib//:slf4j-api",
"@lib//:slf4j-jdk14",
"//platform/object-serializer",
"//libraries/jcef/plugin",
"//plugins/jcef/plugin",
"//libraries/protobuf",
"//libraries/jgoodies/common",
"//libraries/jgoodies/forms",
@@ -422,7 +422,7 @@ jvm_library(
"//platform/observable:observable_test_lib",
"//platform/object-serializer:object-serializer_test_lib",
"//platform/platform-util-io-impl:ide-util-io-impl_test_lib",
"//libraries/jcef/plugin:plugin_test_lib",
"//plugins/jcef/plugin:plugin_test_lib",
"//libraries/protobuf:protobuf_test_lib",
"//platform/ide-core-impl:ide-core-impl_test_lib",
"//platform/ide-core/plugins:plugins_test_lib",
@@ -84,7 +84,7 @@
<orderEntry type="module" module-name="intellij.platform.instanceContainer" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.serviceContainer" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.jcef" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.statistics" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.asm" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.jsoup" scope="TEST" />
@@ -9,8 +9,8 @@
<compilerArguments>
<stringArguments>
<stringArg name="jvmTarget" arg="25" />
<stringArg name="apiVersion" arg="2.3" />
<stringArg name="languageVersion" arg="2.3" />
<stringArg name="apiVersion" arg="2.4" />
<stringArg name="languageVersion" arg="2.4" />
</stringArguments>
<arrayArguments>
<arrayArg name="pluginClasspaths">
@@ -2,21 +2,7 @@
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<dependencies>
<module name="intellij.libraries.jcef"/>
<module name="intellij.platform.analysis"/>
<module name="intellij.platform.builtInServer"/>
<module name="intellij.platform.core"/>
<module name="intellij.platform.core.impl"/>
<module name="intellij.platform.core.ui"/>
<module name="intellij.platform.editor.ui"/>
<module name="intellij.platform.ide"/>
<module name="intellij.platform.ide.core"/>
<module name="intellij.platform.ide.impl"/>
<module name="intellij.platform.lang"/>
<module name="intellij.platform.projectModel"/>
<module name="intellij.platform.statistics"/>
<module name="intellij.platform.ui.jcef"/>
<module name="intellij.platform.util.coroutines"/>
<module name="intellij.platform.util.ui"/>
</dependencies>
<!-- endregion -->
@@ -390,9 +390,6 @@
<!-- endregion -->
<!-- region direct modules -->
<module name="intellij.platform.ui.jcef"/>
<module name="intellij.platform.ide.newUiOnboarding.jcef"/>
<module name="intellij.platform.ide.impl.jcef"/>
<module name="intellij.platform.lvcs.impl"/>
<module name="intellij.platform.collaborationTools"/>
<module name="intellij.platform.collaborationTools.auth"/>
@@ -1,19 +1,7 @@
<idea-plugin visibility="public">
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<dependencies>
<module name="intellij.libraries.jbr"/>
<module name="intellij.libraries.jcef"/>
<module name="intellij.platform.analysis"/>
<module name="intellij.platform.core"/>
<module name="intellij.platform.core.impl"/>
<module name="intellij.platform.core.ui"/>
<module name="intellij.platform.credentialStore"/>
<module name="intellij.platform.editor.ui"/>
<module name="intellij.platform.ide"/>
<module name="intellij.platform.ide.core"/>
<module name="intellij.platform.projectModel"/>
<module name="intellij.platform.util.ex"/>
<module name="intellij.platform.util.ui"/>
</dependencies>
<!-- endregion -->
+2 -10
View File
@@ -14,11 +14,7 @@ jvm_library(
["resources/**/*"],
),
visibility = ["//visibility:public"],
runtime_deps = [
# do not sort,
"@lib//:kotlin-stdlib",
"//libraries/jcef/plugin",
],
runtime_deps = ["@lib//:kotlin-stdlib"],
)
jvm_library(
@@ -30,11 +26,7 @@ jvm_library(
),
module_name = "intellij.jcef.plugin",
visibility = ["//visibility:public"],
runtime_deps = [
# do not sort,
":plugin",
"//libraries/jcef/plugin:plugin_test_lib",
],
runtime_deps = [":plugin"],
)
### auto-generated section `build intellij.jcef.plugin` end
@@ -7,7 +7,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.libraries.jcef.plugin" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+16 -1
View File
@@ -6,4 +6,19 @@
- name: intellij.internal.jcef
- name: lib/modules/intellij.jcef.frontend.jar
contentModules:
- name: intellij.jcef.frontend
- name: intellij.jcef.frontend
- name: lib/modules/intellij.libraries.jcef.jar
contentModules:
- name: intellij.libraries.jcef
libraries:
jcef:
- name: $MAVEN_REPOSITORY$/org/jetbrains/intellij/deps/jcef/jcef/144/jcef-144.jar
- name: lib/modules/intellij.platform.ide.impl.jcef.jar
contentModules:
- name: intellij.platform.ide.impl.jcef
- name: lib/modules/intellij.platform.ide.newUiOnboarding.jcef.jar
contentModules:
- name: intellij.platform.ide.newUiOnboarding.jcef
- name: lib/modules/intellij.platform.ui.jcef.jar
contentModules:
- name: intellij.platform.ui.jcef
@@ -10,10 +10,13 @@
<dependencies>
<!-- OS/ARCH-DEPENDENCY-PLACEHOLDER -->
<plugin id="com.intellij.modules.platform"/>
<plugin id="intellij.libraries.jcef.plugin"/>
</dependencies>
<content namespace="jetbrains">
<module name="intellij.libraries.jcef" loading="required"/>
<module name="intellij.platform.ui.jcef"/>
<module name="intellij.platform.ide.impl.jcef"/>
<module name="intellij.platform.ide.newUiOnboarding.jcef"/>
<module name="intellij.jcef.frontend" required-if-available="intellij.platform.frontend"/>
<module name="intellij.internal.jcef"/>
</content>
+2 -2
View File
@@ -37,7 +37,7 @@ jvm_library(
"//platform/platform-util-netty:ide-util-netty",
"//libraries/jsoup",
"//libraries/jcef",
"//libraries/jcef/plugin",
"//plugins/jcef/plugin",
"//platform/util-ex",
"//libraries/markdown",
"//plugins/toml",
@@ -71,7 +71,7 @@ jvm_library(
":tests",
"//platform/platform-util-netty:ide-util-netty_test_lib",
"//platform/ide-core:ide-core_test_lib",
"//libraries/jcef/plugin:plugin_test_lib",
"//plugins/jcef/plugin:plugin_test_lib",
"//platform/structure-view-impl/plugin:plugin_test_lib",
],
deps = [
@@ -47,7 +47,7 @@
<orderEntry type="module" module-name="intellij.platform.tests" scope="TEST" />
<orderEntry type="module" module-name="intellij.libraries.jsoup" />
<orderEntry type="module" module-name="intellij.libraries.jcef" />
<orderEntry type="module" module-name="intellij.libraries.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.libraries.assertj.core" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.util.ex" />
<orderEntry type="module" module-name="intellij.platform.util.ui" scope="TEST" />
@@ -1,10 +1,12 @@
<idea-plugin package="com.intellij.mermaid.markdown">
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<dependencies>
<!-- region Generated dependencies - run `Generate Product Layouts` to regenerate -->
<plugin id="com.intellij.mermaid"/>
<module name="intellij.libraries.jcef"/>
<module name="intellij.markdown"/>
<!-- endregion -->
<module name="intellij.platform.ui.jcef"/>
</dependencies>
<!-- endregion -->
<extensions defaultExtensionNs="org.intellij.markdown">
<browserPreviewExtensionProvider implementation="com.intellij.mermaid.markdown.jcef.MermaidBrowserExtension$Provider"
@@ -11,7 +11,9 @@
<dependencies>
<module name="intellij.json"/>
<module name="intellij.json.backend"/>
<module name="intellij.libraries.jcef"/>
<module name="intellij.markdown"/>
<module name="intellij.platform.ui.jcef"/>
<module name="intellij.spellchecker"/>
<module name="intellij.yaml"/>
</dependencies>
+2 -2
View File
@@ -118,7 +118,7 @@ jvm_library(
"//plugins/sh/core",
"//platform/structure-view-impl/plugin",
"//libraries/misc/plugin",
"//libraries/jcef/plugin",
"//plugins/jcef/plugin",
"//plugins/sh/plugin:plugin-main",
"//platform/analysis-impl",
"//platform/lang-api:lang",
@@ -151,7 +151,7 @@ jvm_library(
":tests",
"//platform/structure-view-impl/plugin:plugin_test_lib",
"//libraries/misc/plugin:plugin_test_lib",
"//libraries/jcef/plugin:plugin_test_lib",
"//plugins/jcef/plugin:plugin_test_lib",
"//plugins/sh/plugin:plugin-main_test_lib",
"//platform/ide-core:ide-core_test_lib",
],
+1 -1
View File
@@ -20,7 +20,7 @@
<orderEntry type="module" module-name="intellij.sh.backend" scope="TEST" />
<orderEntry type="module" module-name="intellij.platform.structureView.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.libraries.misc.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.libraries.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.jcef.plugin" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.sh.plugin.main" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.spellchecker" scope="TEST" />
<orderEntry type="module" module-name="intellij.grazie.core" scope="TEST" />
@@ -39,7 +39,6 @@ class PyCharmCommunityProperties(private val communityHome: Path) : PyCharmPrope
productLayout.productImplementationModules = listOf(
"intellij.platform.starter",
"intellij.pycharm.community",
"intellij.platform.whatsNew",
)
productLayout.bundledPluginModules +=
sequenceOf(