This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git
The following commit(s) were added to refs/heads/main by this push: new e175a9b Add group label methods to Kamelets Catalog e175a9b is described below commit e175a9b9493b689dec07b2ff771d993fb53b525d Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Fri May 7 18:43:58 2021 +0200 Add group label methods to Kamelets Catalog --- .../camel/kamelets/catalog/KameletsCatalog.java | 11 ++++++++++- ...LabelNames.java => KameletAnnotationsNames.java} | 9 ++++----- .../kamelets/catalog/model/KameletLabelNames.java | 2 -- .../camel/kamelets/catalog/KameletsCatalogTest.java | 21 +++++++++++++++++++++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java index 99416ab..e71020c 100644 --- a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java +++ b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/KameletsCatalog.java @@ -24,6 +24,7 @@ import io.fabric8.camelk.v1alpha1.Kamelet; import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps; import io.github.classgraph.ClassGraph; import io.github.classgraph.ScanResult; +import org.apache.camel.kamelets.catalog.model.KameletAnnotationsNames; import org.apache.camel.kamelets.catalog.model.KameletLabelNames; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -101,6 +102,14 @@ public class KameletsCatalog { return collect; } + public List<Kamelet> getKameletsByGroups(String group) { + List<Kamelet> collect = kameletModels.entrySet().stream() + .filter(x -> x.getValue().getMetadata().getAnnotations().get(KameletAnnotationsNames.KAMELET_ANNOTATION_GROUP).contains(group)) + .map(Map.Entry::getValue) + .collect(Collectors.toList()); + return collect; + } + public JSONSchemaProps getKameletDefinition(String name) { Kamelet kamelet = kameletModels.get(name); if (kamelet != null) { @@ -112,7 +121,7 @@ public class KameletsCatalog { public List<Kamelet> getKameletByProvider(String provider) { List<Kamelet> collect = kameletModels.entrySet().stream() - .filter(x -> x.getValue().getMetadata().getAnnotations().get(KameletLabelNames.KAMELET_LABEL_PROVIDER).equalsIgnoreCase(provider)) + .filter(x -> x.getValue().getMetadata().getAnnotations().get(KameletAnnotationsNames.KAMELET_ANNOTATION_PROVIDER).equalsIgnoreCase(provider)) .map(Map.Entry::getValue) .collect(Collectors.toList()); if (!collect.isEmpty()) { diff --git a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletAnnotationsNames.java similarity index 77% copy from library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java copy to library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletAnnotationsNames.java index 4fc811b..8ace82d 100644 --- a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java +++ b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletAnnotationsNames.java @@ -16,10 +16,9 @@ */ package org.apache.camel.kamelets.catalog.model; -public interface KameletLabelNames { - - String KAMELET_LABEL_TYPE = "camel.apache.org/kamelet.type"; - String KAMELET_LABEL_PROVIDER = "camel.apache.org/provider"; - String KAMELET_LABEL_ICON = "camel.apache.org/kamelet.icon"; +public interface KameletAnnotationsNames { + String KAMELET_ANNOTATION_ICON = "camel.apache.org/kamelet.icon"; + String KAMELET_ANNOTATION_PROVIDER = "camel.apache.org/provider"; + String KAMELET_ANNOTATION_GROUP = "camel.apache.org/kamelet.group"; } diff --git a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java index 4fc811b..1f2be26 100644 --- a/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java +++ b/library/camel-kamelets-catalog/src/main/java/org/apache/camel/kamelets/catalog/model/KameletLabelNames.java @@ -19,7 +19,5 @@ package org.apache.camel.kamelets.catalog.model; public interface KameletLabelNames { String KAMELET_LABEL_TYPE = "camel.apache.org/kamelet.type"; - String KAMELET_LABEL_PROVIDER = "camel.apache.org/provider"; - String KAMELET_LABEL_ICON = "camel.apache.org/kamelet.icon"; } diff --git a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java index 6dfafbb..b56bbc9 100644 --- a/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java +++ b/library/camel-kamelets-catalog/src/test/java/org/apache/camel/kamelets/catalog/KameletsCatalogTest.java @@ -21,6 +21,7 @@ import io.fabric8.camelk.v1alpha1.Kamelet; import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps; import io.github.classgraph.ClassGraph; +import org.apache.camel.kamelets.catalog.model.KameletTypeEnum; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -81,6 +82,26 @@ public class KameletsCatalogTest { } @Test + void testGetKameletsByType() throws Exception { + List<Kamelet> c = catalog.getKameletsByType(KameletTypeEnum.SOURCE.type()); + assertTrue(!c.isEmpty()); + c = catalog.getKameletsByType(KameletTypeEnum.SINK.type()); + assertTrue(!c.isEmpty()); + c = catalog.getKameletsByType(KameletTypeEnum.ACTION.type()); + assertTrue(!c.isEmpty()); + } + + @Test + void testGetKameletsByGroup() throws Exception { + List<Kamelet> c = catalog.getKameletsByGroups("AWS S3"); + assertTrue(!c.isEmpty()); + c = catalog.getKameletsByGroups("AWS SQS"); + assertTrue(!c.isEmpty()); + c = catalog.getKameletsByGroups("Not-existing-group"); + assertTrue(c.isEmpty()); + } + + @Test void testGetKameletsDependencies() throws Exception { List<String> deps = catalog.getKameletDependencies("aws-sqs-source"); assertEquals(2, deps.size());