From f050b3ec3a05d937af7c06fb2c0ebc57748919c4 Mon Sep 17 00:00:00 2001 From: Dennis Ushakov Date: Fri, 18 Jun 2010 17:59:12 +0400 Subject: [PATCH] use jar file system in ui designer --- .../src/com/intellij/uiDesigner/LoaderFactory.java | 9 ++++++++- plugins/ui-designer/ui-designer.iml | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/ui-designer/src/com/intellij/uiDesigner/LoaderFactory.java b/plugins/ui-designer/src/com/intellij/uiDesigner/LoaderFactory.java index 3a667c0da313..57c28c7d7dd1 100644 --- a/plugins/ui-designer/src/com/intellij/uiDesigner/LoaderFactory.java +++ b/plugins/ui-designer/src/com/intellij/uiDesigner/LoaderFactory.java @@ -26,7 +26,10 @@ import com.intellij.openapi.roots.ModuleRootListener; import com.intellij.openapi.roots.ProjectRootsTraversing; import com.intellij.openapi.roots.ProjectClasspathTraversing; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.vfs.JarFileSystem; +import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.uiDesigner.core.Spacer; import com.intellij.util.PathUtil; import com.intellij.util.lang.UrlClassLoader; @@ -107,11 +110,15 @@ public final class LoaderFactory { private static ClassLoader createClassLoader(final String runClasspath) { final ArrayList urls = new ArrayList(); + final VirtualFileManager manager = VirtualFileManager.getInstance(); + final JarFileSystem fileSystem = JarFileSystem.getInstance(); final StringTokenizer tokenizer = new StringTokenizer(runClasspath, File.pathSeparator); while (tokenizer.hasMoreTokens()) { final String s = tokenizer.nextToken(); try { - urls.add(new File(s).toURI().toURL()); + VirtualFile vFile = manager.findFileByUrl(VfsUtil.pathToUrl(s)); + VirtualFile jar = fileSystem.getJarRootForLocalFile(vFile); + urls.add(new URL(jar.getUrl())); } catch (Exception e) { // ignore ? diff --git a/plugins/ui-designer/ui-designer.iml b/plugins/ui-designer/ui-designer.iml index acbcd5b208a6..45f00e140541 100644 --- a/plugins/ui-designer/ui-designer.iml +++ b/plugins/ui-designer/ui-designer.iml @@ -26,6 +26,7 @@ +