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 2024/05/21 23:28:28 UTC
(camel-karavan) 04/04: Fix #1290
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