diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java index 7b7d9e7e504d..4e4e02c59155 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerBase.java @@ -147,7 +147,8 @@ public abstract class GroovyCompilerBase implements TranslatingCompiler { classPathBuilder.add(PathManager.findFileInLibDirectory("yjp-controller-api-redist.jar").getAbsolutePath()); } - parameters.getVMParametersList().add("-Xmx" + GroovyCompilerConfiguration.getInstance(myProject).getHeapSize() + "m"); + final GroovyCompilerConfiguration compilerConfiguration = GroovyCompilerConfiguration.getInstance(myProject); + parameters.getVMParametersList().add("-Xmx" + compilerConfiguration.getHeapSize() + "m"); if (profileGroovyc) { parameters.getVMParametersList().add("-XX:+HeapDumpOnOutOfMemoryError"); } @@ -199,6 +200,9 @@ public abstract class GroovyCompilerBase implements TranslatingCompiler { parameters.getProgramParametersList().add(forStubs ? "stubs" : "groovyc"); parameters.getProgramParametersList().add(fileWithParameters.getPath()); + if (compilerConfiguration.isInvokeDynamic()) { + parameters.getProgramParametersList().add("--indy"); + } try { Process process = JdkUtil.setupJVMCommandLine(exePath, parameters, true).createProcess(); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.form b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.form index 902bcd95692b..295925f14dc8 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.form +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.form @@ -1,6 +1,6 @@
diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.java index 99d3828dd6a3..66cd389bd017 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfigurable.java @@ -30,6 +30,7 @@ import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.ui.components.JBCheckBox; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.Nls; @@ -46,6 +47,8 @@ public class GroovyCompilerConfigurable implements SearchableConfigurable, Confi private JTextField myHeapSize; private JPanel myMainPanel; private JPanel myExcludesPanel; + private JBCheckBox myInvokeDynamicSupportCB; + private final ExcludedEntriesConfigurable myExcludes; private final GroovyCompilerConfiguration myConfig; @@ -102,16 +105,19 @@ public class GroovyCompilerConfigurable implements SearchableConfigurable, Confi public boolean isModified() { return !Comparing.equal(myConfig.getHeapSize(), myHeapSize.getText()) || + myInvokeDynamicSupportCB.isSelected() != myConfig.isInvokeDynamic() || myExcludes.isModified(); } public void apply() throws ConfigurationException { myExcludes.apply(); myConfig.setHeapSize(myHeapSize.getText()); + myConfig.setInvokeDynamic(myInvokeDynamicSupportCB.isSelected()); } public void reset() { myHeapSize.setText(myConfig.getHeapSize()); + myInvokeDynamicSupportCB.setSelected(myConfig.isInvokeDynamic()); myExcludes.reset(); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfiguration.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfiguration.java index 132860d21d38..d779fd3d11f7 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfiguration.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/compiler/GroovyCompilerConfiguration.java @@ -36,12 +36,14 @@ import org.jdom.Element; ) public class GroovyCompilerConfiguration implements PersistentStateComponent