@Test public void testBashEscaping() { Assert.assertEquals( BashStringEscapes.doubleQuoteLiteralsForBash("-Dname=Bob Johnson", "-Dnet.worth=$100"), "\"-Dname=Bob Johnson\" \"-Dnet.worth=\\$100\""); }
@Override public Map<String, String> getShellEnvironment() { Map<String, String> shellEnv = MutableMap.<String, String>builder() .putAll(super.getShellEnvironment()) .remove("JAVA_OPTS") .put("CATALINA_PID", "pid.txt") .put("CATALINA_BASE", getRunDir()) .put("RUN", getRunDir()) .build(); // Double quoting of individual JAVA_OPTS entries required due to eval in catalina.sh List<String> javaOpts = getJavaOpts(); String sJavaOpts = BashStringEscapes.doubleQuoteLiteralsForBash(javaOpts.toArray(new String[0])); shellEnv.put("CATALINA_OPTS", sJavaOpts); return shellEnv; }