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 85798b265af777ede2155e8cfe7508b58bcff217
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Tue Sep 5 15:47:14 2023 -0400

    Redesign work in Docker for #817
---
 .github/workflows/app.yml                          |   9 +-
 .github/workflows/headless.yml                     |  63 -----
 change_version.sh                                  |   4 -
 karavan-web/karavan-app/pom.xml                    |   9 +-
 .../camel/karavan/docker/DockerForKaravan.java     |  35 ---
 .../karavan/infinispan/InfinispanService.java      |  57 +---
 .../karavan/infinispan/model/CamelStatus.java      |   0
 .../camel/karavan/infinispan/model/CommitInfo.java |   0
 .../karavan/infinispan/model/ContainerStatus.java  |   0
 .../karavan/infinispan/model/DeploymentStatus.java |   0
 .../camel/karavan/infinispan/model/GitConfig.java  |   0
 .../camel/karavan/infinispan/model/GitRepo.java    |   0
 .../karavan/infinispan/model/GitRepoFile.java      |   0
 .../camel/karavan/infinispan/model/GroupedKey.java |   0
 .../karavan/infinispan/model/KaravanSchema.java    |   0
 .../karavan/infinispan/model/PipelineStatus.java   |   0
 .../camel/karavan/infinispan/model/Project.java    |   0
 .../karavan/infinispan/model/ProjectFile.java      |   0
 .../karavan/infinispan/model/ServiceStatus.java    |   0
 .../camel/karavan/service/KaravanService.java      |   1 -
 .../src/main/resources/application.properties      |   5 +-
 .../src/main/resources/cache/data-cache-config.xml |   0
 .../camel/karavan/infinispan/DataGridTest.java     |  27 +-
 karavan-web/karavan-headless/.dockerignore         |   6 -
 .../.mvn/wrapper/maven-wrapper.properties          |  18 --
 .../Dockerfile.distroless.dockerignore             |   6 -
 karavan-web/karavan-headless/mvnw                  | 308 ---------------------
 karavan-web/karavan-headless/mvnw.cmd              | 205 --------------
 karavan-web/karavan-headless/pom.xml               | 126 ---------
 .../src/main/docker/Dockerfile.distroless          |  18 --
 .../camel/karavan/headless/CamelService.java       | 183 ------------
 .../camel/karavan/headless/EventService.java       |  43 ---
 .../camel/karavan/headless/HeadlessService.java    |  62 -----
 .../src/main/resources/application.properties      |  14 -
 .../.mvn/wrapper/maven-wrapper.properties          |  18 --
 karavan-web/karavan-infinispan/mvnw                | 308 ---------------------
 karavan-web/karavan-infinispan/mvnw.cmd            | 205 --------------
 karavan-web/karavan-infinispan/pom.xml             | 140 ----------
 .../src/main/resources/application.properties      |  13 -
 .../main/resources/cache/command-cache-config.xml  |   6 -
 40 files changed, 25 insertions(+), 1864 deletions(-)

diff --git a/.github/workflows/app.yml b/.github/workflows/app.yml
index 51130882..2d68771b 100644
--- a/.github/workflows/app.yml
+++ b/.github/workflows/app.yml
@@ -3,7 +3,7 @@ name: Web application
 on:
   push:
     branches: [ main ]
-    paths: ['karavan-web/karavan-app/**', 'karavan-web/karavan-infinispan/**', 
'karavan-core/**', 'karavan-designer/**']
+    paths: ['karavan-web/karavan-app/**', 'karavan-core/**', 
'karavan-designer/**']
   workflow_dispatch:
   pull_request:
     branches: [ main ]
@@ -58,13 +58,6 @@ jobs:
           mvn install
         if: ${{ github.ref == 'refs/heads/main' }}
 
-      #  Install Karavan infinispan module
-      - name: Install infinispan module
-        working-directory: ./karavan/karavan-web/karavan-infinispan
-        run: |
-          mvn install
-        if: ${{ github.ref == 'refs/heads/main' }}
-
       #  Build Karavan web app with public access
       - name: Build application public
         working-directory: ./karavan/karavan-web/karavan-app
diff --git a/.github/workflows/headless.yml b/.github/workflows/headless.yml
deleted file mode 100644
index 477e8629..00000000
--- a/.github/workflows/headless.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-name: Headless service 
-
-on:
-  push:
-    branches: [ main ]
-    paths: ['karavan-web/karavan-headless/**', 
'karavan-web/karavan-infinispan/**']
-  workflow_dispatch:
-  pull_request:
-    branches: [ main ]
-
-env:
-  TAG: 4.0.0-RC2
-
-jobs:
-  build:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout Karavan
-        uses: actions/checkout@v3
-        with:
-          path: karavan
-
-      - name: Set up JDK 17
-        uses: actions/setup-java@v3
-        with:
-          distribution: adopt
-          java-version: 17
-
-      - name: Cache local Maven repository
-        uses: actions/cache@v3
-        with:
-          path: |
-            ~/.m2/repository
-            !~/.m2/repository/org/apache/camel/karavan
-          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
-          restore-keys: ${{ runner.os }}-maven-
-
-      #  Install parent
-      - name: Install parent
-        working-directory: ./karavan/karavan-web
-        run: |
-          mvn install
-        if: ${{ github.ref == 'refs/heads/main' }}
-
-      #  Install Karavan infinispan module
-      - name: Install infinispan module
-        working-directory: ./karavan/karavan-web/karavan-infinispan
-        run: |
-          mvn install
-        if: ${{ github.ref == 'refs/heads/main' }}
-
-      #  Build Karavan headless 
-      - name: Build headless service
-        working-directory: ./karavan/karavan-web/karavan-headless
-        run: |
-          mvn package -DskipTests \
-          -Dquarkus.container-image.build=true \
-          -Dquarkus.container-image.push=true \
-          
-Dquarkus.container-image.image=ghcr.io/${GITHUB_REPOSITORY}-headless:${{ 
env.TAG }} \
-          -Dquarkus.container-image.username=${{ github.actor }} \
-          -Dquarkus.container-image.password=${{ secrets.GITHUB_TOKEN }}
-        if: ${{ github.ref == 'refs/heads/main' }}
-
diff --git a/change_version.sh b/change_version.sh
index f7bef132..0ba9a544 100755
--- a/change_version.sh
+++ b/change_version.sh
@@ -41,10 +41,6 @@ sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' 
.github/workflows/operator.yml
 echo "Set Github Workflow App TAG version: $1";
 sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/cli.yml
 
-
-echo "Set Github Workflow App TAG version: $1";
-sed -i.bak 's/TAG:.*/TAG: '"$1"'/g' .github/workflows/headless.yml
-
 echo "Set application.properties karavan.version=$1";
 sed -i.bak 's/karavan.version.*/karavan.version='"$1"'/g' 
karavan-web/karavan-operator/src/main/resources/application.properties 
 sed -i.bak 
's/quarkus.container-image.tag.*/quarkus.container-image.tag='"$1"'/g' 
karavan-web/karavan-operator/src/main/resources/application.properties 
diff --git a/karavan-web/karavan-app/pom.xml b/karavan-web/karavan-app/pom.xml
index 387faad1..47e6dae3 100644
--- a/karavan-web/karavan-app/pom.xml
+++ b/karavan-web/karavan-app/pom.xml
@@ -26,11 +26,6 @@
     </parent>
 
     <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.karavan</groupId>
