Skip to content

Commit

Permalink
spotless:apply
Browse files Browse the repository at this point in the history
  • Loading branch information
EricWittmann authored and jsenko committed Feb 13, 2025
1 parent a1782bf commit 98b34bf
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,17 @@
import java.util.TreeSet;

/**
* Models the value of the JAVA_OPTS_APPEND environment variable. This is
* a convenient way to merge values and handle conflicts.
* Models the value of the JAVA_OPTS_APPEND environment variable. This is a convenient way to merge values and
* handle conflicts.
*/
public class JavaOptsAppend {

private final Set<String> opts = new TreeSet<>();

/**
* Called to set the initial value of the ENV var using an existing
* value, typically configured in the "env" section of the CR. This
* will be a value set by the app deployer, with runtime options
* they want to have enabled.
* Called to set the initial value of the ENV var using an existing value, typically configured in the
* "env" section of the CR. This will be a value set by the app deployer, with runtime options they want
* to have enabled.
*/
public void setOptsFromEnvVar(String value) {
opts.clear();
Expand All @@ -33,16 +32,13 @@ public void setOptsFromEnvVar(String value) {
*/
public EnvVar toEnvVar() {
EnvVarBuilder builder = new EnvVarBuilder();
return builder
.withName(EnvironmentVariables.JAVA_OPTS_APPEND)
.withValue(String.join(" ", opts))
return builder.withName(EnvironmentVariables.JAVA_OPTS_APPEND).withValue(String.join(" ", opts))
.build();
}

/**
* Add another option. If the option already exists, do nothing. Whether the
* option already exists may depend on the option. Custom logic may be needed
* to properly support certain options.
* Add another option. If the option already exists, do nothing. Whether the option already exists may
* depend on the option. Custom logic may be needed to properly support certain options.
*/
public void addOpt(String optValue) {
if (!containsOpt(optValue)) {
Expand All @@ -58,8 +54,8 @@ public boolean isEmpty() {
}

/**
* Returns 'true' if the option already exists. The logic for whether an option
* already exists depends on the option.
* Returns 'true' if the option already exists. The logic for whether an option already exists depends on
* the option.
*/
public boolean containsOpt(String optValue) {
if (optValue == null || optValue.trim().isEmpty()) {
Expand Down Expand Up @@ -93,8 +89,8 @@ public boolean containsOptByPrefix(String prefix) {
/**
* Checks if an option of one of the following form exists already:
* <ul>
* <li>-Dmy.property.name=foo</li>
* <li>-XX:OptionName=bar</li>
* <li>-Dmy.property.name=foo</li>
* <li>-XX:OptionName=bar</li>
* </ul>
* Looks for another option with the same name but potentially different value.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ public void testJavaOpts_Empty() throws Exception {
JavaOptsAppend optsAppend = new JavaOptsAppend();
Assertions.assertThat(optsAppend.isEmpty()).isTrue();
Assertions.assertThat(optsAppend.toEnvVar()).isNotNull();
Assertions.assertThat(optsAppend.toEnvVar().getName()).isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getName())
.isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("");
}

Expand All @@ -22,7 +23,8 @@ public void testJavaOpts_EmptyEnvVar() throws Exception {
optsAppend.setOptsFromEnvVar("");
Assertions.assertThat(optsAppend.isEmpty()).isTrue();
Assertions.assertThat(optsAppend.toEnvVar()).isNotNull();
Assertions.assertThat(optsAppend.toEnvVar().getName()).isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getName())
.isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("");
}

Expand All @@ -32,8 +34,10 @@ public void testJavaOpts_EnvVar() throws Exception {
optsAppend.setOptsFromEnvVar("-Xms512m -Xmx1g -XX:+UseG1GC -Dspring.profiles.active=prod");
Assertions.assertThat(optsAppend.isEmpty()).isFalse();
Assertions.assertThat(optsAppend.toEnvVar()).isNotNull();
Assertions.assertThat(optsAppend.toEnvVar().getName()).isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("-Dspring.profiles.active=prod -XX:+UseG1GC -Xms512m -Xmx1g");
Assertions.assertThat(optsAppend.toEnvVar().getName())
.isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue())
.isEqualTo("-Dspring.profiles.active=prod -XX:+UseG1GC -Xms512m -Xmx1g");
}

@Test
Expand All @@ -44,8 +48,10 @@ public void testJavaOpts_EnvVarWithAdds() throws Exception {
optsAppend.addOpt("-Dspring.profiles.active=prod");
Assertions.assertThat(optsAppend.isEmpty()).isFalse();
Assertions.assertThat(optsAppend.toEnvVar()).isNotNull();
Assertions.assertThat(optsAppend.toEnvVar().getName()).isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("-Dspring.profiles.active=prod -XX:+UseG1GC -Xms512m -Xmx1g");
Assertions.assertThat(optsAppend.toEnvVar().getName())
.isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue())
.isEqualTo("-Dspring.profiles.active=prod -XX:+UseG1GC -Xms512m -Xmx1g");
}

@Test
Expand All @@ -67,30 +73,35 @@ public void testJavaOpts_ParamConflict() throws Exception {
optsAppend.addOpt("-XX:+HeapDumpOnOutOfMemoryError");
optsAppend.addOpt("-XX:HeapDumpPath=/path/to/dumps/");
optsAppend.addOpt("-XX:HeapDumpPath=/path/to/other-dumps/");
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps/ -XX:ReservedCodeCacheSize=128m");
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo(
"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps/ -XX:ReservedCodeCacheSize=128m");

optsAppend = new JavaOptsAppend();
optsAppend.setOptsFromEnvVar("-XX:ReservedCodeCacheSize=128m -XX:+HeapDumpOnOutOfMemoryError");
optsAppend.addOpt("-XX:ReservedCodeCacheSize=256m");
optsAppend.addOpt("-XX:+HeapDumpOnOutOfMemoryError");
optsAppend.addOpt("-XX:HeapDumpPath=/path/to/dumps/");
optsAppend.addOpt("-XX:HeapDumpPath=/path/to/other-dumps/");
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps/ -XX:ReservedCodeCacheSize=128m");
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo(
"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dumps/ -XX:ReservedCodeCacheSize=128m");
}

@Test
public void testJavaOpts_Conflicts() throws Exception {
JavaOptsAppend optsAppend = new JavaOptsAppend();
optsAppend.setOptsFromEnvVar("-Xms512m -Xmx1g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005");
optsAppend.setOptsFromEnvVar(
"-Xms512m -Xmx1g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005");
optsAppend.addOpt("-Xms256m");
optsAppend.addOpt("-Xmx2g");
optsAppend.addOpt("-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:12345");
optsAppend.addOpt("-javaagent:/path/to/agent.jar");
optsAppend.addOpt("-javaagent:/path/to/alt_agent.jar");
Assertions.assertThat(optsAppend.isEmpty()).isFalse();
Assertions.assertThat(optsAppend.toEnvVar()).isNotNull();
Assertions.assertThat(optsAppend.toEnvVar().getName()).isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo("-Xms512m -Xmx1g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -javaagent:/path/to/agent.jar");
Assertions.assertThat(optsAppend.toEnvVar().getName())
.isEqualTo(EnvironmentVariables.JAVA_OPTS_APPEND);
Assertions.assertThat(optsAppend.toEnvVar().getValue()).isEqualTo(
"-Xms512m -Xmx1g -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -javaagent:/path/to/agent.jar");
}

}

0 comments on commit 98b34bf

Please sign in to comment.