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

Reply via email to