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 e45cd974 Update
e45cd974 is described below
commit e45cd9740ca8c6677eab453e360512b99bb6a60f
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Mon Jan 13 18:02:03 2025 -0500
Update
---
.../org/apache/camel/karavan/KaravanConstants.java | 1 -
.../apache/camel/karavan/api/DevModeResource.java | 2 +-
.../camel/karavan/docker/DockerForKaravan.java | 5 +++-
.../karavan/kubernetes/KubernetesService.java | 28 ++++++++++------------
.../camel/karavan/model/CamelStatusValue.java | 3 ++-
.../org/apache/camel/karavan/model/Project.java | 4 ++++
.../apache/camel/karavan/service/CodeService.java | 3 ++-
.../camel/karavan/service/ProjectService.java | 26 ++++++++++----------
karavan-app/src/main/webui/package-lock.json | 2 +-
9 files changed, 40 insertions(+), 34 deletions(-)
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanConstants.java
b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanConstants.java
index 052f19fd..8c007145 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/KaravanConstants.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/KaravanConstants.java
@@ -52,7 +52,6 @@ public class KaravanConstants {
public static final String PROPERTY_FORMATTER_PROJECT_ID =
PROPERTY_NAME_PROJECT_ID + "=%s";
public static final String PROPERTY_FORMATTER_PROJECT_NAME =
PROPERTY_NAME_PROJECT_NAME + "=%s";
- public static final String PROPERTY_FORMATTER_GAV = PROPERTY_NAME_GAV +
"=org.camel.karavan.demo:%s:1";
public enum CamelRuntime {
CAMEL_MAIN("camel-main"),
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
b/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
index c731ac8c..2c28047e 100644
---
a/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
+++
b/karavan-app/src/main/java/org/apache/camel/karavan/api/DevModeResource.java
@@ -57,7 +57,7 @@ public class DevModeResource {
@Path("/{verbose}/{compile}")
public Response runProjectInDeveloperMode(Project project,
@PathParam("verbose") boolean verbose, @PathParam("compile") boolean compile) {
try {
- String containerName =
projectService.runProjectInDeveloperMode(project, verbose, compile, Map.of(),
Map.of());
+ String containerName =
projectService.runProjectInDeveloperMode(project.getProjectId(), verbose,
compile, Map.of(), Map.of());
if (containerName != null) {
return Response.ok(containerName).build();
} else {
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
b/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
index 34aeb727..86bc6954 100644
---
a/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
+++
b/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
@@ -22,7 +22,10 @@ import com.github.dockerjava.api.model.MountType;
import com.github.dockerjava.api.model.RestartPolicy;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
-import org.apache.camel.karavan.model.*;
+import org.apache.camel.karavan.model.ContainerType;
+import org.apache.camel.karavan.model.DockerComposeService;
+import org.apache.camel.karavan.model.DockerComposeVolume;
+import org.apache.camel.karavan.model.Project;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.jboss.logging.Logger;
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
b/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
index 6de4f755..b5d270fa 100644
---
a/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
+++
b/karavan-app/src/main/java/org/apache/camel/karavan/kubernetes/KubernetesService.java
@@ -16,8 +16,6 @@
*/
package org.apache.camel.karavan.kubernetes;
-import org.apache.camel.karavan.model.KubernetesConfigMap;
-import org.apache.camel.karavan.model.KubernetesSecret;
import io.fabric8.kubernetes.api.model.*;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -32,7 +30,8 @@ import jakarta.enterprise.inject.Produces;
import jakarta.inject.Inject;
import org.apache.camel.karavan.KaravanConstants;
import org.apache.camel.karavan.model.ContainerType;
-import org.apache.camel.karavan.model.Project;
+import org.apache.camel.karavan.model.KubernetesConfigMap;
+import org.apache.camel.karavan.model.KubernetesSecret;
import org.apache.camel.karavan.service.CodeService;
import org.apache.camel.karavan.service.ConfigService;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@@ -114,10 +113,10 @@ public class KubernetesService {
}
}
- public void runBuildProject(Project project, String podFragment) {
+ public void runBuildProject(String projectId, String podFragment) {
try (KubernetesClient client = kubernetesClient()) {
- String containerName = project.getProjectId() + BUILDER_SUFFIX;
- Map<String, String> labels = getLabels(containerName, project,
ContainerType.build);
+ String containerName = projectId + BUILDER_SUFFIX;
+ Map<String, String> labels = getLabels(containerName, projectId,
ContainerType.build);
// Delete old build pod
Pod old =
client.pods().inNamespace(getNamespace()).withName(containerName).get();
@@ -134,11 +133,11 @@ public class KubernetesService {
}
}
- private Map<String, String> getLabels(String name, Project project,
ContainerType type) {
+ private Map<String, String> getLabels(String name, String projectId,
ContainerType type) {
Map<String, String> labels = new HashMap<>();
labels.putAll(getPartOfLabels());
labels.put("app.kubernetes.io/name", name);
- labels.put(LABEL_PROJECT_ID, project.getProjectId());
+ labels.put(LABEL_PROJECT_ID, projectId);
if (type != null) {
labels.put(LABEL_TYPE, type.name());
}
@@ -338,24 +337,23 @@ public class KubernetesService {
return result;
}
- public void runDevModeContainer(Project project, Boolean verbose, Boolean
compile, Map<String, String> files, String projectDevmodeImage, String
deploymentFragment, Map<String, String> labels, Map<String, String> envVars) {
- String name = project.getProjectId();
+ public void runDevModeContainer(String projectId, Boolean verbose, Boolean
compile, Map<String, String> files, String projectDevmodeImage, String
deploymentFragment, Map<String, String> labels, Map<String, String> envVars) {
Map<String, String> podLabels = new HashMap<>(labels);
- podLabels.putAll(getLabels(name, project, ContainerType.devmode));
+ podLabels.putAll(getLabels(projectId, projectId,
ContainerType.devmode));
try (KubernetesClient client = kubernetesClient()) {
if (devmodePVC.orElse(false)) {
- createPVC(name, labels);
+ createPVC(projectId, labels);
}
- Pod old =
client.pods().inNamespace(getNamespace()).withName(name).get();
+ Pod old =
client.pods().inNamespace(getNamespace()).withName(projectId).get();
if (old == null) {
- Pod pod = getDevModePod(name, verbose, compile, podLabels,
projectDevmodeImage, deploymentFragment, envVars);
+ Pod pod = getDevModePod(projectId, verbose, compile,
podLabels, projectDevmodeImage, deploymentFragment, envVars);
Pod result = client.resource(pod).serverSideApply();
copyFilesToContainer(result, files, "/karavan/code");
LOGGER.info("Created pod " + result.getMetadata().getName());
}
}
- createService(name, podLabels);
+ createService(projectId, podLabels);
}
private void copyFilesToContainer(Pod pod, Map<String, String> files,
String dirName) {
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatusValue.java
b/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatusValue.java
index 5d4dab4e..c5826515 100644
---
a/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatusValue.java
+++
b/karavan-app/src/main/java/org/apache/camel/karavan/model/CamelStatusValue.java
@@ -28,7 +28,8 @@ public class CamelStatusValue {
route,
trace,
jvm,
- source
+ source,
+ debug
}
Name name;
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
b/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
index 2bfb815b..a78cc582 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/model/Project.java
@@ -73,6 +73,10 @@ public class Project {
return projectId;
}
+ public String getGavPackageSuffix() {
+ return projectId.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
+ }
+
public void setProjectId(String projectId) {
this.projectId = projectId;
}
diff --git
a/karavan-app/src/main/java/org/apache/camel/karavan/service/CodeService.java
b/karavan-app/src/main/java/org/apache/camel/karavan/service/CodeService.java
index 403a502b..20bbba62 100644
---
a/karavan-app/src/main/java/org/apache/camel/karavan/service/CodeService.java
+++
b/karavan-app/src/main/java/org/apache/camel/karavan/service/CodeService.java
@@ -156,7 +156,8 @@ public class CodeService {
String template = getTemplateText(APPLICATION_PROPERTIES_FILENAME);
String code = substituteVariables(template, Map.of(
"projectId", project.getProjectId(),
- "projectName", project.getName()
+ "projectName", project.getName(),
+ "packageSuffix", project.getGavPackageSuffix()
));
return new ProjectFile(APPLICATION_PROPERTIES_FILENAME, code,
project.getProjectId(), Instant.now().toEpochMilli());
}
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 46ea88a8..a8c25e41 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
@@ -93,24 +93,24 @@ public class ProjectService {
}
}
- public String runProjectInDeveloperMode(Project project, Boolean verbose,
Boolean compile, Map<String, String> labels, Map<String, String> envVars)
throws Exception {
- String containerName = project.getProjectId();
- PodContainerStatus status =
karavanCache.getDevModePodContainerStatus(project.getProjectId(), environment);
+ public String runProjectInDeveloperMode(String projectId, Boolean verbose,
Boolean compile, Map<String, String> labels, Map<String, String> envVars)
throws Exception {
+ String containerName = projectId;
+ PodContainerStatus status =
karavanCache.getDevModePodContainerStatus(projectId, environment);
if (status == null) {
- status = PodContainerStatus.createDevMode(project.getProjectId(),
environment);
+ status = PodContainerStatus.createDevMode(projectId, environment);
}
if (!Objects.equals(status.getState(),
PodContainerStatus.State.running.name())) {
status.setInTransit(true);
eventBus.publish(POD_CONTAINER_UPDATED,
JsonObject.mapFrom(status));
- Map<String, String> files =
codeService.getProjectFilesForDevMode(project.getProjectId(), true);
- String projectDevmodeImage =
codeService.getProjectDevModeImage(project.getProjectId());
+ Map<String, String> files =
codeService.getProjectFilesForDevMode(projectId, true);
+ String projectDevmodeImage =
codeService.getProjectDevModeImage(projectId);
if (ConfigService.inKubernetes()) {
- String deploymentFragment =
codeService.getDeploymentFragment(project.getProjectId());
- kubernetesService.runDevModeContainer(project, verbose,
compile, files, projectDevmodeImage, deploymentFragment, labels, envVars);
+ String deploymentFragment =
codeService.getDeploymentFragment(projectId);
+ kubernetesService.runDevModeContainer(projectId, verbose,
compile, files, projectDevmodeImage, deploymentFragment, labels, envVars);
} else {
- DockerComposeService compose =
getProjectDockerComposeService(project.getProjectId());
- dockerForKaravan.runProjectInDevMode(project.getProjectId(),
verbose, compile, compose, files, projectDevmodeImage, labels, envVars);
+ DockerComposeService compose =
getProjectDockerComposeService(projectId);
+ dockerForKaravan.runProjectInDevMode(projectId, verbose,
compile, compose, files, projectDevmodeImage, labels, envVars);
}
return containerName;
} else {
@@ -126,7 +126,7 @@ public class ProjectService {
if (ConfigService.inKubernetes()) {
String podFragment = codeService.getBuilderPodFragment();
podFragment = codeService.substituteVariables(podFragment, Map.of(
"projectId", project.getProjectId(), "tag", tag));
- kubernetesService.runBuildProject(project, podFragment);
+ kubernetesService.runBuildProject(project.getProjectId(),
podFragment);
} else {
Map<String, String> sshFiles = getSshFiles();
String composeFragment =
codeService.getBuilderComposeFragment(project.getProjectId(), tag);
@@ -203,13 +203,13 @@ public class ProjectService {
String sourceProjectIdProperty =
String.format(PROPERTY_FORMATTER_PROJECT_ID, sourceProject.getProjectId());
String sourceProjectNameProperty =
String.format(PROPERTY_FORMATTER_PROJECT_NAME, sourceProject.getName());
- String sourceGavProperty =
String.format(codeService.getGavFormatter(), sourceProject.getProjectId());
+ String sourceGavProperty = fileContent.lines().filter(line ->
line.startsWith(PROPERTY_NAME_GAV)).findFirst().orElse("");
String[] searchValues = {sourceProjectIdProperty,
sourceProjectNameProperty, sourceGavProperty};
String updatedProjectIdProperty =
String.format(PROPERTY_FORMATTER_PROJECT_ID, project.getProjectId());
String updatedProjectNameProperty =
String.format(PROPERTY_FORMATTER_PROJECT_NAME, project.getName());
- String updatedGavProperty =
String.format(codeService.getGavFormatter(), project.getProjectId());
+ String updatedGavProperty =
String.format(codeService.getGavFormatter(), project.getGavPackageSuffix());
String[] replacementValues = {updatedProjectIdProperty,
updatedProjectNameProperty, updatedGavProperty};
diff --git a/karavan-app/src/main/webui/package-lock.json
b/karavan-app/src/main/webui/package-lock.json
index ec71e9f1..cfab1662 100644
--- a/karavan-app/src/main/webui/package-lock.json
+++ b/karavan-app/src/main/webui/package-lock.json
@@ -54,7 +54,7 @@
}
},
"../../../../karavan-core": {
- "version": "4.8.1",
+ "version": "4.8.3",
"license": "Apache-2.0",
"dependencies": {
"@types/js-yaml": "^4.0.9",