@Override public String toString() { return "JavaCommand{" + "workDir=" + getWorkDir() + ", jvmOptions=" + jvmOptions + ", className='" + className + '\'' + ", classpath=" + classpath + ", arguments=" + getArguments() + ", envVariables=" + getEnvVariables() + ", suppressedEnvVariables=" + getSuppressedEnvVariables() + '}'; } }
@Test public void createCeCommand_returns_command_for_default_settings() { JavaCommand command = newFactory(new Properties()).createCeCommand(); assertThat(command.getClassName()).isEqualTo("org.sonar.ce.app.CeServer"); assertThat(command.getWorkDir().getAbsolutePath()).isEqualTo(homeDir.getAbsolutePath()); assertThat(command.getClasspath()) .containsExactly("./lib/common/*"); assertThat(command.getJvmOptions().getAll()) // enforced values .contains("-Djava.awt.headless=true", "-Dfile.encoding=UTF-8") // default settings .contains("-Djava.io.tmpdir=" + tempDir.getAbsolutePath(), "-Dfile.encoding=UTF-8") .contains("-Xmx512m", "-Xms128m", "-XX:+HeapDumpOnOutOfMemoryError"); assertThat(command.getProcessId()).isEqualTo(ProcessId.COMPUTE_ENGINE); assertThat(command.getEnvVariables()) .isNotEmpty(); assertThat(command.getArguments()) // default settings .contains(entry("sonar.web.javaOpts", "-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError")) .contains(entry("sonar.cluster.enabled", "false")); assertThat(command.getSuppressedEnvVariables()).containsOnly("JAVA_TOOL_OPTIONS"); }
@Test public void test_command_with_complete_information() throws Exception { File workDir = temp.newFolder(); JavaCommand<JvmOptions> command = new JavaCommand<>(ProcessId.ELASTICSEARCH, workDir); command.setArgument("first_arg", "val1"); Properties args = new Properties(); args.setProperty("second_arg", "val2"); command.setArguments(args); command.setClassName("org.sonar.ElasticSearch"); command.setEnvVariable("JAVA_COMMAND_TEST", "1000"); command.addClasspath("lib/*.jar"); command.addClasspath("conf/*.xml"); JvmOptions<JvmOptions> jvmOptions = new JvmOptions<JvmOptions>() {}; command.setJvmOptions(jvmOptions); assertThat(command.toString()).isNotNull(); assertThat(command.getClasspath()).containsOnly("lib/*.jar", "conf/*.xml"); assertThat(command.getJvmOptions()).isSameAs(jvmOptions); assertThat(command.getWorkDir()).isSameAs(workDir); assertThat(command.getClassName()).isEqualTo("org.sonar.ElasticSearch"); // copy current env variables assertThat(command.getEnvVariables().get("JAVA_COMMAND_TEST")).isEqualTo("1000"); assertThat(command.getEnvVariables().size()).isEqualTo(System.getenv().size() + 1); }
@Test public void createWebCommand_returns_command_for_default_settings() { JavaCommand command = newFactory(new Properties()).createWebCommand(true); assertThat(command.getClassName()).isEqualTo("org.sonar.server.app.WebServer"); assertThat(command.getWorkDir().getAbsolutePath()).isEqualTo(homeDir.getAbsolutePath()); assertThat(command.getClasspath()) .containsExactly("./lib/common/*"); assertThat(command.getJvmOptions().getAll()) // enforced values .contains("-Djava.awt.headless=true", "-Dfile.encoding=UTF-8") // default settings .contains("-Djava.io.tmpdir=" + tempDir.getAbsolutePath(), "-Dfile.encoding=UTF-8") .contains("-Xmx512m", "-Xms128m", "-XX:+HeapDumpOnOutOfMemoryError"); assertThat(command.getProcessId()).isEqualTo(ProcessId.WEB_SERVER); assertThat(command.getEnvVariables()) .isNotEmpty(); assertThat(command.getArguments()) // default settings .contains(entry("sonar.web.javaOpts", "-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError")) .contains(entry("sonar.cluster.enabled", "false")); assertThat(command.getSuppressedEnvVariables()).containsOnly("JAVA_TOOL_OPTIONS"); }
"lib/*.class" + System.getProperty("path.separator") + "lib/*.jar", "org.sonarqube.Main"); assertThat(processBuilder.dir).isEqualTo(command.getWorkDir()); assertThat(processBuilder.redirectErrorStream).isTrue(); assertThat(processBuilder.environment)
@Override public String toString() { return "JavaCommand{" + "workDir=" + getWorkDir() + ", jvmOptions=" + jvmOptions + ", className='" + className + '\'' + ", classpath=" + classpath + ", arguments=" + getArguments() + ", envVariables=" + getEnvVariables() + ", suppressedEnvVariables=" + getSuppressedEnvVariables() + '}'; } }