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 920d2be9892ce09f6e2c2b1861a9681cff4cede6
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Tue May 21 19:28:15 2024 -0400

    Fix #1290
---
 karavan-app/pom.xml                                |   4 -
 .../camel/karavan/service/KaravanCacheService.java | 113 +++++----------------
 karavan-app/src/main/resources/hazelcast.yaml      |  24 -----
 3 files changed, 27 insertions(+), 114 deletions(-)

diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml
index 5b79ef18..89e62149 100644
--- a/karavan-app/pom.xml
+++ b/karavan-app/pom.xml
@@ -79,10 +79,6 @@
             <groupId>io.smallrye.reactive</groupId>
             <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.hazelcast</groupId>
-            <artifactId>quarkus-hazelcast-client</artifactId>
-        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanCacheService.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanCacheService.java
index 3b00a54f..c17ae852 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanCacheService.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanCacheService.java
@@ -16,13 +16,6 @@
  */
 package org.apache.camel.karavan.service;
 
-import com.hazelcast.config.ClasspathYamlConfig;
-import com.hazelcast.config.Config;
-import com.hazelcast.core.Hazelcast;
-import com.hazelcast.core.HazelcastInstance;
-import com.hazelcast.map.IMap;
-import com.hazelcast.query.Predicate;
-import com.hazelcast.query.Predicates;
 import io.quarkus.runtime.ShutdownEvent;
 import jakarta.enterprise.event.Observes;
 import jakarta.enterprise.inject.Default;
