diff --git a/plugins/devkit/src/run/JUnitDevKitPatcher.java b/plugins/devkit/src/run/JUnitDevKitPatcher.java index df3b232b8679..94ef5852c3be 100644 --- a/plugins/devkit/src/run/JUnitDevKitPatcher.java +++ b/plugins/devkit/src/run/JUnitDevKitPatcher.java @@ -21,7 +21,6 @@ public class JUnitDevKitPatcher extends JUnitPatcher{ String libPath = jdk.getHomePath() + File.separator + "lib"; javaParameters.getVMParametersList().add("-Xbootclasspath/p:" + libPath + File.separator + "boot.jar"); javaParameters.getClassPath().addFirst(libPath + File.separator + "idea.jar"); - javaParameters.getClassPath().addTail(libPath + File.separator + "idea_rt.jar"); javaParameters.getClassPath().addFirst(libPath + File.separator + "resources.jar"); } } diff --git a/plugins/devkit/src/run/PluginRunConfiguration.java b/plugins/devkit/src/run/PluginRunConfiguration.java index a916cc93833a..d9be3971e425 100644 --- a/plugins/devkit/src/run/PluginRunConfiguration.java +++ b/plugins/devkit/src/run/PluginRunConfiguration.java @@ -59,6 +59,8 @@ public class PluginRunConfiguration extends RunConfigurationBase { private Module myModule; private String myModuleName; + public String VM_PARAMETERS; + public PluginRunConfiguration(final Project project, final ConfigurationFactory factory, final String name) { super(project, factory, name); } @@ -102,6 +104,11 @@ public class PluginRunConfiguration extends RunConfigurationBase { ParametersList vm = params.getVMParametersList(); + final String[] userVMOptions = VM_PARAMETERS != null ? VM_PARAMETERS.split(" ") : null; + for (int i = 0; userVMOptions != null && i < userVMOptions.length; i++) { + vm.add(userVMOptions[i]); + } + String libPath = jdk.getHomePath() + File.separator + "lib"; vm.add("-Xbootclasspath/p:" + libPath + File.separator + "boot.jar"); @@ -171,6 +178,7 @@ public class PluginRunConfiguration extends RunConfigurationBase { if (module != null) { myModuleName = module.getAttributeValue("name"); } + DefaultJDOMExternalizer.readExternal(this, element); } public void writeExternal(Element element) throws WriteExternalException { @@ -181,6 +189,7 @@ public class PluginRunConfiguration extends RunConfigurationBase { } })); element.addContent(moduleElement); + DefaultJDOMExternalizer.writeExternal(this, element); } public Module getModule() { diff --git a/plugins/devkit/src/run/PluginRunConfigurationEditor.java b/plugins/devkit/src/run/PluginRunConfigurationEditor.java index 7aa8d3ea7aa6..080a473c3ab9 100644 --- a/plugins/devkit/src/run/PluginRunConfigurationEditor.java +++ b/plugins/devkit/src/run/PluginRunConfigurationEditor.java @@ -31,14 +31,13 @@ */ package org.jetbrains.idea.devkit.run; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.module.Module; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SettingsEditor; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.module.ModuleManager; -import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.ui.LabeledComponent; import com.intellij.openapi.util.Computable; - +import com.intellij.ui.RawCommandLineEditor; import javax.swing.*; import java.awt.*; @@ -48,7 +47,7 @@ public class PluginRunConfigurationEditor extends SettingsEditor myVMParameters = new LabeledComponent(); private PluginRunConfiguration myPRC; @@ -59,6 +58,7 @@ public class PluginRunConfigurationEditor extends SettingsEditor