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


The following commit(s) were added to refs/heads/main by this push:
     new 0d8852de Expression as non string value in YAML
0d8852de is described below

commit 0d8852deedd7dd6f9c989954bbf068312755241c
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Fri Dec 6 11:28:26 2024 -0500

    Expression as non string value in YAML
---
 .../src/main/webui/src/designer/utils/CamelUi.tsx  |  2 +-
 karavan-core/src/core/api/CamelUtil.ts             |  8 +--
 karavan-designer/public/example/demo.camel.yaml    | 57 +++++++++-------------
 karavan-designer/src/designer/utils/CamelUi.tsx    |  2 +-
 karavan-space/src/designer/utils/CamelUi.tsx       |  2 +-
 5 files changed, 29 insertions(+), 42 deletions(-)

diff --git a/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx 
b/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
index a12e19d6..523e03db 100644
--- a/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
+++ b/karavan-app/src/main/webui/src/designer/utils/CamelUi.tsx
@@ -403,7 +403,7 @@ export class CamelUi {
     static isShowExpressionTooltip = (element: CamelElement): boolean => {
         if (element.hasOwnProperty("expression")) {
             const exp = CamelDefinitionApiExt.getExpressionValue((element as 
any).expression);
-            return (exp !== undefined && (exp as 
any)?.expression?.trim().length > 0);
+            return (exp !== undefined && (exp as 
any)?.expression?.toString().trim().length > 0);
         }
         return false;
     }
diff --git a/karavan-core/src/core/api/CamelUtil.ts 
b/karavan-core/src/core/api/CamelUtil.ts
index f9def80c..ff148a5b 100644
--- a/karavan-core/src/core/api/CamelUtil.ts
+++ b/karavan-core/src/core/api/CamelUtil.ts
@@ -216,7 +216,7 @@ export class CamelUtil {
         if (elementMeta) {
             for (const property of elementMeta.properties.filter(p => 
p.required)) {
                 const value = (element as any)[property.name];
-                if (property.type === 'string' && !property.isArray && (value 
=== undefined || !value.trim())) {
+                if (property.type === 'string' && !property.isArray && (value 
=== undefined || !value.toString().trim())) {
                     result[0] = false;
                     result[1].push(`${property.displayName} is required`);
                 } else if (['ExpressionSubElementDefinition', 
'ExpressionDefinition'].includes(property.type)) {
@@ -242,7 +242,7 @@ export class CamelUtil {
                 const requiredProperties = 
CamelUtil.getComponentProperties(element).filter(p => p.required);
                 for (const property of requiredProperties) {
                     const value = 
CamelDefinitionApiExt.getParametersValue(element, property.name, property.kind 
=== 'path');
-                    if (value === undefined || (property.type === 'string' && 
value.trim().length === 0)) {
+                    if (value === undefined || (property.type === 'string' && 
value.toString().trim().length === 0)) {
                         result[0] = false;
                         result[1].push(`${property.displayName} is required`);
                     }
@@ -251,7 +251,7 @@ export class CamelUtil {
                 for (const property of secretProperties) {
                     const value = 
CamelDefinitionApiExt.getParametersValue(element, property.name, property.kind 
=== 'path');
                     if (value !== undefined && property.type === 'string'
-                        && (!value?.trim()?.startsWith("{{") || 
!value?.trim()?.endsWith('}}'))) {
+                        && (!value?.toString().trim()?.startsWith("{{") || 
!value?.toString().trim()?.endsWith('}}'))) {
                         result[0] = false;
                         result[1].push(`${property.displayName} is set in 
plain text`);
                     }
@@ -270,7 +270,7 @@ export class CamelUtil {
                 const sensitiveParameters = filledParameters.filter(p => 
CamelUtil.checkIfKameletParameterSensitive(p, kamelet));
                 sensitiveParameters.forEach(p => {
                     const value = elementAsAny?.parameters[p];
-                    if (value !== undefined && 
(!value?.trim()?.startsWith("{{") || !value?.trim()?.endsWith('}}'))) {
+                    if (value !== undefined && 
(!value?.toString()?.trim()?.startsWith("{{") || 
!value?.toString()?.trim()?.endsWith('}}'))) {
                         result[0] = false;
                         result[1].push(`${p} is set in plain text`);
                     }
diff --git a/karavan-designer/public/example/demo.camel.yaml 
b/karavan-designer/public/example/demo.camel.yaml
index 6c655d36..f8e0248f 100644
--- a/karavan-designer/public/example/demo.camel.yaml
+++ b/karavan-designer/public/example/demo.camel.yaml
@@ -1,35 +1,22 @@
-- routeTemplate:
-    id: routeFileReaderTemplate2
-    description: File reader template
-    route:
-      id: routeFileReader 2
-      description: File reader route
-      from:
-        id: from-4101
-        uri: sftp
-        steps:
-          - to:
-              id: to-1234
-              uri: sql
-              parameters:
-                query: "{{folderName}}"
-          - loadBalance:
-              id: loadBalance-8172
-          - log:
-              id: log-7fa8
-              message: ${body}
-          - loop:
-              id: loop-6068
-              expression:
-                groovy:
-                  id: groovy-4e44
-              steps:
-                - marshal:
-                    id: marshal-930d
-                    json:
-                      id: json-135e
-    parameters:
-      - description: Folder with files
-        name: folderName
-      - description: Server Hostname
-        name: serverName
+- beans:
+    - name: userService
+      type: "org.apache.camel.example.rest.UserService"
+- route:
+    from:
+      uri: direct
+      parameters:
+        name: getUser
+      steps:
+        - to:
+            uri: bean
+            parameters:
+              beanName: userService
+              method: "getUser(${header.id})"
+        - filter:
+            simple:
+              expression: "${body} == null"
+            steps:
+              - setHeader:
+                  name: Exchange.HTTP_RESPONSE_CODE
+                  constant:
+                    expression: 404
\ No newline at end of file
diff --git a/karavan-designer/src/designer/utils/CamelUi.tsx 
b/karavan-designer/src/designer/utils/CamelUi.tsx
index a12e19d6..523e03db 100644
--- a/karavan-designer/src/designer/utils/CamelUi.tsx
+++ b/karavan-designer/src/designer/utils/CamelUi.tsx
@@ -403,7 +403,7 @@ export class CamelUi {
     static isShowExpressionTooltip = (element: CamelElement): boolean => {
         if (element.hasOwnProperty("expression")) {
             const exp = CamelDefinitionApiExt.getExpressionValue((element as 
any).expression);
-            return (exp !== undefined && (exp as 
any)?.expression?.trim().length > 0);
+            return (exp !== undefined && (exp as 
any)?.expression?.toString().trim().length > 0);
         }
         return false;
     }
diff --git a/karavan-space/src/designer/utils/CamelUi.tsx 
b/karavan-space/src/designer/utils/CamelUi.tsx
index a12e19d6..523e03db 100644
--- a/karavan-space/src/designer/utils/CamelUi.tsx
+++ b/karavan-space/src/designer/utils/CamelUi.tsx
@@ -403,7 +403,7 @@ export class CamelUi {
     static isShowExpressionTooltip = (element: CamelElement): boolean => {
         if (element.hasOwnProperty("expression")) {
             const exp = CamelDefinitionApiExt.getExpressionValue((element as 
any).expression);
-            return (exp !== undefined && (exp as 
any)?.expression?.trim().length > 0);
+            return (exp !== undefined && (exp as 
any)?.expression?.toString().trim().length > 0);
         }
         return false;
     }

Reply via email to