You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2022/11/19 02:03:39 UTC

[camel-karavan] 07/12: Kamalets in projects

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 dc1356fcf1881de4c4ebaedd39b946026bfc9b1f
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri Nov 18 17:55:42 2022 -0500

    Kamalets in projects
---
 .../apache/camel/karavan/api/KameletResources.java  | 10 ++++++----
 .../org/apache/camel/karavan/model/Kamelet.java     |  6 ------
 .../apache/camel/karavan/service/ImportService.java | 21 ++++++++++++++-------
 .../camel/karavan/service/InfinispanService.java    | 19 -------------------
 karavan-designer/src/designer/karavan.css           |  5 +++++
 5 files changed, 25 insertions(+), 36 deletions(-)

diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java b/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
index 30bcea3..d06f15d 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/api/KameletResources.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.karavan.api;
 
+import org.apache.camel.karavan.model.Project;
+import org.apache.camel.karavan.model.ProjectFile;
 import org.apache.camel.karavan.service.CodeService;
 import org.apache.camel.karavan.service.InfinispanService;
 
@@ -40,11 +42,11 @@ public class KameletResources {
     @Produces(MediaType.TEXT_PLAIN)
     public String getCustomYamls() {
         StringBuilder kamelets = new StringBuilder(codeService.getResourceFile("/kamelets/kamelets.yaml"));
-        List<String> customKameletNames = infinispanService.getKameletNames();
-        if (customKameletNames.size() > 0) {
+        List<ProjectFile> custom = infinispanService.getProjectFiles(Project.NAME_KAMELETS);
+        if (custom.size() > 0) {
             kamelets.append("\n---\n");
-            kamelets.append(infinispanService.getKameletNames().stream()
-                    .map(name -> infinispanService.getKameletYaml(name))
+            kamelets.append(custom.stream()
+                    .map(file -> file.getCode())
                     .collect(Collectors.joining("\n---\n")));
         }
         return kamelets.toString();
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/model/Kamelet.java b/karavan-app/src/main/java/org/apache/camel/karavan/model/Kamelet.java
deleted file mode 100644
index 7974390..0000000
--- a/karavan-app/src/main/java/org/apache/camel/karavan/model/Kamelet.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.apache.camel.karavan.model;
-
-public abstract class Kamelet {
-    public static final String CACHE = "kamelets";
-
-}
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/ImportService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/ImportService.java
index 12d153a..05cbe5d 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/ImportService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/ImportService.java
@@ -83,7 +83,7 @@ public class ImportService {
         try {
             Project templates  = infinispanService.getProject(Project.NAME_TEMPLATES);
             if (templates == null) {
-                templates = new Project("templates", "Templates", "Templates", "quarkus", "");
+                templates = new Project(Project.NAME_TEMPLATES, "Templates", "Templates", "quarkus", "");
                 infinispanService.saveProject(templates, true);
 
                 codeService.getApplicationPropertiesTemplates().forEach((name, value) -> {
@@ -100,12 +100,19 @@ public class ImportService {
     void loadCustomKamelets(String data) {
         LOGGER.info("Load custom Kamelets from Git");
         try {
-            List<Tuple2<String, String>> repo = gitService.readKameletsFromRepository();
-            repo.forEach(p -> {
-                String name = p.getItem1();
-                String yaml = p.getItem2();
-                infinispanService.saveKamelet(name, yaml);
-            });
+            Project kamelets  = infinispanService.getProject(Project.NAME_KAMELETS);
+            if (kamelets == null) {
+                kamelets = new Project(Project.NAME_KAMELETS, "Custom Kamelets", "Custom Kamelets", "quarkus", "");
+                infinispanService.saveProject(kamelets, true);
+
+                List<Tuple2<String, String>> repo = gitService.readKameletsFromRepository();
+                repo.forEach(p -> {
+                    String name = p.getItem1();
+                    String yaml = p.getItem2();
+                    ProjectFile file = new ProjectFile(name, yaml, Project.NAME_KAMELETS);
+                    infinispanService.saveProjectFile(file);
+                });
+            }
         } catch (Exception e) {
             LOGGER.error("Error during project import", e);
         }
diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
index b8f44b1..b7ae729 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/InfinispanService.java
@@ -20,13 +20,11 @@ import org.apache.camel.karavan.model.CamelStatus;
 import org.apache.camel.karavan.model.DeploymentStatus;
 import org.apache.camel.karavan.model.Environment;
 import org.apache.camel.karavan.model.GroupedKey;
-import org.apache.camel.karavan.model.Kamelet;
 import org.apache.camel.karavan.model.PipelineStatus;
 import org.apache.camel.karavan.model.PodStatus;
 import org.apache.camel.karavan.model.Project;
 import org.apache.camel.karavan.model.ProjectFile;
 import org.apache.camel.karavan.model.ServiceStatus;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
 import org.infinispan.client.hotrod.RemoteCache;
 import org.infinispan.client.hotrod.RemoteCacheManager;
 import org.infinispan.client.hotrod.Search;
@@ -37,7 +35,6 @@ import org.infinispan.configuration.cache.CacheMode;
 import org.infinispan.configuration.cache.ConfigurationBuilder;
 import org.infinispan.configuration.cache.SingleFileStoreConfigurationBuilder;
 import org.infinispan.configuration.global.GlobalConfigurationBuilder;
-import org.infinispan.eviction.EvictionStrategy;
 import org.infinispan.manager.DefaultCacheManager;
 import org.infinispan.query.dsl.QueryFactory;
 import org.jboss.logging.Logger;
@@ -58,7 +55,6 @@ public class InfinispanService {
     BasicCache<GroupedKey, PodStatus> podStatuses;
     BasicCache<GroupedKey, CamelStatus> camelStatuses;
     BasicCache<GroupedKey, ServiceStatus> serviceStatuses;
-    BasicCache<String, String> kamelets;
     BasicCache<String, Environment> environments;
 
     @Inject
@@ -96,7 +92,6 @@ public class InfinispanService {
             podStatuses = cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(PodStatus.CACHE, builder.build());
             serviceStatuses = cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(ServiceStatus.CACHE, builder.build());
             camelStatuses = cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(CamelStatus.CACHE, builder.build());
-            kamelets = cacheManager.administration().withFlags(CacheContainerAdmin.AdminFlag.VOLATILE).getOrCreateCache(Kamelet.CACHE, builder.build());
 
             cleanData();
         } else {
@@ -109,9 +104,7 @@ public class InfinispanService {
             podStatuses = cacheManager.administration().getOrCreateCache(PodStatus.CACHE, new XMLStringConfiguration(String.format(CACHE_CONFIG, PodStatus.CACHE)));
             serviceStatuses = cacheManager.administration().getOrCreateCache(ServiceStatus.CACHE, new XMLStringConfiguration(String.format(CACHE_CONFIG, ServiceStatus.CACHE)));
             camelStatuses = cacheManager.administration().getOrCreateCache(CamelStatus.CACHE, new XMLStringConfiguration(String.format(CACHE_CONFIG, CamelStatus.CACHE)));
-            kamelets = cacheManager.administration().getOrCreateCache(Kamelet.CACHE, new XMLStringConfiguration(String.format(CACHE_CONFIG, Kamelet.CACHE)));
         }
-//        org.hibernate.search.engine.search.loading.spi.EntityLoader
     }
 
     private void cleanData() {
@@ -283,18 +276,6 @@ public class InfinispanService {
         camelStatuses.remove(GroupedKey.create(name, env));
     }
 
-    public List<String> getKameletNames() {
-        return kamelets.keySet().stream().collect(Collectors.toList());
-    }
-
-    public String getKameletYaml(String name) {
-        return kamelets.get(name);
-    }
-
-    public void saveKamelet(String name, String yaml) {
-        kamelets.put(name, yaml);
-    }
-
     public List<Environment> getEnvironments() {
         return environments.values().stream().collect(Collectors.toList());
     }
diff --git a/karavan-designer/src/designer/karavan.css b/karavan-designer/src/designer/karavan.css
index 77ff41e..ae823fb 100644
--- a/karavan-designer/src/designer/karavan.css
+++ b/karavan-designer/src/designer/karavan.css
@@ -128,6 +128,11 @@
     padding-right: 6px;
 }
 
+.kamelets-page .kamelet-card .pf-c-card__title {
+    font-size: 15px;
+    font-weight: 400;
+}
+
 .kamelets-page .kamelet-card .pf-c-card__body {
     overflow: hidden;
     position: relative;