[remote dev] refactoring: introduce and use intellij.platform.backend module as a marker for modules not compatible with the frontend process

Before, we used intellij.platform.monolith module for that, but it looks strange when modules that can work at the backend have dependency on 'monolith'. And it may cause problems in the future if we start using separate installations for monolith and backend. So given that to fix IJPL-164312 we need to mark more modules as incompatible with frontend, it's better to use the proper marker.

GitOrigin-RevId: 329fdcd99a298e56baaf9dfdac75604ec512f84c
This commit is contained in:
Nikolay Chashnikov
2025-01-10 14:12:48 +01:00
committed by intellij-monorepo-bot
parent 9d925a1859
commit 16cd137c98
22 changed files with 35 additions and 12 deletions

1
.idea/modules.xml generated
View File

@@ -605,6 +605,7 @@
<module fileurl="file://$PROJECT_DIR$/plugins/performanceTesting/vcs/intellij.performanceTesting.vcs.iml" filepath="$PROJECT_DIR$/plugins/performanceTesting/vcs/intellij.performanceTesting.vcs.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/analysis-api/intellij.platform.analysis.iml" filepath="$PROJECT_DIR$/platform/analysis-api/intellij.platform.analysis.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/analysis-impl/intellij.platform.analysis.impl.iml" filepath="$PROJECT_DIR$/platform/analysis-impl/intellij.platform.analysis.impl.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/backend/intellij.platform.backend.iml" filepath="$PROJECT_DIR$/platform/backend/intellij.platform.backend.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/main/intellij.platform.backend.main/intellij.platform.backend.main.iml" filepath="$PROJECT_DIR$/platform/main/intellij.platform.backend.main/intellij.platform.backend.main.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/backend/observation/intellij.platform.backend.observation.iml" filepath="$PROJECT_DIR$/platform/backend/observation/intellij.platform.backend.observation.iml" />
<module fileurl="file://$PROJECT_DIR$/platform/backend/workspace/intellij.platform.backend.workspace.iml" filepath="$PROJECT_DIR$/platform/backend/workspace/intellij.platform.backend.workspace.iml" />

View File

@@ -0,0 +1,9 @@
<?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$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,5 @@
### Module `intellij.platform.backend`
This is a root module in the hierarchy of modules which implement heavy backend functionality of the platform.
Modules which depend on this module can be loaded by a regular monolith IDE and by an IDE running as a backend in the remote development
scenario. They won't be loaded by an IDE running in frontend mode (JetBrains Client).

View File

@@ -35,6 +35,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.bookmarks" exported="" />
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.platform.lang" />

View File

@@ -30,6 +30,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.extensions" />
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="library" name="kotlinx-collections-immutable" level="project" />

View File

@@ -5,5 +5,6 @@
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
</component>
</module>

View File

@@ -9,6 +9,7 @@
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
<orderEntry type="module" module-name="intellij.platform.ide.progress" />

View File

@@ -8,6 +8,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.project" />

View File

@@ -19,7 +19,7 @@ final class ProductModes {
*/
public static @NotNull RuntimeModuleId getIncompatibleRootModule(@NotNull ProductMode mode) {
switch (mode) {
case FRONTEND: return RuntimeModuleId.module("intellij.platform.monolith");
case FRONTEND: return RuntimeModuleId.module("intellij.platform.backend");
case MONOLITH: return RuntimeModuleId.module("intellij.platform.frontend.split");

View File

@@ -104,7 +104,8 @@ class ProductModulesLoaderTest {
tempDirectory.rootPath,
RawRuntimeModuleDescriptor.create("root", emptyList(), emptyList()),
RawRuntimeModuleDescriptor.create("intellij.platform.frontend.split", emptyList(), emptyList()),
RawRuntimeModuleDescriptor.create("intellij.platform.monolith", emptyList(), emptyList()),
RawRuntimeModuleDescriptor.create("intellij.platform.backend", emptyList(), emptyList()),
RawRuntimeModuleDescriptor.create("intellij.platform.monolith", emptyList(), listOf("intellij.platform.backend")),
RawRuntimeModuleDescriptor.create("plugin", listOf("plugin"), emptyList()),
RawRuntimeModuleDescriptor.create("plugin.common", emptyList(), listOf("plugin")),
RawRuntimeModuleDescriptor.create("plugin.frontend", emptyList(), listOf("plugin", "intellij.platform.frontend.split")),

View File

@@ -7,6 +7,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.ide" />
<orderEntry type="module" module-name="intellij.platform.lang" />
<orderEntry type="module" module-name="intellij.platform.vcs.core" exported="" />

View File

@@ -36,6 +36,7 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="kotlinx-coroutines-core" level="project" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.ide.core" />
<orderEntry type="module" module-name="intellij.platform.ide" />
<orderEntry type="module" module-name="intellij.platform.ide.rpc" />

View File

@@ -13,7 +13,7 @@
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.platform.langInjection" />
<orderEntry type="module" module-name="intellij.xml.langInjection" scope="PROVIDED" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
</component>
</module>

View File

@@ -15,7 +15,7 @@
<orderEntry type="module" module-name="intellij.markdown.frontmatter.toml" />
<orderEntry type="module" module-name="intellij.markdown.frontmatter.yaml" />
<orderEntry type="module" module-name="intellij.json" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
</component>
</module>

View File

@@ -13,7 +13,7 @@
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.markdown" />
<orderEntry type="module" module-name="intellij.toml.core" scope="PROVIDED" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
</component>
</module>

View File

@@ -14,6 +14,6 @@
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.yaml" />
<orderEntry type="module" module-name="intellij.yaml.editing" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
</component>
</module>

View File

@@ -14,7 +14,7 @@
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.platform.images" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
</component>
</module>

View File

@@ -16,7 +16,7 @@
<orderEntry type="module" module-name="intellij.platform.indexing" />
<orderEntry type="module" module-name="intellij.platform.analysis" />
<orderEntry type="module" module-name="intellij.platform.core.ui" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
<orderEntry type="library" name="kotlin-stdlib" level="project" />
</component>
</module>

View File

@@ -13,6 +13,6 @@
<orderEntry type="module" module-name="intellij.platform.util" />
<orderEntry type="module" module-name="intellij.platform.core.impl" />
<orderEntry type="module" module-name="intellij.spellchecker" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
</component>
</module>

View File

@@ -14,6 +14,6 @@
<orderEntry type="module" module-name="intellij.platform.core" />
<orderEntry type="module" module-name="intellij.platform.core.impl" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
<orderEntry type="module" module-name="intellij.platform.monolith" />
<orderEntry type="module" module-name="intellij.platform.backend" />
</component>
</module>

View File

@@ -13,6 +13,6 @@
<orderEntry type="module" module-name="intellij.platform.ide.core" />
<orderEntry type="module" module-name="intellij.platform.vcs" />
<orderEntry type="module" module-name="intellij.platform.core" />
<orderEntry type="module" module-name="intellij.platform.monolith" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
</component>
</module>

View File

@@ -32,7 +32,7 @@
<orderEntry type="module" module-name="intellij.platform.ide.impl" />
<orderEntry type="module" module-name="intellij.terminal" />
<orderEntry type="module" module-name="intellij.sh.core" />
<orderEntry type="module" module-name="intellij.platform.monolith" scope="RUNTIME" />
<orderEntry type="module" module-name="intellij.platform.backend" scope="RUNTIME" />
<orderEntry type="library" name="kotlinx-serialization-core" level="project" />
<orderEntry type="library" name="kotlinx-serialization-json" level="project" />
</component>