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 2024/02/02 11:33:39 UTC
(camel) 07/13: CAMEL-20378: Languages should be thread-safe and be configured only via properties array, all in the same way.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch lang2
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 341fb2f6a6c7653da72c61660284429a64f1fe0d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 2 11:08:35 2024 +0100
CAMEL-20378: Languages should be thread-safe and be configured only via properties array, all in the same way.
---
.../apache/camel/language/wasm/WasmExpression.java | 4 +++
.../apache/camel/language/wasm/WasmLanguage.java | 37 ++++++++--------------
2 files changed, 17 insertions(+), 24 deletions(-)
diff --git a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java
index d415df9cb7b..17095d01a52 100644
--- a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java
+++ b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmExpression.java
@@ -55,6 +55,10 @@ public class WasmExpression extends ExpressionAdapter implements ExpressionResul
public void init(CamelContext camelContext) {
super.init(camelContext);
+ if (module == null) {
+ throw new IllegalArgumentException("Module must be configured");
+ }
+
this.typeConverter = camelContext.getTypeConverter();
if (resultTypeName != null && (resultType == null || resultType == Object.class)) {
diff --git a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java
index aae821bb3d3..62632ea79ae 100644
--- a/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java
+++ b/components/camel-wasm/src/main/java/org/apache/camel/language/wasm/WasmLanguage.java
@@ -19,7 +19,6 @@ package org.apache.camel.language.wasm;
import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
-import org.apache.camel.StaticService;
import org.apache.camel.spi.PropertyConfigurer;
import org.apache.camel.spi.annotations.Language;
import org.apache.camel.support.ExpressionToPredicateAdapter;
@@ -28,11 +27,11 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
import org.apache.camel.wasm.Wasm;
@Language(Wasm.SCHEME)
-public class WasmLanguage extends TypedLanguageSupport implements PropertyConfigurer, StaticService {
+public class WasmLanguage extends TypedLanguageSupport implements PropertyConfigurer {
+
private String module;
public WasmLanguage() {
-
}
public String getModule() {
@@ -50,6 +49,10 @@ public class WasmLanguage extends TypedLanguageSupport implements PropertyConfig
}
switch (ignoreCase ? name.toLowerCase() : name) {
+ case "resulttype":
+ case "resultType":
+ setResultType(PropertyConfigurerSupport.property(camelContext, Class.class, value));
+ return true;
case "module":
setModule(PropertyConfigurerSupport.property(camelContext, String.class, value));
return true;
@@ -58,34 +61,19 @@ public class WasmLanguage extends TypedLanguageSupport implements PropertyConfig
}
}
- @Override
- public void start() {
- // noop
- }
-
- @Override
- public void stop() {
- // noop
- }
-
@Override
public Predicate createPredicate(String expression) {
return ExpressionToPredicateAdapter.toPredicate(createExpression(expression));
}
@Override
- public Predicate createPredicate(String expression, Object[] properties) {
- return ExpressionToPredicateAdapter.toPredicate(createExpression(expression, properties));
+ public Expression createExpression(String expression) {
+ return createExpression(expression, null);
}
@Override
- public Expression createExpression(String expression) {
- WasmExpression answer = new WasmExpression(expression);
- answer.setResultType(getResultType());
- answer.setModule(getModule());
- answer.init(getCamelContext());
-
- return answer;
+ public Predicate createPredicate(String expression, Object[] properties) {
+ return ExpressionToPredicateAdapter.toPredicate(createExpression(expression, properties));
}
@Override
@@ -93,8 +81,9 @@ public class WasmLanguage extends TypedLanguageSupport implements PropertyConfig
WasmExpression answer = new WasmExpression(expression);
answer.setResultType(property(Class.class, properties, 0, getResultType()));
answer.setModule(property(String.class, properties, 1, getModule()));
- answer.init(getCamelContext());
-
+ if (getCamelContext() != null) {
+ answer.init(getCamelContext());
+ }
return answer;
}
}