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 f4d2b05b Custom Kamelets in DevMode in Docker #913
f4d2b05b is described below

commit f4d2b05b15d455ddf7bb96ef9470963d2dae16eb
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Thu Sep 28 16:46:18 2023 -0400

    Custom Kamelets in DevMode in Docker #913
---
 .../org/apache/camel/karavan/code/CodeService.java    | 19 +++++++++++++------
 .../apache/camel/karavan/service/CamelService.java    |  8 ++++++--
 .../apache/camel/karavan/service/ProjectService.java  |  9 +--------
 3 files changed, 20 insertions(+), 16 deletions(-)

diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
index 034ca5eb..655e660f 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
@@ -62,7 +62,6 @@ public class CodeService {
     public static final String DEV_SERVICES_FILENAME = "devservices.yaml";
     public static final String PROJECT_COMPOSE_FILENAME = 
"docker-compose.yaml";
     public static final String PROJECT_DEPLOYMENT_JKUBE_FILENAME = 
"deployment.jkube.yaml";
-    public static final String KAMELETS_FOLDER = "kamelets";
     private static final String SNIPPETS_PATH = "/snippets/";
     private static final int INTERNAL_PORT = 8080;
 
@@ -91,6 +90,18 @@ public class CodeService {
             "limits.cpu", "2000m"
     );
 
+    public Map<String, String> getProjectFiles(String projectId, Boolean 
withKamelets) {
+        Map<String, String> files = 
infinispanService.getProjectFiles(projectId).stream()
+                .filter(f -> !Objects.equals(f.getName(), 
PROJECT_COMPOSE_FILENAME))
+                .collect(Collectors.toMap(ProjectFile::getName, 
ProjectFile::getCode));
+
+        if (withKamelets) {
+            infinispanService.getProjectFiles(Project.Type.kamelets.name())
+                    .forEach(file -> files.put(file.getName(), 
file.getCode()));
+        }
+        return files;
+    }
+
     public ProjectFile getApplicationProperties(Project project) {
         String target = "docker";
         if (ConfigService.inKubernetes()) {
@@ -110,12 +121,8 @@ public class CodeService {
         return new ProjectFile(APPLICATION_PROPERTIES_FILENAME, code, 
project.getProjectId(), Instant.now().toEpochMilli());
     }
 
-    public String saveProjectFilesInTemp(Map<String, String> files) throws 
IOException {
+    public String saveProjectFilesInTemp(Map<String, String> files) {
         String temp = vertx.fileSystem().createTempDirectoryBlocking("temp");
-        Path kameplesPath = Paths.get(temp, KAMELETS_FOLDER);
-        if (!Files.exists(kameplesPath)) {
-            Files.createDirectories(kameplesPath);
-        }
         files.forEach((fileName, code) -> addFile(temp, fileName, code));
         return temp;
     }
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java
index f8478d10..e5c255d7 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelService.java
@@ -24,6 +24,7 @@ import io.vertx.mutiny.core.buffer.Buffer;
 import io.vertx.mutiny.core.eventbus.EventBus;
 import io.vertx.mutiny.ext.web.client.HttpResponse;
 import io.vertx.mutiny.ext.web.client.WebClient;
+import org.apache.camel.karavan.code.CodeService;
 import org.apache.camel.karavan.infinispan.InfinispanService;
 import org.apache.camel.karavan.infinispan.model.CamelStatus;
 import org.apache.camel.karavan.infinispan.model.CamelStatusValue;
@@ -51,6 +52,9 @@ public class CamelService {
     @Inject
     InfinispanService infinispanService;
 
+    @Inject
+    CodeService codeService;
+
     @Inject
     KubernetesService kubernetesService;
 
@@ -95,8 +99,8 @@ public class CamelService {
     public void reloadProjectCode(String projectId) {
         LOGGER.info("Reload project code " + projectId);
         try {
-            List<ProjectFile> files = 
infinispanService.getProjectFiles(projectId);
-            files.forEach(projectFile -> putRequest(projectId, 
projectFile.getName(), projectFile.getCode(), 1000));
+            Map<String, String> files = codeService.getProjectFiles(projectId, 
true);
+            files.forEach((name, code) -> putRequest(projectId, name, code, 
1000));
             reloadRequest(projectId);
             ContainerStatus containerStatus = 
infinispanService.getDevModeContainerStatus(projectId, environment);
             containerStatus.setCodeLoaded(true);
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 0848f2de..314a7f72 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
@@ -106,14 +106,7 @@ public class ProjectService implements HealthCheck {
             if (ConfigService.inKubernetes()) {
                 kubernetesService.runDevModeContainer(project, jBangOptions);
             } else {
-                Map<String, String> files = 
infinispanService.getProjectFiles(project.getProjectId()).stream()
-                        .filter(f -> !Objects.equals(f.getName(), 
PROJECT_COMPOSE_FILENAME))
-                        .collect(Collectors.toMap(ProjectFile::getName, 
ProjectFile::getCode));
-
-                infinispanService.getProjectFiles(Project.Type.kamelets.name())
-                        .forEach(file -> files.put(KAMELETS_FOLDER + 
File.separator + file.getName(), file.getCode()));
-
-                files.forEach((s, s2) -> System.out.println(s));
+                Map<String, String> files = 
codeService.getProjectFiles(project.getProjectId(), true);
 
                 ProjectFile compose = 
infinispanService.getProjectFile(project.getProjectId(), 
PROJECT_COMPOSE_FILENAME);
                 DockerComposeService dcs = 
DockerComposeConverter.fromCode(compose.getCode(), project.getProjectId());

Reply via email to