diff --git a/java/idea-ui/src/com/intellij/ide/projectView/actions/ExtractModuleFromPackageAction.kt b/java/idea-ui/src/com/intellij/ide/projectView/actions/ExtractModuleFromPackageAction.kt
index fc2283b19f84..6208c03347f0 100644
--- a/java/idea-ui/src/com/intellij/ide/projectView/actions/ExtractModuleFromPackageAction.kt
+++ b/java/idea-ui/src/com/intellij/ide/projectView/actions/ExtractModuleFromPackageAction.kt
@@ -16,7 +16,6 @@ import com.intellij.openapi.diagnostic.ControlFlowException
import com.intellij.openapi.diagnostic.logger
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.Task
import com.intellij.openapi.roots.*
@@ -29,6 +28,7 @@ import com.intellij.psi.JavaDirectoryService
import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiManager
import com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.annotations.TestOnly
import org.jetbrains.concurrency.AsyncPromise
import org.jetbrains.concurrency.Promise
@@ -127,7 +127,7 @@ class ExtractModuleFromPackageAction : AnAction() {
}
val newModule = ModuleManager.getInstance(module.project).newModule(imlFileDirectory.resolve("$moduleName.iml"),
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.updateModel(newModule) { model ->
if (ModuleRootManager.getInstance(module).isSdkInherited) {
diff --git a/java/java-frontback-tests/intellij.java.frontback.tests.iml b/java/java-frontback-tests/intellij.java.frontback.tests.iml
index b951738c21f9..03ae34c848c6 100644
--- a/java/java-frontback-tests/intellij.java.frontback.tests.iml
+++ b/java/java-frontback-tests/intellij.java.frontback.tests.iml
@@ -19,5 +19,6 @@
+
\ No newline at end of file
diff --git a/java/java-frontback-tests/testSrc/com/intellij/BasicDefaultLightProjectDescriptor.java b/java/java-frontback-tests/testSrc/com/intellij/BasicDefaultLightProjectDescriptor.java
index 75374305e6b2..421b575a08ed 100644
--- a/java/java-frontback-tests/testSrc/com/intellij/BasicDefaultLightProjectDescriptor.java
+++ b/java/java-frontback-tests/testSrc/com/intellij/BasicDefaultLightProjectDescriptor.java
@@ -15,10 +15,11 @@
*/
package com.intellij;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.testFramework.LightProjectDescriptor;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
public class BasicDefaultLightProjectDescriptor extends LightProjectDescriptor {
public BasicDefaultLightProjectDescriptor() {
@@ -26,8 +27,6 @@ public class BasicDefaultLightProjectDescriptor extends LightProjectDescriptor {
@Override
public @NotNull String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
-
-
}
diff --git a/java/java-impl/src/com/intellij/openapi/externalSystem/service/project/ModuleDataServiceJavaExtension.java b/java/java-impl/src/com/intellij/openapi/externalSystem/service/project/ModuleDataServiceJavaExtension.java
index 30fb2c3f4cc0..76072cbc8c64 100644
--- a/java/java-impl/src/com/intellij/openapi/externalSystem/service/project/ModuleDataServiceJavaExtension.java
+++ b/java/java-impl/src/com/intellij/openapi/externalSystem/service/project/ModuleDataServiceJavaExtension.java
@@ -6,12 +6,13 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.model.project.ModuleData;
import com.intellij.openapi.externalSystem.service.project.manage.ModuleDataServiceExtension;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.roots.LanguageLevelModuleExtension;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.pom.java.LanguageLevel;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
/**
* @deprecated duplicate behaviour with {@link com.intellij.externalSystem.JavaModuleDataService}
*/
@@ -22,7 +23,7 @@ public final class ModuleDataServiceJavaExtension implements ModuleDataServiceEx
@Override
public void importModule(@NotNull IdeModifiableModelsProvider modelsProvider, @NotNull Module module, @NotNull ModuleData data) {
- if (ModuleTypeId.JAVA_MODULE.equals(module.getModuleTypeName())) {
+ if (JAVA_MODULE_ENTITY_TYPE_ID_NAME.equals(module.getModuleTypeName())) {
ModifiableRootModel modifiableRootModel = modelsProvider.getModifiableRootModel(module);
setLanguageLevel(modifiableRootModel, data);
diff --git a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java
index 492fdc09969e..db0d91341f1b 100644
--- a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java
+++ b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java
@@ -17,17 +17,18 @@ import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes;
import javax.swing.*;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
public class JavaModuleType extends ModuleType {
public static ModuleType> getModuleType() {
- return ModuleTypeManager.getInstance().findByID(JAVA_MODULE);
+ return ModuleTypeManager.getInstance().findByID(JAVA_MODULE_ENTITY_TYPE_ID_NAME);
}
public static final String JAVA_GROUP = "Java";
public static final String BUILD_TOOLS_GROUP = "Build Tools";
- private static final String JAVA_MODULE = ModuleTypeId.JAVA_MODULE;
public JavaModuleType() {
- this(JAVA_MODULE);
+ this(JAVA_MODULE_ENTITY_TYPE_ID_NAME);
}
protected JavaModuleType(@NonNls String id) {
diff --git a/java/java-impl/src/com/intellij/workspaceModel/ide/legacyBridge/impl/java/moduleType.kt b/java/java-impl/src/com/intellij/workspaceModel/ide/legacyBridge/impl/java/moduleType.kt
new file mode 100644
index 000000000000..6d893f7e3fb0
--- /dev/null
+++ b/java/java-impl/src/com/intellij/workspaceModel/ide/legacyBridge/impl/java/moduleType.kt
@@ -0,0 +1,10 @@
+@file:JvmName("JavaModuleTypeUtils")
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.workspaceModel.ide.legacyBridge.impl.java
+
+import com.intellij.platform.workspace.jps.entities.ModuleTypeId
+
+const val JAVA_MODULE_ENTITY_TYPE_ID_NAME = "JAVA_MODULE"
+
+@JvmField
+val JAVA_MODULE_ENTITY_TYPE_ID = ModuleTypeId(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
\ No newline at end of file
diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/CopyReferenceActionFilesTest.kt b/java/java-tests/testSrc/com/intellij/java/codeInsight/CopyReferenceActionFilesTest.kt
index 927212bfef8b..5b79bb04ac58 100644
--- a/java/java-tests/testSrc/com/intellij/java/codeInsight/CopyReferenceActionFilesTest.kt
+++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/CopyReferenceActionFilesTest.kt
@@ -20,12 +20,12 @@ import com.intellij.openapi.application.readAction
import com.intellij.openapi.application.writeAction
import com.intellij.openapi.module.JavaModuleType
import com.intellij.openapi.module.Module
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiManager
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.junit5.TestApplication
import com.intellij.testFramework.rules.ProjectModelExtension
+import com.intellij.workspaceModel.ide.impl.legacyBridge.module.WEB_MODULE_ENTITY_TYPE_ID_NAME
import kotlinx.coroutines.runBlocking
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.BeforeEach
@@ -78,7 +78,7 @@ class CopyReferenceActionFilesTest {
fun `reference to file under non-java source root must include path from content root`() = runBlocking {
lateinit var file: VirtualFile
writeAction {
- module.setModuleType(ModuleTypeId.WEB_MODULE)
+ module.setModuleType(WEB_MODULE_ENTITY_TYPE_ID_NAME)
val sourceRoot = rootDir.createChildDirectory(this, "src")
PsiTestUtil.addContentRoot(module, rootDir)
PsiTestUtil.addSourceRoot(module, sourceRoot)
diff --git a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTestCase.java b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTestCase.java
index 74b023215d8f..1ce328636e79 100644
--- a/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTestCase.java
+++ b/java/java-tests/testSrc/com/intellij/java/psi/formatter/java/JavaFormatterTestCase.java
@@ -1,15 +1,13 @@
// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.java.psi.formatter.java;
-import com.intellij.openapi.module.ModuleType;
-import com.intellij.openapi.module.ModuleTypeId;
-import com.intellij.openapi.module.StdModuleTypes;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.psi.codeStyle.JavaCodeStyleSettings;
import com.intellij.psi.formatter.FormatterTestCase;
import com.intellij.testFramework.IdeaTestUtil;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
public abstract class JavaFormatterTestCase extends FormatterTestCase {
@Override
@@ -20,7 +18,7 @@ public abstract class JavaFormatterTestCase extends FormatterTestCase {
@NotNull
@Override
protected String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
@Override
diff --git a/java/testFramework/src/com/intellij/testFramework/LightIdeaTestCase.java b/java/testFramework/src/com/intellij/testFramework/LightIdeaTestCase.java
index da5772ad9a58..0da1c322645b 100644
--- a/java/testFramework/src/com/intellij/testFramework/LightIdeaTestCase.java
+++ b/java/testFramework/src/com/intellij/testFramework/LightIdeaTestCase.java
@@ -15,11 +15,12 @@
*/
package com.intellij.testFramework;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.psi.impl.JavaPsiFacadeEx;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
/**
* A test case that provides IDEA application and project. Note both are reused for each test run in the session so
* be careful to return all the modification made to application and project components (such as settings) after
@@ -46,6 +47,6 @@ public abstract class LightIdeaTestCase extends LightPlatformTestCase {
@NotNull
@Override
protected String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
}
diff --git a/java/testFramework/src/com/intellij/testFramework/LightJavaCodeInsightTestCase.java b/java/testFramework/src/com/intellij/testFramework/LightJavaCodeInsightTestCase.java
index bf52447d5c5e..33c3e4def0a4 100644
--- a/java/testFramework/src/com/intellij/testFramework/LightJavaCodeInsightTestCase.java
+++ b/java/testFramework/src/com/intellij/testFramework/LightJavaCodeInsightTestCase.java
@@ -3,7 +3,6 @@ package com.intellij.testFramework;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
@@ -16,6 +15,8 @@ import org.jetbrains.annotations.NotNull;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
/**
* A TestCase for single PsiFile being opened in Editor conversion. See configureXXX and checkResultXXX method docs.
*/
@@ -103,6 +104,6 @@ public abstract class LightJavaCodeInsightTestCase extends LightPlatformCodeInsi
@NotNull
@Override
protected String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
}
diff --git a/java/testFramework/src/com/intellij/testFramework/fixtures/DefaultLightProjectDescriptor.java b/java/testFramework/src/com/intellij/testFramework/fixtures/DefaultLightProjectDescriptor.java
index 5b6e3ecd456c..71fc642b2aee 100644
--- a/java/testFramework/src/com/intellij/testFramework/fixtures/DefaultLightProjectDescriptor.java
+++ b/java/testFramework/src/com/intellij/testFramework/fixtures/DefaultLightProjectDescriptor.java
@@ -16,7 +16,6 @@
package com.intellij.testFramework.fixtures;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.LanguageLevelModuleExtension;
@@ -31,6 +30,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
public class DefaultLightProjectDescriptor extends LightProjectDescriptor {
private static final String JETBRAINS_ANNOTATIONS_COORDINATES = "org.jetbrains:annotations-java5:24.0.0";
private @Nullable Supplier extends Sdk> customSdk;
@@ -52,7 +53,7 @@ public class DefaultLightProjectDescriptor extends LightProjectDescriptor {
@Override
public @NotNull String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
@Override
diff --git a/platform/configuration-store-impl/intellij.platform.configurationStore.tests.iml b/platform/configuration-store-impl/intellij.platform.configurationStore.tests.iml
index 968e53637733..fd3ad22d0b63 100644
--- a/platform/configuration-store-impl/intellij.platform.configurationStore.tests.iml
+++ b/platform/configuration-store-impl/intellij.platform.configurationStore.tests.iml
@@ -45,6 +45,7 @@
+
\ No newline at end of file
diff --git a/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt b/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt
index 68c15b55f88e..ee9633848914 100644
--- a/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt
+++ b/platform/configuration-store-impl/testSrc/ModuleStoreTest.kt
@@ -9,7 +9,6 @@ import com.intellij.openapi.components.StoragePathMacros
import com.intellij.openapi.components.stateStore
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ModuleRootModificationUtil
import com.intellij.openapi.roots.ProjectRootManager
@@ -23,6 +22,7 @@ import com.intellij.project.stateStore
import com.intellij.testFramework.*
import com.intellij.testFramework.assertions.Assertions.assertThat
import com.intellij.util.io.Ksuid
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
@@ -187,7 +187,7 @@ class ModuleStoreTest {
// creating a persistent module to make non-empty valid modules.xml
withContext(Dispatchers.EDT) {
ApplicationManager.getApplication().runWriteAction {
- ModuleManager.getInstance(project).newModule(tempDirManager.newPath().resolve("persistent.iml"), ModuleTypeId.JAVA_MODULE)
+ ModuleManager.getInstance(project).newModule(tempDirManager.newPath().resolve("persistent.iml"), JAVA_MODULE_ENTITY_TYPE_ID_NAME)
}
}
project.stateStore.save()
@@ -201,7 +201,7 @@ class ModuleStoreTest {
val module = writeAction {
- ModuleManager.getInstance(project).newNonPersistentModule(moduleName, ModuleTypeId.JAVA_MODULE)
+ ModuleManager.getInstance(project).newNonPersistentModule(moduleName, JAVA_MODULE_ENTITY_TYPE_ID_NAME)
}
withContext(Dispatchers.EDT) {
SoftAssertions.assertSoftly {
@@ -264,6 +264,6 @@ val Module.contentRootUrls: Array
internal suspend fun ProjectRule.createModule(path: Path): Module {
val project = project
return writeAction {
- ModuleManager.getInstance(project).newModule(path, ModuleTypeId.JAVA_MODULE)
+ ModuleManager.getInstance(project).newModule(path, JAVA_MODULE_ENTITY_TYPE_ID_NAME)
}
}
diff --git a/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml b/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
index 5aa47529dbde..91f1daaddd61 100644
--- a/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
+++ b/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
@@ -12,5 +12,6 @@
+
\ No newline at end of file
diff --git a/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/TestProjectModelBuilder.kt b/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/TestProjectModelBuilder.kt
index c5bcd4582cfe..61b2cdd199d1 100644
--- a/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/TestProjectModelBuilder.kt
+++ b/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/TestProjectModelBuilder.kt
@@ -6,8 +6,8 @@ import com.intellij.openapi.externalSystem.model.ProjectKeys
import com.intellij.openapi.externalSystem.model.ProjectSystemId
import com.intellij.openapi.externalSystem.model.project.*
import com.intellij.platform.externalSystem.testFramework.ExternalSystemTestUtil.TEST_EXTERNAL_SYSTEM_ID
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.roots.DependencyScope
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import java.util.*
fun project(name: String = "project",
@@ -125,7 +125,7 @@ class Module : NamedNode("module") {
props["moduleFileDirectoryPath"] = value
}
- val moduleData by lazy { ModuleData(name, systemId, ModuleTypeId.JAVA_MODULE, name, moduleFileDirectoryPath, externalProjectPath) }
+ val moduleData by lazy { ModuleData(name, systemId, JAVA_MODULE_ENTITY_TYPE_ID_NAME, name, moduleFileDirectoryPath, externalProjectPath) }
fun module(name: String = "module",
externalProjectPath: String,
diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java
index afb1288e5f68..01a8414eac90 100644
--- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java
+++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ExternalProjectsDataStorage.java
@@ -21,7 +21,6 @@ import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemLocalS
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectUtil;
@@ -362,7 +361,7 @@ public final class ExternalProjectsDataStorage extends SimpleModificationTracker
for (ExternalProjectPojo childProject : childProjects) {
String moduleConfigPath = childProject.getPath();
ModuleData moduleData = new ModuleData(childProject.getName(), systemId,
- ModuleTypeId.JAVA_MODULE, childProject.getName(),
+ "JAVA_MODULE", childProject.getName(),
moduleConfigPath, moduleConfigPath);
projectDataNode.createChild(MODULE, moduleData);
}
diff --git a/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/configurationStore/ExternalSystemStorageTest.kt b/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/configurationStore/ExternalSystemStorageTest.kt
index 2387231a5404..b6b42bd6e10d 100644
--- a/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/configurationStore/ExternalSystemStorageTest.kt
+++ b/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/configurationStore/ExternalSystemStorageTest.kt
@@ -25,7 +25,6 @@ import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjec
import com.intellij.openapi.module.EmptyModuleType
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.project.ExternalStorageConfigurationManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.project.doNotEnableExternalStorageByDefaultInTests
@@ -58,6 +57,7 @@ import com.intellij.util.io.delete
import com.intellij.util.io.directoryContentOf
import com.intellij.util.ui.UIUtil
import com.intellij.workspaceModel.ide.impl.jps.serialization.JpsProjectModelSynchronizer
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
@@ -94,7 +94,7 @@ class ExternalSystemStorageTest {
@Test
fun `save single mavenized module`() = saveProjectInExternalStorageAndCheckResult("singleModule") { project, projectDir ->
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
ExternalSystemModulePropertyManager.getInstance(module).setMavenized(true)
}
@@ -103,7 +103,7 @@ class ExternalSystemStorageTest {
fun `load single mavenized module`() = loadProjectAndCheckResults("singleModule") { project ->
val module = ModuleManager.getInstance(project).modules.single()
assertThat(module.name).isEqualTo("test")
- assertThat(module.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(module.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(module.moduleFilePath).isEqualTo("${project.basePath}/test.iml")
assertThat(ExternalSystemModulePropertyManager.getInstance(module).isMavenized()).isTrue()
assertThat(ExternalStorageConfigurationManager.getInstance(project).isEnabled).isTrue()
@@ -113,7 +113,7 @@ class ExternalSystemStorageTest {
fun `save single module from external system`() = saveProjectInExternalStorageAndCheckResult(
"singleModuleFromExternalSystem") { project, projectDir ->
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
setExternalSystemOptions(module, projectDir)
}
@@ -125,7 +125,7 @@ class ExternalSystemStorageTest {
writeAction {
val projectDir = project.stateStore.directoryStorePath!!.parent
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
@@ -156,7 +156,7 @@ class ExternalSystemStorageTest {
fun `load single module from external system`() = loadProjectAndCheckResults("singleModuleFromExternalSystem") { project ->
val module = ModuleManager.getInstance(project).modules.single()
assertThat(module.name).isEqualTo("test")
- assertThat(module.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(module.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(module.moduleFilePath).isEqualTo("${project.basePath}/test.iml")
assertThat(ExternalSystemModulePropertyManager.getInstance(module).isMavenized()).isFalse()
assertThat(ExternalStorageConfigurationManager.getInstance(project).isEnabled).isTrue()
@@ -167,7 +167,7 @@ class ExternalSystemStorageTest {
fun `save single module from external system in internal storage`() = saveProjectInInternalStorageAndCheckResult(
"singleModuleFromExternalSystemInInternalStorage") { project, projectDir ->
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
setExternalSystemOptions(module, projectDir)
}
@@ -177,7 +177,7 @@ class ExternalSystemStorageTest {
"singleModuleFromExternalSystemInInternalStorage") { project ->
val module = ModuleManager.getInstance(project).modules.single()
assertThat(module.name).isEqualTo("test")
- assertThat(module.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(module.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(module.moduleFilePath).isEqualTo("${project.basePath}/test.iml")
assertThat(ExternalSystemModulePropertyManager.getInstance(module).isMavenized()).isFalse()
assertThat(ExternalStorageConfigurationManager.getInstance(project).isEnabled).isFalse()
@@ -210,7 +210,7 @@ class ExternalSystemStorageTest {
fun `save imported module in internal storage`() = saveProjectInInternalStorageAndCheckResult(
"singleModuleInInternalStorage") { project, projectDir ->
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
ExternalSystemModulePropertyManager.getInstance(module).setMavenized(true)
}
@@ -219,7 +219,7 @@ class ExternalSystemStorageTest {
fun `load imported module from internal storage`() = loadProjectAndCheckResults("singleModuleInInternalStorage") { project ->
val module = ModuleManager.getInstance(project).modules.single()
assertThat(module.name).isEqualTo("test")
- assertThat(module.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(module.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(module.moduleFilePath).isEqualTo("${project.basePath}/test.iml")
assertThat(ExternalSystemModulePropertyManager.getInstance(module).isMavenized()).isTrue()
assertThat(ExternalStorageConfigurationManager.getInstance(project).isEnabled).isFalse()
@@ -228,10 +228,10 @@ class ExternalSystemStorageTest {
@Test
fun `save mixed modules`() = saveProjectInExternalStorageAndCheckResult("mixedModules") { project, projectDir ->
val regular = ModuleManager.getInstance(project).newModule(projectDir.resolve("regular.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(regular, projectDir.resolve("regular").invariantSeparatorsPathString)
val imported = ModuleManager.getInstance(project).newModule(projectDir.resolve("imported.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(imported, projectDir.resolve("imported").invariantSeparatorsPathString)
ExternalSystemModulePropertyManager.getInstance(imported).setMavenized(true)
ExternalSystemModulePropertyManager.getInstance(imported).setLinkedProjectPath("${project.basePath}/imported")
@@ -261,8 +261,8 @@ class ExternalSystemStorageTest {
val (imported, regular) = modules
assertThat(imported.name).isEqualTo("imported")
assertThat(regular.name).isEqualTo("regular")
- assertThat(imported.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
- assertThat(regular.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(imported.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
+ assertThat(regular.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(imported.moduleFilePath).isEqualTo("${project.basePath}/imported.iml")
assertThat(regular.moduleFilePath).isEqualTo("${project.basePath}/regular.iml")
assertThat(ModuleRootManager.getInstance(imported).contentRootUrls.single()).isEqualTo(
@@ -278,7 +278,7 @@ class ExternalSystemStorageTest {
fun `save regular facet in imported module`() = saveProjectInExternalStorageAndCheckResult(
"regularFacetInImportedModule") { project, projectDir ->
val module = ModuleManager.getInstance(project).newModule(projectDir.resolve("test.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
ModuleRootModificationUtil.addContentRoot(module, projectDir.invariantSeparatorsPathString)
FacetManager.getInstance(module).addFacet(MockFacetType.getInstance(), "regular", null)
ExternalSystemModulePropertyManager.getInstance(module).setMavenized(true)
@@ -310,7 +310,7 @@ class ExternalSystemStorageTest {
assertThat(modules).hasSize(1)
val testModule = modules[0]
assertThat(testModule.name).isEqualTo("test")
- assertThat(testModule.moduleTypeName).isEqualTo(ModuleTypeId.JAVA_MODULE)
+ assertThat(testModule.moduleTypeName).isEqualTo(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
assertThat(testModule.moduleFilePath).isEqualTo("${project.basePath}/test.iml")
assertThat(ModuleRootManager.getInstance(testModule).contentRootUrls.single()).isEqualTo(
VfsUtil.pathToUrl("${project.basePath}/test"))
@@ -322,7 +322,7 @@ class ExternalSystemStorageTest {
fun `save imported facet in imported module`() = saveProjectInExternalStorageAndCheckResult(
"importedFacetInImportedModule") { project, projectDir ->
val imported = ModuleManager.getInstance(project).newModule(projectDir.resolve("imported.iml").invariantSeparatorsPathString,
- ModuleTypeId.JAVA_MODULE)
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME)
val facetRoot = VfsUtilCore.pathToUrl(projectDir.resolve("facet").invariantSeparatorsPathString)
addFacet(imported, SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID, "imported", listOf(facetRoot))
ExternalSystemModulePropertyManager.getInstance(imported).setMavenized(true)
diff --git a/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerTest.kt b/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerTest.kt
index 244442e949b3..fa9ac542cb97 100644
--- a/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerTest.kt
+++ b/platform/external-system-impl/testSrc/com/intellij/openapi/externalSystem/service/project/manage/SourceFolderManagerTest.kt
@@ -4,7 +4,6 @@ package com.intellij.openapi.externalSystem.service.project.manage
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.vfs.LocalFileSystem
@@ -16,6 +15,7 @@ import com.intellij.platform.backend.workspace.impl.internal
import com.intellij.platform.workspace.storage.VersionedStorageChange
import com.intellij.testFramework.HeavyPlatformTestCase
import com.intellij.testFramework.PlatformTestUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.assertj.core.api.BDDAssertions.then
import org.jetbrains.jps.model.java.JavaSourceRootType
import java.io.File
@@ -108,7 +108,7 @@ class SourceFolderManagerTest: HeavyPlatformTestCase() {
val modifiableModel = moduleManager.getModifiableModel()
val newModule: Module =
try {
- modifiableModel.newModule(dir.toPath().resolve(moduleName).toAbsolutePath(), ModuleTypeId.JAVA_MODULE)
+ modifiableModel.newModule(dir.toPath().resolve(moduleName).toAbsolutePath(), JAVA_MODULE_ENTITY_TYPE_ID_NAME)
}
finally {
runWriteAction {
diff --git a/platform/lang-impl/src/com/intellij/openapi/module/WebModuleTypeBase.java b/platform/lang-impl/src/com/intellij/openapi/module/WebModuleTypeBase.java
index d031aadca81b..98ed24c20b9d 100644
--- a/platform/lang-impl/src/com/intellij/openapi/module/WebModuleTypeBase.java
+++ b/platform/lang-impl/src/com/intellij/openapi/module/WebModuleTypeBase.java
@@ -9,9 +9,11 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
+import static com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleTypeUtils.WEB_MODULE_ENTITY_TYPE_ID_NAME;
+
public abstract class WebModuleTypeBase extends ModuleType implements ModuleTypeWithWebFeatures {
- @NonNls public static final String WEB_MODULE = ModuleTypeId.WEB_MODULE;
+ @NonNls public static final String WEB_MODULE = WEB_MODULE_ENTITY_TYPE_ID_NAME;
public WebModuleTypeBase() {
super(WEB_MODULE);
diff --git a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt
index cc99d50d4c77..8613cee2b0b2 100644
--- a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt
+++ b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModuleBridgeImpl.kt
@@ -144,7 +144,7 @@ internal class ModuleBridgeImpl(
override fun getOptionValue(key: String): String? {
val moduleEntity = this.findModuleEntity(entityStorage.current)
if (key == Module.ELEMENT_TYPE) {
- return moduleEntity?.type
+ return moduleEntity?.type?.name
}
return moduleEntity?.customImlData?.customModuleOptions?.get(key)
}
@@ -152,7 +152,9 @@ internal class ModuleBridgeImpl(
override fun setOption(key: String, value: String?) {
fun updateOptionInEntity(diff: MutableEntityStorage, entity: ModuleEntity) {
if (key == Module.ELEMENT_TYPE) {
- diff.modifyEntity(entity) { type = value }
+ diff.modifyEntity(entity) {
+ type = if (value != null) ModuleTypeId(value) else null
+ }
}
else {
val customImlData = entity.customImlData
diff --git a/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/moduleType.kt b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/moduleType.kt
new file mode 100644
index 000000000000..abfbad2eaa47
--- /dev/null
+++ b/platform/lang-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/moduleType.kt
@@ -0,0 +1,10 @@
+@file:JvmName("ModuleTypeUtils")
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.workspaceModel.ide.impl.legacyBridge.module
+
+import com.intellij.platform.workspace.jps.entities.ModuleTypeId
+
+const val WEB_MODULE_ENTITY_TYPE_ID_NAME = "WEB_MODULE"
+
+@JvmField
+val WEB_MODULE_ENTITY_TYPE_ID = ModuleTypeId(WEB_MODULE_ENTITY_TYPE_ID_NAME)
\ No newline at end of file
diff --git a/platform/lang-impl/testSources/com/intellij/platform/ModuleAttachProcessorTest.kt b/platform/lang-impl/testSources/com/intellij/platform/ModuleAttachProcessorTest.kt
index cbce5d9fdc89..3531c0c3e863 100644
--- a/platform/lang-impl/testSources/com/intellij/platform/ModuleAttachProcessorTest.kt
+++ b/platform/lang-impl/testSources/com/intellij/platform/ModuleAttachProcessorTest.kt
@@ -6,13 +6,13 @@ import com.intellij.openapi.application.ModalityState
import com.intellij.openapi.application.asContextElement
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.project.stateStore
import com.intellij.testFramework.ApplicationRule
import com.intellij.testFramework.TemporaryDirectory
import com.intellij.testFramework.assertions.Assertions.assertThat
import com.intellij.testFramework.createOrLoadProject
import com.intellij.util.io.createDirectories
+import com.intellij.workspaceModel.ide.impl.legacyBridge.module.WEB_MODULE_ENTITY_TYPE_ID_NAME
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
@@ -40,7 +40,7 @@ internal class ModuleAttachProcessorTest {
existingProjectDir = existingProject.basePath!!
withContext(Dispatchers.EDT + ModalityState.defaultModalityState().asContextElement()) {
runWriteAction {
- ModuleManager.getInstance(existingProject).newModule("$existingProjectDir/test.iml", ModuleTypeId.WEB_MODULE)
+ ModuleManager.getInstance(existingProject).newModule("$existingProjectDir/test.iml", WEB_MODULE_ENTITY_TYPE_ID_NAME)
}
existingProject.stateStore.save()
}
diff --git a/platform/platform-tests/intellij.platform.tests.iml b/platform/platform-tests/intellij.platform.tests.iml
index f3f31440d6b6..e80a984bd535 100644
--- a/platform/platform-tests/intellij.platform.tests.iml
+++ b/platform/platform-tests/intellij.platform.tests.iml
@@ -94,5 +94,6 @@
+
\ No newline at end of file
diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java
index af2e8f0eeb16..f54baaab6b18 100644
--- a/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java
+++ b/platform/platform-tests/testSrc/com/intellij/openapi/components/impl/OverwriteProjectConfigurationTest.java
@@ -5,7 +5,6 @@ import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.ModuleType;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectManagerEx;
import com.intellij.testFramework.HeavyPlatformTestCase;
@@ -16,6 +15,8 @@ import org.jetbrains.annotations.NotNull;
import java.nio.file.Path;
import static com.intellij.testFramework.assertions.Assertions.assertThat;
+import static com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleTypeUtils.WEB_MODULE_ENTITY_TYPE_ID_NAME;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
private Path myProjectDir;
@@ -29,7 +30,7 @@ public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
public void testOverwriteModulesList() {
Project project = ProjectManagerEx.getInstanceEx().newProject(myProjectDir, new OpenProjectTaskBuilder().build());
try {
- createModule(project, "module", ModuleTypeId.JAVA_MODULE);
+ createModule(project, "module", JAVA_MODULE_ENTITY_TYPE_ID_NAME);
PlatformTestUtil.saveProject(project);
}
finally {
@@ -49,7 +50,7 @@ public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
public void testOverwriteModuleType() {
Project project = ProjectManagerEx.getInstanceEx().newProject(myProjectDir, new OpenProjectTaskBuilder().build());
try {
- Path imlFile = createModule(project, "module", ModuleTypeId.JAVA_MODULE);
+ Path imlFile = createModule(project, "module", JAVA_MODULE_ENTITY_TYPE_ID_NAME);
PlatformTestUtil.saveProject(project);
assertThat(imlFile).isRegularFile();
}
@@ -59,10 +60,10 @@ public class OverwriteProjectConfigurationTest extends HeavyPlatformTestCase {
project = ProjectManagerEx.getInstanceEx().newProject(myProjectDir, new OpenProjectTaskBuilder().build());
try {
- createModule(project, "module", ModuleTypeId.WEB_MODULE);
+ createModule(project, "module", WEB_MODULE_ENTITY_TYPE_ID_NAME);
PlatformTestUtil.saveProject(project);
Module module = assertOneElement(ModuleManager.getInstance(project).getModules());
- assertEquals(ModuleTypeId.WEB_MODULE, ModuleType.get(module).getId());
+ assertEquals(WEB_MODULE_ENTITY_TYPE_ID_NAME, ModuleType.get(module).getId());
}
finally {
PlatformTestUtil.forceCloseProjectWithoutSaving(project);
diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/roots/impl/indexing/ProjectStructureDsl.kt b/platform/platform-tests/testSrc/com/intellij/openapi/roots/impl/indexing/ProjectStructureDsl.kt
index 88712ab57cb8..0eec593cbf16 100644
--- a/platform/platform-tests/testSrc/com/intellij/openapi/roots/impl/indexing/ProjectStructureDsl.kt
+++ b/platform/platform-tests/testSrc/com/intellij/openapi/roots/impl/indexing/ProjectStructureDsl.kt
@@ -5,7 +5,6 @@ import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.module.ModuleTypeManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.ThrowableComputable
@@ -16,6 +15,7 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.IndexingTestUtil
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.rules.ProjectModelRule
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.jps.model.java.JavaResourceRootType
import org.jetbrains.jps.model.java.JavaSourceRootType
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
@@ -286,7 +286,7 @@ fun ProjectModelRule.createJavaModule(moduleName: String, content: ModuleContent
}
private fun createJavaModule(project: Project, moduleName: String, moduleRootDirectory: Path): Module {
- val type = ModuleTypeManager.getInstance().findByID(ModuleTypeId.JAVA_MODULE)
+ val type = ModuleTypeManager.getInstance().findByID(JAVA_MODULE_ENTITY_TYPE_ID_NAME)
return WriteCommandAction.writeCommandAction(project).compute(
ThrowableComputable {
val moduleModel = ModuleManager.getInstance(project).getModifiableModel()
diff --git a/platform/projectModel-api/src/com/intellij/openapi/module/ModuleTypeId.java b/platform/projectModel-api/src/com/intellij/openapi/module/ModuleTypeId.java
deleted file mode 100644
index 093d442d0268..000000000000
--- a/platform/projectModel-api/src/com/intellij/openapi/module/ModuleTypeId.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.intellij.openapi.module;
-
-/**
- * IDs of some well-known module types.
- */
-public final class ModuleTypeId {
- public static final String WEB_MODULE = "WEB_MODULE";
- public static final String JAVA_MODULE = "JAVA_MODULE";
-}
diff --git a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModifiableModuleModelBridgeImpl.kt b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModifiableModuleModelBridgeImpl.kt
index af10af363582..892645170d54 100644
--- a/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModifiableModuleModelBridgeImpl.kt
+++ b/platform/projectModel-impl/src/com/intellij/workspaceModel/ide/impl/legacyBridge/module/ModifiableModuleModelBridgeImpl.kt
@@ -23,6 +23,7 @@ import com.intellij.platform.workspace.storage.MutableEntityStorage
import com.intellij.projectModel.ProjectModelBundle
import com.intellij.util.PathUtil
import com.intellij.util.containers.BidirectionalMap
+import com.intellij.util.containers.ConcurrentFactoryMap
import com.intellij.workspaceModel.ide.NonPersistentEntitySource
import com.intellij.workspaceModel.ide.impl.LegacyBridgeJpsEntitySourceFactory
import com.intellij.workspaceModel.ide.impl.legacyBridge.LegacyBridgeModifiableBase
@@ -43,6 +44,8 @@ internal class ModifiableModuleModelBridgeImpl(
diff: MutableEntityStorage,
cacheStorageResult: Boolean = true
) : LegacyBridgeModifiableBase(diff, cacheStorageResult), ModifiableModuleModelBridge {
+ private val moduleTypes = ConcurrentFactoryMap.createMap { ModuleTypeId(it) }
+
override fun getProject(): Project = project
private val modulesToAdd = BidirectionalMap()
@@ -99,7 +102,7 @@ internal class ModifiableModuleModelBridgeImpl(
dependencies = listOf(ModuleSourceDependency),
entitySource = entitySource
) {
- type = moduleTypeId
+ type = moduleTypes[moduleTypeId]
}
return@addMeasuredTime createModuleInstance(moduleEntity, true)
diff --git a/platform/workspace/jps/gen/com/intellij/java/workspace/entities/MetadataStorageImpl.kt b/platform/workspace/jps/gen/com/intellij/java/workspace/entities/MetadataStorageImpl.kt
index 09da07ee7f44..f084e4383810 100644
--- a/platform/workspace/jps/gen/com/intellij/java/workspace/entities/MetadataStorageImpl.kt
+++ b/platform/workspace/jps/gen/com/intellij/java/workspace/entities/MetadataStorageImpl.kt
@@ -480,7 +480,7 @@ primitiveTypeStringNotNullable), primitive = primitiveTypeMapNotNullable), withD
typeMetadata = EntityMetadata(fqName = "com.intellij.platform.workspace.jps.entities.ModuleEntity", entityDataFqName = "com.intellij.platform.workspace.jps.entities.ModuleEntityData", supertypes = listOf("com.intellij.platform.workspace.storage.WorkspaceEntity",
"com.intellij.platform.workspace.storage.WorkspaceEntityWithSymbolicId"), properties = listOf(OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "entitySource", valueType = ValueTypeMetadata.SimpleType.CustomType(isNullable = false, typeMetadata = FinalClassMetadata.KnownClass(fqName = "com.intellij.platform.workspace.storage.EntitySource")), withDefault = false),
OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "name", valueType = primitiveTypeStringNotNullable, withDefault = false),
-OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "type", valueType = primitiveTypeStringNullable, withDefault = false),
+OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "type", valueType = ValueTypeMetadata.SimpleType.CustomType(isNullable = true, typeMetadata = FinalClassMetadata.ClassMetadata(fqName = "com.intellij.platform.workspace.jps.entities.ModuleTypeId", properties = listOf(OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "name", valueType = primitiveTypeStringNotNullable, withDefault = false)), supertypes = listOf())), withDefault = false),
OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "dependencies", valueType = ValueTypeMetadata.ParameterizedType(generics = listOf(ValueTypeMetadata.SimpleType.CustomType(isNullable = false, typeMetadata = ExtendableClassMetadata.AbstractClassMetadata(fqName = "com.intellij.platform.workspace.jps.entities.ModuleDependencyItem", subclasses = listOf(FinalClassMetadata.ObjectMetadata(fqName = "com.intellij.platform.workspace.jps.entities.ModuleSourceDependency", properties = listOf(), supertypes = listOf("com.intellij.platform.workspace.jps.entities.ModuleDependencyItem",
"java.io.Serializable")),
FinalClassMetadata.ClassMetadata(fqName = "com.intellij.platform.workspace.jps.entities.SdkDependency", properties = listOf(OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "sdk", valueType = ValueTypeMetadata.SimpleType.CustomType(isNullable = false, typeMetadata = FinalClassMetadata.ClassMetadata(fqName = "com.intellij.platform.workspace.jps.entities.SdkId", properties = listOf(OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name = "presentableName", valueType = primitiveTypeStringNotNullable, withDefault = false),
@@ -604,7 +604,7 @@ OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name =
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryEntity", metadataHash = 311438336)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryPropertiesEntity", metadataHash = -31768321)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleCustomImlDataEntity", metadataHash = -917110778)
- addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleEntity", metadataHash = -1158387731)
+ addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleEntity", metadataHash = 1486093169)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleGroupPathEntity", metadataHash = -371618300)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleSettingsBase", metadataHash = -1726065761)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.SdkEntity", metadataHash = 154089668)
@@ -622,6 +622,7 @@ OwnPropertyMetadata(isComputable = false, isKey = false, isOpen = false, name =
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryRoot", metadataHash = -909142712)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryRootTypeId", metadataHash = -389178127)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryRoot\$InclusionOptions", metadataHash = 1781041525)
+ addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleTypeId", metadataHash = 56899897)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.ModuleDependencyItem", metadataHash = 1232498200)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.InheritedSdkDependency", metadataHash = -1690206127)
addMetadataHash(typeFqn = "com.intellij.platform.workspace.jps.entities.LibraryDependency", metadataHash = -1835390724)
diff --git a/platform/workspace/jps/gen/com/intellij/platform/workspace/jps/entities/ModuleEntityImpl.kt b/platform/workspace/jps/gen/com/intellij/platform/workspace/jps/entities/ModuleEntityImpl.kt
index a4d4db1a807b..2a729de37015 100644
--- a/platform/workspace/jps/gen/com/intellij/platform/workspace/jps/entities/ModuleEntityImpl.kt
+++ b/platform/workspace/jps/gen/com/intellij/platform/workspace/jps/entities/ModuleEntityImpl.kt
@@ -53,7 +53,7 @@ open class ModuleEntityImpl(private val dataSource: ModuleEntityData) : ModuleEn
return dataSource.name
}
- override val type: String?
+ override val type: ModuleTypeId?
get() {
readField("type")
return dataSource.type
@@ -183,12 +183,13 @@ open class ModuleEntityImpl(private val dataSource: ModuleEntityData) : ModuleEn
changedProperty.add("name")
}
- override var type: String?
+ override var type: ModuleTypeId?
get() = getEntityData().type
set(value) {
checkModificationAllowed()
getEntityData(true).type = value
changedProperty.add("type")
+
}
private val dependenciesUpdater: (value: List) -> Unit = { value ->
@@ -310,7 +311,7 @@ open class ModuleEntityImpl(private val dataSource: ModuleEntityData) : ModuleEn
class ModuleEntityData : WorkspaceEntityData.WithCalculableSymbolicId(), SoftLinkable {
lateinit var name: String
- var type: String? = null
+ var type: ModuleTypeId? = null
lateinit var dependencies: MutableList
internal fun isNameInitialized(): Boolean = ::name.isInitialized
diff --git a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/entities/module.kt b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/entities/module.kt
index 6b6dd02b68aa..ba342c37e140 100644
--- a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/entities/module.kt
+++ b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/entities/module.kt
@@ -14,6 +14,8 @@ import com.intellij.platform.workspace.storage.annotations.Child
import com.intellij.platform.workspace.storage.impl.containers.toMutableWorkspaceList
import org.jetbrains.annotations.NonNls
+data class ModuleTypeId(val name: @NonNls String)
+
/**
* Describes configuration of a [Module][com.intellij.openapi.module.Module].
* See [package documentation](psi_element://com.intellij.platform.workspace.jps.entities) for more details.
@@ -21,7 +23,7 @@ import org.jetbrains.annotations.NonNls
interface ModuleEntity : WorkspaceEntityWithSymbolicId {
val name: @NlsSafe String
- val type: @NonNls String?
+ val type: ModuleTypeId?
val dependencies: List
val contentRoots: List<@Child ContentRootEntity>
@@ -35,7 +37,7 @@ interface ModuleEntity : WorkspaceEntityWithSymbolicId {
interface Builder : ModuleEntity, WorkspaceEntity.Builder {
override var entitySource: EntitySource
override var name: String
- override var type: String?
+ override var type: ModuleTypeId?
override var dependencies: MutableList
override var contentRoots: List
override var facets: List
diff --git a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/serialization/impl/ModuleImlFileEntitiesSerializer.kt b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/serialization/impl/ModuleImlFileEntitiesSerializer.kt
index 53ba9a12a643..d9bb503faea3 100644
--- a/platform/workspace/jps/src/com/intellij/platform/workspace/jps/serialization/impl/ModuleImlFileEntitiesSerializer.kt
+++ b/platform/workspace/jps/src/com/intellij/platform/workspace/jps/serialization/impl/ModuleImlFileEntitiesSerializer.kt
@@ -12,6 +12,7 @@ import com.intellij.platform.workspace.jps.serialization.impl.JpsProjectEntities
import com.intellij.platform.workspace.storage.*
import com.intellij.platform.workspace.storage.url.VirtualFileUrl
import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
+import com.intellij.util.containers.ConcurrentFactoryMap
import io.opentelemetry.api.metrics.Meter
import org.jdom.Attribute
import org.jdom.Element
@@ -49,6 +50,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
internal val internalModuleListSerializer: JpsModuleListSerializer? = null,
internal val externalModuleListSerializer: JpsModuleListSerializer? = null)
: JpsFileEntitiesSerializer {
+ private val moduleTypes = ConcurrentFactoryMap.createMap { ModuleTypeId(it) }
override val mainEntityClass: Class
get() = ModuleEntity::class.java
@@ -244,9 +246,9 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
}
}
- val moduleType = moduleOptions["type"]
- if (moduleType != null) {
- moduleEntity.type = moduleType
+ val moduleTypeName = moduleOptions["type"]
+ if (moduleTypeName != null) {
+ moduleEntity.type = moduleTypes[moduleTypeName]
}
@Suppress("UNCHECKED_CAST")
val customModuleOptions =
@@ -695,7 +697,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
writer: JpsFileContentWriter) {
val externalSystemOptions = module.exModuleOptions
val customImlData = module.customImlData
- saveModuleOptions(externalSystemOptions, module.type, customImlData, writer)
+ saveModuleOptions(externalSystemOptions, module.type?.name, customImlData, writer)
val moduleOptions = customImlData?.customModuleOptions
val customSerializerId = moduleOptions?.get(JpsProjectLoader.CLASSPATH_ATTRIBUTE)
if (customSerializerId != null) {
diff --git a/platform/workspace/jps/tests/intellij.platform.workspace.jps.tests.iml b/platform/workspace/jps/tests/intellij.platform.workspace.jps.tests.iml
index 3df5334a0422..cdfa63658777 100644
--- a/platform/workspace/jps/tests/intellij.platform.workspace.jps.tests.iml
+++ b/platform/workspace/jps/tests/intellij.platform.workspace.jps.tests.iml
@@ -28,6 +28,7 @@
+
\ No newline at end of file
diff --git a/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/ModuleBridgesTest.kt b/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/ModuleBridgesTest.kt
index 2317303237d5..e8ca06865fde 100644
--- a/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/ModuleBridgesTest.kt
+++ b/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/ModuleBridgesTest.kt
@@ -39,10 +39,12 @@ import com.intellij.util.ui.UIUtil
import com.intellij.workspaceModel.ide.impl.WorkspaceModelInitialTestContent
import com.intellij.workspaceModel.ide.impl.jps.serialization.toConfigLocation
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.ModuleManagerBridgeImpl
+import com.intellij.workspaceModel.ide.impl.legacyBridge.module.WEB_MODULE_ENTITY_TYPE_ID
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.findModule
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.findModuleEntity
import com.intellij.workspaceModel.ide.impl.legacyBridge.module.roots.ModuleRootComponentBridge
import com.intellij.workspaceModel.ide.legacyBridge.ModuleBridge
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
@@ -413,7 +415,7 @@ class ModuleBridgesTest {
val moduleFile = File(project.basePath, "test.iml")
val moduleManager = ModuleManager.getInstance(project)
- val module = runWriteActionAndWait { moduleManager.newModule(moduleFile.path, ModuleTypeId.JAVA_MODULE) }
+ val module = runWriteActionAndWait { moduleManager.newModule(moduleFile.path, JAVA_MODULE_ENTITY_TYPE_ID_NAME) }
project.stateStore.save()
@@ -633,7 +635,7 @@ class ModuleBridgesTest {
WriteCommandAction.runWriteCommandAction(project) {
val moduleManager = ModuleManager.getInstance(project)
- val module = moduleManager.newModule(moduleImlFile.path, ModuleTypeId.WEB_MODULE)
+ val module = moduleManager.newModule(moduleImlFile.path, WEB_MODULE_ENTITY_TYPE_ID.name)
ModuleRootModificationUtil.updateModel(module) { model ->
val url = VfsUtilCore.pathToUrl(FileUtil.toSystemIndependentName(tempDir.path))
val contentEntry = model.addContentEntry(url)
diff --git a/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt b/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt
index 9f457c17e68c..fa8e31abd6f3 100644
--- a/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt
+++ b/platform/workspace/jps/tests/testSrc/com/intellij/workspaceModel/ide/impl/jps/serialization/JpsProjectSaveAfterChangesTest.kt
@@ -15,6 +15,7 @@ import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
import com.intellij.testFramework.junit5.TestApplication
import com.intellij.testFramework.rules.ProjectModelExtension
import com.intellij.workspaceModel.ide.impl.IdeVirtualFileUrlManagerImpl
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID
import org.jetbrains.jps.util.JpsPathUtil
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.BeforeEach
@@ -110,7 +111,7 @@ class JpsProjectSaveAfterChangesTest {
val dependencies = listOf(InheritedSdkDependency, ModuleSourceDependency)
val module = builder addEntity ModuleEntity("newModule", dependencies, source)
builder.modifyEntity(module) {
- type = "JAVA_MODULE"
+ type = JAVA_MODULE_ENTITY_TYPE_ID
}
val contentRootEntity = builder addEntity ContentRootEntity(configLocation.baseDirectoryUrl.append("new"),
emptyList<@NlsSafe String>(), module.entitySource) {
diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseModuleRootsSerializer.kt b/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseModuleRootsSerializer.kt
index 9a345aa7c5ba..f714cc7709cb 100644
--- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseModuleRootsSerializer.kt
+++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/config/EclipseModuleRootsSerializer.kt
@@ -435,7 +435,7 @@ class EclipseModuleRootsSerializer : CustomModuleRootsSerializer, StorageManager
val dotProjectFile = entitySource.classpathFile.toPath().parent.resolve(EclipseXml.PROJECT_FILE)
if (!dotProjectFile.exists()) {
- val content = DotProjectFileHelper.generateProjectFileContent(ModuleTypeManager.getInstance().findByID(module.type), module.name)
+ val content = DotProjectFileHelper.generateProjectFileContent(ModuleTypeManager.getInstance().findByID(module.type?.name), module.name)
saveXmlFile(dotProjectFile, content)
}
diff --git a/plugins/gradle/java/testSources/importing/AnnotationProcessorConfigImportingTest.kt b/plugins/gradle/java/testSources/importing/AnnotationProcessorConfigImportingTest.kt
index 1d04601ed46e..57b55a868d9f 100644
--- a/plugins/gradle/java/testSources/importing/AnnotationProcessorConfigImportingTest.kt
+++ b/plugins/gradle/java/testSources/importing/AnnotationProcessorConfigImportingTest.kt
@@ -6,9 +6,9 @@ import com.intellij.compiler.CompilerConfigurationImpl
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.util.Computable
import com.intellij.testFramework.runInEdtAndGet
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.assertj.core.api.BDDAssertions.then
import org.jetbrains.jps.model.java.impl.compiler.ProcessorConfigProfileImpl
import org.jetbrains.plugins.gradle.GradleManager
@@ -423,7 +423,7 @@ class AnnotationProcessorConfigImportingTest: GradleImportingTestCase() {
fun `test annotation processor profiles of non gradle projects are not removed`() {
val nonGradleModule = runInEdtAndGet {
ApplicationManager.getApplication().runWriteAction(Computable {
- ModuleManager.getInstance(myProject).newModule(myProject.basePath!! + "/java_module", ModuleTypeId.JAVA_MODULE)
+ ModuleManager.getInstance(myProject).newModule(myProject.basePath!! + "/java_module", JAVA_MODULE_ENTITY_TYPE_ID_NAME)
})
}
diff --git a/plugins/kotlin/base/project-structure/kotlin.base.project-structure.iml b/plugins/kotlin/base/project-structure/kotlin.base.project-structure.iml
index 074deaabed7a..7118322bb989 100644
--- a/plugins/kotlin/base/project-structure/kotlin.base.project-structure.iml
+++ b/plugins/kotlin/base/project-structure/kotlin.base.project-structure.iml
@@ -48,5 +48,6 @@
+
\ No newline at end of file
diff --git a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/roots/ui/NonJvmKotlinModuleEditorsProvider.kt b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/roots/ui/NonJvmKotlinModuleEditorsProvider.kt
index d6207334637d..ed620cd01601 100644
--- a/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/roots/ui/NonJvmKotlinModuleEditorsProvider.kt
+++ b/plugins/kotlin/base/project-structure/src/org/jetbrains/kotlin/idea/roots/ui/NonJvmKotlinModuleEditorsProvider.kt
@@ -3,11 +3,11 @@
package org.jetbrains.kotlin.idea.roots.ui
import com.intellij.openapi.module.ModuleConfigurationEditor
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.roots.ui.configuration.ClasspathEditor
import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationEditorProviderEx
import com.intellij.openapi.roots.ui.configuration.ModuleConfigurationState
import com.intellij.openapi.roots.ui.configuration.OutputEditor
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.kotlin.idea.base.facet.platform.platform
import org.jetbrains.kotlin.platform.jvm.isJvm
@@ -18,7 +18,7 @@ class NonJvmKotlinModuleEditorsProvider : ModuleConfigurationEditorProviderEx {
val rootModel = state.rootModel
val module = rootModel.module
- if (module.moduleTypeName != ModuleTypeId.JAVA_MODULE || module.platform.isJvm()) {
+ if (module.moduleTypeName != JAVA_MODULE_ENTITY_TYPE_ID_NAME || module.platform.isJvm()) {
return ModuleConfigurationEditor.EMPTY
}
diff --git a/plugins/kotlin/base/test/test/org/jetbrains/kotlin/idea/base/test/KotlinJvmLightProjectDescriptor.kt b/plugins/kotlin/base/test/test/org/jetbrains/kotlin/idea/base/test/KotlinJvmLightProjectDescriptor.kt
index e0afc22785a1..a7dc6e698d36 100644
--- a/plugins/kotlin/base/test/test/org/jetbrains/kotlin/idea/base/test/KotlinJvmLightProjectDescriptor.kt
+++ b/plugins/kotlin/base/test/test/org/jetbrains/kotlin/idea/base/test/KotlinJvmLightProjectDescriptor.kt
@@ -2,7 +2,6 @@
package org.jetbrains.kotlin.idea.base.test
import com.intellij.openapi.module.Module
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ContentEntry
@@ -15,6 +14,7 @@ import com.intellij.pom.java.LanguageLevel
import com.intellij.testFramework.IdeaTestUtil
import com.intellij.testFramework.LightProjectDescriptor
import com.intellij.testFramework.PsiTestUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import java.nio.file.Path
class KotlinJvmLightProjectDescriptor(
@@ -31,7 +31,7 @@ class KotlinJvmLightProjectDescriptor(
}
override fun getModuleTypeId(): String {
- return ModuleTypeId.JAVA_MODULE
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME
}
override fun getSdk(): Sdk {
diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractGenerateTestSupportMethodActionTest.kt b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractGenerateTestSupportMethodActionTest.kt
index 815f659ffb27..dea6df23fef7 100644
--- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractGenerateTestSupportMethodActionTest.kt
+++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractGenerateTestSupportMethodActionTest.kt
@@ -2,14 +2,13 @@
package org.jetbrains.kotlin.idea.codeInsight.generate
-import com.intellij.openapi.module.ModuleTypeId
-import com.intellij.openapi.projectRoots.Sdk
+ import com.intellij.openapi.projectRoots.Sdk
import com.intellij.testFramework.IdeaTestUtil
import com.intellij.testFramework.LightProjectDescriptor
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.jps.model.java.JavaSourceRootType
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
import org.jetbrains.kotlin.idea.actions.generate.KotlinGenerateTestSupportActionBase
-import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.idea.base.test.InTextDirectivesUtils
abstract class AbstractGenerateTestSupportMethodActionTest : AbstractCodeInsightActionTest() {
@@ -21,7 +20,7 @@ abstract class AbstractGenerateTestSupportMethodActionTest : AbstractCodeInsight
companion object {
val TEST_ROOT_PROJECT_DESCRIPTOR = object : LightProjectDescriptor() {
- override fun getModuleTypeId(): String = ModuleTypeId.JAVA_MODULE
+ override fun getModuleTypeId(): String = JAVA_MODULE_ENTITY_TYPE_ID_NAME
override fun getSdk(): Sdk = IdeaTestUtil.getMockJdk18()
override fun getSourceRootType(): JpsModuleSourceRootType<*> = JavaSourceRootType.TEST_SOURCE
}
diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/testFramework/ProjectBuilder.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/testFramework/ProjectBuilder.kt
index 2ef007814e67..a6e13fe3a7cd 100644
--- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/testFramework/ProjectBuilder.kt
+++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/testFramework/ProjectBuilder.kt
@@ -8,7 +8,6 @@ import com.intellij.jarRepository.RepositoryLibraryType.REPOSITORY_LIBRARY_KIND
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.JavaSdk
import com.intellij.openapi.projectRoots.Sdk
@@ -21,7 +20,10 @@ import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.PsiTestUtil
import com.intellij.testFramework.runInEdtAndWait
-import com.intellij.util.io.*
+import com.intellij.util.io.copy
+import com.intellij.util.io.createDirectories
+import com.intellij.util.io.delete
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.idea.maven.utils.library.RepositoryLibraryProperties
import org.jetbrains.kotlin.idea.base.plugin.artifacts.TestKotlinArtifacts
import org.jetbrains.kotlin.idea.base.test.KotlinRoot
@@ -275,7 +277,7 @@ class ModuleDescription(val moduleName: String) {
val moduleManager = ModuleManager.getInstance(project)
val module = with(moduleManager.getModifiableModel()) {
val imlPath = modulePath.resolve("$moduleName${ModuleFileType.DOT_DEFAULT_EXTENSION}")
- val module = newModule(imlPath, ModuleTypeId.JAVA_MODULE)
+ val module = newModule(imlPath, JAVA_MODULE_ENTITY_TYPE_ID_NAME)
PsiTestUtil.addSourceRoot(module, moduleVirtualFile.findFileByRelativePath(src) ?: error("no '$src' in $this"))
commit()
module
diff --git a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt
index 4ba7cd2249e1..6c94693463d3 100644
--- a/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt
+++ b/plugins/kotlin/project-wizard/idea/src/org/jetbrains/kotlin/tools/projectWizard/wizard/service/IdeaJpsWizardService.kt
@@ -9,7 +9,6 @@ import com.intellij.jarRepository.RemoteRepositoryDescription
import com.intellij.jarRepository.RepositoryLibraryType
import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.module.ModifiableModuleModel
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.*
@@ -17,6 +16,7 @@ import com.intellij.openapi.roots.libraries.ui.OrderRoot
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.VfsUtil
import com.intellij.util.PathUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import org.jetbrains.idea.maven.utils.library.RepositoryLibraryProperties
import org.jetbrains.jps.model.java.JavaResourceRootType
import org.jetbrains.jps.model.java.JavaSourceRootType
@@ -177,7 +177,7 @@ private class ProjectImporter(
private fun convertModule(moduleIr: ModuleIR): TaskResult {
val module = modulesModel.newModule(
(moduleIr.path / "${moduleIr.name}.iml").toString(),
- ModuleTypeId.JAVA_MODULE
+ JAVA_MODULE_ENTITY_TYPE_ID_NAME
)
val rootModel = ModuleRootManager.getInstance(module).modifiableModel
val contentRoot = rootModel.addContentEntry(moduleIr.path.url)
diff --git a/plugins/kotlin/test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightProjectDescriptor.java b/plugins/kotlin/test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightProjectDescriptor.java
index c4acb7762ddb..9f66a6386874 100644
--- a/plugins/kotlin/test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightProjectDescriptor.java
+++ b/plugins/kotlin/test-framework/test/org/jetbrains/kotlin/idea/test/KotlinLightProjectDescriptor.java
@@ -3,16 +3,16 @@
package org.jetbrains.kotlin.idea.test;
import com.intellij.openapi.module.Module;
-import com.intellij.openapi.module.ModuleTypeId;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.ContentEntry;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.testFramework.IdeaTestUtil;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor;
-import com.intellij.testFramework.fixtures.MavenDependencyUtil;
import org.jetbrains.annotations.NotNull;
+import static com.intellij.workspaceModel.ide.legacyBridge.impl.java.JavaModuleTypeUtils.JAVA_MODULE_ENTITY_TYPE_ID_NAME;
+
public class KotlinLightProjectDescriptor extends LightProjectDescriptor {
protected KotlinLightProjectDescriptor() {
}
@@ -22,7 +22,7 @@ public class KotlinLightProjectDescriptor extends LightProjectDescriptor {
@NotNull
@Override
public String getModuleTypeId() {
- return ModuleTypeId.JAVA_MODULE;
+ return JAVA_MODULE_ENTITY_TYPE_ID_NAME;
}
@Override
diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/workspaceModel/WorkspaceModuleImporter.kt b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/workspaceModel/WorkspaceModuleImporter.kt
index dc5f43a8d274..01c65e9c5fd3 100644
--- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/workspaceModel/WorkspaceModuleImporter.kt
+++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/importing/workspaceModel/WorkspaceModuleImporter.kt
@@ -6,7 +6,6 @@ import com.intellij.externalSystem.ImportedLibraryProperties
import com.intellij.externalSystem.ImportedLibraryType
import com.intellij.java.library.MavenCoordinates
import com.intellij.java.workspace.entities.JavaModuleSettingsEntity
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.module.impl.ModuleManagerEx
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.DependencyScope
@@ -18,9 +17,6 @@ import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.platform.backend.workspace.toVirtualFileUrl
import com.intellij.platform.workspace.jps.entities.*
-import com.intellij.platform.workspace.jps.entities.DependencyScope as EntitiesDependencyScope
-import com.intellij.platform.workspace.jps.entities.ModuleDependency as EntitiesModuleDependency
-import com.intellij.platform.workspace.jps.entities.LibraryDependency as EntitiesLibraryDependency
import com.intellij.platform.workspace.jps.serialization.impl.FileInDirectorySourceNames
import com.intellij.platform.workspace.storage.EntitySource
import com.intellij.platform.workspace.storage.EntityStorage
@@ -29,6 +25,7 @@ import com.intellij.platform.workspace.storage.url.VirtualFileUrl
import com.intellij.platform.workspace.storage.url.VirtualFileUrlManager
import com.intellij.util.containers.addIfNotNull
import com.intellij.workspaceModel.ide.impl.LegacyBridgeJpsEntitySourceFactory
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID
import org.jetbrains.idea.maven.importing.MavenImportUtil
import org.jetbrains.idea.maven.importing.StandardMavenModuleType
import org.jetbrains.idea.maven.importing.tree.MavenModuleImportData
@@ -41,6 +38,9 @@ import org.jetbrains.idea.maven.project.MavenProject
import org.jetbrains.idea.maven.utils.MavenLog
import org.jetbrains.jps.model.serialization.SerializationConstants
import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer
+import com.intellij.platform.workspace.jps.entities.DependencyScope as EntitiesDependencyScope
+import com.intellij.platform.workspace.jps.entities.LibraryDependency as EntitiesLibraryDependency
+import com.intellij.platform.workspace.jps.entities.ModuleDependency as EntitiesModuleDependency
internal class WorkspaceModuleImporter(
private val project: Project,
@@ -81,7 +81,7 @@ internal class WorkspaceModuleImporter(
dependencies: List,
entitySource: EntitySource): ModuleEntity {
val moduleEntity = builder addEntity ModuleEntity(moduleName, dependencies, entitySource) {
- this.type = ModuleTypeId.JAVA_MODULE
+ this.type = JAVA_MODULE_ENTITY_TYPE_ID
}
builder addEntity ExternalSystemModuleOptionsEntity(entitySource) {
ExternalSystemData(moduleEntity, mavenProject.file.path, mavenModuleType).write(this)
diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.kt b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.kt
index e6d3baf31465..5d9590eaa110 100644
--- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.kt
+++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/project/importing/MavenProjectsManagerTest.kt
@@ -12,7 +12,6 @@ import com.intellij.openapi.application.EDT
import com.intellij.openapi.application.writeAction
import com.intellij.openapi.module.Module
import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.roots.LibraryOrderEntry
import com.intellij.openapi.roots.ModuleRootManager
import com.intellij.openapi.roots.ui.configuration.actions.ModuleDeleteProvider
@@ -21,6 +20,7 @@ import com.intellij.openapi.util.registry.Registry
import com.intellij.testFramework.TestActionEvent
import com.intellij.testFramework.UsefulTestCase
import com.intellij.util.FileContentUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID_NAME
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
@@ -589,7 +589,7 @@ class MavenProjectsManagerTest : MavenMultiVersionImportingTestCase() {
child1
""".trimIndent())
- writeAction { ModuleManager.getInstance(project).newModule("non-maven", ModuleTypeId.JAVA_MODULE) }
+ writeAction { ModuleManager.getInstance(project).newModule("non-maven", JAVA_MODULE_ENTITY_TYPE_ID_NAME) }
importProjectAsync(mavenParentPom)
assertEquals(3, ModuleManager.getInstance(project).modules.size)
configConfirmationForYesAnswer()
diff --git a/plugins/ml-local-models/java/intellij.ml.models.local.java.iml b/plugins/ml-local-models/java/intellij.ml.models.local.java.iml
index 6df15fc50cbd..1de920bc7024 100644
--- a/plugins/ml-local-models/java/intellij.ml.models.local.java.iml
+++ b/plugins/ml-local-models/java/intellij.ml.models.local.java.iml
@@ -12,5 +12,6 @@
+
\ No newline at end of file
diff --git a/plugins/ml-local-models/java/src/com/intellij/java/ml/local/CompletionSessionsCounter.kt b/plugins/ml-local-models/java/src/com/intellij/java/ml/local/CompletionSessionsCounter.kt
index 81c6f2878112..5be304684a20 100644
--- a/plugins/ml-local-models/java/src/com/intellij/java/ml/local/CompletionSessionsCounter.kt
+++ b/plugins/ml-local-models/java/src/com/intellij/java/ml/local/CompletionSessionsCounter.kt
@@ -12,15 +12,15 @@ import com.intellij.notification.Notification
import com.intellij.notification.NotificationAction
import com.intellij.notification.NotificationType
import com.intellij.openapi.actionSystem.AnActionEvent
-import com.intellij.openapi.application.NonBlockingReadAction
import com.intellij.openapi.application.ReadAction
-import com.intellij.openapi.module.ModuleManager
-import com.intellij.openapi.module.ModuleTypeId
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.registry.Registry
+import com.intellij.platform.backend.workspace.WorkspaceModel
+import com.intellij.platform.workspace.jps.entities.ModuleEntity
import com.intellij.psi.PsiClass
import com.intellij.psi.PsiMethod
import com.intellij.util.concurrency.AppExecutorUtil
+import com.intellij.workspaceModel.ide.legacyBridge.impl.java.JAVA_MODULE_ENTITY_TYPE_ID
import java.util.concurrent.atomic.AtomicInteger
@@ -44,8 +44,8 @@ internal class CompletionSessionsCounter : LookupManagerListener {
}
if (counter.get() == 0) {
- isJavaProject = ModuleManager.getInstance(project).modules.any {
- it.moduleTypeName == ModuleTypeId.JAVA_MODULE
+ isJavaProject = WorkspaceModel.getInstance(project).currentSnapshot.entities(ModuleEntity::class.java).any {
+ it.type == JAVA_MODULE_ENTITY_TYPE_ID
}
} else if (!isJavaProject) {
return