summaryrefslogtreecommitdiff
path: root/plugins/eclipse
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2013-02-08 15:14:04 -0800
committerJean-Baptiste Queru <jbq@google.com>2013-02-08 15:14:04 -0800
commit9edc8f6b58f71ec510ba36b838f115718d9a174d (patch)
tree06f6df92024fa534ff27e1c0b5fc8b2002848093 /plugins/eclipse
parentb56ea2a18f232d79481e778085fd64e8ae486fc3 (diff)
downloadidea-9edc8f6b58f71ec510ba36b838f115718d9a174d.tar.gz
Snapshot of commit 84dc01e773388c2c72a1fc437f313dd5747e7809
from branch master of git://git.jetbrains.org/idea/community.git
Diffstat (limited to 'plugins/eclipse')
-rw-r--r--plugins/eclipse/common-eclipse-util/src/AbstractEclipseClasspathReader.java13
-rw-r--r--plugins/eclipse/common-eclipse-util/src/EclipseProjectFinder.java4
-rw-r--r--plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsEclipseClasspathReader.java3
-rw-r--r--plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsIdeaSpecificSettings.java8
-rw-r--r--plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java4
5 files changed, 26 insertions, 6 deletions
diff --git a/plugins/eclipse/common-eclipse-util/src/AbstractEclipseClasspathReader.java b/plugins/eclipse/common-eclipse-util/src/AbstractEclipseClasspathReader.java
index e2b9662926bc..22dce5bfe9f9 100644
--- a/plugins/eclipse/common-eclipse-util/src/AbstractEclipseClasspathReader.java
+++ b/plugins/eclipse/common-eclipse-util/src/AbstractEclipseClasspathReader.java
@@ -78,7 +78,8 @@ public abstract class AbstractEclipseClasspathReader<T> {
final String testPattern,
Element element, int idx,
final EclipseModuleManager eclipseModuleManager,
- final ExpandMacroToPathMap macroMap) throws ConversionException {
+ final ExpandMacroToPathMap macroMap,
+ final Set<String> libs) throws ConversionException {
String kind = element.getAttributeValue(EclipseXml.KIND_ATTR);
if (kind == null) {
throw new ConversionException("Missing classpathentry/@kind");
@@ -132,7 +133,7 @@ public abstract class AbstractEclipseClasspathReader<T> {
}
else if (kind.equals(EclipseXml.LIB_KIND)) {
- final String libName = getPresentableName(path);
+ final String libName = getPresentableName(path, libs);
final String linked = expandLinkedResourcesPath(macroMap, usedVariables, path);
@@ -168,7 +169,7 @@ public abstract class AbstractEclipseClasspathReader<T> {
throw new ConversionException("Incorrect 'classpathentry/var@path' format");
}
- final String libName = getPresentableName(path);
+ final String libName = getPresentableName(path, libs);
final String url = eclipseVariabledPath2Url(macroMap, usedVariables, path, 0);
eclipseModuleManager.registerEclipseVariablePath(url, path);
@@ -221,7 +222,13 @@ public abstract class AbstractEclipseClasspathReader<T> {
@NotNull
protected static String getPresentableName(@NotNull String path) {
+ return getPresentableName(path, null);
+ }
+
+ @NotNull
+ protected static String getPresentableName(@NotNull String path, Set<String> names) {
final String pathComponent = getLastPathComponent(path);
+ if (pathComponent != null && names != null && !names.add(pathComponent)) return path;
return pathComponent != null ? pathComponent : path;
}
diff --git a/plugins/eclipse/common-eclipse-util/src/EclipseProjectFinder.java b/plugins/eclipse/common-eclipse-util/src/EclipseProjectFinder.java
index 9b76c6ff7014..41041ae54198 100644
--- a/plugins/eclipse/common-eclipse-util/src/EclipseProjectFinder.java
+++ b/plugins/eclipse/common-eclipse-util/src/EclipseProjectFinder.java
@@ -64,6 +64,10 @@ public class EclipseProjectFinder implements EclipseXml {
if (file.isFile()) {
try {
name = JDOMUtil.loadDocument(file).getRootElement().getChildText(NAME_TAG);
+ if (StringUtil.isEmptyOrSpaces(name)) {
+ return null;
+ }
+ name = name.replace("\n", " ").trim();
}
catch (JDOMException e) {
return null;
diff --git a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsEclipseClasspathReader.java b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsEclipseClasspathReader.java
index b9f431645c50..5adca0bb5ed7 100644
--- a/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsEclipseClasspathReader.java
+++ b/plugins/eclipse/jps-plugin/src/org/jetbrains/jps/eclipse/model/JpsEclipseClasspathReader.java
@@ -210,10 +210,11 @@ class JpsEclipseClasspathReader extends AbstractEclipseClasspathReader<JpsModule
final String testPattern,
Element classpathElement, JpsMacroExpander expander) throws IOException {
LOG.debug("start loading classpath for " + model.getName());
+ final HashSet<String> libs = new HashSet<String>();
for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
try {
readClasspathEntry(model, new ArrayList<String>(), new ArrayList<String>(), new HashSet<String>(), new HashSet<String>(),
- testPattern, (Element)o, 0, EclipseModuleManager.EMPTY, expander.getExpandMacroMap());
+ testPattern, (Element)o, 0, EclipseModuleManager.EMPTY, expander.getExpandMacroMap(), libs);
}
catch (ConversionException e) {
throw new IOException(e);
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 e1e1b8506a70..9d722746650e 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
@@ -118,7 +118,13 @@ class JpsIdeaSpecificSettings extends AbstractIdeaSpecificSettings<JpsModule, St
}
@Override
- protected void readLanguageLevel(Element root, JpsModule model) throws InvalidDataException {}
+ protected void readLanguageLevel(Element root, JpsModule model) throws InvalidDataException {
+ final String languageLevel = root.getAttributeValue("LANGUAGE_LEVEL");
+ final JpsJavaModuleExtension extension = getService().getOrCreateModuleExtension(model);
+ if (languageLevel != null) {
+ extension.setLanguageLevel(LanguageLevel.valueOf(languageLevel));
+ }
+ }
@Override
protected void expandElement(Element root, JpsModule model) {
diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java
index 422d6f8ff607..b02f00013e76 100644
--- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java
+++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java
@@ -36,6 +36,7 @@ import com.intellij.openapi.vfs.JarFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.util.ArrayUtil;
+import com.intellij.util.containers.hash.HashSet;
import org.jdom.Element;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.eclipse.*;
@@ -99,11 +100,12 @@ public class EclipseClasspathReader extends AbstractEclipseClasspathReader<Modif
}
int idx = 0;
final EclipseModuleManagerImpl eclipseModuleManager = EclipseModuleManagerImpl.getInstance(model.getModule());
+ final HashSet<String> libs = new HashSet<String>();
for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
try {
readClasspathEntry(model, unknownLibraries, unknownJdks, usedVariables, refsToModules, testPattern, (Element)o, idx++,
eclipseModuleManager,
- ((BasePathMacroManager)PathMacroManager.getInstance(model.getModule())).getExpandMacroMap());
+ ((BasePathMacroManager)PathMacroManager.getInstance(model.getModule())).getExpandMacroMap(), libs);
}
catch (ConversionException e) {
ErrorLog.rethrow(ErrorLog.Level.Warning, null, EclipseXml.CLASSPATH_FILE, e);