diff --git a/jps/jps-builders/src/org/jetbrains/jps/ProjectPaths.java b/jps/jps-builders/src/org/jetbrains/jps/ProjectPaths.java index 43eceb22bd0c..8ff69c0646d7 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/ProjectPaths.java +++ b/jps/jps-builders/src/org/jetbrains/jps/ProjectPaths.java @@ -51,11 +51,6 @@ public class ProjectPaths { return getClasspathFiles(chunk, JpsJavaClasspathKind.compile(chunk.containsTests()), excludeMainModuleOutput, ClasspathPart.BEFORE_PLUS_JDK, true); } - @NotNull - public static Collection getRuntimeBootClasspath(@NotNull ModuleChunk chunk) { - return getClasspathFiles(chunk, JpsJavaClasspathKind.compile(chunk.containsTests()), false, ClasspathPart.BEFORE_JDK, false); - } - @NotNull public static Collection getCompilationClasspath(ModuleChunk chunk, boolean excludeMainModuleOutput) { return getClasspathFiles(chunk, JpsJavaClasspathKind.compile(chunk.containsTests()), excludeMainModuleOutput, ClasspathPart.AFTER_JDK, true); diff --git a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JointCompilationClassLoader.java b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JointCompilationClassLoader.java index 8ded22a10c9d..8abb9cf5253f 100644 --- a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JointCompilationClassLoader.java +++ b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JointCompilationClassLoader.java @@ -15,6 +15,7 @@ */ package org.jetbrains.jps.incremental.groovy; +import com.intellij.util.SystemProperties; import com.intellij.util.lang.ClassPath; import com.intellij.util.lang.UrlClassLoader; import org.jetbrains.annotations.NotNull; @@ -23,15 +24,23 @@ import org.jetbrains.annotations.NotNull; * @author peter */ class JointCompilationClassLoader extends UrlClassLoader { + private static final boolean ourExplicitlyAvoidLoadingJava = SystemProperties.getBooleanProperty("groovy.classloader.skip.java.package", true); @NotNull private final Builder myBuilder; @NotNull private ClassPath myClassPath; - + public JointCompilationClassLoader(@NotNull Builder builder) { super(builder); myBuilder = builder; myClassPath = super.getClassPath(); } + @Override + protected Class findClass(String name) throws ClassNotFoundException { + if (ourExplicitlyAvoidLoadingJava && name.startsWith("java.")) return null; + + return super.findClass(name); + } + @Override protected Class _defineClass(String name, byte[] b) { try { diff --git a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JpsGroovycRunner.java b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JpsGroovycRunner.java index bc76c68268e7..8cc03b0ef4da 100644 --- a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JpsGroovycRunner.java +++ b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/JpsGroovycRunner.java @@ -23,7 +23,6 @@ import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.util.SystemProperties; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NotNull; @@ -389,11 +388,8 @@ public abstract class JpsGroovycRunner cp, Collection files) { - for (File file : files) { - cp.add(FileUtil.toCanonicalPath(file.getPath())); - } - } - private Map buildClassToSourceMap(ModuleChunk chunk, CompileContext context, Set toCompilePaths, Map finalOutputs) throws IOException { final Map class2Src = new HashMap(); JpsJavaCompilerConfiguration configuration = JpsJavaExtensionService.getInstance().getOrCreateCompilerConfiguration(