8010706: -Dnashorn.args system property to create command lines to wrapped nashorn.jar:s
Reviewed-by: hannesw, sundar
--- a/nashorn/docs/DEVELOPER_README Mon Mar 25 18:20:16 2013 +0530
+++ b/nashorn/docs/DEVELOPER_README Tue Mar 26 08:42:35 2013 +0100
@@ -13,6 +13,17 @@
This documentation of the system property flags assume that the
default value of the flag is false, unless otherwise specified.
+SYSTEM PROPERTY: -Dnashorn.args=<string>
+
+This property takes as its value a space separated list of Nashorn
+command line options that should be passed to Nashorn. This might be useful
+in environments where it is hard to tell how a nashorn.jar is launched.
+
+Example:
+
+> java -Dnashorn.args="--lazy-complation --log=compiler" large-java-app-with-nashorn.jar
+> ant -Dnashorn.args="--log=codegen" antjob
+
SYSTEM PROPERTY: -Dnashorn.unstable.relink.threshold=x
This property controls how many call site misses are allowed before a
--- a/nashorn/src/jdk/nashorn/internal/runtime/options/Options.java Mon Mar 25 18:20:16 2013 +0530
+++ b/nashorn/src/jdk/nashorn/internal/runtime/options/Options.java Tue Mar 26 08:42:35 2013 +0100
@@ -66,6 +66,9 @@
/** The options map of enabled options */
private final TreeMap<String, Option<?>> options;
+ /** System property that can be used for command line option propagation */
+ private static final String NASHORN_ARGS_PROPERTY = "nashorn.args";
+
/**
* Constructor
*
@@ -386,6 +389,14 @@
final LinkedList<String> argList = new LinkedList<>();
Collections.addAll(argList, args);
+ final String extra = getStringProperty(NASHORN_ARGS_PROPERTY, null);
+ if (extra != null) {
+ final StringTokenizer st = new StringTokenizer(extra);
+ while (st.hasMoreTokens()) {
+ argList.add(st.nextToken());
+ }
+ }
+
while (!argList.isEmpty()) {
final String arg = argList.remove(0);