You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/06/24 17:18:47 UTC
[camel-karavan] 01/02: Fix #787
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit 7f24e49f578c7f892609856a83b3a343054463fe
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Sat Jun 24 13:17:00 2023 -0400
Fix #787
---
karavan-core/src/core/api/CamelDefinitionYaml.ts | 34 ++++++++++++----------
.../src/core/api/CamelDefinitionYamlStep.ts | 10 +++----
.../CamelDefinitionYamlStepGenerator.java | 8 +++--
3 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/karavan-core/src/core/api/CamelDefinitionYaml.ts b/karavan-core/src/core/api/CamelDefinitionYaml.ts
index 5c63b108..1343c8eb 100644
--- a/karavan-core/src/core/api/CamelDefinitionYaml.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYaml.ts
@@ -112,20 +112,19 @@ export class CamelDefinitionYaml {
let newValue: any = JSON.parse(JSON.stringify(value));
delete newValue.dslName;
delete newValue[stepNameField];
- // if ((value.inArray && !value.inSteps
- // && ["intercept",
- // "interceptFrom",
- // "interceptSendToEndpoint",
- // "onCompletion",
- // "onException"]
- // .includes(stepName))) {
- // delete newValue.inArray;
- // delete newValue.inSteps;
- // const xValue: any = {};
- // xValue[stepName] = newValue;
- // return xValue;
- // } else
- if ((value.inArray && !value.inSteps)
+ if ((value.inArray && !value.inSteps
+ && ["intercept",
+ "interceptFrom",
+ "interceptSendToEndpoint",
+ "onCompletion",
+ "onException"]
+ .includes(stepName))) {
+ delete newValue.inArray;
+ delete newValue.inSteps;
+ const xValue: any = {};
+ xValue[stepName] = newValue;
+ return xValue;
+ } else if ((value.inArray && !value.inSteps)
|| dslName === 'ExpressionSubElementDefinition'
|| dslName === 'ExpressionDefinition'
|| dslName?.endsWith('Expression')
@@ -134,7 +133,6 @@ export class CamelDefinitionYaml {
|| stepName === 'resilience4jConfiguration'
|| stepName === 'faultToleranceConfiguration'
|| stepName === 'errorHandler'
- || stepName === 'onException'
|| stepName === 'deadLetterChannel'
|| stepName === 'defaultErrorHandler'
|| stepName === 'jtaTransactionErrorHandler'
@@ -207,6 +205,12 @@ export class CamelDefinitionYaml {
.forEach((f: any) => result.push(CamelDefinitionYamlStep.readRouteConfigurationDefinition(new RouteConfigurationDefinition({onException: f.onException}))));
flows.filter((e: any) => e.hasOwnProperty('intercept'))
.forEach((f: any) => result.push(CamelDefinitionYamlStep.readRouteConfigurationDefinition(new RouteConfigurationDefinition({intercept: f.intercept}))));
+ flows.filter((e: any) => e.hasOwnProperty('interceptFrom'))
+ .forEach((f: any) => result.push(CamelDefinitionYamlStep.readRouteConfigurationDefinition(new RouteConfigurationDefinition({interceptFrom: f.interceptFrom}))));
+ flows.filter((e: any) => e.hasOwnProperty('interceptSendToEndpoint'))
+ .forEach((f: any) => result.push(CamelDefinitionYamlStep.readRouteConfigurationDefinition(new RouteConfigurationDefinition({interceptSendToEndpoint: f.interceptSendToEndpoint}))));
+ flows.filter((e: any) => e.hasOwnProperty('onCompletion'))
+ .forEach((f: any) => result.push(CamelDefinitionYamlStep.readRouteConfigurationDefinition(new RouteConfigurationDefinition({onCompletion: f.onCompletion}))));
return result;
}
diff --git a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
index 0f96dc0d..c31272f9 100644
--- a/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
+++ b/karavan-core/src/core/api/CamelDefinitionYamlStep.ts
@@ -2008,9 +2008,9 @@ export class CamelDefinitionYamlStep {
static readRouteConfigurationDefinition = (element: any): RouteConfigurationDefinition => {
let def = element ? new RouteConfigurationDefinition({...element}) : new RouteConfigurationDefinition();
- def.onCompletion = element && element?.onCompletion ? element?.onCompletion.map((x:any) => CamelDefinitionYamlStep.readOnCompletionDefinition(x)) :[];
- def.interceptSendToEndpoint = element && element?.interceptSendToEndpoint ? element?.interceptSendToEndpoint.map((x:any) => CamelDefinitionYamlStep.readInterceptSendToEndpointDefinition(x)) :[];
- def.intercept = element && element?.intercept ? element?.intercept.map((x:any) => CamelDefinitionYamlStep.readInterceptDefinition(x)) :[];
+ def.onCompletion = element && element?.onCompletion ? element?.onCompletion.map((x:any) => CamelDefinitionYamlStep.readOnCompletionDefinition(x.onCompletion)) :[];
+ def.interceptSendToEndpoint = element && element?.interceptSendToEndpoint ? element?.interceptSendToEndpoint.map((x:any) => CamelDefinitionYamlStep.readInterceptSendToEndpointDefinition(x.interceptSendToEndpoint)) :[];
+ def.intercept = element && element?.intercept ? element?.intercept.map((x:any) => CamelDefinitionYamlStep.readInterceptDefinition(x.intercept)) :[];
if (element?.errorHandler !== undefined) {
if (Array.isArray(element.errorHandler)) {
def.errorHandler = CamelDefinitionYamlStep.readErrorHandlerDefinition(element.errorHandler[0]);
@@ -2018,8 +2018,8 @@ export class CamelDefinitionYamlStep {
def.errorHandler = CamelDefinitionYamlStep.readErrorHandlerDefinition(element.errorHandler);
}
}
- def.onException = element && element?.onException ? element?.onException.map((x:any) => CamelDefinitionYamlStep.readOnExceptionDefinition(x)) :[];
- def.interceptFrom = element && element?.interceptFrom ? element?.interceptFrom.map((x:any) => CamelDefinitionYamlStep.readInterceptFromDefinition(x)) :[];
+ def.onException = element && element?.onException ? element?.onException.map((x:any) => CamelDefinitionYamlStep.readOnExceptionDefinition(x.onException)) :[];
+ def.interceptFrom = element && element?.interceptFrom ? element?.interceptFrom.map((x:any) => CamelDefinitionYamlStep.readInterceptFromDefinition(x.interceptFrom)) :[];
return def;
}
diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionYamlStepGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionYamlStepGenerator.java
index fdb82864..f1c87d18 100644
--- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionYamlStepGenerator.java
+++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelDefinitionYamlStepGenerator.java
@@ -111,9 +111,11 @@ public final class CamelDefinitionYamlStepGenerator extends AbstractGenerator {
if (isAttributeRefArray(aValue) && aName.equals("steps") && ! className.equals("ChoiceDefinition") && ! className.equals("SwitchDefinition") && ! className.equals("KameletDefinition")) {
attrs.put(aName, " def.steps = CamelDefinitionYamlStep.readSteps(element?.steps);\n");
} else if (isAttributeRefArray(aValue) && !aName.equals("steps")) {
- String code = String.format(
- " def.%1$s = element && element?.%1$s ? element?.%1$s.map((x:any) => CamelDefinitionYamlStep.read%2$s(x)) :[]; \n"
- , aName, getAttributeArrayClass(aValue));
+ String format = Arrays.asList("intercept", "interceptFrom", "interceptSendToEndpoint", "onCompletion", "onException").contains(aName)
+ ? " def.%1$s = element && element?.%1$s ? element?.%1$s.map((x:any) => CamelDefinitionYamlStep.read%2$s(x.%1$s)) :[]; \n"
+ : " def.%1$s = element && element?.%1$s ? element?.%1$s.map((x:any) => CamelDefinitionYamlStep.read%2$s(x)) :[]; \n";
+
+ String code = String.format(format, aName, getAttributeArrayClass(aValue));
attrs.put(aName, code);
} else if (isAttributeRef(aValue) && getAttributeClass(aValue).equals("ExpressionDefinition")) { // Expressions implicits
String code = String.format(