From 9048062500cf63d7338dcf8031bc5ccd003d23de Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 27 Feb 2013 16:46:03 +0100 Subject: [PATCH] IDEA-100595 Allow to set grape.root --- .../jps/incremental/groovy/GroovyBuilder.java | 14 +++++++++++--- .../groovy/GroovycOSProcessHandler.java | 1 + .../groovy/runner/DefaultGroovyScriptRunner.java | 8 ++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java index 495775080b2a..8df50c2fdabd 100644 --- a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java +++ b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovyBuilder.java @@ -173,13 +173,21 @@ public class GroovyBuilder extends ModuleLevelBuilder { programParams.add("--indy"); } + List vmParams = ContainerUtilRt.newArrayList(); + vmParams.add("-Xmx" + settings.heapSize + "m"); + vmParams.add("-Dfile.encoding=" + System.getProperty("file.encoding")); + //vmParams.add("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5239"); + + String grapeRoot = System.getProperty(GroovycOSProcessHandler.GRAPE_ROOT); + if (grapeRoot != null) { + vmParams.add("-D" + GroovycOSProcessHandler.GRAPE_ROOT + "=" + grapeRoot); + } + final List cmd = ExternalProcessUtil.buildJavaCommandLine( getJavaExecutable(chunk), "org.jetbrains.groovy.compiler.rt.GroovycRunner", Collections.emptyList(), classpath, - Arrays.asList("-Xmx" + settings.heapSize + "m", - "-Dfile.encoding=" + System.getProperty("file.encoding")/*, - "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5239"*/), + vmParams, programParams ); diff --git a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovycOSProcessHandler.java b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovycOSProcessHandler.java index f99d1ade7a82..38d3ae233e72 100644 --- a/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovycOSProcessHandler.java +++ b/plugins/groovy/jps-plugin/src/org/jetbrains/jps/incremental/groovy/GroovycOSProcessHandler.java @@ -40,6 +40,7 @@ import java.util.*; */ public class GroovycOSProcessHandler extends BaseOSProcessHandler { public static final String GROOVY_COMPILER_IN_OPERATION = "Groovy compiler in operation..."; + public static final String GRAPE_ROOT = "grape.root"; private final List myCompiledItems = new ArrayList(); private final Set toRecompileFiles = new HashSet(); private final List compilerMessages = new ArrayList(); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java index a6cc7fb7b9ef..7bd62c3bb8ba 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/runner/DefaultGroovyScriptRunner.java @@ -35,6 +35,7 @@ import com.intellij.openapi.vfs.encoding.EncodingProjectManager; import com.intellij.util.net.HttpConfigurable; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jps.incremental.groovy.GroovycOSProcessHandler; import org.jetbrains.plugins.groovy.util.GroovyUtils; import org.jetbrains.plugins.groovy.util.LibrariesUtil; @@ -109,6 +110,13 @@ public class DefaultGroovyScriptRunner extends GroovyScriptRunner { params.getProgramParametersList().add("--main"); params.getProgramParametersList().add(mainClass); + + if (params.getVMParametersList().getPropertyValue(GroovycOSProcessHandler.GRAPE_ROOT) == null) { + String sysRoot = System.getProperty(GroovycOSProcessHandler.GRAPE_ROOT); + if (sysRoot != null) { + params.getVMParametersList().defineProperty(GroovycOSProcessHandler.GRAPE_ROOT, sysRoot); + } + } } private static void addScriptEncodingSettings(final JavaParameters params, final VirtualFile scriptFile, Module module) {