Commit 4cdb5a8e authored by Stephane Nicoll's avatar Stephane Nicoll

Polish "Default to optimized launch of the JVM when using spring-boot:run"

Closes gh-16941
parent 569b850f
import static org.junit.Assert.assertTrue
def file = new File(basedir, "build.log") def file = new File(basedir, "build.log")
return file.text.contains("I haz been run from '$basedir'") assertTrue file.text.contains("I haz been run from '$basedir'")
assertTrue file.text.contains("JVM argument(s): -Xverify:none -XX:TieredStopAtLevel=1")
...@@ -19,7 +19,6 @@ package org.springframework.boot.maven; ...@@ -19,7 +19,6 @@ package org.springframework.boot.maven;
import java.io.File; import java.io.File;
import java.net.URL; import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -55,8 +54,12 @@ public class RunMojo extends AbstractRunMojo { ...@@ -55,8 +54,12 @@ public class RunMojo extends AbstractRunMojo {
*/ */
private Boolean hasDevtools; private Boolean hasDevtools;
/**
* Whether the JVM's launch should be optimized.
* @since 2.2.0
*/
@Parameter(property = "optimizedLaunch", defaultValue = "true") @Parameter(property = "optimizedLaunch", defaultValue = "true")
private boolean optimizedLaunch = true; private boolean optimizedLaunch;
@Override @Override
@Deprecated @Deprecated
...@@ -72,13 +75,19 @@ public class RunMojo extends AbstractRunMojo { ...@@ -72,13 +75,19 @@ public class RunMojo extends AbstractRunMojo {
} }
} }
@Override
protected RunArguments resolveJvmArguments() {
RunArguments jvmArguments = super.resolveJvmArguments();
if (isFork() && this.optimizedLaunch) {
jvmArguments.getArgs().addFirst("-XX:TieredStopAtLevel=1");
jvmArguments.getArgs().addFirst("-Xverify:none");
}
return jvmArguments;
}
@Override @Override
protected void runWithForkedJvm(File workingDirectory, List<String> args, protected void runWithForkedJvm(File workingDirectory, List<String> args,
Map<String, String> environmentVariables) throws MojoExecutionException { Map<String, String> environmentVariables) throws MojoExecutionException {
if (this.optimizedLaunch) {
String[] optimizedLaunchArgs = { "-Xverify:none", "-XX:TieredStopAtLevel=1" };
Collections.addAll(args, optimizedLaunchArgs);
}
int exitCode = forkJvm(workingDirectory, args, environmentVariables); int exitCode = forkJvm(workingDirectory, args, environmentVariables);
if (exitCode == 0 || exitCode == EXIT_CODE_SIGINT) { if (exitCode == 0 || exitCode == EXIT_CODE_SIGINT) {
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment