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


The following commit(s) were added to refs/heads/main by this push:
     new 71d19db7 Updates for #1115
71d19db7 is described below

commit 71d19db79cfd849367515437b10cf3e85324ea1a
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Wed Feb 14 18:48:56 2024 -0500

    Updates for #1115
---
 .../camel/karavan/cache/KaravanCacheService.java   | 59 +++++++++++-----------
 .../org/apache/camel/karavan/model/GroupedKey.java | 42 +++++++--------
 .../camel/karavan/service/ProjectService.java      |  5 +-
 3 files changed, 51 insertions(+), 55 deletions(-)

diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/cache/KaravanCacheService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/cache/KaravanCacheService.java
index 7c35bec6..46367d5e 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/cache/KaravanCacheService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/cache/KaravanCacheService.java
@@ -49,18 +49,18 @@ import static 
org.apache.camel.karavan.service.KaravanService.START_SERVICES;
 public class KaravanCacheService {
 
     private HazelcastInstance hz;
-    private IMap<GroupedKey, Project> projects;
-    private IMap<GroupedKey, ProjectFile> files;
-    private IMap<GroupedKey, DeploymentStatus> deploymentStatuses;
-    private IMap<GroupedKey, ContainerStatus> containerStatuses;
-    private IMap<GroupedKey, Boolean> transits;
-    private IMap<GroupedKey, ServiceStatus> serviceStatuses;
-    private IMap<GroupedKey, CamelStatus> camelStatuses;
+    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 AtomicBoolean ready = new AtomicBoolean(false);
     private static final Logger LOGGER = 
Logger.getLogger(KaravanCacheService.class.getName());
 
-    private static final String DEFAULT_ENVIRONMENT = "dev";
+    public static final String DEFAULT_ENVIRONMENT = "dev";
 
     @ConsumeEvent(value = START_SERVICES, blocking = true)
     void start(String data) {
@@ -89,24 +89,23 @@ public class KaravanCacheService {
     }
 
     public void saveProject(Project project) {
-        GroupedKey key = GroupedKey.create(project.getProjectId(), 
DEFAULT_ENVIRONMENT, project.getProjectId());
-        projects.put(key, project);
+        var key = GroupedKey.create(project.getProjectId(), 
DEFAULT_ENVIRONMENT, project.getProjectId());
         projects.put(key, project);
     }
 
     public List<ProjectFile> getProjectFiles(String projectId) {
-        Predicate<GroupedKey, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
+        Predicate<String, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
         return files.values(predicate).stream().toList();
     }
 
-    public Map<GroupedKey, ProjectFile> getProjectFilesMap(String projectId) {
-        Predicate<GroupedKey, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
+    public Map<String, ProjectFile> getProjectFilesMap(String projectId) {
+        Predicate<String, ProjectFile> predicate = 
Predicates.equal("projectId", projectId);
         return files.entrySet(predicate).stream()
                 .collect(Collectors.toMap(Map.Entry::getKey, 
Map.Entry::getValue));
     }
 
     public ProjectFile getProjectFile(String projectId, String filename) {
-        Predicate<GroupedKey, ProjectFile> predicate = Predicates.and(
+        Predicate<String, ProjectFile> predicate = Predicates.and(
                 Predicates.equal("name", filename),
                 Predicates.equal("projectId", projectId)
         );
@@ -115,7 +114,7 @@ public class KaravanCacheService {
     }
 
     public List<ProjectFile> getProjectFilesByName(String filename) {
-        Predicate<GroupedKey, ProjectFile> predicate = 
Predicates.equal("name", filename);
+        Predicate<String, ProjectFile> predicate = Predicates.equal("name", 
filename);
         return files.values(predicate).stream().toList();
     }
 
@@ -123,7 +122,7 @@ public class KaravanCacheService {
         files.put(GroupedKey.create(file.getProjectId(), DEFAULT_ENVIRONMENT, 
file.getName()), file);
     }
 
-    public void saveProjectFiles(Map<GroupedKey, ProjectFile> filesToSave) {
+    public void saveProjectFiles(Map<String, ProjectFile> filesToSave) {
         long lastUpdate = Instant.now().toEpochMilli();
         filesToSave.forEach((groupedKey, projectFile) -> 
projectFile.setLastUpdate(lastUpdate));
         files.putAll(filesToSave);
@@ -158,7 +157,7 @@ public class KaravanCacheService {
     }
 
     public List<DeploymentStatus> getDeploymentStatuses(String env) {
-        Predicate<GroupedKey, DeploymentStatus> predicate = 
Predicates.equal("env", env);
+        Predicate<String, DeploymentStatus> predicate = 
Predicates.equal("env", env);
         return deploymentStatuses.values(predicate).stream().toList();
     }
 
@@ -195,7 +194,7 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getContainerStatuses(String projectId, String 
env) {
-        Predicate<GroupedKey, ContainerStatus> predicate = Predicates.and(
+        Predicate<String, ContainerStatus> predicate = Predicates.and(
                 Predicates.equal("projectId", projectId),
                 Predicates.equal("env", env)
         );
@@ -206,7 +205,7 @@ public class KaravanCacheService {
         return getContainerStatus(GroupedKey.create(projectId, env, 
containerName));
     }
 
-    public ContainerStatus getContainerStatus(GroupedKey key) {
+    public ContainerStatus getContainerStatus(String key) {
         return containerStatuses.get(key);
     }
 
@@ -215,7 +214,7 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getContainerStatuses(String env) {
-        Predicate<GroupedKey, ContainerStatus> predicate = Predicates.and(
+        Predicate<String, ContainerStatus> predicate = Predicates.and(
                 Predicates.equal("env", env)
         );
         return containerStatuses.values(predicate).stream().toList();
@@ -242,11 +241,11 @@ public class KaravanCacheService {
     }
 
     public CamelStatus getCamelStatus(String projectId, String env, String 
containerName) {
-        GroupedKey key = GroupedKey.create(projectId, env, containerName);
+        var key = GroupedKey.create(projectId, env, containerName);
         return camelStatuses.get(key);
     }
 
-    public CamelStatus getCamelStatus(GroupedKey key) {
+    public CamelStatus getCamelStatus(String key) {
         return camelStatuses.get(key);
     }
 
@@ -259,7 +258,7 @@ public class KaravanCacheService {
     }
 
     public List<CamelStatus> getCamelStatusesByProjectAndEnv(String projectId, 
String env) {
-        Predicate<GroupedKey, CamelStatus> predicate = Predicates.and(
+        Predicate<String, CamelStatus> predicate = Predicates.and(
                 Predicates.equal("projectId", projectId),
                 Predicates.equal("env", env)
         );
@@ -267,22 +266,22 @@ public class KaravanCacheService {
     }
 
     public void saveCamelStatus(CamelStatus status) {
-        GroupedKey key = GroupedKey.create(status.getProjectId(), 
status.getEnv(), status.getContainerName());
+        var key = GroupedKey.create(status.getProjectId(), status.getEnv(), 
status.getContainerName());
         camelStatuses.put(key, status);
     }
 
     public void deleteCamelStatus(String projectId, String name, String env) {
-        GroupedKey key = GroupedKey.create(projectId, env, name);
+        var key = GroupedKey.create(projectId, env, name);
         camelStatuses.remove(key);
     }
 
     public void deleteCamelStatuses(String projectId, String env) {
-        Predicate<GroupedKey, CamelStatus> predicate = Predicates.and(
+        Predicate<String, CamelStatus> predicate = Predicates.and(
                 Predicates.equal("projectId", projectId),
                 Predicates.equal("env", env)
         );
         camelStatuses.values(predicate).forEach(s -> {
-            GroupedKey key = GroupedKey.create(projectId, env, 
s.getContainerName());
+            var key = GroupedKey.create(projectId, env, s.getContainerName());
             camelStatuses.remove(key);
         });
     }
@@ -292,7 +291,7 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getLoadedDevModeStatuses() {
-        Predicate<GroupedKey, ContainerStatus> predicate = Predicates.and(
+        Predicate<String, ContainerStatus> predicate = Predicates.and(
                 Predicates.equal("type", 
ContainerStatus.ContainerType.devmode),
                 Predicates.equal("codeLoaded", true)
         );
@@ -300,14 +299,14 @@ public class KaravanCacheService {
     }
 
     public List<ContainerStatus> getDevModeStatuses() {
-        Predicate<GroupedKey, ContainerStatus> predicate = Predicates.and(
+        Predicate<String, ContainerStatus> predicate = Predicates.and(
                 Predicates.equal("type", ContainerStatus.ContainerType.devmode)
         );
         return containerStatuses.values(predicate).stream().toList();
     }
 
     public List<ContainerStatus> getContainerStatusByEnv(String env) {
-        Predicate<GroupedKey, ContainerStatus> predicate = Predicates.and(
+        Predicate<String, ContainerStatus> predicate = Predicates.and(
                 Predicates.equal("env", env)
         );
         return containerStatuses.values(predicate).stream().toList();
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/model/GroupedKey.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/model/GroupedKey.java
index 9eca7e39..aed50347 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/model/GroupedKey.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/model/GroupedKey.java
@@ -25,9 +25,9 @@ public class GroupedKey implements Serializable {
     @Serial
     private static final long serialVersionUID = 7777777L;
 
-    String projectId;
-    String env;
-    String key;
+    private String projectId;
+    private String env;
+    private String key;
 
     public GroupedKey(String projectId, String env, String key) {
         this.projectId = projectId;
@@ -35,35 +35,34 @@ public class GroupedKey implements Serializable {
         this.key = key;
     }
 
-    public static GroupedKey create(String projectId, String env, String key) {
-        return new GroupedKey(projectId, env, key);
+    public static String create(String projectId, String env, String key) {
+        return new GroupedKey(projectId, env, key).getCacheKey();
     }
 
     public String getEnv() {
         return env;
     }
 
-    public void setEnv(String env) {
-        this.env = env;
+    public String getKey() {
+        return key;
+    }
+
+    public String getProjectId() {
+        return projectId;
     }
 
     public void setProjectId(String projectId) {
         this.projectId = projectId;
     }
 
-    public String getKey() {
-        return key;
+    public void setEnv(String env) {
+        this.env = env;
     }
 
     public void setKey(String key) {
         this.key = key;
     }
 
-//    @Group https://github.com/quarkusio/quarkus/issues/34677
-    public String getProjectId() {
-        return projectId;
-    }
-
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -76,20 +75,17 @@ public class GroupedKey implements Serializable {
         return key.equals(that.key);
     }
 
+    public String getCacheKey() {
+        return projectId + ":" + env + ":" + key;
+    }
+
     @Override
     public int hashCode() {
-        int result = projectId.hashCode();
-        result = 31 * result + env.hashCode();
-        result = 31 * result + key.hashCode();
-        return result;
+        return getCacheKey().hashCode();
     }
 
     @Override
     public String toString() {
-        return "GroupedKey{" +
-                "projectId='" + projectId + '\'' +
-                ", env='" + env + '\'' +
-                ", key='" + key + '\'' +
-                '}';
+        return "GroupedKey{" + getCacheKey() + '}';
     }
 }
\ No newline at end of file
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
index 8ed83f16..961d33e4 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
@@ -53,6 +53,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
+import static 
org.apache.camel.karavan.cache.KaravanCacheService.DEFAULT_ENVIRONMENT;
 import static org.apache.camel.karavan.code.CodeService.*;
 import static 
org.apache.camel.karavan.shared.Constants.NOTIFICATION_EVENT_COMMIT;
 
@@ -220,12 +221,12 @@ public class ProjectService implements HealthCheck {
         karavanCacheService.saveProject(project);
 
         // Copy files from the source and make necessary modifications
-        Map<GroupedKey, ProjectFile> filesMap = 
karavanCacheService.getProjectFilesMap(sourceProjectId).entrySet().stream()
+        Map<String, ProjectFile> filesMap = 
karavanCacheService.getProjectFilesMap(sourceProjectId).entrySet().stream()
                 .filter(e -> !Objects.equals(e.getValue().getName(), 
PROJECT_COMPOSE_FILENAME) &&
                         !Objects.equals(e.getValue().getName(), 
PROJECT_DEPLOYMENT_JKUBE_FILENAME)
                 )
                 .collect(Collectors.toMap(
-                        e -> new GroupedKey(project.getProjectId(), 
e.getKey().getEnv(), e.getKey().getKey()),
+                        e -> GroupedKey.create(project.getProjectId(), 
DEFAULT_ENVIRONMENT, e.getValue().getName()),
                         e -> {
                             ProjectFile file = e.getValue();
                             file.setProjectId(project.getProjectId());

Reply via email to