You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/11/19 16:19:40 UTC

[camel] 04/06: CAMEL-18718: camel-javascript

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch js
in repository https://gitbox.apache.org/repos/asf/camel.git

commit a2dd3b44732720f52d7c242cf5c01de237ac0a08
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Nov 19 10:48:48 2022 +0100

    CAMEL-18718: camel-javascript
---
 .../camel/language/js/JavaScriptExpression.java    | 25 +++++++++++-----------
 .../camel/language/js/JavaScriptLanguage.java      | 15 ++++++-------
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptExpression.java b/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptExpression.java
index 4a9b8469b8a..4c0850c2e84 100644
--- a/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptExpression.java
+++ b/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptExpression.java
@@ -42,20 +42,21 @@ public class JavaScriptExpression extends ExpressionSupport {
 
     @Override
     public <T> T evaluate(Exchange exchange, Class<T> type) {
-        Context cx = JavaScriptHelper.newContext();
-        Value b = cx.getBindings("js");
+        try (Context cx = JavaScriptHelper.newContext()) {
+            Value b = cx.getBindings("js");
 
-        b.putMember("exchange", exchange);
-        b.putMember("context", exchange.getContext());
-        b.putMember("exchangeId", exchange.getExchangeId());
-        b.putMember("message", exchange.getMessage());
-        b.putMember("headers", exchange.getMessage().getHeaders());
-        b.putMember("properties", exchange.getAllProperties());
-        b.putMember("body", exchange.getMessage().getBody());
+            b.putMember("exchange", exchange);
+            b.putMember("context", exchange.getContext());
+            b.putMember("exchangeId", exchange.getExchangeId());
+            b.putMember("message", exchange.getMessage());
+            b.putMember("headers", exchange.getMessage().getHeaders());
+            b.putMember("properties", exchange.getAllProperties());
+            b.putMember("body", exchange.getMessage().getBody());
 
-        Value o = cx.eval("js", expressionString);
-        Object answer = o != null ? o.as(type) : null;
-        return type.cast(answer);
+            Value o = cx.eval("js", expressionString);
+            Object answer = o != null ? o.as(type) : null;
+            return type.cast(answer);
+        }
     }
 
     public Class<?> getType() {
diff --git a/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptLanguage.java b/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptLanguage.java
index 8c6d799b194..0a125359144 100644
--- a/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptLanguage.java
+++ b/components/camel-javascript/src/main/java/org/apache/camel/language/js/JavaScriptLanguage.java
@@ -44,13 +44,12 @@ public class JavaScriptLanguage extends LanguageSupport implements ScriptingLang
     @Override
     public <T> T evaluate(String script, Map<String, Object> bindings, Class<T> resultType) {
         script = loadResource(script);
-
-        Context cx = JavaScriptHelper.newContext();
-        Value b = cx.getBindings("js");
-
-        bindings.forEach(b::putMember);
-        Value o = cx.eval("js", script);
-        Object answer = o != null ? o.as(resultType) : null;
-        return resultType.cast(answer);
+        try (Context cx = JavaScriptHelper.newContext()) {
+            Value b = cx.getBindings("js");
+            bindings.forEach(b::putMember);
+            Value o = cx.eval("js", script);
+            Object answer = o != null ? o.as(resultType) : null;
+            return resultType.cast(answer);
+        }
     }
 }