From 45ff70a818fd7114102fd41015e1a064db78cb80 Mon Sep 17 00:00:00 2001 From: James Bloom <733179+jamesdbloom@users.noreply.github.com> Date: Mon, 15 Jul 2019 09:37:31 +0100 Subject: [PATCH] #649 fixed multi-threaded handling of javascript templates --- .../javascript/JavaScriptTemplateEngine.java | 13 +- .../JavaScriptTemplateEngineTest.java | 346 +++++++++++------- 2 files changed, 228 insertions(+), 131 deletions(-) diff --git a/mockserver-core/src/main/java/org/mockserver/templates/engine/javascript/JavaScriptTemplateEngine.java b/mockserver-core/src/main/java/org/mockserver/templates/engine/javascript/JavaScriptTemplateEngine.java index ef6337cdf..10d1cc1d9 100644 --- a/mockserver-core/src/main/java/org/mockserver/templates/engine/javascript/JavaScriptTemplateEngine.java +++ b/mockserver-core/src/main/java/org/mockserver/templates/engine/javascript/JavaScriptTemplateEngine.java @@ -1,15 +1,13 @@ package org.mockserver.templates.engine.javascript; -import org.mockserver.serialization.model.DTO; import org.mockserver.logging.MockServerLogger; import org.mockserver.model.HttpRequest; +import org.mockserver.serialization.model.DTO; import org.mockserver.templates.engine.TemplateEngine; import org.mockserver.templates.engine.model.HttpRequestTemplateObject; import org.mockserver.templates.engine.serializer.HttpTemplateOutputDeserializer; -import javax.script.Invocable; -import javax.script.ScriptEngine; -import javax.script.ScriptEngineManager; +import javax.script.*; import static org.mockserver.formatting.StringFormatter.formatLogMessage; import static org.mockserver.formatting.StringFormatter.indentAndToString; @@ -20,7 +18,7 @@ */ public class JavaScriptTemplateEngine implements TemplateEngine { - private static ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); + private static ScriptEngine engine; private final MockServerLogger logFormatter; private HttpTemplateOutputDeserializer httpTemplateOutputDeserializer; @@ -38,7 +36,10 @@ public T executeTemplate(String template, HttpRequest request, Class