This is an automated email from the ASF dual-hosted git repository.

mgubaidullin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git

commit 209b1e1736dd2976c618b2d497ebf4ce78c1bce5
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Mon Aug 24 15:31:20 2026 -0400

    Karavan-app java backend update for 4.22.0
---
 .../apache/camel/karavan/cache/ProjectFolder.java  |  8 +--
 .../org/apache/camel/karavan/loader/GitLoader.java |  3 -
 .../karavan/service/CamelComponentService.java     | 66 ++++++++++++++++++++++
 .../camel/karavan/service/ComplexityService.java   |  4 +-
 .../camel/karavan/service/ProjectService.java      |  1 -
 5 files changed, 68 insertions(+), 14 deletions(-)

diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/cache/ProjectFolder.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/cache/ProjectFolder.java
index 9d7839df..123b84f7 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/cache/ProjectFolder.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/cache/ProjectFolder.java
@@ -28,9 +28,6 @@ public class ProjectFolder {
         kamelets,
         configuration,
         documentation,
-        contracts,
-        mcp,
-        sdx,
         services,
         integration
     }
@@ -106,10 +103,7 @@ public class ProjectFolder {
                 Type.configuration.name(),
                 Type.kamelets.name(),
                 Type.templates.name(),
-                Type.contracts.name(),
-                Type.documentation.name(),
-                Type.sdx.name(),
-                Type.mcp.name()
+                Type.documentation.name()
         );
     }
 
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/loader/GitLoader.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/loader/GitLoader.java
index 1234ec00..f8f32a94 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/loader/GitLoader.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/loader/GitLoader.java
@@ -68,9 +68,6 @@ public class GitLoader {
                 addBuildInProject(ProjectFolder.Type.templates.name());
                 addBuildInProject(ProjectFolder.Type.configuration.name());
                 addBuildInProject(ProjectFolder.Type.documentation.name());
-                addBuildInProject(ProjectFolder.Type.contracts.name());
-                addBuildInProject(ProjectFolder.Type.mcp.name());
-                addBuildInProject(ProjectFolder.Type.sdx.name());
             }
             gitHistoryService.importCommits();
         } else {
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelComponentService.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelComponentService.java
new file mode 100644
index 00000000..2e95bfee
--- /dev/null
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/CamelComponentService.java
@@ -0,0 +1,66 @@
+package org.apache.camel.karavan.service;
+
+import io.vertx.core.json.JsonArray;
+import io.vertx.core.json.JsonObject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import org.jboss.logging.Logger;
+
+import java.util.*;
+
+@ApplicationScoped
+public class CamelComponentService {
+
+    private static final Logger LOGGER = 
Logger.getLogger(CamelComponentService.class.getName());
+
+    @Inject
+    CodeService codeService;
+
+    private static JsonArray components;
+
+    private JsonArray getComponents() {
+        if (components == null) {
+            var json = 
codeService.getResourceFile("/metadata/components-full.json");
+            components = new JsonArray(json);
+        }
+        return components;
+    }
+
+    public boolean isComponentRemote(String name) {
+        try {
+            var comps = getComponents();
+            var comp = comps.stream().filter(o -> ((JsonObject) 
o).getJsonObject("component").getString("name").equals(name)).findFirst().orElse(JsonObject.of());
+            if (comp instanceof JsonObject) {
+                var component = ((JsonObject) comp).getJsonObject("component");
+                if (component != null) {
+                    return component.getBoolean("remote");
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return true;
+    }
+
+    public Map<String, String> getComponentDefaultParameters(String name) {
+        Map<String, String> result = new HashMap<>();
+        try {
+            var comps = getComponents();
+            var comp = comps.stream().filter(o -> ((JsonObject) 
o).getJsonObject("component").getString("name").equals(name)).findFirst().orElse(JsonObject.of());
+            if (comp instanceof JsonObject) {
+                var properties = ((JsonObject) 
comp).getJsonObject("properties");
+                if (properties != null) {
+                    for (String key : properties.fieldNames()) {
+                        var prop = properties.getJsonObject(key);
+                        if (Objects.equals(prop.getString("kind"), "path") || 
Objects.equals(prop.getBoolean("required"), true)) {
+                            result.put(key, prop.getString("defaultValue"));
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+}
\ No newline at end of file
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/ComplexityService.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/ComplexityService.java
index 0b844c95..144a2de6 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/ComplexityService.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/ComplexityService.java
@@ -37,10 +37,8 @@ public class ComplexityService {
         return karavanCache.getFolders().stream()
                 .filter(p -> Objects.equals(p.getType(), 
ProjectFolder.Type.integration)
                         || Objects.equals(p.getType(), 
ProjectFolder.Type.templates)
-                        || Objects.equals(p.getType(), ProjectFolder.Type.sdx)
                         || Objects.equals(p.getType(), 
ProjectFolder.Type.kamelets)
-                        || Objects.equals(p.getType(), 
ProjectFolder.Type.documentation)
-                        || Objects.equals(p.getType(), 
ProjectFolder.Type.contracts))
+                        || Objects.equals(p.getType(), 
ProjectFolder.Type.documentation))
                 .map(this::getProjectComplexity).toList();
     }
 
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
index 76611338..49aeeb7d 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/service/ProjectService.java
@@ -370,7 +370,6 @@ public class ProjectService {
             List<ProjectFile> files = 
karavanCache.getProjectFilesByName(PROJECT_COMPOSE_FILENAME).stream()
                     .filter(f -> !Objects.equals(f.getProjectId(), 
ProjectFolder.Type.templates.name()))
                     .filter(f -> !Objects.equals(f.getProjectId(), 
ProjectFolder.Type.kamelets.name()))
-                    .filter(f -> !Objects.equals(f.getProjectId(), 
ProjectFolder.Type.contracts.name()))
                     .filter(f -> !Objects.equals(f.getProjectId(), 
ProjectFolder.Type.configuration.name()))
                     .toList();
             if (!files.isEmpty()) {

Reply via email to