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 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