-            <artifactId>karavan-infinispan</artifactId>
-            <version>${project.version}</version>
-        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-smallrye-reactive-messaging</artifactId>
@@ -47,6 +42,10 @@
             <groupId>io.smallrye.reactive</groupId>
             <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-infinispan-client</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
index 9ae18fa4..66d5b0eb 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerForKaravan.java
@@ -34,14 +34,9 @@ public class DockerForKaravan {
 
     private static final Logger LOGGER = 
Logger.getLogger(DockerForKaravan.class.getName());
 
-    protected static final String KARAVAN_CONTAINER_NAME = "karavan-headless";
-
     @ConfigProperty(name = "karavan.devmode.image")
     String devmodeImage;
 
-    @ConfigProperty(name = "karavan.headless.image")
-    String headlessImage;
-
     @ConfigProperty(name = "karavan.infinispan.username")
     String infinispanUsername;
     @ConfigProperty(name = "karavan.infinispan.password")
@@ -77,34 +72,4 @@ public class DockerForKaravan {
         LOGGER.infof("DevService starting for ", 
dockerComposeService.getContainer_name());
         dockerService.createContainerFromCompose(dockerComposeService, 
ContainerStatus.ContainerType.devservice);
     }
-
-    public void startKaravanHeadlessContainer() {
-        try {
-            LOGGER.info("Karavan headless is starting...");
-
-            dockerService.createContainer(KARAVAN_CONTAINER_NAME, 
headlessImage,
-                    List.of(
-                            "INFINISPAN_HOSTS=infinispan:11222",
-                            "INFINISPAN_USERNAME=" + infinispanUsername,
-                            "INFINISPAN_PASSWORD=" + infinispanPassword
-                    ),
-                    null, new HealthCheck(),
-                    Map.of(LABEL_TYPE, 
ContainerStatus.ContainerType.internal.name()),
-                    Map.of());
-
-            dockerService.runContainer(KARAVAN_CONTAINER_NAME);
-            LOGGER.info("Karavan headless is started");
-        } catch (Exception e) {
-            LOGGER.error(e.getMessage());
-        }
-    }
-
-    public void deleteKaravanHeadlessContainer() {
-        try {
-            dockerService.stopContainer(KARAVAN_CONTAINER_NAME);
-            dockerService.deleteContainer(KARAVAN_CONTAINER_NAME);
-        } catch (Exception e) {
-            LOGGER.error(e.getMessage());
-        }
-    }
 }
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
similarity index 90%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
index eae0311f..5f48425d 100644
--- 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/InfinispanService.java
@@ -16,12 +16,8 @@
  */
 package org.apache.camel.karavan.infinispan;
 
-import io.quarkus.runtime.StartupEvent;
-import io.quarkus.vertx.ConsumeEvent;
 import io.smallrye.mutiny.tuples.Tuple2;
 import io.vertx.core.eventbus.EventBus;
-import io.vertx.core.json.JsonObject;
-import jakarta.enterprise.event.Observes;
 import jakarta.enterprise.inject.Default;
 import jakarta.inject.Inject;
 import jakarta.inject.Singleton;
