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 <[email protected]>
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());