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 2021/05/10 06:34:46 UTC
[camel] 05/06: CAMEL-16596: ScriptingLanguage SPI.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch CAMEL-16593
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 608bad0210a6cebe265d987c3a2ccda35ea9cccd
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon May 10 08:27:44 2021 +0200
CAMEL-16596: ScriptingLanguage SPI.
---
.../src/main/java/org/apache/camel/language/joor/JoorLanguage.java | 7 +------
.../java/org/apache/camel/language/joor/JoorScriptingCompiler.java | 5 ++---
.../java/org/apache/camel/language/joor/JoorScriptingMethod.java | 4 +++-
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorLanguage.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorLanguage.java
index b3788d6..040b1f6 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorLanguage.java
+++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorLanguage.java
@@ -90,12 +90,7 @@ public class JoorLanguage extends LanguageSupport implements ScriptingLanguage,
Object out;
JoorScriptingMethod target = scriptingCompiler.compile(getCamelContext(), script, bindings, resultType, singleQuotes);
try {
- if (bindings != null && !bindings.isEmpty()) {
- Object[] args = bindings.values().toArray(new Object[0]);
- out = target.evaluate(args);
- } else {
- out = target.evaluate();
- }
+ out = target.evaluate(bindings);
} catch (Exception e) {
throw RuntimeCamelException.wrapRuntimeException(e);
}
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
index 6527dd7..e5c3106 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
+++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingCompiler.java
@@ -156,16 +156,15 @@ public class JoorScriptingCompiler extends ServiceSupport implements StaticServi
sb.append(" @Override\n");
sb.append(
- " public Object evaluate(Object... args) throws Exception {\n");
+ " public Object evaluate(Map<String, Object> args) throws Exception {\n");
sb.append(" ");
// bindings as local variables
if (bindings != null) {
- int i = 0;
for (Map.Entry<String, Object> bind : bindings.entrySet()) {
String vn = bind.getKey();
String cn = ObjectHelper.className(bind.getValue());
- String b = String.format(" var %s = (%s) args[%s];\n", vn, cn, i++);
+ String b = String.format(" var %s = (%s) args.get(\"%s\");\n", vn, cn, vn);
sb.append(b);
}
sb.append("\n");
diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingMethod.java b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingMethod.java
index 2d2eec6..1132634 100644
--- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingMethod.java
+++ b/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorScriptingMethod.java
@@ -16,11 +16,13 @@
*/
package org.apache.camel.language.joor;
+import java.util.Map;
+
/**
* Interface for the compiled joor scripting method when evaluating as scripting language.
*/
public interface JoorScriptingMethod {
- Object evaluate(Object... args) throws Exception;
+ Object evaluate(Map<String, Object> args) throws Exception;
}