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

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


The following commit(s) were added to refs/heads/main by this push:
     new a3670a3d2b0 java-js-dsl/javascript - Set mimeType and name
a3670a3d2b0 is described below

commit a3670a3d2b032b43007af9f2d94f9add8a142c86
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Nov 30 07:02:03 2022 +0100

    java-js-dsl/javascript - Set mimeType and name
---
 .../java/org/apache/camel/language/js/JavaScriptExpression.java    | 7 ++++++-
 .../main/java/org/apache/camel/language/js/JavaScriptLanguage.java | 7 ++++++-
 .../org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java     | 5 +++--
 3 files changed, 15 insertions(+), 4 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 8d6258c161a..b675f70fd83 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
@@ -19,8 +19,11 @@ package org.apache.camel.language.js;
 import org.apache.camel.Exchange;
 import org.apache.camel.support.ExpressionSupport;
 import org.graalvm.polyglot.Context;
+import org.graalvm.polyglot.Source;
 import org.graalvm.polyglot.Value;
 
+import static org.graalvm.polyglot.Source.newBuilder;
+
 public class JavaScriptExpression extends ExpressionSupport {
 
     private final String expressionString;
@@ -54,7 +57,9 @@ public class JavaScriptExpression extends ExpressionSupport {
             b.putMember("properties", exchange.getAllProperties());
             b.putMember("body", exchange.getMessage().getBody());
 
-            Value o = cx.eval("js", expressionString);
+            Source source = newBuilder("js", expressionString, "Unnamed")
+                    .mimeType("application/javascript+module").buildLiteral();
+            Value o = cx.eval(source);
             Object answer = o != null ? o.as(Object.class) : null;
             if (type == Object.class) {
                 return (T) answer;
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 430bd99b947..e0d9e41575c 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
@@ -24,8 +24,11 @@ import org.apache.camel.spi.ScriptingLanguage;
 import org.apache.camel.spi.annotations.Language;
 import org.apache.camel.support.TypedLanguageSupport;
 import org.graalvm.polyglot.Context;
+import org.graalvm.polyglot.Source;
 import org.graalvm.polyglot.Value;
 
+import static org.graalvm.polyglot.Source.newBuilder;
+
 @Language("js")
 public class JavaScriptLanguage extends TypedLanguageSupport implements 
ScriptingLanguage {
 
@@ -45,7 +48,9 @@ public class JavaScriptLanguage extends TypedLanguageSupport 
implements Scriptin
         try (Context cx = JavaScriptHelper.newContext()) {
             Value b = cx.getBindings("js");
             bindings.forEach(b::putMember);
-            Value o = cx.eval("js", script);
+            Source source = newBuilder("js", script, "Unnamed")
+                    .mimeType("application/javascript+module").buildLiteral();
+            Value o = cx.eval(source);
             Object answer = o != null ? o.as(resultType) : null;
             return resultType.cast(answer);
         }
diff --git 
a/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java
 
b/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java
index 93c74d40c63..d4cc4ff3c49 100644
--- 
a/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java
+++ 
b/dsl/camel-js-dsl/src/main/java/org/apache/camel/dsl/js/JavaScriptRoutesBuilderLoader.java
@@ -24,6 +24,7 @@ import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
 import org.apache.camel.endpointdsl.support.EndpointRouteBuilderLoaderSupport;
 import org.apache.camel.spi.annotations.RoutesLoader;
 import org.apache.camel.support.LifecycleStrategySupport;
+import org.apache.camel.util.FileUtil;
 import org.graalvm.polyglot.Context;
 import org.graalvm.polyglot.HostAccess;
 import org.graalvm.polyglot.PolyglotAccess;
@@ -53,6 +54,7 @@ public class JavaScriptRoutesBuilderLoader extends 
EndpointRouteBuilderLoaderSup
 
         final Context context = contextBuilder.build();
         final Value bindings = context.getBindings(LANGUAGE_ID);
+        final String name = 
FileUtil.onlyName(builder.getResource().getLocation(), true) + "." + EXTENSION;
 
         // configure bindings
         bindings.putMember("__dsl", new JavaScriptDSL(builder));
@@ -72,12 +74,11 @@ public class JavaScriptRoutesBuilderLoader extends 
EndpointRouteBuilderLoaderSup
                         "        return Reflect.get((key in __dsl) ? __dsl : 
target, key, receiver);",
                         "    }",
                         "}));"));
-
         //
         // Run the script.
         //
         context.eval(
-                newBuilder(LANGUAGE_ID, reader, 
"Unnamed").mimeType("application/javascript+module").buildLiteral());
+                newBuilder(LANGUAGE_ID, reader, 
name).mimeType("application/javascript+module").buildLiteral());
 
         //
         // Close the polyglot context when the camel context stops

Reply via email to