@@ -76,7 +72,6 @@ public class InfinispanService implements HealthCheck {
     private RemoteCache<GroupedKey, ServiceStatus> serviceStatuses;
     private RemoteCache<GroupedKey, CamelStatus> camelStatuses;
     private RemoteCache<String, String> commits;
-    private RemoteCache<GroupedKey, String> codeReloadCommands;
     private final AtomicBoolean ready = new AtomicBoolean(false);
 
     private RemoteCacheManager cacheManager;
@@ -85,15 +80,12 @@ public class InfinispanService implements HealthCheck {
 
     private static final String DEFAULT_ENVIRONMENT = "dev";
 
-    public static final String CODE_RELOAD_COMMAND = "CODE_RELOAD_COMMAND";
-    protected static final String CODE_RELOAD_COMMAND_INTERNAL = 
"CODE_RELOAD_COMMAND_INTERNAL";
-
     @Retry(maxRetries = 100, delay = 2000)
     public void tryStart(boolean startCodeReloadListener) throws Exception {
-        start(startCodeReloadListener);
+        start();
     }
 
-    void start(boolean startCodeReloadListener) throws Exception {
+    void start() throws Exception {
         LOGGER.info("InfinispanService is starting in remote mode");
 
         ProtoStreamMarshaller marshaller = new ProtoStreamMarshaller();
@@ -112,24 +104,19 @@ public class InfinispanService implements HealthCheck {
 
         if (cacheManager.getConnectionCount() > 0 ) {
 
-            projects = getOrCreateCache(Project.CACHE, false);
-            files = getOrCreateCache(ProjectFile.CACHE, false);
-            containerStatuses = getOrCreateCache(ContainerStatus.CACHE, false);
-            pipelineStatuses = getOrCreateCache(PipelineStatus.CACHE, false);
-            deploymentStatuses = getOrCreateCache(DeploymentStatus.CACHE, 
false);
-            serviceStatuses = getOrCreateCache(ServiceStatus.CACHE, false);
-            camelStatuses = getOrCreateCache(CamelStatus.CACHE, false);
-            commits = getOrCreateCache("commits", false);
-            transits = getOrCreateCache("transits", false);
-            deploymentStatuses = getOrCreateCache(DeploymentStatus.CACHE, 
false);
-            codeReloadCommands = getOrCreateCache("code_reload_commands", 
true);
+            projects = getOrCreateCache(Project.CACHE);
+            files = getOrCreateCache(ProjectFile.CACHE);
+            containerStatuses = getOrCreateCache(ContainerStatus.CACHE);
+            pipelineStatuses = getOrCreateCache(PipelineStatus.CACHE);
+            deploymentStatuses = getOrCreateCache(DeploymentStatus.CACHE);
+            serviceStatuses = getOrCreateCache(ServiceStatus.CACHE);
+            camelStatuses = getOrCreateCache(CamelStatus.CACHE);
+            commits = getOrCreateCache("commits");
+            transits = getOrCreateCache("transits");
+            deploymentStatuses = getOrCreateCache(DeploymentStatus.CACHE);
 
             
cacheManager.getCache(PROTOBUF_METADATA_CACHE_NAME).put("karavan.proto", 
getResourceFile("/proto/karavan.proto"));
 
-            if (startCodeReloadListener) {
-                
cacheManager.getCache("code_reload_commands").addClientListener(new 
CodeReloadListener(eventBus));
-            }
-
             ready.set(true);
             LOGGER.info("InfinispanService is started in remote mode");
         } else {
@@ -137,8 +124,8 @@ public class InfinispanService implements HealthCheck {
         }
     }
 
-    private <K, V> RemoteCache<K, V> getOrCreateCache(String name, boolean 
command) {
-        String config = getResourceFile(command ? 
"/cache/command-cache-config.xml" : "/cache/data-cache-config.xml");
+    private <K, V> RemoteCache<K, V> getOrCreateCache(String name) {
+        String config = getResourceFile("/cache/data-cache-config.xml");
         return cacheManager.administration().getOrCreateCache(name, new 
StringConfiguration(String.format(config, name)));
     }
 
@@ -146,22 +133,6 @@ public class InfinispanService implements HealthCheck {
         return ready.get();
     }
 
-
-    @ConsumeEvent(value = CODE_RELOAD_COMMAND_INTERNAL, blocking = true)
-    void resendCodeReloadCommand(JsonObject message) {
-        GroupedKey key = message.mapTo(GroupedKey.class);
-        deleteCodeReloadCommand(key);
-        eventBus.publish(CODE_RELOAD_COMMAND, key.getProjectId());
-    }
-
-    public void sendCodeReloadCommand(String projectId) {
-        codeReloadCommands.put(GroupedKey.create(projectId, 
DEFAULT_ENVIRONMENT, UUID.randomUUID().toString()), projectId);
-    }
-
-    public void deleteCodeReloadCommand(GroupedKey key) {
-        codeReloadCommands.remove(key);
-    }
-
     public List<Project> getProjects() {
         return projects.values().stream().collect(Collectors.toList());
     }
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/CamelStatus.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/CamelStatus.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/CamelStatus.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/CamelStatus.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/CommitInfo.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/CommitInfo.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/CommitInfo.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/CommitInfo.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ContainerStatus.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ContainerStatus.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ContainerStatus.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ContainerStatus.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/DeploymentStatus.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/DeploymentStatus.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/DeploymentStatus.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/DeploymentStatus.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitConfig.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitConfig.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitConfig.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitConfig.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepo.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepo.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepo.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepo.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepoFile.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepoFile.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepoFile.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GitRepoFile.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GroupedKey.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GroupedKey.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/GroupedKey.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/GroupedKey.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/KaravanSchema.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/KaravanSchema.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/KaravanSchema.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/KaravanSchema.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/PipelineStatus.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/PipelineStatus.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/PipelineStatus.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/PipelineStatus.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/Project.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/Project.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/Project.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/Project.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ProjectFile.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ProjectFile.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ProjectFile.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ProjectFile.java
diff --git 
a/karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ServiceStatus.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ServiceStatus.java
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/java/org/apache/camel/karavan/infinispan/model/ServiceStatus.java
rename to 
karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/infinispan/model/ServiceStatus.java
diff --git 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
index 6a5304a9..c5a77168 100644
--- 
a/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
+++ 
b/karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/service/KaravanService.java
@@ -93,7 +93,6 @@ public class KaravanService {
             dockerService.startListeners();
 
             dockerForInfinispan.startInfinispan();
-//            dockerForKaravan.startKaravanHeadlessContainer();
             if (giteaInstall) {
                 dockerForGitea.startGitea();
                 giteaService.install();
diff --git a/karavan-web/karavan-app/src/main/resources/application.properties 
b/karavan-web/karavan-app/src/main/resources/application.properties
index d666d97c..cca3ea01 100644
--- a/karavan-web/karavan-app/src/main/resources/application.properties
+++ b/karavan-web/karavan-app/src/main/resources/application.properties
@@ -7,7 +7,6 @@ karavan.camel.status.interval=3s
 karavan.container.status.interval=3s
 karavan.container.infinispan.interval=5s
 karavan.devmode.image=ghcr.io/apache/camel-karavan-devmode:4.0.0-RC2
-karavan.headless.image=entropy1/karavan-headless:4.0.0-RC2
 
 # Git repository Configuration
 karavan.git-repository=http://localhost:3000/karavan/karavan.git
@@ -26,6 +25,10 @@ karavan.infinispan.password=karavan
 karavan.infinispan.hosts=localhost:11222
 
 quarkus.infinispan-client.devservices.enabled=false
+quarkus.infinispan-client.devservices.service-name=infinispan
+quarkus.infinispan-client.devservices.image-name=quay.io/infinispan/server:14.0.6.Final
+quarkus.infinispan-client.devservices.port=11222
+quarkus.infinispan-client.health.enabled=false
 quarkus.infinispan-client.client-intelligence=BASIC
 
 # Public Dev
diff --git 
a/karavan-web/karavan-infinispan/src/main/resources/cache/data-cache-config.xml 
b/karavan-web/karavan-app/src/main/resources/cache/data-cache-config.xml
similarity index 100%
rename from 
karavan-web/karavan-infinispan/src/main/resources/cache/data-cache-config.xml
rename to karavan-web/karavan-app/src/main/resources/cache/data-cache-config.xml
diff --git 
a/karavan-web/karavan-infinispan/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
 
b/karavan-web/karavan-app/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
similarity index 58%
rename from 
karavan-web/karavan-infinispan/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
rename to 
karavan-web/karavan-app/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
index aac22b8c..930186cd 100644
--- 
a/karavan-web/karavan-infinispan/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
+++ 
b/karavan-web/karavan-app/src/test/java/org/apache/camel/karavan/infinispan/DataGridTest.java
@@ -1,19 +1,15 @@
 package org.apache.camel.karavan.infinispan;
 
-
 import io.quarkus.test.junit.QuarkusTest;
-import io.quarkus.vertx.ConsumeEvent;
 import jakarta.inject.Inject;
+import org.apache.camel.karavan.infinispan.InfinispanService;
 import org.apache.camel.karavan.infinispan.model.CamelStatus;
 import org.apache.camel.karavan.infinispan.model.ProjectFile;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.TestInstance;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
@@ -26,7 +22,7 @@ public class DataGridTest {
 
     @BeforeAll
     public void setup() throws Exception {
-        infinispanService.start(true);
+        infinispanService.start();
     }
 
     @Test
@@ -42,23 +38,4 @@ public class DataGridTest {
         List<CamelStatus> list = 
infinispanService.getCamelStatusesByEnv("dev", CamelStatus.Name.context);
         assertEquals(1, list.size());
     }
-
-
-    private List<String> commandsReceived = new ArrayList<>();
-    @ConsumeEvent(InfinispanService.CODE_RELOAD_COMMAND)
-    void receiveCommand(String message) {
-        System.out.println("receiveCommand " + message);
-        commandsReceived.add(message);
-    }
-
-    @Test
-    public void sendCommand() throws InterruptedException {
-        List<String> commandsSent = List.of("test1", "test2", "test3", 
"test1");
-
-        commandsSent.forEach(project -> 
infinispanService.sendCodeReloadCommand(project));
-
-        CountDownLatch latch = new CountDownLatch(4);
-        latch.await(5, TimeUnit.SECONDS);
-        assertEquals(commandsSent.size(),  commandsReceived.size());
-    }
 }
diff --git a/karavan-web/karavan-headless/.dockerignore 
b/karavan-web/karavan-headless/.dockerignore
deleted file mode 100644
index 855da0f3..00000000
--- a/karavan-web/karavan-headless/.dockerignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*
-!target/*-runner
-!target/*-runner.jar
-!target/lib/*
-!target/quarkus-app/*
-src/*
\ No newline at end of file
diff --git a/karavan-web/karavan-headless/.mvn/wrapper/maven-wrapper.properties 
b/karavan-web/karavan-headless/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 70f4f50f..00000000
--- a/karavan-web/karavan-headless/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.8/apache-maven-3.8.8-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
diff --git a/karavan-web/karavan-headless/Dockerfile.distroless.dockerignore 
b/karavan-web/karavan-headless/Dockerfile.distroless.dockerignore
deleted file mode 100644
index 855da0f3..00000000
--- a/karavan-web/karavan-headless/Dockerfile.distroless.dockerignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*
-!target/*-runner
-!target/*-runner.jar
-!target/lib/*
-!target/quarkus-app/*
-src/*
\ No newline at end of file
diff --git a/karavan-web/karavan-headless/mvnw 
b/karavan-web/karavan-headless/mvnw
deleted file mode 100755
index 8d937f4c..00000000
--- a/karavan-web/karavan-headless/mvnw
+++ /dev/null
@@ -1,308 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.2.0
-#
-# Required ENV vars:
-# ------------------
-#   JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
-#     e.g. to debug Maven itself, use
-#       set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
-  if [ -f /usr/local/etc/mavenrc ] ; then
-    . /usr/local/etc/mavenrc
-  fi
-
-  if [ -f /etc/mavenrc ] ; then
-    . /etc/mavenrc
-  fi
-
-  if [ -f "$HOME/.mavenrc" ] ; then
-    . "$HOME/.mavenrc"
-  fi
-
-fi
-
-# OS specific support.  $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "$(uname)" in
-  CYGWIN*) cygwin=true ;;
-  MINGW*) mingw=true;;
-  Darwin*) darwin=true
-    # Use /usr/libexec/java_home if available, otherwise fall back to 
/Library/Java/Home
-    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
-    if [ -z "$JAVA_HOME" ]; then
-      if [ -x "/usr/libexec/java_home" ]; then
-        JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
-      else
-        JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
-      fi
-    fi
-    ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
-  if [ -r /etc/gentoo-release ] ; then
-    JAVA_HOME=$(java-config --jre-home)
-  fi
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
-fi
-
-# For Mingw, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
-  [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
-    JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 
1); pwd)"
-fi
-
-if [ -z "$JAVA_HOME" ]; then
-  javaExecutable="$(which javac)"
-  if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ 
]*\)')" = "no" ]; then
-    # readlink(1) is not available as standard on Solaris 10.
-    readLink=$(which readlink)
-    if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
-      if $darwin ; then
-        javaHome="$(dirname "\"$javaExecutable\"")"
-        javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
-      else
-        javaExecutable="$(readlink -f "\"$javaExecutable\"")"
-      fi
-      javaHome="$(dirname "\"$javaExecutable\"")"
-      javaHome=$(expr "$javaHome" : '\(.*\)/bin')
-      JAVA_HOME="$javaHome"
-      export JAVA_HOME
-    fi
-  fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-    fi
-  else
-    JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
-  fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly." >&2
-  echo "  We cannot execute $JAVACMD" >&2
-  exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
-  echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-  if [ -z "$1" ]
-  then
-    echo "Path not specified to find_maven_basedir"
-    return 1
-  fi
-
-  basedir="$1"
-  wdir="$1"
-  while [ "$wdir" != '/' ] ; do
-    if [ -d "$wdir"/.mvn ] ; then
-      basedir=$wdir
-      break
-    fi
-    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
-    if [ -d "${wdir}" ]; then
-      wdir=$(cd "$wdir/.." || exit 1; pwd)
-    fi
-    # end of workaround
-  done
-  printf '%s' "$(cd "$basedir" || exit 1; pwd)"
-}
-
-# concatenates all lines of a file
-concat_lines() {
-  if [ -f "$1" ]; then
-    # Remove \r in case we run on Windows within Git Bash
-    # and check out the repository with auto CRLF management
-    # enabled. Otherwise, we may read lines that are delimited with
-    # \r\n and produce $'-Xarg\r' rather than -Xarg due to word
-    # splitting rules.
-    tr -s '\r\n' ' ' < "$1"
-  fi
-}
-
-log() {
-  if [ "$MVNW_VERBOSE" = true ]; then
-    printf '%s\n' "$1"
-  fi
-}
-
-BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
-if [ -z "$BASE_DIR" ]; then
-  exit 1;
-fi
-
-MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
-log "$MAVEN_PROJECTBASEDIR"
-
-##########################################################################################
-# Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
-# This allows using the maven wrapper in projects that prohibit checking in 
binary data.
-##########################################################################################
-wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
-if [ -r "$wrapperJarPath" ]; then
-    log "Found $wrapperJarPath"
-else
-    log "Couldn't find $wrapperJarPath, downloading it ..."
-
-    if [ -n "$MVNW_REPOURL" ]; then
-      
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
-    else
-      
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
-    fi
-    while IFS="=" read -r key value; do
-      # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
-      safeValue=$(echo "$value" | tr -d '\r')
-      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
-      esac
-    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-    log "Downloading from: $wrapperUrl"
-
-    if $cygwin; then
-      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
-    fi
-
-    if command -v wget > /dev/null; then
-        log "Found wget ... using wget"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        else
-            wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        log "Found curl ... using curl"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
-        else
-            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o 
"$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
-        fi
-    else
-        log "Falling back to using Java to download"
-        
javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
-        
javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaSource=$(cygpath --path --windows "$javaSource")
-          javaClass=$(cygpath --path --windows "$javaClass")
-        fi
-        if [ -e "$javaSource" ]; then
-            if [ ! -e "$javaClass" ]; then
-                log " - Compiling MavenWrapperDownloader.java ..."
-                ("$JAVA_HOME/bin/javac" "$javaSource")
-            fi
-            if [ -e "$javaClass" ]; then
-                log " - Running MavenWrapperDownloader.java ..."
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader 
"$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
-            fi
-        fi
-    fi
-fi
-##########################################################################################
-# End of extension
-##########################################################################################
-
-# If specified, validate the SHA-256 sum of the Maven wrapper jar file
-wrapperSha256Sum=""
-while IFS="=" read -r key value; do
-  case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
-  esac
-done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-if [ -n "$wrapperSha256Sum" ]; then
-  wrapperSha256Result=false
-  if command -v sha256sum > /dev/null; then
-    if echo "$wrapperSha256Sum  $wrapperJarPath" | sha256sum -c > /dev/null 
2>&1; then
-      wrapperSha256Result=true
-    fi
-  elif command -v shasum > /dev/null; then
-    if echo "$wrapperSha256Sum  $wrapperJarPath" | shasum -a 256 -c > 
/dev/null 2>&1; then
-      wrapperSha256Result=true
-    fi
-  else
-    echo "Checksum validation was requested but neither 'sha256sum' or 
'shasum' are available."
-    echo "Please install either command, or disable validation by removing 
'wrapperSha256Sum' from your maven-wrapper.properties."
-    exit 1
-  fi
-  if [ $wrapperSha256Result = false ]; then
-    echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper 
might be compromised." >&2
-    echo "Investigate or delete $wrapperJarPath to attempt a clean download." 
>&2
-    echo "If you updated your Maven version, you need to update the specified 
wrapperSha256Sum property." >&2
-    exit 1
-  fi
-fi
-
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") 
$MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
-  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
-    MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-# shellcheck disable=SC2086 # safe args
-exec "$JAVACMD" \
-  $MAVEN_OPTS \
-  $MAVEN_DEBUG_OPTS \
-  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
-  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/karavan-web/karavan-headless/mvnw.cmd 
b/karavan-web/karavan-headless/mvnw.cmd
deleted file mode 100644
index f80fbad3..00000000
--- a/karavan-web/karavan-headless/mvnw.cmd
+++ /dev/null
@@ -1,205 +0,0 @@
-@REM 
----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM 
----------------------------------------------------------------------------
-
-@REM 
----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.2.0
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM     e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM 
----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd 
ending
-if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" 
%*
-if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" 
%*
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another 
setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder 
".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto 
endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do 
set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set 
WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
-
-FOR /F "usebackq tokens=1,2 delims==" %%A IN 
("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in 
binary data.
-if exist %WRAPPER_JAR% (
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Found %WRAPPER_JAR%
-    )
-) else (
-    if not "%MVNW_REPOURL%" == "" (
-        SET 
WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
-    )
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Couldn't find %WRAPPER_JAR%, downloading it ...
-        echo Downloading from: %WRAPPER_URL%
-    )
-
-    powershell -Command "&{"^
-               "$webclient = new-object System.Net.WebClient;"^
-               "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and 
[string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
-               "$webclient.Credentials = new-object 
System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
-               "}"^
-               "[Net.ServicePointManager]::SecurityProtocol = 
[Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', 
'%WRAPPER_JAR%')"^
-               "}"
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Finished downloading %WRAPPER_JAR%
-    )
-)
-@REM End of extension
-
-@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
-SET WRAPPER_SHA_256_SUM=""
-FOR /F "usebackq tokens=1,2 delims==" %%A IN 
("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
-)
-IF NOT %WRAPPER_SHA_256_SUM%=="" (
-    powershell -Command "&{"^
-       "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm 
SHA256).Hash.ToLower();"^
-       "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
-       "  Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your 
Maven wrapper might be compromised.';"^
-       "  Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean 
download.';"^
-       "  Write-Output 'If you updated your Maven version, you need to update 
the specified wrapperSha256Sum property.';"^
-       "  exit 1;"^
-       "}"^
-       "}"
-    if ERRORLEVEL 1 goto error
-)
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% ^
-  %JVM_CONFIG_MAVEN_PROPS% ^
-  %MAVEN_OPTS% ^
-  %MAVEN_DEBUG_OPTS% ^
-  -classpath %WRAPPER_JAR% ^
-  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
-  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd 
ending
-if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
-if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%"=="on" pause
-
-if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
-
-cmd /C exit /B %ERROR_CODE%
diff --git a/karavan-web/karavan-headless/pom.xml 
b/karavan-web/karavan-headless/pom.xml
deleted file mode 100644
index b877c720..00000000
--- a/karavan-web/karavan-headless/pom.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-         http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";
-         xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>karavan-headless</artifactId>
-    <parent>
-        <groupId>org.apache.camel.karavan</groupId>
-        <artifactId>karavan-web</artifactId>
-        <version>4.0.0-RC2</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel.karavan</groupId>
-            <artifactId>karavan-infinispan</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-reactive-messaging</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-scheduler</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.smallrye.reactive</groupId>
-            <artifactId>smallrye-mutiny-vertx-web-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-arc</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-container-image-docker</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.rest-assured</groupId>
-            <artifactId>rest-assured</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>${quarkus.platform.group-id}</groupId>
-                <artifactId>quarkus-maven-plugin</artifactId>
-                <version>${quarkus.platform.version}</version>
-                <extensions>true</extensions>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>build</goal>
-                            <goal>generate-code</goal>
-                            <goal>generate-code-tests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${compiler-plugin.version}</version>
-                <configuration>
-                    <parameters>${maven.compiler.parameters}</parameters>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>${surefire-plugin.version}</version>
-                <configuration>
-                    <systemPropertyVariables>
-                        
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
-                        <maven.home>${maven.home}</maven.home>
-                    </systemPropertyVariables>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Development Snapshot Repository</name>
-            
<url>https://repository.apache.org/content/repositories/snapshots/</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
-</project>
diff --git a/karavan-web/karavan-headless/src/main/docker/Dockerfile.distroless 
b/karavan-web/karavan-headless/src/main/docker/Dockerfile.distroless
deleted file mode 100644
index d8e8f265..00000000
--- a/karavan-web/karavan-headless/src/main/docker/Dockerfile.distroless
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You under the Apache License, Version 2.0
-#  (the "License"); you may not use this file except in compliance with
-#  the License.  You may obtain a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software
-#  distributed under the License is distributed on an "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  See the License for the specific language governing permissions and
-#  limitations under the License.
-FROM 
gcr.io/distroless/java17@sha256:3a4ea21bd7b412b8b6ae61313b39337d8f03bb6844013810e8e4625d8c765edb
-COPY target/*-runner.jar /deployments/karavan.jar
-WORKDIR /deployments
-CMD ["karavan.jar"]
\ No newline at end of file
diff --git 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/CamelService.java
 
b/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/CamelService.java
deleted file mode 100644
index b4951669..00000000
--- 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/CamelService.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karavan.headless;
-
-import io.vertx.core.json.JsonObject;
-import io.vertx.mutiny.core.Vertx;
-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.infinispan.InfinispanService;
-import org.apache.camel.karavan.infinispan.model.CamelStatus;
-import org.apache.camel.karavan.infinispan.model.ContainerStatus;
-import org.eclipse.microprofile.config.inject.ConfigProperty;
-import org.eclipse.microprofile.faulttolerance.CircuitBreaker;
-import org.jboss.logging.Logger;
-
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Inject;
-import java.util.Arrays;
-import java.util.Objects;
-import java.util.concurrent.ExecutionException;
-
-import static org.apache.camel.karavan.headless.EventService.*;
-
-@ApplicationScoped
-public class CamelService {
-
-    private static final Logger LOGGER = 
Logger.getLogger(CamelService.class.getName());
-
-    @Inject
-    InfinispanService infinispanService;
-
-    @ConfigProperty(name = "karavan.environment")
-    String environment;
-
-    @Inject
-    Vertx vertx;
-
-    @Inject
-    EventBus eventBus;
-
-    WebClient webClient;
-
-    public WebClient getWebClient() {
-        if (webClient == null) {
-            webClient = WebClient.create(vertx);
-        }
-        return webClient;
-    }
-
-    public void reloadProjectCode(String projectId) {
-        LOGGER.info("Reload project code " + projectId);
-        try {
-            infinispanService.getProjectFiles(projectId).forEach(projectFile ->
-                    putRequest(projectId, projectFile.getName(), 
projectFile.getCode(), 1000));
-            reloadRequest(projectId);
-            ContainerStatus containerStatus = 
infinispanService.getDevModeContainerStatus(projectId, environment);
-            containerStatus.setCodeLoaded(true);
-            infinispanService.saveContainerStatus(containerStatus);
-        } catch (Exception ex) {
-            LOGGER.error(ex.getMessage());
-        }
-    }
-
-    @CircuitBreaker(requestVolumeThreshold = 10, failureRatio = 0.5, delay = 
1000)
-    public boolean putRequest(String containerName, String fileName, String 
body, int timeout) {
-        try {
-            String url = getContainerAddress(containerName) + "/q/upload/" + 
fileName;
-            HttpResponse<Buffer> result = getWebClient().putAbs(url)
-                    
.timeout(timeout).sendBuffer(Buffer.buffer(body)).subscribeAsCompletionStage().toCompletableFuture().get();
-            return result.statusCode() == 200;
-        } catch (Exception e) {
-            LOGGER.info(e.getMessage());
-        }
-        return false;
-    }
-
-    public void reloadRequest(String containerName) {
-        String url = getContainerAddress(containerName) + 
"/q/dev/reload?reload=true";
-        try {
-            result(url, 1000);
-        } catch (InterruptedException | ExecutionException e) {
-            LOGGER.error(e.getMessage());
-        }
-    }
-
-    public String getContainerAddress(String containerName) {
-        return "http://"; + containerName + ":8080";
-    }
-
-    public void collectCamelStatuses() {
-        if (infinispanService.isReady()) {
-            infinispanService.getContainerStatuses(environment).stream()
-                    .filter(status -> 
status.getType().equals(ContainerStatus.ContainerType.devmode) || 
status.getType().equals(ContainerStatus.ContainerType.project))
-                    .forEach(status -> {
-                        CamelStatusRequest csr = new 
CamelStatusRequest(status.getProjectId(), status.getContainerName());
-                        eventBus.publish(CMD_COLLECT_CAMEL_STATUS, 
JsonObject.mapFrom(csr));
-                    });
-        }
-    }
-
-    public void collectCamelStatus(JsonObject data) {
-        CamelStatusRequest dms = data.mapTo(CamelStatusRequest.class);
-        Arrays.stream(CamelStatus.Name.values()).forEach(statusName -> {
-            String containerName = dms.getContainerName();
-            String status = getCamelStatus(containerName, statusName);
-            if (status != null) {
-                CamelStatus cs = new CamelStatus(dms.getProjectId(), 
containerName, statusName, status, environment);
-                infinispanService.saveCamelStatus(cs);
-            }
-        });
-    }
-
-    public String getCamelStatus(String containerName, CamelStatus.Name 
statusName) {
-        String url = getContainerAddress(containerName) + "/q/dev/" + 
statusName.name();
-        try {
-            return result(url, 500);
-        } catch (InterruptedException | ExecutionException e) {
-            LOGGER.error(e.getMessage());
-        }
-        return null;
-    }
-
-    @CircuitBreaker(requestVolumeThreshold = 10, failureRatio = 0.5, delay = 
1000)
-    public String result(String url, int timeout) throws InterruptedException, 
ExecutionException {
-        try {
-            HttpResponse<Buffer> result = 
getWebClient().getAbs(url).putHeader("Accept", "application/json")
-                    
.timeout(timeout).send().subscribeAsCompletionStage().toCompletableFuture().get();
-            if (result.statusCode() == 200) {
-                JsonObject res = result.bodyAsJsonObject();
-                return res.encodePrettily();
-            }
-        } catch (Exception e) {
-            LOGGER.info(e.getMessage());
-        }
-        return null;
-    }
-
-    public static class CamelStatusRequest {
-        private String projectId;
-        private String containerName;
-
-        public CamelStatusRequest() {
-        }
-
-        public CamelStatusRequest(String projectId, String containerName) {
-            this.projectId = projectId;
-            this.containerName = containerName;
-        }
-
-        public String getProjectId() {
-            return projectId;
-        }
-
-        public void setProjectId(String projectId) {
-            this.projectId = projectId;
-        }
-
-        public String getContainerName() {
-            return containerName;
-        }
-
-        public void setContainerName(String containerName) {
-            this.containerName = containerName;
-        }
-
-    }
-}
\ No newline at end of file
diff --git 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/EventService.java
 
b/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/EventService.java
deleted file mode 100644
index 116a00d8..00000000
--- 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/EventService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karavan.headless;
-
-import io.quarkus.vertx.ConsumeEvent;
-import io.vertx.core.json.JsonObject;
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.inject.Inject;
-import org.apache.camel.karavan.infinispan.InfinispanService;
-
-@ApplicationScoped
-public class EventService {
-
-    public static final String CMD_COLLECT_CAMEL_STATUS = 
"collect-camel-status";
-
-    @Inject
-    CamelService camelService;
-
-    @ConsumeEvent(value = CMD_COLLECT_CAMEL_STATUS, blocking = true)
-    public void collectCamelStatus(JsonObject data) {
-        camelService.collectCamelStatus(data);
-    }
-
-    @ConsumeEvent(value = InfinispanService.CODE_RELOAD_COMMAND, blocking = 
true)
-    public void reloadProjectCode(String projectId) {
-        camelService.reloadProjectCode(projectId);
-    }
-
-}
\ No newline at end of file
diff --git 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/HeadlessService.java
 
b/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/HeadlessService.java
deleted file mode 100644
index d63ac25b..00000000
--- 
a/karavan-web/karavan-headless/src/main/java/org/apache/camel/karavan/headless/HeadlessService.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karavan.headless;
-
-import io.quarkus.runtime.StartupEvent;
-import io.quarkus.scheduler.Scheduled;
-import io.quarkus.vertx.ConsumeEvent;
-import io.vertx.core.eventbus.EventBus;
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.enterprise.event.Observes;
-import jakarta.inject.Inject;
-import org.apache.camel.karavan.infinispan.InfinispanService;
-import org.jboss.logging.Logger;
-
-@ApplicationScoped
-public class HeadlessService {
-
-    private static final Logger LOGGER = 
Logger.getLogger(HeadlessService.class.getName());
-
-    @Inject
-    InfinispanService infinispanService;
-
-    @Inject
-    CamelService camelService;
-
-    @Inject
-    EventBus eventBus;
-
-    private static final String START_SERVICES = "START_SERVICES";
-
-    void onStart(@Observes StartupEvent ev) throws Exception {
-        eventBus.publish(START_SERVICES, null);
-    }
-
-    @ConsumeEvent(value = START_SERVICES, blocking = true)
-    void startServices(String data) throws Exception {
-        LOGGER.info("Starting Headless Karavan");
-        infinispanService.tryStart(true);
-    }
-
-    @Scheduled(every = "{karavan.camel.status.interval}", concurrentExecution 
= Scheduled.ConcurrentExecution.SKIP)
-    void collectCamelStatuses() {
-        LOGGER.info("Collect Camel statuses");
-        // collect Camel statuses
-        camelService.collectCamelStatuses();
-    }
-
-}
diff --git 
a/karavan-web/karavan-headless/src/main/resources/application.properties 
b/karavan-web/karavan-headless/src/main/resources/application.properties
deleted file mode 100644
index ec2c2f7c..00000000
--- a/karavan-web/karavan-headless/src/main/resources/application.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-karavan.environment=dev
-karavan.camel.status.interval=3s
-
-infinispan.hosts=infinispan:11222
-infinispan.username=admin
-infinispan.password=karavan
-
-# Quarkus configuration
-quarkus.infinispan-client.devservices.enabled=false
-quarkus.log.level=INFO
-quarkus.banner.enabled=false
-quarkus.package.type=uber-jar
-quarkus.docker.dockerfile-jvm-path=src/main/docker/Dockerfile.distroless
-quarkus.container-image.builder=docker
\ No newline at end of file
diff --git 
a/karavan-web/karavan-infinispan/.mvn/wrapper/maven-wrapper.properties 
b/karavan-web/karavan-infinispan/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index 70f4f50f..00000000
--- a/karavan-web/karavan-infinispan/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.8/apache-maven-3.8.8-bin.zip
-wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
diff --git a/karavan-web/karavan-infinispan/mvnw 
b/karavan-web/karavan-infinispan/mvnw
deleted file mode 100755
index 8d937f4c..00000000
--- a/karavan-web/karavan-infinispan/mvnw
+++ /dev/null
@@ -1,308 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.2.0
-#
-# Required ENV vars:
-# ------------------
-#   JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
-#     e.g. to debug Maven itself, use
-#       set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
-  if [ -f /usr/local/etc/mavenrc ] ; then
-    . /usr/local/etc/mavenrc
-  fi
-
-  if [ -f /etc/mavenrc ] ; then
-    . /etc/mavenrc
-  fi
-
-  if [ -f "$HOME/.mavenrc" ] ; then
-    . "$HOME/.mavenrc"
-  fi
-
-fi
-
-# OS specific support.  $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "$(uname)" in
-  CYGWIN*) cygwin=true ;;
-  MINGW*) mingw=true;;
-  Darwin*) darwin=true
-    # Use /usr/libexec/java_home if available, otherwise fall back to 
/Library/Java/Home
-    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
-    if [ -z "$JAVA_HOME" ]; then
-      if [ -x "/usr/libexec/java_home" ]; then
-        JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
-      else
-        JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
-      fi
-    fi
-    ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
-  if [ -r /etc/gentoo-release ] ; then
-    JAVA_HOME=$(java-config --jre-home)
-  fi
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
-fi
-
-# For Mingw, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
-  [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
-    JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 
1); pwd)"
-fi
-
-if [ -z "$JAVA_HOME" ]; then
-  javaExecutable="$(which javac)"
-  if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ 
]*\)')" = "no" ]; then
-    # readlink(1) is not available as standard on Solaris 10.
-    readLink=$(which readlink)
-    if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
-      if $darwin ; then
-        javaHome="$(dirname "\"$javaExecutable\"")"
-        javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
-      else
-        javaExecutable="$(readlink -f "\"$javaExecutable\"")"
-      fi
-      javaHome="$(dirname "\"$javaExecutable\"")"
-      javaHome=$(expr "$javaHome" : '\(.*\)/bin')
-      JAVA_HOME="$javaHome"
-      export JAVA_HOME
-    fi
-  fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
-  if [ -n "$JAVA_HOME"  ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-      # IBM's JDK on AIX uses strange locations for the executables
-      JAVACMD="$JAVA_HOME/jre/sh/java"
-    else
-      JAVACMD="$JAVA_HOME/bin/java"
-    fi
-  else
-    JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
-  fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
-  echo "Error: JAVA_HOME is not defined correctly." >&2
-  echo "  We cannot execute $JAVACMD" >&2
-  exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
-  echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
-  if [ -z "$1" ]
-  then
-    echo "Path not specified to find_maven_basedir"
-    return 1
-  fi
-
-  basedir="$1"
-  wdir="$1"
-  while [ "$wdir" != '/' ] ; do
-    if [ -d "$wdir"/.mvn ] ; then
-      basedir=$wdir
-      break
-    fi
-    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
-    if [ -d "${wdir}" ]; then
-      wdir=$(cd "$wdir/.." || exit 1; pwd)
-    fi
-    # end of workaround
-  done
-  printf '%s' "$(cd "$basedir" || exit 1; pwd)"
-}
-
-# concatenates all lines of a file
-concat_lines() {
-  if [ -f "$1" ]; then
-    # Remove \r in case we run on Windows within Git Bash
-    # and check out the repository with auto CRLF management
-    # enabled. Otherwise, we may read lines that are delimited with
-    # \r\n and produce $'-Xarg\r' rather than -Xarg due to word
-    # splitting rules.
-    tr -s '\r\n' ' ' < "$1"
-  fi
-}
-
-log() {
-  if [ "$MVNW_VERBOSE" = true ]; then
-    printf '%s\n' "$1"
-  fi
-}
-
-BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
-if [ -z "$BASE_DIR" ]; then
-  exit 1;
-fi
-
-MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
-log "$MAVEN_PROJECTBASEDIR"
-
-##########################################################################################
-# Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
-# This allows using the maven wrapper in projects that prohibit checking in 
binary data.
-##########################################################################################
-wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
-if [ -r "$wrapperJarPath" ]; then
-    log "Found $wrapperJarPath"
-else
-    log "Couldn't find $wrapperJarPath, downloading it ..."
-
-    if [ -n "$MVNW_REPOURL" ]; then
-      
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
-    else
-      
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
-    fi
-    while IFS="=" read -r key value; do
-      # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
-      safeValue=$(echo "$value" | tr -d '\r')
-      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
-      esac
-    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-    log "Downloading from: $wrapperUrl"
-
-    if $cygwin; then
-      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
-    fi
-
-    if command -v wget > /dev/null; then
-        log "Found wget ... using wget"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        else
-            wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        log "Found curl ... using curl"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
-        else
-            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o 
"$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
-        fi
-    else
-        log "Falling back to using Java to download"
-        
javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
-        
javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaSource=$(cygpath --path --windows "$javaSource")
-          javaClass=$(cygpath --path --windows "$javaClass")
-        fi
-        if [ -e "$javaSource" ]; then
-            if [ ! -e "$javaClass" ]; then
-                log " - Compiling MavenWrapperDownloader.java ..."
-                ("$JAVA_HOME/bin/javac" "$javaSource")
-            fi
-            if [ -e "$javaClass" ]; then
-                log " - Running MavenWrapperDownloader.java ..."
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader 
"$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
-            fi
-        fi
-    fi
-fi
-##########################################################################################
-# End of extension
-##########################################################################################
-
-# If specified, validate the SHA-256 sum of the Maven wrapper jar file
-wrapperSha256Sum=""
-while IFS="=" read -r key value; do
-  case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
-  esac
-done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-if [ -n "$wrapperSha256Sum" ]; then
-  wrapperSha256Result=false
-  if command -v sha256sum > /dev/null; then
-    if echo "$wrapperSha256Sum  $wrapperJarPath" | sha256sum -c > /dev/null 
2>&1; then
-      wrapperSha256Result=true
-    fi
-  elif command -v shasum > /dev/null; then
-    if echo "$wrapperSha256Sum  $wrapperJarPath" | shasum -a 256 -c > 
/dev/null 2>&1; then
-      wrapperSha256Result=true
-    fi
-  else
-    echo "Checksum validation was requested but neither 'sha256sum' or 
'shasum' are available."
-    echo "Please install either command, or disable validation by removing 
'wrapperSha256Sum' from your maven-wrapper.properties."
-    exit 1
-  fi
-  if [ $wrapperSha256Result = false ]; then
-    echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper 
might be compromised." >&2
-    echo "Investigate or delete $wrapperJarPath to attempt a clean download." 
>&2
-    echo "If you updated your Maven version, you need to update the specified 
wrapperSha256Sum property." >&2
-    exit 1
-  fi
-fi
-
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") 
$MAVEN_OPTS"
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
-  [ -n "$JAVA_HOME" ] &&
-    JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
-  [ -n "$CLASSPATH" ] &&
-    CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
-  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
-    MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
-fi
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-# shellcheck disable=SC2086 # safe args
-exec "$JAVACMD" \
-  $MAVEN_OPTS \
-  $MAVEN_DEBUG_OPTS \
-  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
-  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
-  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/karavan-web/karavan-infinispan/mvnw.cmd 
b/karavan-web/karavan-infinispan/mvnw.cmd
deleted file mode 100644
index f80fbad3..00000000
--- a/karavan-web/karavan-infinispan/mvnw.cmd
+++ /dev/null
@@ -1,205 +0,0 @@
-@REM 
----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements.  See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership.  The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License.  You may obtain a copy of the License at
-@REM
-@REM    http://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied.  See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM 
----------------------------------------------------------------------------
-
-@REM 
----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.2.0
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM     e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM 
----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM set title of command window
-title %0
-@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd 
ending
-if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" 
%*
-if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" 
%*
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another 
setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-@REM Find the project base dir, i.e. the directory that contains the folder 
".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto 
endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do 
set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-set 
WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
-
-FOR /F "usebackq tokens=1,2 delims==" %%A IN 
("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
-)
-
-@REM Extension to allow automatically downloading the maven-wrapper.jar from 
Maven-central
-@REM This allows using the maven wrapper in projects that prohibit checking in 
binary data.
-if exist %WRAPPER_JAR% (
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Found %WRAPPER_JAR%
-    )
-) else (
-    if not "%MVNW_REPOURL%" == "" (
-        SET 
WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
-    )
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Couldn't find %WRAPPER_JAR%, downloading it ...
-        echo Downloading from: %WRAPPER_URL%
-    )
-
-    powershell -Command "&{"^
-               "$webclient = new-object System.Net.WebClient;"^
-               "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and 
[string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
-               "$webclient.Credentials = new-object 
System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
-               "}"^
-               "[Net.ServicePointManager]::SecurityProtocol = 
[Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', 
'%WRAPPER_JAR%')"^
-               "}"
-    if "%MVNW_VERBOSE%" == "true" (
-        echo Finished downloading %WRAPPER_JAR%
-    )
-)
-@REM End of extension
-
-@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
-SET WRAPPER_SHA_256_SUM=""
-FOR /F "usebackq tokens=1,2 delims==" %%A IN 
("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
-    IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
-)
-IF NOT %WRAPPER_SHA_256_SUM%=="" (
-    powershell -Command "&{"^
-       "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm 
SHA256).Hash.ToLower();"^
-       "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
-       "  Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your 
Maven wrapper might be compromised.';"^
-       "  Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean 
download.';"^
-       "  Write-Output 'If you updated your Maven version, you need to update 
the specified wrapperSha256Sum property.';"^
-       "  exit 1;"^
-       "}"^
-       "}"
-    if ERRORLEVEL 1 goto error
-)
-
-@REM Provide a "standardized" way to retrieve the CLI args that will
-@REM work with both Windows and non-Windows executions.
-set MAVEN_CMD_LINE_ARGS=%*
-
-%MAVEN_JAVA_EXE% ^
-  %JVM_CONFIG_MAVEN_PROPS% ^
-  %MAVEN_OPTS% ^
-  %MAVEN_DEBUG_OPTS% ^
-  -classpath %WRAPPER_JAR% ^
-  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
-  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd 
ending
-if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
-if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%"=="on" pause
-
-if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
-
-cmd /C exit /B %ERROR_CODE%
diff --git a/karavan-web/karavan-infinispan/pom.xml 
b/karavan-web/karavan-infinispan/pom.xml
deleted file mode 100644
index d53524f7..00000000
--- a/karavan-web/karavan-infinispan/pom.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-         http://www.apache.org/licenses/LICENSE-2.0
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd";
-         xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>karavan-infinispan</artifactId>
-    <packaging>jar</packaging>
-    <parent>
-        <groupId>org.apache.camel.karavan</groupId>
-        <artifactId>karavan-web</artifactId>
-        <version>4.0.0-RC2</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-vertx</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-jackson</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-infinispan-client</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-fault-tolerance</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-health</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.rest-assured</groupId>
-            <artifactId>rest-assured</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>application.properties</include>
-                    <include>**/**.xml</include>
-                </includes>
-            </resource>
-            <resource>
-                <directory>target/classes/proto</directory>
-                <filtering>true</filtering>
-                <includes>
-                    <include>karavan.proto</include>
-                </includes>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>io.smallrye</groupId>
-                <artifactId>jandex-maven-plugin</artifactId>
-                <version>${jandex-maven-plugin-version}</version>
-                <executions>
-                    <execution>
-                        <id>make-index</id>
-                        <goals>
-                            <goal>jandex</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>${quarkus.platform.group-id}</groupId>
-                <artifactId>quarkus-maven-plugin</artifactId>
-                <version>${quarkus.platform.version}</version>
-                <extensions>true</extensions>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>build</goal>
-                            <goal>generate-code</goal>
-                            <goal>generate-code-tests</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${compiler-plugin.version}</version>
-                <configuration>
-                    <parameters>${maven.compiler.parameters}</parameters>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>${surefire-plugin.version}</version>
-                <configuration>
-                    <systemPropertyVariables>
-                        
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
-                        <maven.home>${maven.home}</maven.home>
-                    </systemPropertyVariables>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-    <repositories>
-        <repository>
-            <id>apache.snapshots</id>
-            <name>Apache Development Snapshot Repository</name>
-            
<url>https://repository.apache.org/content/repositories/snapshots/</url>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-            </snapshots>
-        </repository>
-    </repositories>
-</project>
diff --git 
a/karavan-web/karavan-infinispan/src/main/resources/application.properties 
b/karavan-web/karavan-infinispan/src/main/resources/application.properties
deleted file mode 100644
index cfc20af0..00000000
--- a/karavan-web/karavan-infinispan/src/main/resources/application.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-karavan.infinispan.username=admin
-karavan.infinispan.password=password
-karavan.infinispan.hosts=localhost:11222
-
-quarkus.infinispan-client.devservices.enabled=true
-quarkus.infinispan-client.devservices.service-name=infinispan
-quarkus.infinispan-client.devservices.image-name=quay.io/infinispan/server:14.0.6.Final
-quarkus.infinispan-client.devservices.port=11222
-quarkus.infinispan-client.health.enabled=false
-
-# Infinispan client intelligence
-# Use BASIC as a Docker for Mac workaround
-quarkus.infinispan-client.client-intelligence=BASIC
diff --git 
a/karavan-web/karavan-infinispan/src/main/resources/cache/command-cache-config.xml
 
b/karavan-web/karavan-infinispan/src/main/resources/cache/command-cache-config.xml
deleted file mode 100644
index 27481642..00000000
--- 
a/karavan-web/karavan-infinispan/src/main/resources/cache/command-cache-config.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<distributed-cache name="%s" mode="SYNC">
-    <encoding media-type="application/x-protostream"/>
-    <locking isolation="REPEATABLE_READ"/>
-    <groups enabled="true"/>
-    <memory max-count="100000" when-full="REMOVE"/>
-</distributed-cache>
\ No newline at end of file


Reply via email to