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 b12c53483df882bfd070fa79ec21cd222538692f
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Thu Apr 11 10:30:57 2024 -0400

    model exchangeProperties
---
 .../karavan/generator/CamelMetadataGenerator.java   | 11 +++++++++++
 .../src/main/resources/CamelMetadata.header.ts      | 21 +++++++++++++++++++--
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git 
a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
 
b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
index 85895461..c687e675 100644
--- 
a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
+++ 
b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/CamelMetadataGenerator.java
@@ -221,6 +221,17 @@ public final class CamelMetadataGenerator extends 
AbstractGenerator {
                         }
                     }
                 });
+                code.append("    ], [\n");
+//                exchangeProperties
+                JsonObject exchangeProperties = new 
JsonObject(json).getJsonObject("exchangeProperties");
+                if (exchangeProperties != null) {
+                    exchangeProperties.getMap().forEach((ep, eps) -> {
+                        Map<String, String> vals = (HashMap<String, String>) 
eps;
+                        code.append(String.format("        new 
ExchangePropertyMeta('%s', '%s', '%s', '%s', '%s'),\n",
+                                ep, vals.get("displayName"), 
vals.get("label"), vals.get("javaType"), vals.get("description")));
+                    });
+                }
+
                 code.append("    ]),\n");
             } else {
 //                System.out.println("Empty JSON for class: " + name + " as a 
stepName " + stepName);
diff --git a/karavan-generator/src/main/resources/CamelMetadata.header.ts 
b/karavan-generator/src/main/resources/CamelMetadata.header.ts
index 5fe047fc..89e7eaa2 100644
--- a/karavan-generator/src/main/resources/CamelMetadata.header.ts
+++ b/karavan-generator/src/main/resources/CamelMetadata.header.ts
@@ -25,15 +25,16 @@ export class ElementMeta {
     description: string = ''
     labels: string = ''
     properties: PropertyMeta[] = []
+    exchangeProperties: ExchangePropertyMeta[] = []
 
-
-    constructor(name: string, className:string, title: string, description: 
string, labels: string, properties: PropertyMeta[]) {
+    constructor(name: string, className: string, title: string, description: 
string, labels: string, properties: PropertyMeta[], exchangeProperties: 
ExchangePropertyMeta[]) {
         this.name = name;
         this.className = className;
         this.title = title;
         this.description = description;
         this.labels = labels;
         this.properties = properties;
+        this.exchangeProperties = exchangeProperties;
     }
 }
 
@@ -69,6 +70,22 @@ export class PropertyMeta {
     }
 }
 
+export class ExchangePropertyMeta {
+    name: string = ''
+    displayName: string = ''
+    label: string = ''
+    javaType: string = ''
+    description: string = ''
+
+    constructor(name: string, displayName: string, label: string, javaType: 
string, description: string) {
+        this.name = name;
+        this.displayName = displayName;
+        this.label = label;
+        this.javaType = javaType;
+        this.description = description;
+    }
+}
+
 export class CamelMetadataApi {
 
     static getCamelModelMetadataByName = (name: string): ElementMeta | 
undefined => {

Reply via email to