private void modifyWarFile() throws IOException, InterruptedException {
    // Build the environment to run the command
    ProcessBuilder builder = new ProcessBuilder();
    builder.environment().put("GEODE", ContainerInstall.GEODE_HOME_PATH.toString());
    builder.inheritIO();
    // Setup the environment builder with the command
    builder.command(buildCommand());
    // Redirect the command line logging to a file

    builder.redirectError(modifyWarScriptLog);
    builder.redirectOutput(modifyWarScriptLog);
    logger.info("Running command: " + String.join(" ", builder.command()));

    // Run the command
    Process process = builder.start();

    // Wait for the command to finish
    int exitCode = process.waitFor();
    // Throw error if bad exit
    if (exitCode != 0) {
      StringBuilder sb = new StringBuilder();
      sb.append("Unable to run modify_war script, command: ").append(builder.command());
      sb.append(lineSeparator());
      sb.append("check log file: ");
      for (String line : readLines(modifyWarScriptLog, defaultCharset())) {
        sb.append(lineSeparator());
        sb.append(line);
      }
      throw new IOException(sb.toString());
    }
  }
Modifies the {@link ContainerInstall#getWarFilePath()} for container use, by simulating a
command line execution of the modify_war_file script using the commands built from
{@link #buildCommand()}

The modified WAR file is sent to {@link #getWarFile()}.

@throws IOException If the command executed returns with a non-zero exit code.
geode-assembly/src/distributedTest/java/org/apache/geode/session/tests/GenericAppServerContainer.java