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()) {
