diff --git a/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/ui/util/JavaProjectSetupUtil.java b/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/ui/util/JavaProjectSetupUtil.java index 532a5672c..efcf5367f 100644 --- a/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/ui/util/JavaProjectSetupUtil.java +++ b/plugins/org.eclipse.xtext.junit4/src/org/eclipse/xtext/junit4/ui/util/JavaProjectSetupUtil.java @@ -374,6 +374,13 @@ public class JavaProjectSetupUtil { addToClasspath(javaProject, newLibraryEntry); return newLibraryEntry; } + + public static IClasspathEntry addExternalJarToClasspath(IJavaProject javaProject, File file) throws JavaModelException { + IClasspathEntry newLibraryEntry = JavaCore.newLibraryEntry(new Path(file.getAbsolutePath()), null, null); + addToClasspath(javaProject, newLibraryEntry); + return newLibraryEntry; + } + public static File createExternalJar(InputStream data, String nameWithoutJarSuffix) throws IOException, FileNotFoundException { diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/persistence/ResourceStorageFacade.xtend b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/persistence/ResourceStorageFacade.xtend index 2bdd369a0..41a18a1f0 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/persistence/ResourceStorageFacade.xtend +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/resource/persistence/ResourceStorageFacade.xtend @@ -94,6 +94,10 @@ class ResourceStorageFacade implements IResourceStorageFacade { if (resource.resourceSet.URIConverter.exists(resource.URI.getBinaryStorageURI, emptyMap)) { return true } + // if it's an archive URI, we don't need to look up the source folder-output folder scheme + if (resource.URI.isArchive) { + return false + } // check for source project locations, i.e. use generator config val fsa = getFileSystemAccess(resource);