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