mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 05:21:29 +07:00
[project model] move serialization-related constants from ExternalProjectSystemRegistry to SerializationConstants
This is needed to get rid of dependency from intellij.platform.workspaceModel.jps on intellij.platform.projectModel module (IDEA-252970). GitOrigin-RevId: 7ddff607cca36d21afb976d46ad21c4a54a9860c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
901ad04ac0
commit
31b6df024c
@@ -13,4 +13,18 @@ public final class SerializationConstants {
|
||||
* {@link com.intellij.openapi.components.StateSplitterEx}.
|
||||
*/
|
||||
public static final String EXTERNAL_SYSTEM_ID_IN_INTERNAL_STORAGE_ATTRIBUTE = "external-system-id";
|
||||
|
||||
/**
|
||||
* Specifies value of 'external system ID' for elements imported from Maven.
|
||||
* Historically, we used a special format to mark iml files of modules imported from Maven, so this constant is currently referenced from
|
||||
* the platform code.
|
||||
*/
|
||||
public static final String MAVEN_EXTERNAL_SOURCE_ID = "Maven";
|
||||
|
||||
/**
|
||||
* Specifies name of the root tag's attribute in iml module which is used to mark modules imported from Maven.
|
||||
* Historically, we used a special format to mark iml files of modules imported from Maven, so this constant is currently referenced from
|
||||
* the platform code.
|
||||
*/
|
||||
public static final String IS_MAVEN_MODULE_IML_ATTRIBUTE = "org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule";
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.roots.ExternalProjectSystemRegistry
|
||||
import com.intellij.openapi.roots.ProjectModelExternalSource
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
import java.util.*
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
@@ -33,7 +34,7 @@ class ExternalProjectSystemRegistryImpl : ExternalProjectSystemRegistry {
|
||||
}
|
||||
|
||||
if (modulePropertyManager.isMavenized()) {
|
||||
return getSourceById(ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID)
|
||||
return getSourceById(SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID)
|
||||
}
|
||||
|
||||
return null
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.intellij.openapi.externalSystem.model.project.ModuleData
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.project.isExternalStorageEnabled
|
||||
import com.intellij.openapi.roots.ExternalProjectSystemRegistry
|
||||
import com.intellij.platform.workspaceModel.jps.JpsFileEntitySource
|
||||
import com.intellij.platform.workspaceModel.jps.JpsImportedEntitySource
|
||||
import com.intellij.workspaceModel.ide.WorkspaceModel
|
||||
@@ -18,6 +17,7 @@ import com.intellij.workspaceModel.ide.legacyBridge.ModuleBridge
|
||||
import com.intellij.workspaceModel.storage.MutableEntityStorage
|
||||
import com.intellij.workspaceModel.storage.bridgeEntities.ExternalSystemModuleOptionsEntity
|
||||
import com.intellij.workspaceModel.storage.bridgeEntities.getOrCreateExternalSystemModuleOptions
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
|
||||
class ExternalSystemModulePropertyManagerBridge(private val module: Module) : ExternalSystemModulePropertyManager() {
|
||||
private fun findEntity(): ExternalSystemModuleOptionsEntity? {
|
||||
@@ -86,7 +86,7 @@ class ExternalSystemModulePropertyManagerBridge(private val module: Module) : Ex
|
||||
override fun getLinkedProjectId(): String? = findEntity()?.linkedProjectId
|
||||
override fun getRootProjectPath(): String? = findEntity()?.rootProjectPath
|
||||
override fun getLinkedProjectPath(): String? = findEntity()?.linkedProjectPath
|
||||
override fun isMavenized(): Boolean = getExternalSystemId() == ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||
override fun isMavenized(): Boolean = getExternalSystemId() == SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID
|
||||
|
||||
override fun setMavenized(mavenized: Boolean) {
|
||||
setMavenized(mavenized, getModuleDiff())
|
||||
@@ -97,7 +97,7 @@ class ExternalSystemModulePropertyManagerBridge(private val module: Module) : Ex
|
||||
unlinkExternalOptions(storageBuilder)
|
||||
}
|
||||
editEntity(storageBuilder) {
|
||||
externalSystem = if (mavenized) ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID else null
|
||||
externalSystem = if (mavenized) SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID else null
|
||||
}
|
||||
updateSource(storageBuilder)
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
import org.junit.Assert.*
|
||||
import org.junit.Assume.assumeFalse
|
||||
import org.junit.Before
|
||||
@@ -65,7 +66,6 @@ import java.io.File
|
||||
import java.nio.file.Files
|
||||
import java.nio.file.Path
|
||||
import java.nio.file.Paths
|
||||
import java.util.*
|
||||
|
||||
class ExternalSystemStorageTest {
|
||||
companion object {
|
||||
@@ -304,7 +304,7 @@ class ExternalSystemStorageTest {
|
||||
fun `save imported facet in imported module`() = saveProjectInExternalStorageAndCheckResult("importedFacetInImportedModule") { project, projectDir ->
|
||||
val imported = ModuleManager.getInstance(project).newModule(projectDir.resolve("imported.iml").systemIndependentPath, ModuleTypeId.JAVA_MODULE)
|
||||
val facetRoot = VfsUtilCore.pathToUrl(projectDir.resolve("facet").systemIndependentPath)
|
||||
addFacet(imported, ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID, "imported", listOf(facetRoot))
|
||||
addFacet(imported, SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID, "imported", listOf(facetRoot))
|
||||
ExternalSystemModulePropertyManager.getInstance(imported).setMavenized(true)
|
||||
}
|
||||
|
||||
@@ -374,7 +374,8 @@ class ExternalSystemStorageTest {
|
||||
assertThat(ExternalSystemModulePropertyManager.getInstance(module).isMavenized()).isTrue()
|
||||
val facet = FacetManager.getInstance(module).allFacets.single() as MockFacet
|
||||
assertThat(facet.name).isEqualTo("imported")
|
||||
assertThat(facet.externalSource!!.id).isEqualTo(ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID)
|
||||
assertThat(facet.externalSource!!.id).isEqualTo(
|
||||
SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID)
|
||||
val facetRoot = VfsUtil.pathToUrl(project.basePath!!) + "/facet"
|
||||
assertThat(facet.configuration.rootUrls).containsExactly(facetRoot)
|
||||
}
|
||||
|
||||
@@ -20,9 +20,16 @@ public interface ExternalProjectSystemRegistry {
|
||||
ProjectModelExternalSource getExternalSource(@NotNull Module module);
|
||||
|
||||
/**
|
||||
* These fields are temporary added to API until we have proper extension points for different external systems.
|
||||
* @deprecated use {@link org.jetbrains.jps.model.serialization.SerializationConstants#MAVEN_EXTERNAL_SOURCE_ID} instead
|
||||
*/
|
||||
@Deprecated
|
||||
String MAVEN_EXTERNAL_SOURCE_ID = "Maven";
|
||||
|
||||
String EXTERNAL_SYSTEM_ID_KEY = "external.system.id";
|
||||
|
||||
/**
|
||||
* @deprecated use {@link org.jetbrains.jps.model.serialization.SerializationConstants#IS_MAVEN_MODULE_IML_ATTRIBUTE} instead
|
||||
*/
|
||||
@Deprecated
|
||||
String IS_MAVEN_MODULE_KEY = "org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule";
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.intellij.workspaceModel.ide.impl.jps.serialization
|
||||
|
||||
import com.intellij.openapi.diagnostic.logger
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.roots.ExternalProjectSystemRegistry
|
||||
import com.intellij.openapi.util.JDOMUtil
|
||||
import com.intellij.platform.workspaceModel.jps.*
|
||||
import com.intellij.platform.workspaceModel.jps.serialization.SerializationContext
|
||||
@@ -21,6 +20,7 @@ import org.jdom.Element
|
||||
import org.jdom.JDOMException
|
||||
import org.jetbrains.jps.model.serialization.JDomSerializationUtil
|
||||
import org.jetbrains.jps.model.serialization.JpsProjectLoader
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer
|
||||
import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtension.*
|
||||
import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer.*
|
||||
@@ -318,7 +318,7 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
|
||||
protected open fun readExternalSystemOptions(reader: JpsFileContentReader,
|
||||
moduleOptions: Map<String?, String?>): Pair<Map<String?, String?>, String?> {
|
||||
val externalSystemId = moduleOptions["external.system.id"]
|
||||
?: if (moduleOptions[ExternalProjectSystemRegistry.IS_MAVEN_MODULE_KEY] == true.toString()) ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||
?: if (moduleOptions[SerializationConstants.IS_MAVEN_MODULE_IML_ATTRIBUTE] == true.toString()) SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID
|
||||
else null
|
||||
return Pair(moduleOptions, externalSystemId)
|
||||
}
|
||||
@@ -825,8 +825,8 @@ internal open class ModuleImlFileEntitiesSerializer(internal val modulePath: Mod
|
||||
writer: JpsFileContentWriter) {
|
||||
val optionsMap = TreeMap<String, String?>()
|
||||
if (externalSystemOptions != null) {
|
||||
if (externalSystemOptions.externalSystem == ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID) {
|
||||
optionsMap[ExternalProjectSystemRegistry.IS_MAVEN_MODULE_KEY] = true.toString()
|
||||
if (externalSystemOptions.externalSystem == SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID) {
|
||||
optionsMap[SerializationConstants.IS_MAVEN_MODULE_IML_ATTRIBUTE] = true.toString()
|
||||
}
|
||||
else {
|
||||
optionsMap["external.system.id"] = externalSystemOptions.externalSystem
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.intellij.conversion.*
|
||||
import com.intellij.conversion.impl.ConversionContextImpl
|
||||
import com.intellij.openapi.roots.ExternalProjectSystemRegistry
|
||||
import com.intellij.openapi.roots.OrderRootType
|
||||
import com.intellij.openapi.roots.impl.libraries.ApplicationLibraryTable
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx
|
||||
import com.intellij.openapi.roots.libraries.Library
|
||||
import com.intellij.openapi.roots.libraries.LibraryKindRegistry
|
||||
@@ -20,6 +19,7 @@ import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsTypedModuleSourceRoot
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer
|
||||
import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer.*
|
||||
import org.jetbrains.kotlin.config.getFacetPlatformByConfigurationElement
|
||||
@@ -182,7 +182,8 @@ internal class KotlinNonJvmSourceRootConverterProvider : ConverterProvider() {
|
||||
private fun ModuleSettings.isExternalModule(): Boolean {
|
||||
return when {
|
||||
rootElement.getAttributeValue(ExternalProjectSystemRegistry.EXTERNAL_SYSTEM_ID_KEY) != null -> true
|
||||
rootElement.getAttributeValue(ExternalProjectSystemRegistry.IS_MAVEN_MODULE_KEY)?.toBoolean() ?: false -> true
|
||||
rootElement.getAttributeValue(
|
||||
SerializationConstants.IS_MAVEN_MODULE_IML_ATTRIBUTE)?.toBoolean() ?: false -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.jetbrains.idea.maven.project.*
|
||||
import org.jetbrains.idea.maven.utils.resolved
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.parseCommandLineArguments
|
||||
@@ -317,7 +318,7 @@ class KotlinMavenImporter : MavenImporter(KOTLIN_PLUGIN_GROUP_ID, KOTLIN_PLUGIN_
|
||||
val kotlinFacet = module.getOrCreateFacet(
|
||||
modifiableModelsProvider,
|
||||
false,
|
||||
ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||
SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID
|
||||
)
|
||||
|
||||
// TODO There should be a way to figure out the correct platform version
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.jetbrains.idea.maven.utils.Path;
|
||||
import org.jetbrains.jps.model.JpsElement;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@@ -189,7 +190,7 @@ public class MavenRootModelAdapter implements MavenRootModelAdapterInterface {
|
||||
}
|
||||
|
||||
public static ProjectModelExternalSource getMavenExternalSource() {
|
||||
return ExternalProjectSystemRegistry.getInstance().getSourceById(ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID);
|
||||
return ExternalProjectSystemRegistry.getInstance().getSourceById(SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.jetbrains.jps.model.JpsElement;
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType;
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
import org.jetbrains.jps.model.serialization.SerializationConstants;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Files;
|
||||
@@ -494,7 +495,7 @@ public class MavenRootModelAdapterLegacyImpl implements MavenRootModelAdapterInt
|
||||
}
|
||||
|
||||
public static ProjectModelExternalSource getMavenExternalSource() {
|
||||
return ExternalProjectSystemRegistry.getInstance().getSourceById(ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID);
|
||||
return ExternalProjectSystemRegistry.getInstance().getSourceById(SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.jetbrains.idea.maven.model.MavenConstants
|
||||
import org.jetbrains.idea.maven.project.MavenImportingSettings
|
||||
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
|
||||
|
||||
internal class WorkspaceModuleImporter(
|
||||
@@ -274,7 +275,7 @@ internal class WorkspaceModuleImporter(
|
||||
companion object {
|
||||
val JAVADOC_TYPE: LibraryRootTypeId = LibraryRootTypeId("JAVADOC")
|
||||
|
||||
val EXTERNAL_SOURCE_ID get() = ExternalProjectSystemRegistry.MAVEN_EXTERNAL_SOURCE_ID
|
||||
val EXTERNAL_SOURCE_ID get() = SerializationConstants.MAVEN_EXTERNAL_SOURCE_ID
|
||||
}
|
||||
|
||||
class ExternalSystemData(val moduleEntity: ModuleEntity, val mavenProjectFilePath: String, val mavenModuleType: StandardMavenModuleType) {
|
||||
|
||||
Reference in New Issue
Block a user