You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/07/13 09:17:46 UTC

[camel-kamelets] 01/01: Switch from Fabric8 Camel K Extension to Camel K CRDS

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch crds
in repository https://gitbox.apache.org/repos/asf/camel-kamelets.git

commit e38b0ea05b10cc30a5f3459c8c284860c0c097a4
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Jul 13 11:17:16 2023 +0200

    Switch from Fabric8 Camel K Extension to Camel K CRDS
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 library/camel-kamelets-catalog/pom.xml                      |  6 +++---
 .../org/apache/camel/kamelets/catalog/KameletsCatalog.java  |  9 +++++----
 .../apache/camel/kamelets/catalog/KameletsCatalogTest.java  | 13 +++++++------
 .../camel/kamelets/maven/plugin/ValidateKameletsMojo.java   | 12 ++++++++++--
 pom.xml                                                     |  2 +-
 5 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/library/camel-kamelets-catalog/pom.xml b/library/camel-kamelets-catalog/pom.xml
index ea227540..99d2c4d3 100644
--- a/library/camel-kamelets-catalog/pom.xml
+++ b/library/camel-kamelets-catalog/pom.xml
@@ -64,9 +64,9 @@
             <version>${jackson2-version}</version>
         </dependency>
         <dependency>
-            <groupId>io.fabric8</groupId>
-            <artifactId>camel-k-model-v1alpha1</artifactId>
-            <version>${camel.k.extension.version}</version>
+            <groupId>org.apache.camel.k</groupId>
+            <artifactId>camel-k-crds</artifactId>
+            <version>${camel.k.crds.version}</version>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
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 014c20a6..0824a5ff 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
@@ -30,8 +30,6 @@ import java.util.stream.Collectors;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
-import io.fabric8.camelk.v1alpha1.Kamelet;
-import io.fabric8.camelk.v1alpha1.JSONSchemaProps;
 import io.github.classgraph.ClassGraph;
 import io.github.classgraph.Resource;
 import io.github.classgraph.ScanResult;
@@ -42,6 +40,9 @@ import org.apache.camel.kamelets.catalog.model.KameletPrefixSchemeEnum;
 import org.apache.camel.kamelets.catalog.model.KameletTypeEnum;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.v1alpha1.Kamelet;
+import org.apache.camel.v1alpha1.kameletspec.Definition;
+import org.apache.camel.v1alpha1.kameletspec.Template;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -135,7 +136,7 @@ public class KameletsCatalog {
         return collect;
     }
 
-    public JSONSchemaProps getKameletDefinition(String name) {
+    public Definition getKameletDefinition(String name) {
         Kamelet kamelet = kameletModels.get(name);
         if (kamelet != null) {
             return kamelet.getSpec().getDefinition();
@@ -188,7 +189,7 @@ public class KameletsCatalog {
         }
     }
 
-    public Map<String, Object> getKameletTemplate(String name) {
+    public Template getKameletTemplate(String name) {
         Kamelet kamelet = kameletModels.get(name);
         if (kamelet != null) {
             return kamelet.getSpec().getTemplate();
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 404a9bfe..eb7e3402 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
@@ -19,12 +19,13 @@ package org.apache.camel.kamelets.catalog;
 import java.util.List;
 import java.util.Map;
 
-import io.fabric8.camelk.v1alpha1.JSONSchemaProps;
-import io.fabric8.camelk.v1alpha1.Kamelet;
+
 import io.github.classgraph.ClassGraph;
-import org.apache.camel.kamelets.catalog.model.KameletPrefixSchemeEnum;
 import org.apache.camel.kamelets.catalog.model.KameletTypeEnum;
 import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.v1alpha1.Kamelet;
+import org.apache.camel.v1alpha1.kameletspec.Definition;
+import org.apache.camel.v1alpha1.kameletspec.Template;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 
@@ -52,7 +53,7 @@ public class KameletsCatalogTest {
 
     @Test
     void testGetKameletsDefinition() throws Exception {
-        JSONSchemaProps props = catalog.getKameletDefinition("aws-sqs-source");
+        Definition props = catalog.getKameletDefinition("aws-sqs-source");
         assertEquals(14, props.getProperties().keySet().size());
         assertTrue(props.getProperties().containsKey("queueNameOrArn"));
     }
@@ -66,7 +67,7 @@ public class KameletsCatalogTest {
 
     @Test
     void testGetKameletsDefinitionNotExists() throws Exception {
-        JSONSchemaProps props = catalog.getKameletDefinition("word");
+        Definition props = catalog.getKameletDefinition("word");
         assertNull(props);
     }
 
@@ -118,7 +119,7 @@ public class KameletsCatalogTest {
 
     @Test
     void testGetKameletsTemplate() throws Exception {
-        Map<String, Object> template = catalog.getKameletTemplate("aws-sqs-source");
+        Template template = catalog.getKameletTemplate("aws-sqs-source");
         assertNotNull(template);
     }
 
diff --git a/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/ValidateKameletsMojo.java b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/ValidateKameletsMojo.java
index 370df12e..b8a59393 100644
--- a/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/ValidateKameletsMojo.java
+++ b/library/kamelets-maven-plugin/src/main/java/org/apache/camel/kamelets/maven/plugin/ValidateKameletsMojo.java
@@ -22,9 +22,14 @@ import java.util.List;
 import java.util.Map;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.kamelets.catalog.KameletsCatalog;
 import org.apache.camel.tooling.model.ComponentModel;
+import org.apache.camel.v1alpha1.kameletspec.Template;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -64,9 +69,12 @@ public class ValidateKameletsMojo extends AbstractMojo {
         KameletsCatalog catalog = new KameletsCatalog();
         DefaultCamelCatalog cc = new DefaultCamelCatalog();
         List<String> names = catalog.getKameletsName();
+        ObjectMapper om = new ObjectMapper();
         for (String name: names) {
-            Map<String, Object> kd = catalog.getKameletTemplate(name);
-            Map<String,Object> f = (Map) kd.get("from");
+            Map<Object, Object> templateJson;
+            Template kd = catalog.getKameletTemplate(name);
+            templateJson = om.convertValue(kd, new TypeReference<Map<Object, Object>>(){});
+            Map<String,Object> f = (Map) templateJson.get("from");
             Map<String,Object> p = (Map) f.get("parameters");
             List<String> deps = catalog.getKameletDependencies(name).stream()
                     .filter(Predicate.not(bannedDepsList::contains))
diff --git a/pom.xml b/pom.xml
index 2e39f826..f2e0be2f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,7 +61,7 @@
 	<cyclonedx-maven-plugin-version>2.7.8</cyclonedx-maven-plugin-version>
 
         <camel.version>4.0.0-RC1</camel.version>
-        <camel.k.extension.version>6.1.1</camel.k.extension.version>
+        <camel.k.crds.version>1.12.1</camel.k.crds.version>
 
         <!-- Versions used inside Kamelets (add them also to the dependencyManagement section and the groovy script below) -->
         <!-- These properties must keep this same format "version.<groupId>.<artifactId>" -->