From e18fb5573e7e61df569ec33974c37ca5d414dae6 Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 31 Aug 2012 13:30:42 +0400 Subject: [PATCH] jps model serialization: moves and renames --- .../model/serialization/JpsGlobalLoader.java | 2 + .../JpsModelSerializerExtension.java | 4 + .../model/serialization/JpsProjectLoader.java | 7 +- .../artifact/JpsArtifactSerializer.java | 2 +- .../java/JpsJavaModelSerializerExtension.java | 2 +- .../JpsLibraryPropertiesSerializer.java | 3 +- .../JpsLibraryRootTypeSerializer.java | 2 +- .../JpsLibraryTableSerializer.java | 3 +- .../JpsSdkPropertiesSerializer.java | 3 +- .../{ => library}/JpsSdkTableSerializer.java | 3 +- .../JpsModulePropertiesSerializer.java | 3 +- .../module/JpsModuleRootModelSerializer.java | 232 ++++++++++++++++++ .../JpsGlobalSerializationTest.java | 1 + .../JpsProjectSerializationTest.java | 4 +- .../openapi/roots/impl/ContentEntryImpl.java | 6 +- .../roots/impl/ContentFolderBaseImpl.java | 4 +- .../openapi/roots/impl/ExcludeFolderImpl.java | 4 +- .../impl/InheritedJdkOrderEntryImpl.java | 4 +- .../roots/impl/LibraryOrderEntryImpl.java | 8 +- .../roots/impl/ModuleJdkOrderEntryImpl.java | 8 +- .../impl/ModuleLibraryOrderEntryImpl.java | 4 +- .../roots/impl/ModuleOrderEntryImpl.java | 6 +- .../impl/ModuleSourceOrderEntryImpl.java | 4 +- .../openapi/roots/impl/OrderEntryFactory.java | 6 +- .../openapi/roots/impl/SourceFolderImpl.java | 10 +- .../JpsAndroidModelSerializerExtension.java | 2 +- .../JpsDevKitModelSerializerExtension.java | 4 +- 27 files changed, 296 insertions(+), 45 deletions(-) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => library}/JpsLibraryPropertiesSerializer.java (81%) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => library}/JpsLibraryRootTypeSerializer.java (93%) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => library}/JpsLibraryTableSerializer.java (98%) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => library}/JpsSdkPropertiesSerializer.java (83%) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => library}/JpsSdkTableSerializer.java (98%) rename jps/model-serialization/src/org/jetbrains/jps/model/serialization/{ => module}/JpsModulePropertiesSerializer.java (86%) create mode 100644 jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsGlobalLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsGlobalLoader.java index 724f6b93a770..ffbf941bc350 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsGlobalLoader.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsGlobalLoader.java @@ -3,6 +3,8 @@ package org.jetbrains.jps.model.serialization; import com.intellij.openapi.diagnostic.Logger; import org.jdom.Element; import org.jetbrains.jps.model.JpsGlobal; +import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; import java.io.File; import java.io.IOException; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializerExtension.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializerExtension.java index 05cf9f5e46f5..ef9d3608ef77 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializerExtension.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModelSerializerExtension.java @@ -10,6 +10,10 @@ import org.jetbrains.jps.model.module.JpsModule; import org.jetbrains.jps.model.serialization.artifact.JpsArtifactPropertiesSerializer; import org.jetbrains.jps.model.serialization.artifact.JpsPackagingElementSerializer; import org.jetbrains.jps.model.serialization.facet.JpsFacetConfigurationSerializer; +import org.jetbrains.jps.model.serialization.library.JpsLibraryPropertiesSerializer; +import org.jetbrains.jps.model.serialization.library.JpsLibraryRootTypeSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkPropertiesSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModulePropertiesSerializer; import org.jetbrains.jps.service.JpsServiceManager; import java.util.Collections; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java index ded12fcb59af..90d25bf45db4 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java @@ -12,6 +12,10 @@ import org.jetbrains.jps.model.library.sdk.JpsSdkType; import org.jetbrains.jps.model.module.JpsModule; import org.jetbrains.jps.model.serialization.artifact.JpsArtifactSerializer; import org.jetbrains.jps.model.serialization.facet.JpsFacetSerializer; +import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModulePropertiesSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import java.io.File; import java.io.FileFilter; @@ -162,7 +166,8 @@ public class JpsProjectLoader extends JpsLoaderBase { final String typeId = moduleRoot.getAttributeValue("type"); final JpsModulePropertiesSerializer serializer = getModulePropertiesSerializer(typeId); final JpsModule module = createModule(name, moduleRoot, serializer); - JpsModuleSerializer.loadRootModel(module, JDomSerializationUtil.findComponent(moduleRoot, "NewModuleRootManager"), projectSdkType); + JpsModuleRootModelSerializer + .loadRootModel(module, JDomSerializationUtil.findComponent(moduleRoot, "NewModuleRootManager"), projectSdkType); final String moduleDirPath = file.getParent(); JpsFacetSerializer.loadFacets(module, JDomSerializationUtil.findComponent(moduleRoot, "FacetManager"), FileUtil.toSystemIndependentName(moduleDirPath)); diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/JpsArtifactSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/JpsArtifactSerializer.java index 8464e6cd3659..1705f9599485 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/JpsArtifactSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/artifact/JpsArtifactSerializer.java @@ -11,7 +11,7 @@ import org.jetbrains.jps.model.artifact.*; import org.jetbrains.jps.model.artifact.elements.*; import org.jetbrains.jps.model.library.JpsLibraryReference; import org.jetbrains.jps.model.module.JpsModuleReference; -import org.jetbrains.jps.model.serialization.JpsLibraryTableSerializer; +import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer; import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; /** diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/JpsJavaModelSerializerExtension.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/JpsJavaModelSerializerExtension.java index 502fb11dee82..4aa4a3ccf766 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/JpsJavaModelSerializerExtension.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/JpsJavaModelSerializerExtension.java @@ -12,7 +12,7 @@ import org.jetbrains.jps.model.library.JpsOrderRootType; import org.jetbrains.jps.model.module.JpsDependencyElement; import org.jetbrains.jps.model.module.JpsModule; import org.jetbrains.jps.model.module.JpsModuleReference; -import org.jetbrains.jps.model.serialization.JpsLibraryRootTypeSerializer; +import org.jetbrains.jps.model.serialization.library.JpsLibraryRootTypeSerializer; import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; import org.jetbrains.jps.model.serialization.artifact.JpsPackagingElementSerializer; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryPropertiesSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java similarity index 81% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryPropertiesSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java index 10c5a81b1434..d23ad8d9adea 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryPropertiesSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryPropertiesSerializer.java @@ -1,9 +1,10 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.library; import org.jdom.Element; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.JpsElement; import org.jetbrains.jps.model.library.JpsLibraryType; +import org.jetbrains.jps.model.serialization.JpsElementPropertiesSerializer; /** * @author nik diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryRootTypeSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryRootTypeSerializer.java similarity index 93% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryRootTypeSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryRootTypeSerializer.java index 04de078d4ded..dff4ec0ad728 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryRootTypeSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryRootTypeSerializer.java @@ -1,4 +1,4 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.library; import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.library.JpsOrderRootType; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryTableSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryTableSerializer.java similarity index 98% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryTableSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryTableSerializer.java index d0fe23221e30..50f99e6864ff 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsLibraryTableSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsLibraryTableSerializer.java @@ -1,4 +1,4 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.library; import com.intellij.openapi.util.JDOMUtil; import com.intellij.util.containers.MultiMap; @@ -10,6 +10,7 @@ import org.jetbrains.jps.model.java.JpsJavaLibraryType; import org.jetbrains.jps.model.library.*; import org.jetbrains.jps.model.library.sdk.JpsSdkType; import org.jetbrains.jps.model.module.JpsModuleReference; +import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; import java.util.*; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkPropertiesSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkPropertiesSerializer.java similarity index 83% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkPropertiesSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkPropertiesSerializer.java index f3a49ecb95ce..b4d4f25ad271 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkPropertiesSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkPropertiesSerializer.java @@ -1,10 +1,11 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.library; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.JpsElement; import org.jetbrains.jps.model.library.sdk.JpsSdkType; +import org.jetbrains.jps.model.serialization.JpsElementPropertiesSerializer; /** * @author nik diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkTableSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkTableSerializer.java similarity index 98% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkTableSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkTableSerializer.java index 1a3b0ef4de15..8541f904377b 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsSdkTableSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/library/JpsSdkTableSerializer.java @@ -1,4 +1,4 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.library; import com.intellij.openapi.util.JDOMUtil; import org.jdom.Element; @@ -14,6 +14,7 @@ import org.jetbrains.jps.model.library.sdk.JpsSdk; import org.jetbrains.jps.model.library.sdk.JpsSdkType; import org.jetbrains.jps.model.library.sdk.JpsSdkReference; import org.jetbrains.jps.model.module.JpsSdkReferencesTable; +import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; import java.util.ArrayList; import java.util.Arrays; diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModulePropertiesSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModulePropertiesSerializer.java similarity index 86% rename from jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModulePropertiesSerializer.java rename to jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModulePropertiesSerializer.java index 0b7ce824a5fc..a862ad1f8c30 100644 --- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsModulePropertiesSerializer.java +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModulePropertiesSerializer.java @@ -1,10 +1,11 @@ -package org.jetbrains.jps.model.serialization; +package org.jetbrains.jps.model.serialization.module; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jps.model.JpsElement; import org.jetbrains.jps.model.module.JpsModuleType; +import org.jetbrains.jps.model.serialization.JpsElementPropertiesSerializer; /** * @author nik diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java new file mode 100644 index 000000000000..cba1b3a103da --- /dev/null +++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/module/JpsModuleRootModelSerializer.java @@ -0,0 +1,232 @@ +package org.jetbrains.jps.model.serialization.module; + +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; +import org.jdom.Element; +import org.jetbrains.jps.model.JpsCompositeElement; +import org.jetbrains.jps.model.JpsElementFactory; +import org.jetbrains.jps.model.JpsElementReference; +import org.jetbrains.jps.model.JpsSimpleElement; +import org.jetbrains.jps.model.java.JavaSourceRootProperties; +import org.jetbrains.jps.model.java.JavaSourceRootType; +import org.jetbrains.jps.model.java.JpsJavaSdkType; +import org.jetbrains.jps.model.library.JpsLibrary; +import org.jetbrains.jps.model.library.JpsLibraryReference; +import org.jetbrains.jps.model.library.sdk.JpsSdkType; +import org.jetbrains.jps.model.library.sdk.JpsSdkReference; +import org.jetbrains.jps.model.module.*; +import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; +import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static com.intellij.openapi.util.JDOMUtil.getChildren; + +/** + * @author nik + */ +public class JpsModuleRootModelSerializer { + public static final String URL_ATTRIBUTE = "url"; + public static final String CONTENT_TAG = "content"; + public static final String SOURCE_FOLDER_TAG = "sourceFolder"; + public static final String PACKAGE_PREFIX_ATTRIBUTE = "packagePrefix"; + public static final String IS_TEST_SOURCE_ATTRIBUTE = "isTestSource"; + public static final String EXCLUDE_FOLDER_TAG = "excludeFolder"; + public static final String ORDER_ENTRY_TAG = "orderEntry"; + public static final String TYPE_ATTRIBUTE = "type"; + public static final String SOURCE_FOLDER_TYPE = "sourceFolder"; + public static final String JDK_TYPE = "jdk"; + public static final String JDK_NAME_ATTRIBUTE = "jdkName"; + public static final String JDK_TYPE_ATTRIBUTE = "jdkType"; + public static final String INHERITED_JDK_TYPE = "inheritedJdk"; + public static final String LIBRARY_TYPE = "library"; + public static final String NAME_ATTRIBUTE = "name"; + public static final String LEVEL_ATTRIBUTE = "level"; + public static final String LIBRARY_TAG = "library"; + public static final String MODULE_LIBRARY_TYPE = "module-library"; + public static final String MODULE_TYPE = "module"; + public static final String MODULE_NAME_ATTRIBUTE = "module-name"; + private static final String GENERATED_LIBRARY_NAME_PREFIX = "#"; + + public static void loadRootModel(JpsModule module, Element rootModelComponent, JpsSdkType projectSdkType) { + for (Element contentElement : getChildren(rootModelComponent, CONTENT_TAG)) { + final String url = contentElement.getAttributeValue(URL_ATTRIBUTE); + module.getContentRootsList().addUrl(url); + for (Element sourceElement : getChildren(contentElement, SOURCE_FOLDER_TAG)) { + final String sourceUrl = sourceElement.getAttributeValue(URL_ATTRIBUTE); + final String packagePrefix = StringUtil.notNullize(sourceElement.getAttributeValue(PACKAGE_PREFIX_ATTRIBUTE)); + final boolean testSource = Boolean.parseBoolean(sourceElement.getAttributeValue(IS_TEST_SOURCE_ATTRIBUTE)); + final JavaSourceRootType rootType = testSource ? JavaSourceRootType.TEST_SOURCE : JavaSourceRootType.SOURCE; + module.addSourceRoot(sourceUrl, rootType, JpsElementFactory.getInstance().createSimpleElement(new JavaSourceRootProperties(packagePrefix))); + } + for (Element excludeElement : getChildren(contentElement, EXCLUDE_FOLDER_TAG)) { + module.getExcludeRootsList().addUrl(excludeElement.getAttributeValue(URL_ATTRIBUTE)); + } + } + + final JpsDependenciesList dependenciesList = module.getDependenciesList(); + dependenciesList.clear(); + final JpsElementFactory elementFactory = JpsElementFactory.getInstance(); + int moduleLibraryNum = 0; + for (Element orderEntry : getChildren(rootModelComponent, ORDER_ENTRY_TAG)) { + String type = orderEntry.getAttributeValue(TYPE_ATTRIBUTE); + if (SOURCE_FOLDER_TYPE.equals(type)) { + dependenciesList.addModuleSourceDependency(); + } + else if (JDK_TYPE.equals(type)) { + String sdkName = orderEntry.getAttributeValue(JDK_NAME_ATTRIBUTE); + String sdkTypeId = orderEntry.getAttributeValue(JDK_TYPE_ATTRIBUTE); + final JpsSdkType sdkType = JpsSdkTableSerializer.getSdkType(sdkTypeId); + dependenciesList.addSdkDependency(sdkType); + JpsSdkTableSerializer.setSdkReference(module.getSdkReferencesTable(), sdkName, sdkType); + } + else if (INHERITED_JDK_TYPE.equals(type)) { + dependenciesList.addSdkDependency(projectSdkType != null ? projectSdkType : JpsJavaSdkType.INSTANCE); + } + else if (LIBRARY_TYPE.equals(type)) { + String name = orderEntry.getAttributeValue(NAME_ATTRIBUTE); + String level = orderEntry.getAttributeValue(LEVEL_ATTRIBUTE); + final JpsLibraryDependency dependency = + dependenciesList.addLibraryDependency(elementFactory.createLibraryReference(name, JpsLibraryTableSerializer + .createLibraryTableReference(level))); + loadModuleDependencyProperties(dependency, orderEntry); + } + else if (MODULE_LIBRARY_TYPE.equals(type)) { + final Element moduleLibraryElement = orderEntry.getChild(LIBRARY_TAG); + String name = moduleLibraryElement.getAttributeValue(NAME_ATTRIBUTE); + if (name == null) { + name = GENERATED_LIBRARY_NAME_PREFIX + (moduleLibraryNum++); + } + final JpsLibrary library = JpsLibraryTableSerializer.loadLibrary(moduleLibraryElement, name); + module.addModuleLibrary(library); + + final JpsLibraryDependency dependency = dependenciesList.addLibraryDependency(library); + loadModuleDependencyProperties(dependency, orderEntry); + moduleLibraryNum++; + } + else if (MODULE_TYPE.equals(type)) { + String name = orderEntry.getAttributeValue(MODULE_NAME_ATTRIBUTE); + final JpsModuleDependency dependency = dependenciesList.addModuleDependency(elementFactory.createModuleReference(name)); + loadModuleDependencyProperties(dependency, orderEntry); + } + } + + for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) { + extension.loadRootModel(module, rootModelComponent); + } + } + + public static void saveRootModel(JpsModule module, Element rootModelElement) { + List sourceRoots = module.getSourceRoots(); + List excludedUrls = getSortedList(module.getExcludeRootsList().getUrls()); + for (String url : getSortedList(module.getContentRootsList().getUrls())) { + Element contentElement = new Element(CONTENT_TAG); + contentElement.setAttribute(URL_ATTRIBUTE, url); + rootModelElement.addContent(contentElement); + for (JpsModuleSourceRoot root : sourceRoots) { + if (FileUtil.startsWith(root.getUrl(), url)) { + Element sourceElement = new Element(SOURCE_FOLDER_TAG); + sourceElement.setAttribute(URL_ATTRIBUTE, root.getUrl()); + JpsModuleSourceRootType type = root.getRootType(); + sourceElement.setAttribute(IS_TEST_SOURCE_ATTRIBUTE, Boolean.toString(type.equals(JavaSourceRootType.TEST_SOURCE))); + if (type instanceof JavaSourceRootType) { + JpsSimpleElement properties = root.getProperties((JavaSourceRootType)type); + if (properties != null) { + String packagePrefix = properties.getData().getPackagePrefix(); + if (packagePrefix.length() > 0) { + sourceElement.setAttribute(PACKAGE_PREFIX_ATTRIBUTE, packagePrefix); + } + } + } + contentElement.addContent(sourceElement); + } + } + for (String excludedUrl : excludedUrls) { + if (FileUtil.startsWith(excludedUrl, url)) { + Element element = new Element(EXCLUDE_FOLDER_TAG).setAttribute(URL_ATTRIBUTE, excludedUrl); + contentElement.addContent(element); + } + } + } + + for (JpsDependencyElement dependency : module.getDependenciesList().getDependencies()) { + if (dependency instanceof JpsModuleSourceDependency) { + rootModelElement.addContent(createDependencyElement(SOURCE_FOLDER_TYPE).setAttribute("forTests", "false")); + } + else if (dependency instanceof JpsSdkDependency) { + JpsSdkType sdkType = ((JpsSdkDependency)dependency).getSdkType(); + JpsSdkReferencesTable table = module.getSdkReferencesTable(); + JpsSdkReference reference = table.getSdkReference(sdkType); + if (reference == null) { + rootModelElement.addContent(createDependencyElement(INHERITED_JDK_TYPE)); + } + else { + Element element = createDependencyElement(JDK_TYPE); + element.setAttribute(JDK_NAME_ATTRIBUTE, reference.getSdkName()); + element.setAttribute(JDK_TYPE_ATTRIBUTE, JpsSdkTableSerializer.getLoader(sdkType).getTypeId()); + rootModelElement.addContent(element); + } + } + else if (dependency instanceof JpsLibraryDependency) { + JpsLibraryReference reference = ((JpsLibraryDependency)dependency).getLibraryReference(); + JpsElementReference parentReference = reference.getParentReference(); + Element element; + if (parentReference instanceof JpsModuleReference) { + element = createDependencyElement(MODULE_LIBRARY_TYPE); + saveModuleDependencyProperties(dependency, element); + Element libraryElement = new Element(LIBRARY_TAG); + JpsLibrary library = reference.resolve(); + String libraryName = library.getName(); + JpsLibraryTableSerializer.saveLibrary(library, libraryElement, isGeneratedName(libraryName) ? null : libraryName); + element.addContent(libraryElement); + } + else { + element = createDependencyElement(LIBRARY_TYPE); + saveModuleDependencyProperties(dependency, element); + element.setAttribute(NAME_ATTRIBUTE, reference.getLibraryName()); + element.setAttribute(LEVEL_ATTRIBUTE, JpsLibraryTableSerializer.getLevelId(parentReference)); + } + rootModelElement.addContent(element); + } + else if (dependency instanceof JpsModuleDependency) { + Element element = createDependencyElement(MODULE_TYPE); + element.setAttribute(MODULE_NAME_ATTRIBUTE, ((JpsModuleDependency)dependency).getModuleReference().getModuleName()); + saveModuleDependencyProperties(dependency, element); + rootModelElement.addContent(element); + } + } + + for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) { + extension.saveRootModel(module, rootModelElement); + } + } + + private static boolean isGeneratedName(String libraryName) { + return libraryName.startsWith(GENERATED_LIBRARY_NAME_PREFIX); + } + + private static Element createDependencyElement(final String type) { + return new Element(ORDER_ENTRY_TAG).setAttribute(TYPE_ATTRIBUTE, type); + } + + private static List getSortedList(final List list) { + List strings = new ArrayList(list); + Collections.sort(strings); + return strings; + } + + private static void loadModuleDependencyProperties(JpsDependencyElement dependency, Element orderEntry) { + for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) { + extension.loadModuleDependencyProperties(dependency, orderEntry); + } + } + + private static void saveModuleDependencyProperties(JpsDependencyElement dependency, Element orderEntry) { + for (JpsModelSerializerExtension extension : JpsModelSerializerExtension.getExtensions()) { + extension.saveModuleDependencyProperties(dependency, orderEntry); + } + } +} diff --git a/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsGlobalSerializationTest.java b/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsGlobalSerializationTest.java index 440cc5c8bc0e..10e0fedc0f85 100644 --- a/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsGlobalSerializationTest.java +++ b/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsGlobalSerializationTest.java @@ -5,6 +5,7 @@ import com.intellij.testFramework.PlatformTestUtil; import org.jdom.Element; import org.jdom.JDOMException; import org.jetbrains.jps.model.library.JpsLibrary; +import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; import java.io.File; import java.io.IOException; diff --git a/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsProjectSerializationTest.java b/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsProjectSerializationTest.java index 85bcc0cffe2c..a62a6550070c 100644 --- a/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsProjectSerializationTest.java +++ b/jps/model-serialization/testSrc/org/jetbrains/jps/model/serialization/JpsProjectSerializationTest.java @@ -9,6 +9,8 @@ import org.jetbrains.jps.model.java.JpsJavaSdkType; import org.jetbrains.jps.model.library.JpsLibrary; import org.jetbrains.jps.model.library.sdk.JpsSdkReference; import org.jetbrains.jps.model.module.*; +import org.jetbrains.jps.model.serialization.library.JpsLibraryTableSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import java.io.File; import java.io.IOException; @@ -91,7 +93,7 @@ public class JpsProjectSerializationTest extends JpsSerializationTestCase { private static void doTestSaveModule(JpsModule module, final String moduleFilePath) { try { Element actual = JDomSerializationUtil.createComponentElement("NewModuleRootManager"); - JpsModuleSerializer.saveRootModel(module, actual); + JpsModuleRootModelSerializer.saveRootModel(module, actual); File imlFile = getFileInSampleProject(moduleFilePath); Element rootElement = loadModuleRootTag(imlFile); Element expected = JDomSerializationUtil.findComponent(rootElement, "NewModuleRootManager"); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java index 0023ebcdd983..984b9f1a1fb0 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentEntryImpl.java @@ -33,7 +33,7 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import java.util.*; @@ -43,10 +43,10 @@ import java.util.*; public class ContentEntryImpl extends RootModelComponentBase implements ContentEntry, ClonableContentEntry, Comparable { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.SimpleContentEntryImpl"); @NotNull private final VirtualFilePointer myRoot; - @NonNls public static final String ELEMENT_NAME = JpsModuleSerializer.CONTENT_TAG; + @NonNls public static final String ELEMENT_NAME = JpsModuleRootModelSerializer.CONTENT_TAG; private final Set mySourceFolders = new LinkedHashSet(); private final Set myExcludeFolders = new TreeSet(ContentFolderComparator.INSTANCE); - @NonNls public static final String URL_ATTRIBUTE = JpsModuleSerializer.URL_ATTRIBUTE; + @NonNls public static final String URL_ATTRIBUTE = JpsModuleRootModelSerializer.URL_ATTRIBUTE; ContentEntryImpl(@NotNull VirtualFile file, @NotNull RootModelImpl m) { this(file.getUrl(), m); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java index 09be6b06c03f..2ab6749846a5 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ContentFolderBaseImpl.java @@ -27,13 +27,13 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl */ public abstract class ContentFolderBaseImpl extends RootModelComponentBase implements ContentFolder, Comparable { - @NonNls public static final String URL_ATTRIBUTE = JpsModuleSerializer.URL_ATTRIBUTE; + @NonNls public static final String URL_ATTRIBUTE = JpsModuleRootModelSerializer.URL_ATTRIBUTE; private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.SimpleContentFolderBaseImpl"); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java index caf7426c05ce..b463bb23233a 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ExcludeFolderImpl.java @@ -25,7 +25,7 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl @@ -33,7 +33,7 @@ import org.jetbrains.jps.model.serialization.JpsModuleSerializer; public class ExcludeFolderImpl extends ContentFolderBaseImpl implements ClonableContentFolder, UserDefinedExcludeFolder { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.SimpleExcludeFolderImpl"); - @NonNls public static final String ELEMENT_NAME = JpsModuleSerializer.EXCLUDE_FOLDER_TAG; + @NonNls public static final String ELEMENT_NAME = JpsModuleRootModelSerializer.EXCLUDE_FOLDER_TAG; ExcludeFolderImpl(@NotNull VirtualFile file, @NotNull ContentEntryImpl contentEntry) { super(file, contentEntry); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java index c593128ecde3..691e73d8e6f8 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/InheritedJdkOrderEntryImpl.java @@ -26,13 +26,13 @@ import com.intellij.openapi.util.WriteExternalException; import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager; import org.jdom.Element; import org.jetbrains.annotations.NonNls; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl */ public class InheritedJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implements InheritedJdkOrderEntry, ClonableOrderEntry, WritableOrderEntry { - @NonNls public static final String ENTRY_TYPE = JpsModuleSerializer.INHERITED_JDK_TYPE; + @NonNls public static final String ENTRY_TYPE = JpsModuleRootModelSerializer.INHERITED_JDK_TYPE; private final MyJdkTableListener myJdkTableListener = new MyJdkTableListener(); private final MyProjectJdkListener myListener = new MyProjectJdkListener(); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java index b06d1c0ea667..f53ebf1e5895 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/LibraryOrderEntryImpl.java @@ -30,7 +30,7 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtension; /** @@ -42,9 +42,9 @@ class LibraryOrderEntryImpl extends LibraryOrderEntryBaseImpl implements Library @Nullable private String myLibraryName; // is non-null if myLibrary == null @Nullable private String myLibraryLevel; // is non-null if myLibraryLevel == null private boolean myExported; - @NonNls static final String ENTRY_TYPE = JpsModuleSerializer.LIBRARY_TYPE; - @NonNls private static final String NAME_ATTR = JpsModuleSerializer.NAME_ATTRIBUTE; - @NonNls private static final String LEVEL_ATTR = JpsModuleSerializer.LEVEL_ATTRIBUTE; + @NonNls static final String ENTRY_TYPE = JpsModuleRootModelSerializer.LIBRARY_TYPE; + @NonNls private static final String NAME_ATTR = JpsModuleRootModelSerializer.NAME_ATTRIBUTE; + @NonNls private static final String LEVEL_ATTR = JpsModuleRootModelSerializer.LEVEL_ATTRIBUTE; private final MyOrderEntryLibraryTableListener myLibraryListener = new MyOrderEntryLibraryTableListener(); @NonNls private static final String EXPORTED_ATTR = JpsJavaModelSerializerExtension.EXPORTED_ATTRIBUTE; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java index 4a18cb57001c..1d496f32a12d 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleJdkOrderEntryImpl.java @@ -30,7 +30,7 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl @@ -39,9 +39,9 @@ public class ModuleJdkOrderEntryImpl extends LibraryOrderEntryBaseImpl implement ClonableOrderEntry, ModuleJdkOrderEntry, ProjectJdkTable.Listener { - @NonNls public static final String ENTRY_TYPE = JpsModuleSerializer.JDK_TYPE; - @NonNls public static final String JDK_NAME_ATTR = JpsModuleSerializer.JDK_NAME_ATTRIBUTE; - @NonNls public static final String JDK_TYPE_ATTR = JpsModuleSerializer.JDK_TYPE_ATTRIBUTE; + @NonNls public static final String ENTRY_TYPE = JpsModuleRootModelSerializer.JDK_TYPE; + @NonNls public static final String JDK_NAME_ATTR = JpsModuleRootModelSerializer.JDK_NAME_ATTRIBUTE; + @NonNls public static final String JDK_TYPE_ATTR = JpsModuleRootModelSerializer.JDK_TYPE_ATTRIBUTE; @Nullable private Sdk myJdk; private String myJdkName; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java index 8409613ed336..b69dd56b79c0 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleLibraryOrderEntryImpl.java @@ -30,7 +30,7 @@ import com.intellij.util.PathUtil; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtension; /** @@ -40,7 +40,7 @@ import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtensio public class ModuleLibraryOrderEntryImpl extends LibraryOrderEntryBaseImpl implements LibraryOrderEntry, ClonableOrderEntry, WritableOrderEntry { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.LibraryOrderEntryImpl"); private final Library myLibrary; - @NonNls public static final String ENTRY_TYPE = JpsModuleSerializer.MODULE_LIBRARY_TYPE; + @NonNls public static final String ENTRY_TYPE = JpsModuleRootModelSerializer.MODULE_LIBRARY_TYPE; private boolean myExported; @NonNls public static final String EXPORTED_ATTR = JpsJavaModelSerializerExtension.EXPORTED_ATTRIBUTE; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java index 12408c276a2f..5cf2009578fc 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleOrderEntryImpl.java @@ -29,15 +29,15 @@ import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import org.jetbrains.jps.model.serialization.java.JpsJavaModelSerializerExtension; /** * @author dsl */ public class ModuleOrderEntryImpl extends OrderEntryBaseImpl implements ModuleOrderEntry, WritableOrderEntry, ClonableOrderEntry { - @NonNls public static final String ENTRY_TYPE = JpsModuleSerializer.MODULE_TYPE; - @NonNls public static final String MODULE_NAME_ATTR = JpsModuleSerializer.MODULE_NAME_ATTRIBUTE; + @NonNls public static final String ENTRY_TYPE = JpsModuleRootModelSerializer.MODULE_TYPE; + @NonNls public static final String MODULE_NAME_ATTR = JpsModuleRootModelSerializer.MODULE_NAME_ATTRIBUTE; @NonNls private static final String EXPORTED_ATTR = JpsJavaModelSerializerExtension.EXPORTED_ATTRIBUTE; private final ModulePointer myModulePointer; diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java index 209151542680..efa433d3c220 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ModuleSourceOrderEntryImpl.java @@ -27,7 +27,7 @@ import com.intellij.util.ArrayUtil; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; import java.util.ArrayList; @@ -35,7 +35,7 @@ import java.util.ArrayList; * @author dsl */ public class ModuleSourceOrderEntryImpl extends OrderEntryBaseImpl implements ModuleSourceOrderEntry, WritableOrderEntry, ClonableOrderEntry { - @NonNls static final String ENTRY_TYPE = JpsModuleSerializer.SOURCE_FOLDER_TYPE; + @NonNls static final String ENTRY_TYPE = JpsModuleRootModelSerializer.SOURCE_FOLDER_TYPE; @NonNls private static final String ATTRIBUTE_FOR_TESTS = "forTests"; ModuleSourceOrderEntryImpl(RootModelImpl rootModel) { diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryFactory.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryFactory.java index dec60af43a0b..1e71cf158c11 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryFactory.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/OrderEntryFactory.java @@ -21,15 +21,15 @@ import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.util.InvalidDataException; import org.jdom.Element; import org.jetbrains.annotations.NonNls; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl */ public class OrderEntryFactory { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.OrderEntryFactory"); - @NonNls public static final String ORDER_ENTRY_ELEMENT_NAME = JpsModuleSerializer.ORDER_ENTRY_TAG; - @NonNls public static final String ORDER_ENTRY_TYPE_ATTR = JpsModuleSerializer.TYPE_ATTRIBUTE; + @NonNls public static final String ORDER_ENTRY_ELEMENT_NAME = JpsModuleRootModelSerializer.ORDER_ENTRY_TAG; + @NonNls public static final String ORDER_ENTRY_TYPE_ATTR = JpsModuleRootModelSerializer.TYPE_ATTRIBUTE; static OrderEntry createOrderEntryByElement(Element element, RootModelImpl rootModel, ProjectRootManagerImpl projectRootManager) throws InvalidDataException { LOG.assertTrue(ORDER_ENTRY_ELEMENT_NAME.equals(element.getName())); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java index bc17b4e67c5c..a2dbb746e766 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/SourceFolderImpl.java @@ -25,7 +25,7 @@ import com.intellij.openapi.vfs.VirtualFile; import org.jdom.Element; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jps.model.serialization.JpsModuleSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModuleRootModelSerializer; /** * @author dsl @@ -33,8 +33,8 @@ import org.jetbrains.jps.model.serialization.JpsModuleSerializer; public class SourceFolderImpl extends ContentFolderBaseImpl implements SourceFolder, ClonableContentFolder { private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.roots.impl.SimpleSourceFolderImpl"); private final boolean myIsTestSource; - @NonNls public static final String ELEMENT_NAME = JpsModuleSerializer.SOURCE_FOLDER_TAG; - @NonNls public static final String TEST_SOURCE_ATTR = JpsModuleSerializer.IS_TEST_SOURCE_ATTRIBUTE; + @NonNls public static final String ELEMENT_NAME = JpsModuleRootModelSerializer.SOURCE_FOLDER_TAG; + @NonNls public static final String TEST_SOURCE_ATTR = JpsModuleRootModelSerializer.IS_TEST_SOURCE_ATTRIBUTE; private String myPackagePrefix; static final String DEFAULT_PACKAGE_PREFIX = ""; @@ -60,7 +60,7 @@ public class SourceFolderImpl extends ContentFolderBaseImpl implements SourceFol final String testSource = element.getAttributeValue(TEST_SOURCE_ATTR); if (testSource == null) throw new InvalidDataException(); myIsTestSource = Boolean.valueOf(testSource).booleanValue(); - final String packagePrefix = element.getAttributeValue(JpsModuleSerializer.PACKAGE_PREFIX_ATTRIBUTE); + final String packagePrefix = element.getAttributeValue(JpsModuleRootModelSerializer.PACKAGE_PREFIX_ATTRIBUTE); if (packagePrefix != null) { myPackagePrefix = packagePrefix; } @@ -94,7 +94,7 @@ public class SourceFolderImpl extends ContentFolderBaseImpl implements SourceFol writeFolder(element, ELEMENT_NAME); element.setAttribute(TEST_SOURCE_ATTR, Boolean.toString(myIsTestSource)); if (!DEFAULT_PACKAGE_PREFIX.equals(myPackagePrefix)) { - element.setAttribute(JpsModuleSerializer.PACKAGE_PREFIX_ATTRIBUTE, myPackagePrefix); + element.setAttribute(JpsModuleRootModelSerializer.PACKAGE_PREFIX_ATTRIBUTE, myPackagePrefix); } } diff --git a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/model/impl/JpsAndroidModelSerializerExtension.java b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/model/impl/JpsAndroidModelSerializerExtension.java index a1a2eae0c561..0cf75632b609 100644 --- a/plugins/android/jps-plugin/src/org/jetbrains/jps/android/model/impl/JpsAndroidModelSerializerExtension.java +++ b/plugins/android/jps-plugin/src/org/jetbrains/jps/android/model/impl/JpsAndroidModelSerializerExtension.java @@ -27,7 +27,7 @@ import org.jetbrains.jps.model.JpsElementFactory; import org.jetbrains.jps.model.JpsSimpleElement; import org.jetbrains.jps.model.module.JpsModule; import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension; -import org.jetbrains.jps.model.serialization.JpsSdkPropertiesSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkPropertiesSerializer; import org.jetbrains.jps.model.serialization.facet.JpsFacetConfigurationSerializer; import java.util.Arrays; diff --git a/plugins/devkit/jps-plugin/src/org/jetbrains/jps/devkit/model/impl/JpsDevKitModelSerializerExtension.java b/plugins/devkit/jps-plugin/src/org/jetbrains/jps/devkit/model/impl/JpsDevKitModelSerializerExtension.java index 5fde08b32ede..0dd76f7f2491 100644 --- a/plugins/devkit/jps-plugin/src/org/jetbrains/jps/devkit/model/impl/JpsDevKitModelSerializerExtension.java +++ b/plugins/devkit/jps-plugin/src/org/jetbrains/jps/devkit/model/impl/JpsDevKitModelSerializerExtension.java @@ -26,8 +26,8 @@ import org.jetbrains.jps.devkit.model.JpsPluginModuleType; import org.jetbrains.jps.model.JpsElementFactory; import org.jetbrains.jps.model.JpsSimpleElement; import org.jetbrains.jps.model.serialization.*; -import org.jetbrains.jps.model.serialization.JpsModulePropertiesSerializer; -import org.jetbrains.jps.model.serialization.JpsSdkPropertiesSerializer; +import org.jetbrains.jps.model.serialization.module.JpsModulePropertiesSerializer; +import org.jetbrains.jps.model.serialization.library.JpsSdkPropertiesSerializer; import java.util.Arrays; import java.util.List;