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 8658e0532813920cb86912b37620e1b8fc85f6a6 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Mon Sep 26 14:10:32 2022 -0400 Unique EIP, Kamelets and COmponent --- karavan-core/src/core/api/ComponentApi.ts | 4 +++- karavan-core/src/core/api/KameletApi.ts | 6 +++++- karavan-core/src/core/model/CamelMetadata.ts | 6 ------ karavan-core/test/addStep.spec.ts | 1 + .../java/org/apache/camel/karavan/generator/AbstractGenerator.java | 3 +++ .../org/apache/camel/karavan/generator/CamelMetadataGenerator.java | 2 ++ .../java/org/apache/camel/karavan/generator/KameletGenerator.java | 2 -- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/karavan-core/src/core/api/ComponentApi.ts b/karavan-core/src/core/api/ComponentApi.ts index da15fb7..ccffd67 100644 --- a/karavan-core/src/core/api/ComponentApi.ts +++ b/karavan-core/src/core/api/ComponentApi.ts @@ -34,7 +34,9 @@ export const ComponentApi = { saveComponent: (json: string) => { const component: Component = ComponentApi.jsonToComponent(json); - Components.push(component); + if (Components.findIndex((c:Component) => c.component.name === component.component.name) === -1) { + Components.push(component); + } }, getComponents: (): Component[] => { diff --git a/karavan-core/src/core/api/KameletApi.ts b/karavan-core/src/core/api/KameletApi.ts index b60abe9..d29bf32 100644 --- a/karavan-core/src/core/api/KameletApi.ts +++ b/karavan-core/src/core/api/KameletApi.ts @@ -16,6 +16,8 @@ */ import {KameletModel, Property} from "../model/KameletModels"; import * as yaml from 'js-yaml'; +import {Component} from "../model/ComponentModels"; +import {Components} from "./ComponentApi"; export const Kamelets: KameletModel[] = []; @@ -89,6 +91,8 @@ export const KameletApi = { saveKamelet: (yaml: string) => { const kamelet:KameletModel = KameletApi.yamlToKamelet(yaml); - Kamelets.push(kamelet); + if (Kamelets.findIndex((k:KameletModel) => k.metadata.name === kamelet.metadata.name) === -1) { + Kamelets.push(kamelet); + } } } \ No newline at end of file diff --git a/karavan-core/src/core/model/CamelMetadata.ts b/karavan-core/src/core/model/CamelMetadata.ts index 4725b96..7802d9a 100644 --- a/karavan-core/src/core/model/CamelMetadata.ts +++ b/karavan-core/src/core/model/CamelMetadata.ts @@ -783,12 +783,6 @@ export const CamelModelMetadata: ElementMeta[] = [ new PropertyMeta('header', 'Header', "Adds a response header", 'ResponseHeaderDefinition', '', '', false, false, true, true, ''), new PropertyMeta('examples', 'Examples', "Examples of response messages", 'RestPropertyDefinition', '', '', false, false, true, true, ''), ]), - new ElementMeta('errorHandler', 'ErrorHandlerBuilderDeserializer', 'Error Handler', "Camel error handling.", 'configuration,error', [ - new PropertyMeta('deadLetterChannel', 'deadLetterChannel', "deadLetterChannel", 'DeadLetterChannelDefinition', '', '', false, false, false, true, ''), - new PropertyMeta('log', 'log', "log", 'DefaultErrorHandlerDefinition', '', '', false, false, false, true, ''), - new PropertyMeta('none', 'none', "none", 'NoErrorHandlerDefinition', '', '', false, false, false, true, ''), - new PropertyMeta('ref', 'ref', "ref", 'string', '', '', false, false, false, false, ''), - ]), new ElementMeta('filter', 'FilterDefinition', 'Filter', "Filter out messages based using a predicate", 'eip,routing', [ new PropertyMeta('expression', 'Expression', "Expression to determine if the message should be filtered or not. If the expression returns an empty value or false then the message is filtered (dropped), otherwise the message is continued being routed.", 'ExpressionDefinition', '', '', true, false, false, true, ''), new PropertyMeta('statusPropertyName', 'Status Property Name', "Name of exchange property to use for storing the status of the filtering. Setting this allows to know if the filter predicate evaluated as true or false.", 'string', '', '', false, false, false, false, 'advanced'), diff --git a/karavan-core/test/addStep.spec.ts b/karavan-core/test/addStep.spec.ts index 60b96a0..d90b8e5 100644 --- a/karavan-core/test/addStep.spec.ts +++ b/karavan-core/test/addStep.spec.ts @@ -30,6 +30,7 @@ import {CamelDefinitionYaml} from "../src/core/api/CamelDefinitionYaml"; import {SimpleExpression} from "../src/core/model/CamelDefinition"; import {Integration} from "../src/core/model/IntegrationDefinition"; import * as fs from 'fs'; +import {CamelModelMetadata, ElementMeta} from "../lib/model/CamelMetadata"; describe('Add Step', () => { diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java index 3340d3c..9995fac 100644 --- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java +++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/AbstractGenerator.java @@ -179,6 +179,9 @@ public class AbstractGenerator { ref = ref.equals("#/items/definitions/org.apache.camel.dsl.yaml.deserializers.RouteFromDefinitionDeserializer") ? "#/items/definitions/org.apache.camel.model.FromDefinition" : ref; + ref = ref.equals("#/items/definitions/org.apache.camel.dsl.yaml.deserializers.ErrorHandlerBuilderDeserializer") + ? "#/items/definitions/org.apache.camel.model.ErrorHandlerDefinition" + : ref; String className = classSimple(ref); result.put(className, className.equals("ToDynamicDefinition") ? "toD" : name); }); 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 a67b087..627b3b0 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 @@ -58,11 +58,13 @@ public final class CamelMetadataGenerator extends AbstractGenerator { // Prepare stepNames map Map<String, String> stepNames = getProcessorStepName(new JsonObject(camelYamlDSL).getJsonObject("items").getJsonObject("properties")); + stepNames.forEach((s, s2) -> System.out.println(s)); stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.ProcessorDefinition").getJsonObject("properties"))); stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties"))); stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.language.ExpressionDefinition").getJsonObject("properties"))); stepNames.putAll(getProcessorStepName(definitions.getJsonObject("org.apache.camel.model.dataformat.DataFormatsDefinition").getJsonObject("properties"))); + Map<String, JsonObject> classProps = new HashMap<>(); // Generate DataFormatMetadata definitions.getMap().forEach((s, o) -> { diff --git a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java index f5ef646..4cd05c4 100644 --- a/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java +++ b/karavan-generator/src/main/java/org/apache/camel/karavan/generator/KameletGenerator.java @@ -41,7 +41,6 @@ public class KameletGenerator extends AbstractGenerator { } public void createKamelets(String folder, boolean addList) { - System.out.println("Creating default Kamelets"); clearDirectory(Paths.get(folder).toFile()); KameletsCatalog catalog = new KameletsCatalog(); StringBuilder list = new StringBuilder(); @@ -52,7 +51,6 @@ public class KameletGenerator extends AbstractGenerator { list.append(name).append("\n"); }); saveFile(folder, "kamelets.properties", list.toString()); - System.out.println("Created default Kamelets"); } public void saveKamelet(String folder, String name) {