@@ -34,10 +27,8 @@ import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.time.Instant;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
@@ -45,49 +36,31 @@ import java.util.stream.Collectors;
 @Singleton
 public class KaravanCacheService {
 
-    private HazelcastInstance hz;
-    private IMap<String, Project> projects;
-    private IMap<String, ProjectFile> files;
-    private IMap<String, DeploymentStatus> deploymentStatuses;
-    private IMap<String, ContainerStatus> containerStatuses;
-    private IMap<String, Boolean> transits;
-    private IMap<String, ServiceStatus> serviceStatuses;
-    private IMap<String, CamelStatus> camelStatuses;
+    private final Map<String, Project> projects = new ConcurrentHashMap<>();
+    private final Map<String, ProjectFile> files = new ConcurrentHashMap<>();
+    private final Map<String, DeploymentStatus> deploymentStatuses = new 
ConcurrentHashMap<>();
+    private final Map<String, ContainerStatus> containerStatuses = new 
ConcurrentHashMap<>();
+    private final Map<String, Boolean> transits = new ConcurrentHashMap<>();
+    private final Map<String, ServiceStatus> serviceStatuses = new 
ConcurrentHashMap<>();
+    private final Map<String, CamelStatus> camelStatuses = new 
ConcurrentHashMap<>();
 
     private final AtomicBoolean ready = new AtomicBoolean(false);
     private static final Logger LOGGER = 
Logger.getLogger(KaravanCacheService.class.getName());
 
     public static final String DEFAULT_ENVIRONMENT = "dev";
 
-    public HazelcastInstance getHz() {
-        return hz;
-    }
-
     void start() {
-        LOGGER.info("KaravanCacheService is starting");
-        Config config = new ClasspathYamlConfig("hazelcast.yaml");
-        hz = Hazelcast.getOrCreateHazelcastInstance(config);
-        projects = hz.getMap(Project.CACHE);
-        files = hz.getMap(ProjectFile.CACHE);
-        deploymentStatuses = hz.getMap(DeploymentStatus.CACHE);
-        containerStatuses = hz.getMap(ContainerStatus.CACHE);
-        transits = hz.getMap("transits");
-        serviceStatuses = hz.getMap(ServiceStatus.CACHE);
-        camelStatuses = hz.getMap(CamelStatus.CACHE);
         LOGGER.info("KaravanCacheService is started");
         ready.set(true);
     }
 
     void onStop(@Observes ShutdownEvent ev) {
-        LOGGER.info("KaravanCacheService is stopping");
-        if (hz != null){
-            hz.shutdown();
-        }
+        LOGGER.info("KaravanCacheService is stopped");
         ready.set(false);
     }
 
     public List<Project> getProjects() {
-        return projects.values().stream().collect(Collectors.toList());
+        return new ArrayList<>(projects.values());
     }
 
     public void saveProject(Project project) {
@@ -96,28 +69,21 @@ public class KaravanCacheService {
     }
 
     public List<ProjectFile> getProjectFiles(String projectId) {
-        Predicate<String, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
-        return files.values(predicate).stream().toList();
+        return files.values().stream().filter(pf -> 
Objects.equals(pf.getProjectId(), projectId)).toList();
     }
 
     public Map<String, ProjectFile> getProjectFilesMap(String projectId) {
-        Predicate<String, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
-        return files.entrySet(predicate).stream()
+        return files.entrySet().stream().filter(es -> 
!Objects.isNull(es.getValue()) && Objects.equals(es.getValue().getProjectId(), 
projectId))
                 .collect(Collectors.toMap(Map.Entry::getKey, 
Map.Entry::getValue));
     }
 
     public ProjectFile getProjectFile(String projectId, String filename) {
-        Predicate<String, ProjectFile> predicate = Predicates.and(
-                Predicates.equal("name", filename),
-                Predicates.equal("projectId", projectId)
-        );
-        List<ProjectFile> list = files.values(predicate).stream().toList();
+        List<ProjectFile> list = files.values().stream().filter(pf -> 
Objects.equals(pf.getProjectId(), projectId) && Objects.equals(pf.getName(), 
filename)).toList();
         return !list.isEmpty() ? list.get(0) : null;
     }
 
     public List<ProjectFile> getProjectFilesByName(String filename) {
-        Predicate<String, ProjectFile> predicate = Predicates.equal("name", 
filename);
-        return files.values(predicate).stream().toList();
+        return files.values().stream().filter(pf -> 
Objects.equals(pf.getName(), filename)).toList();
     }
 
     public void saveProjectFile(ProjectFile file) {
@@ -159,8 +125,7 @@ public class KaravanCacheService {
     }
 
     public List<DeploymentStatus> getDeploymentStatuses(String env) {
-        Predicate<String, DeploymentStatus> predicate = 
Predicates.equal("env", env);
-        return deploymentStatuses.values(predicate).stream().toList();
+        return deploymentStatuses.values().stream().filter(pf -> 
Objects.equals(pf.getEnv(), env)).toList();
     }
 
     public void deleteAllDeploymentsStatuses() {
@@ -196,11 +161,7 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getContainerStatuses(String projectId, String 
env) {
-        Predicate<String, ContainerStatus> predicate = Predicates.and(
-                Predicates.equal("projectId", projectId),
-                Predicates.equal("env", env)
-        );
-        return containerStatuses.values(predicate).stream().toList();
+        return containerStatuses.values().stream().filter(el -> 
Objects.equals(el.getProjectId(), projectId) && Objects.equals(el.getEnv(), 
env)).toList();
     }
 
     public ContainerStatus getContainerStatus(String projectId, String env, 
String containerName) {
@@ -216,10 +177,7 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getContainerStatuses(String env) {
-        Predicate<String, ContainerStatus> predicate = Predicates.and(
-                Predicates.equal("env", env)
-        );
-        return containerStatuses.values(predicate).stream().toList();
+        return containerStatuses.values().stream().filter(el -> 
Objects.equals(el.getEnv(), env)).toList();
     }
 
     public List<ContainerStatus> getAllContainerStatuses() {
@@ -260,11 +218,7 @@ public class KaravanCacheService {
     }
 
     public List<CamelStatus> getCamelStatusesByProjectAndEnv(String projectId, 
String env) {
-        Predicate<String, CamelStatus> predicate = Predicates.and(
-                Predicates.equal("projectId", projectId),
-                Predicates.equal("env", env)
-        );
-        return camelStatuses.values(predicate).stream().toList();
+        return camelStatuses.values().stream().filter(el -> 
Objects.equals(el.getProjectId(), projectId) && Objects.equals(el.getEnv(), 
env)).toList();
     }
 
     public void saveCamelStatus(CamelStatus status) {
@@ -278,14 +232,11 @@ public class KaravanCacheService {
     }
 
     public void deleteCamelStatuses(String projectId, String env) {
-        Predicate<String, CamelStatus> predicate = Predicates.and(
-                Predicates.equal("projectId", projectId),
-                Predicates.equal("env", env)
-        );
-        camelStatuses.values(predicate).forEach(s -> {
-            var key = GroupedKey.create(projectId, env, s.getContainerName());
-            camelStatuses.remove(key);
-        });
+        camelStatuses.values().stream().filter(el -> 
Objects.equals(el.getProjectId(), projectId) && Objects.equals(el.getEnv(), 
env))
+                .forEach(s -> {
+                    var key = GroupedKey.create(projectId, env, 
s.getContainerName());
+                    camelStatuses.remove(key);
+                });
     }
 
     public void deleteAllCamelStatuses() {
@@ -293,25 +244,15 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getLoadedDevModeStatuses() {
-        Predicate<String, ContainerStatus> predicate = Predicates.and(
-                Predicates.equal("type", 
ContainerStatus.ContainerType.devmode),
-                Predicates.equal("codeLoaded", true)
-        );
-        return containerStatuses.values(predicate).stream().toList();
+        return containerStatuses.values().stream().filter(el -> 
Objects.equals(el.getType(), ContainerStatus.ContainerType.devmode) && 
Objects.equals(el.getCodeLoaded(), true)).toList();
     }
 
     public List<ContainerStatus> getDevModeStatuses() {
-        Predicate<String, ContainerStatus> predicate = Predicates.and(
-                Predicates.equal("type", ContainerStatus.ContainerType.devmode)
-        );
-        return containerStatuses.values(predicate).stream().toList();
+        return containerStatuses.values().stream().filter(el -> 
Objects.equals(el.getType(), ContainerStatus.ContainerType.devmode)).toList();
     }
 
     public List<ContainerStatus> getContainerStatusByEnv(String env) {
-        Predicate<String, ContainerStatus> predicate = Predicates.and(
-                Predicates.equal("env", env)
-        );
-        return containerStatuses.values(predicate).stream().toList();
+        return containerStatuses.values().stream().filter(el -> 
Objects.equals(el.getEnv(), env)).toList();
     }
 
     public void clearAllStatuses() {
diff --git a/karavan-app/src/main/resources/hazelcast.yaml 
b/karavan-app/src/main/resources/hazelcast.yaml
deleted file mode 100644
index 149ddfe0..00000000
--- a/karavan-app/src/main/resources/hazelcast.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-hazelcast:
-  cluster-name: karavan
-  instance-name: karavan
-  jet:
-    enabled: false
-    resource-upload-enabled: false
-  integrity-checker:
-    enabled: false
-  network:
-    port:
-      auto-increment: true
-      port-count: 100
-      port: 5900
-    outbound-ports:
-      ports: 0
-    join:
-      auto-detection:
-        enabled: false
-      multicast:
-        enabled: false
-      tcp-ip:
-        enabled: false
-  metrics:
-    enabled: false

Reply via email to