summaryrefslogtreecommitdiff
path: root/plugins/eclipse
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-07-08 11:26:24 -0700
committerTor Norbye <tnorbye@google.com>2013-07-08 11:26:24 -0700
commitc1ace1f7e1e49c81bb4b75377c99f07be340abfe (patch)
tree9d0db96bd3d86ddfec80e7e3554cad9dcc066553 /plugins/eclipse
parentc6218e46d5d2017e987ecdbd99b318a95c42abc0 (diff)
downloadidea-c1ace1f7e1e49c81bb4b75377c99f07be340abfe.tar.gz
Snapshot aea001abfc1b38fec3a821bcd5174cc77dc75787 from master branch of git://git.jetbrains.org/idea/community.git
Change-Id: Icdea2a2bd7ad43b4d05967b1f0479db3bda1c93c
Diffstat (limited to 'plugins/eclipse')
-rw-r--r--plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EPathUtil.java20
-rw-r--r--plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java4
-rw-r--r--plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/IdeaSpecificSettings.java13
3 files changed, 30 insertions, 7 deletions
diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EPathUtil.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EPathUtil.java
index 9dcbeede2a30..c5a23e1b1d43 100644
--- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EPathUtil.java
+++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EPathUtil.java
@@ -90,9 +90,21 @@ public class EPathUtil {
/**
* @return url
*/
- static String expandEclipsePath2Url(final String path, ModifiableRootModel model, final List<String> currentRoots) {
+ static String expandEclipsePath2Url(final String path,
+ final ModifiableRootModel model,
+ final List<String> currentRoots) {
final VirtualFile contentRoot = getContentRoot(model);
LOG.assertTrue(contentRoot != null);
+ return expandEclipsePath2Url(path, model, currentRoots, contentRoot);
+ }
+
+ /**
+ * @return url
+ */
+ static String expandEclipsePath2Url(final String path,
+ final ModifiableRootModel model,
+ final List<String> currentRoots,
+ @NotNull final VirtualFile contentRoot) {
final String rootPath = contentRoot.getPath();
String url = null;
if (new File(path).exists()) { //absolute path
@@ -209,6 +221,12 @@ public class EPathUtil {
return url.substring(projectUrl.length()); //leading /
}
+ final String path = VfsUtilCore.urlToPath(url);
+ final String projectPath = projectBaseDir.getPath();
+ if (path.startsWith(projectPath)) {
+ return ProjectRootManagerImpl.extractLocalPath(path.substring(projectPath.length()));
+ }
+
return ProjectRootManagerImpl.extractLocalPath(url);
}
}
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 951d161f9354..ce34809a5305 100644
--- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java
+++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/EclipseClasspathReader.java
@@ -125,6 +125,10 @@ public class EclipseClasspathReader extends AbstractEclipseClasspathReader<Modif
@Override
protected String expandEclipsePath2Url(ModifiableRootModel rootModel, String path) {
+ final VirtualFile contentRoot = myContentEntry.getFile();
+ if (contentRoot != null) {
+ return EPathUtil.expandEclipsePath2Url(path, rootModel, myCurrentRoots, contentRoot);
+ }
return EPathUtil.expandEclipsePath2Url(path, rootModel, myCurrentRoots);
}
diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/IdeaSpecificSettings.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/IdeaSpecificSettings.java
index fa34a48a548d..ce03200ad98d 100644
--- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/IdeaSpecificSettings.java
+++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/conversion/IdeaSpecificSettings.java
@@ -25,12 +25,13 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
-import com.intellij.openapi.module.ModuleUtil;
+import com.intellij.openapi.module.ModuleUtilCore;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.roots.*;
import com.intellij.openapi.roots.impl.DirectoryIndexExcludePolicy;
+import com.intellij.openapi.roots.impl.ProjectRootManagerImpl;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
import com.intellij.openapi.util.Comparing;
@@ -39,7 +40,7 @@ import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.JarFileSystem;
-import com.intellij.openapi.vfs.VfsUtil;
+import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.openapi.vfs.pointers.VirtualFilePointer;
@@ -320,7 +321,7 @@ public class IdeaSpecificSettings extends AbstractIdeaSpecificSettings<Modifiabl
}
}
}
- if (entryFile == null || excludeFile == null || VfsUtil.isAncestor(entryFile, excludeFile, false)) {
+ if (entryFile == null || excludeFile == null || VfsUtilCore.isAncestor(entryFile, excludeFile, false)) {
Element element = new Element(IdeaXml.EXCLUDE_FOLDER_TAG);
contentEntryElement.addContent(element);
element.setAttribute(IdeaXml.URL_ATTR, exludeFolderUrl);
@@ -453,13 +454,13 @@ public class IdeaSpecificSettings extends AbstractIdeaSpecificSettings<Modifiabl
public static boolean appendModuleRelatedRoot(Element element, String classesUrl, final String rootName, ModuleRootModel model) {
VirtualFile file = VirtualFileManager.getInstance().findFileByUrl(classesUrl);
+ final Project project = model.getModule().getProject();
if (file != null) {
if (file.getFileSystem() instanceof JarFileSystem) {
file = JarFileSystem.getInstance().getVirtualFileForJar(file);
assert file != null;
}
- final Project project = model.getModule().getProject();
- final Module module = ModuleUtil.findModuleForFile(file, project);
+ final Module module = ModuleUtilCore.findModuleForFile(file, project);
if (module != null) {
return appendRelatedToModule(element, classesUrl, rootName, file, module);
} else if (ProjectRootManager.getInstance(project).getFileIndex().isIgnored(file)) {
@@ -474,7 +475,7 @@ public class IdeaSpecificSettings extends AbstractIdeaSpecificSettings<Modifiabl
private static boolean appendRelatedToModule(Element element, String classesUrl, String rootName, VirtualFile file, Module module) {
final VirtualFile[] contentRoots = ModuleRootManager.getInstance(module).getContentRoots();
for (VirtualFile contentRoot : contentRoots) {
- if (VfsUtil.isAncestor(contentRoot, file, false)) {
+ if (VfsUtilCore.isAncestor(contentRoot, file, false)) {
final Element clsElement = new Element(rootName);
clsElement.setAttribute(PROJECT_RELATED, PathMacroManager.getInstance(module.getProject()).collapsePath(classesUrl));
element.addContent(clsElement);