compile-server: added custom VM options
authorEugene Zhuravlev <jeka@intellij.com>
Fri, 27 Jan 2012 16:21:41 +0000 (17:21 +0100)
committerEugene Zhuravlev <jeka@intellij.com>
Fri, 27 Jan 2012 16:23:44 +0000 (17:23 +0100)
java/compiler/impl/src/com/intellij/compiler/CompileServerManager.java
platform/platform-resources-en/src/misc/registry.properties

index fe90cf55f56269fa0131dee535f4729eba9014ed..29578d6817e017cb6845b28a1ddb8dee4828604b 100644 (file)
@@ -59,8 +59,7 @@ import org.jetbrains.jps.client.CompileServerClient;
 import org.jetbrains.jps.server.ClasspathBootstrap;
 import org.jetbrains.jps.server.Server;
 
-import javax.tools.JavaCompiler;
-import javax.tools.ToolProvider;
+import javax.tools.*;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -417,12 +416,18 @@ public class CompileServerManager implements ApplicationComponent{
     final String vmExecutablePath = ((JavaSdkType)projectJdk.getSdkType()).getVMExecutablePath(projectJdk);
     cmdLine.setExePath(vmExecutablePath);
     cmdLine.addParameter("-server");
-    cmdLine.addParameter("-ea");
     cmdLine.addParameter("-XX:MaxPermSize=150m");
     cmdLine.addParameter("-XX:ReservedCodeCacheSize=64m");
+    cmdLine.addParameter("-Xmx" + Registry.intValue("compiler.server.heap.size") + "m");
     cmdLine.addParameter("-Djava.awt.headless=true");
     //cmdLine.addParameter("-DuseJavaUtilZip");
-    cmdLine.addParameter("-Xmx" + Registry.intValue("compiler.server.heap.size") + "m");
+    final String additionalOptions = Registry.stringValue("compiler.server.vm.options");
+    if (!StringUtil.isEmpty(additionalOptions)) {
+      final StringTokenizer tokenizer = new StringTokenizer(additionalOptions, " ", false);
+      while (tokenizer.hasMoreTokens()) {
+        cmdLine.addParameter(tokenizer.nextToken());
+      }
+    }
 
     // debugging
     final int debugPort = Registry.intValue("compiler.server.debug.port");
index 7cd59ea6ff8ef4bb86afa7c27a3ce6dabbed765a..1df80eca639969870560b7f7c860f022c4b8d45e 100644 (file)
@@ -128,6 +128,9 @@ compiler.max.static.constants.searches.description=If the number of changed comp
 compiler.server.heap.size=300
 compiler.server.heap.size.description=Heap size value in MB for the compile server process
 
+compiler.server.vm.options=-ea
+compiler.server.vm.options.description=Additional options for compile server's VM
+
 compiler.server.use.memory.temp.cache=true
 compiler.server.use.memory.temp.cache.description=Store temporary data in memory for faster compilation; requires larger server heap size