diff options
Diffstat (limited to 'plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java')
-rw-r--r-- | plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java index 9d722746650e..593ce86b4f0b 100644 --- a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java +++ b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java @@ -18,11 +18,13 @@ package org.jetbrains.jps.eclipse.model; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.util.ArrayUtil; import org.jdom.Element; import org.jetbrains.annotations.Nullable; import org.jetbrains.idea.eclipse.IdeaXml; import org.jetbrains.idea.eclipse.conversion.AbstractIdeaSpecificSettings; +import org.jetbrains.jps.model.JpsSimpleElement; import org.jetbrains.jps.model.java.*; import org.jetbrains.jps.model.library.sdk.JpsSdkType; import org.jetbrains.jps.model.module.JpsDependenciesList; @@ -31,6 +33,7 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRoot; import org.jetbrains.jps.model.serialization.JpsMacroExpander; import org.jetbrains.jps.model.serialization.library.JpsSdkTableSerializer; +import java.io.File; import java.util.List; import java.util.Map; @@ -150,6 +153,25 @@ class JpsIdeaSpecificSettings extends AbstractIdeaSpecificSettings<JpsModule, St } model.addSourceRoot(url, JavaSourceRootType.TEST_SOURCE); } + + for (Object o : root.getChildren(IdeaXml.EXCLUDE_FOLDER_TAG)) { + final String excludeUrl = ((Element)o).getAttributeValue(IdeaXml.URL_ATTR); + if (FileUtil.isAncestor(new File(contentUrl), new File(excludeUrl), false)) { + model.getExcludeRootsList().addUrl(excludeUrl); + } + } + + for (Object o : root.getChildren(IdeaXml.PACKAGE_PREFIX_TAG)) { + Element ppElement = (Element)o; + final String prefix = ppElement.getAttributeValue(IdeaXml.PACKAGE_PREFIX_VALUE_ATTR); + final String url = ppElement.getAttributeValue(IdeaXml.URL_ATTR); + for (JpsModuleSourceRoot sourceRoot : model.getSourceRoots()) { + if (Comparing.strEqual(sourceRoot.getUrl(), url)) { + ((JpsSimpleElement)sourceRoot.getProperties()).setData(new JavaSourceRootProperties(prefix)); + break; + } + } + } } private static JpsJavaExtensionService getService() { |