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());

Reply via email to