diff --git a/agent/apiharness/src/main/java/com/intuit/tank/runner/method/LogicRunner.java b/agent/apiharness/src/main/java/com/intuit/tank/runner/method/LogicRunner.java index 928f43ae0..709016fcf 100644 --- a/agent/apiharness/src/main/java/com/intuit/tank/runner/method/LogicRunner.java +++ b/agent/apiharness/src/main/java/com/intuit/tank/runner/method/LogicRunner.java @@ -59,6 +59,7 @@ public String execute() { } String scriptToRun = new LogicScriptUtil().buildScript(step.getScript()); try { + System.setProperty("nashorn.args", "--language=es6"); ScriptIOBean ioBean = new ScriptRunner().runScript(step.getName(), scriptToRun, new ScriptEngineManager().getEngineByExtension("js"), inputs, outputLogger); String action = (String) ioBean.getOutput("action"); diff --git a/data_model/src/main/java/com/intuit/tank/project/ExternalScript.java b/data_model/src/main/java/com/intuit/tank/project/ExternalScript.java index 8038e9696..ee74c97c3 100644 --- a/data_model/src/main/java/com/intuit/tank/project/ExternalScript.java +++ b/data_model/src/main/java/com/intuit/tank/project/ExternalScript.java @@ -89,6 +89,7 @@ public void setProductName(String productName) { } public ScriptEngine getEngine() { + System.setProperty("nashorn.args", "--language=es6"); return new ScriptEngineManager().getEngineByExtension(FilenameUtils.getExtension(name)); } diff --git a/tools/agent_debugger/src/main/java/com/intuit/tank/tools/debugger/ConfiguredLanguage.java b/tools/agent_debugger/src/main/java/com/intuit/tank/tools/debugger/ConfiguredLanguage.java index 52c444561..87b2d2f15 100644 --- a/tools/agent_debugger/src/main/java/com/intuit/tank/tools/debugger/ConfiguredLanguage.java +++ b/tools/agent_debugger/src/main/java/com/intuit/tank/tools/debugger/ConfiguredLanguage.java @@ -16,6 +16,7 @@ * #L% */ +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -56,15 +57,18 @@ public class ConfiguredLanguage { static { for (String[] row : data) { try { + System.setProperty("nashorn.args", "--language=es6"); ScriptEngine engineByName = manager.getEngineByName(row[0]); if (engineByName == null) { - ScriptEngineFactory fact = (ScriptEngineFactory) Class.forName(row[3]).newInstance(); + ScriptEngineFactory fact = (ScriptEngineFactory) Class.forName(row[3]).getDeclaredConstructor().newInstance(); manager.registerEngineName(row[0], fact); } configuredLanguages.add(new ConfiguredLanguage(row[0], row[1], row[2], row[4])); extensionSet.addAll(engineByName.getFactory().getExtensions()); - } catch (Exception e) { + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException e) { System.out.println("No ScriptEngine for language " + row[0] + " in classpath."); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); } for (ScriptEngineFactory fact : manager.getEngineFactories()) { System.out.println(fact.getLanguageName()); diff --git a/tools/script_filter/src/main/java/com/intuit/tank/tools/script/ConfiguredLanguage.java b/tools/script_filter/src/main/java/com/intuit/tank/tools/script/ConfiguredLanguage.java index 096924d64..1ba2b1e85 100644 --- a/tools/script_filter/src/main/java/com/intuit/tank/tools/script/ConfiguredLanguage.java +++ b/tools/script_filter/src/main/java/com/intuit/tank/tools/script/ConfiguredLanguage.java @@ -16,6 +16,7 @@ * #L% */ +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -26,7 +27,6 @@ import javax.script.ScriptEngineManager; import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang3.StringUtils; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; /** @@ -55,18 +55,21 @@ public class ConfiguredLanguage { private static final ScriptEngineManager manager = new ScriptEngineManager(); static { + System.setProperty("nashorn.args", "--language=es6"); for (String[] row : data) { try { ScriptEngine engineByName = manager.getEngineByName(row[0]); if (engineByName == null) { - ScriptEngineFactory fact = (ScriptEngineFactory) Class.forName(row[3]).newInstance(); + ScriptEngineFactory fact = (ScriptEngineFactory) Class.forName(row[3]).getDeclaredConstructor().newInstance(); manager.registerEngineName(row[0], fact); engineByName = manager.getEngineByName(row[0]); } configuredLanguages.add(new ConfiguredLanguage(row[0], row[1], row[2], row[4])); extensionSet.addAll(engineByName.getFactory().getExtensions()); - } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException e) { System.out.println("No ScriptEngine for language " + row[0] + " in classpath."); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); } manager.getEngineFactories().stream().map(ScriptEngineFactory::getLanguageName).forEach(System.out::println); } @@ -95,7 +98,7 @@ public static List getConfiguredLanguages() { public static ConfiguredLanguage getLanguageByExtension(String scriptName) { String extension = FilenameUtils.getExtension(scriptName); ScriptEngine engineByExtension = manager.getEngineByExtension(extension); - return configuredLanguages.stream().filter(lang -> StringUtils.equals(lang.name, engineByExtension.getFactory().getLanguageName())).findFirst().orElse(null); + return configuredLanguages.stream().filter(lang -> lang.name.equals(engineByExtension.getFactory().getLanguageName())).findFirst().orElse(null); } /** diff --git a/web/web_support/src/main/java/com/intuit/tank/script/LogicStepEditor.java b/web/web_support/src/main/java/com/intuit/tank/script/LogicStepEditor.java index 0e606ffda..74036421e 100644 --- a/web/web_support/src/main/java/com/intuit/tank/script/LogicStepEditor.java +++ b/web/web_support/src/main/java/com/intuit/tank/script/LogicStepEditor.java @@ -180,6 +180,7 @@ public void testScript() { inputs.put("request", createRequest()); inputs.put("response", createResponse()); try { + System.setProperty("nashorn.args", "--language=es6"); String scriptToRun = new LogicScriptUtil().buildScript(script); logMap("Variables", vars.getVariableValues(), outputLogger); outputLogger.logLine(DASHES + " script " + DASHES);