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 => {