IDEA-92922 MAVEN_OPTS for Maven server should be configurable from IDEA instead of using system environment

store MavenServerManager.mavenEmbedderVMOptions on save,
This commit is contained in:
Sergey Evdokimov
2012-12-14 16:11:11 +04:00
parent 7889d64381
commit 01acbf8efd
@@ -69,6 +69,8 @@ import java.util.Map;
public class MavenServerManager extends RemoteObjectWrapper<MavenServer> implements PersistentStateComponent<Element> { public class MavenServerManager extends RemoteObjectWrapper<MavenServer> implements PersistentStateComponent<Element> {
@NonNls private static final String MAIN_CLASS = "org.jetbrains.idea.maven.server.RemoteMavenServer"; @NonNls private static final String MAIN_CLASS = "org.jetbrains.idea.maven.server.RemoteMavenServer";
private static final String DEFAULT_VM_OPTIONS = "-Xmx512m";
private final RemoteProcessSupport<Object, MavenServer, Object> mySupport; private final RemoteProcessSupport<Object, MavenServer, Object> mySupport;
private final RemoteMavenServerLogger myLogger = new RemoteMavenServerLogger(); private final RemoteMavenServerLogger myLogger = new RemoteMavenServerLogger();
@@ -79,7 +81,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
private final Alarm myShutdownAlarm = new Alarm(Alarm.ThreadToUse.SHARED_THREAD); private final Alarm myShutdownAlarm = new Alarm(Alarm.ThreadToUse.SHARED_THREAD);
private boolean useMaven2 = true; private boolean useMaven2 = true;
private String mavenEmbedderVMOptions = "-Xmx512m"; private String mavenEmbedderVMOptions = DEFAULT_VM_OPTIONS;
public static MavenServerManager getInstance() { public static MavenServerManager getInstance() {
return ServiceManager.getService(MavenServerManager.class); return ServiceManager.getService(MavenServerManager.class);
@@ -458,6 +460,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
public Element getState() { public Element getState() {
final Element element = new Element("maven-version"); final Element element = new Element("maven-version");
element.setAttribute("version", useMaven2 ? "2" : "3"); element.setAttribute("version", useMaven2 ? "2" : "3");
element.setAttribute("vmOptions", mavenEmbedderVMOptions);
return element; return element;
} }
@@ -465,6 +468,9 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
public void loadState(Element state) { public void loadState(Element state) {
String version = state.getAttributeValue("version"); String version = state.getAttributeValue("version");
useMaven2 = !"3".equals(version); useMaven2 = !"3".equals(version);
String vmOptions = state.getAttributeValue("vmOptions");
mavenEmbedderVMOptions = vmOptions == null ? DEFAULT_VM_OPTIONS : vmOptions;
} }
private static class RemoteMavenServerLogger extends MavenRemoteObject implements MavenServerLogger { private static class RemoteMavenServerLogger extends MavenRemoteObject implements MavenServerLogger {