diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 95a9793bcf19dc4dfcea4d7e9060ff20c2965720..54b44d2d60556053414c64fdb810ce8451c3ab37 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -51,11 +51,11 @@ test-helm:
 
 .get-version:
   before_script:
-    - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS)
+    - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS | cut -d'-' -f1)
     - export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS)
     - export NEXUS_IMAGE_PREFIX="docker.ozg-sh.de/${PROJECT_ARTIFACTID}"
-    - export MERGE_REQUEST_TAG="MR-${CI_MERGE_REQUEST_IID}-${PROJECT_VERSION}"
-    - export SNAPSHOT_TAG="${CI_COMMIT_BRANCH}-${PROJECT_VERSION}"
+    - export MERGE_REQUEST_TAG="${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}"
+    - export SNAPSHOT_TAG="${PROJECT_VERSION}-${CI_COMMIT_BRANCH}"
 
 .publish-helm-chart:
   before_script:
@@ -169,7 +169,7 @@ push-release-image-gitlab:
   extends: .get-version
   script:
     - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
-    - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:release-${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:latest"
+    - export IMAGE_TAGS="${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG},${CI_REGISTRY_IMAGE}:latest"
     - mvn deploy -Pgitlab-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
   rules:
     - if: $CI_COMMIT_TAG
@@ -179,7 +179,7 @@ push-release-image-nexus:
   extends: .get-version
   script:
     - mvn versions:set -DnewVersion=${CI_COMMIT_TAG} $MAVEN_CLI_OPTS
-    - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:release-${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:latest"
+    - export IMAGE_TAGS="${NEXUS_IMAGE_PREFIX}:${CI_COMMIT_TAG},${NEXUS_IMAGE_PREFIX}:latest"
     - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
   rules:
     - if: $CI_COMMIT_TAG
@@ -192,7 +192,7 @@ push-release-helm-nexus:
     - !reference [.get-version, before_script]
     - !reference [.publish-helm-chart, before_script]
   script:
-    - export HELM_CHART_VERSION=${PROJECT_VERSION}
+    - export HELM_CHART_VERSION=${CI_COMMIT_TAG}
     - !reference [.publish-helm-chart, script]
   rules:
     - if: $CI_COMMIT_TAG
diff --git a/pom.xml b/pom.xml
index 8f260eea03c75c71a1502c4cd175d8c70e3b4446..a2099a449fcecc6f725476bcae6401fa98072896 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,7 +36,7 @@
 
 	<groupId>de.ozgcloud.eingang</groupId>
 	<artifactId>xta-adapter</artifactId>
-	<version>2.16.0-SNAPSHOT</version>
+	<version>2.17.0-SNAPSHOT</version>
 
 	<name>XTA-Adapter</name>
 	<description>Eingangs Adapter - XTA</description>
@@ -139,7 +139,7 @@
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
 				<configuration>
-					<mainClass>de.ozgcloud.eingang.Application</mainClass>
+					<mainClass>de.ozgcloud.eingang.xta.XtaApplication</mainClass>
 				</configuration>
 				<executions>
 					<execution>
diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index 5f233e14c2eca1effd045608f7549e390bef9c99..e2be5fd71b5d365410fa3d1c37d0967e1efc4a8a 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -1,3 +1,27 @@
+#
+# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
 {{/* vim: set filetype=mustache: */}}
 
 {{/* error check 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
diff --git a/src/main/helm/templates/xta_adapter_cronjob.yaml b/src/main/helm/templates/xta_adapter_cronjob.yaml
index 761959137f507e67d20c246ec86bc7393c52a75d..c6113194451c9bd8b1bec6ead91957fbb1329404 100644
--- a/src/main/helm/templates/xta_adapter_cronjob.yaml
+++ b/src/main/helm/templates/xta_adapter_cronjob.yaml
@@ -66,7 +66,7 @@ spec:
                 - name: ozgcloud_xta_identifiers
                   value: {{ (.Values.xta).identifiers | join "," | quote }}
                 - name: ozgcloud_xta_keystore_file
-                  value: "keystore/xta-keystore.p12"
+                  value: "file:/workspace/keystore/xta-keystore.p12"
                 - name: ozgcloud_xta_keystore_password
                   valueFrom:
                     secretKeyRef:
diff --git a/src/main/java/de/ozgcloud/eingang/xta/XtaApplication.java b/src/main/java/de/ozgcloud/eingang/xta/XtaApplication.java
new file mode 100644
index 0000000000000000000000000000000000000000..063c0cc038a68fa89fa2ba64a7bc893f5e256748
--- /dev/null
+++ b/src/main/java/de/ozgcloud/eingang/xta/XtaApplication.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.eingang.xta;
+
+import java.util.TimeZone;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import de.ozgcloud.eingang.Application;
+
+@SpringBootApplication(scanBasePackages = { "de.ozgcloud" })
+@EnableScheduling
+public class XtaApplication extends Application {
+
+	public static void main(String[] args) {
+		TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
+		var appContext = SpringApplication.run(XtaApplication.class, args);
+		SpringApplication.exit(appContext);
+	}
+}
diff --git a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
index 4d21e58b37db2c415f443a10e041d0ab97667b33..7f095f771c99194dca793da1c9aca0d934f74df2 100644
--- a/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
+++ b/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
@@ -25,7 +25,6 @@ package de.ozgcloud.eingang.xta;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationListener;
-import org.springframework.context.annotation.Profile;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.stereotype.Component;
 
@@ -34,7 +33,6 @@ import de.ozgcloud.eingang.semantik.SemantikAdapter;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
-@Profile({ "!itcase" })
 @Log4j2
 @Component
 class XtaRunner implements ApplicationListener<ContextRefreshedEvent> {
@@ -48,6 +46,7 @@ class XtaRunner implements ApplicationListener<ContextRefreshedEvent> {
 	public void onApplicationEvent(ContextRefreshedEvent event) {
 		LOG.info("Fetching XTA Messages");
 		runGetXtaMessages();
+		// shutdownService.shutdown();
 	}
 
 	void runGetXtaMessages() {
diff --git a/src/test/helm/xta_adapter_cronjob_env_test.yaml b/src/test/helm/xta_adapter_cronjob_env_test.yaml
index e247e20d6703fa518cf1eb74616e5447f4fd8a2e..789f902c2741e17b685761fc902496ce0c977586 100644
--- a/src/test/helm/xta_adapter_cronjob_env_test.yaml
+++ b/src/test/helm/xta_adapter_cronjob_env_test.yaml
@@ -78,7 +78,7 @@ tests:
           path: spec.jobTemplate.spec.template.spec.containers[0].env
           content:
             name: ozgcloud_xta_keystore_file
-            value: "keystore/xta-keystore.p12"
+            value: "file:/workspace/keystore/xta-keystore.p12"
       - contains:
           path: spec.jobTemplate.spec.template.spec.containers[0].env
           content:
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java b/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java
index 7a7760142b49480c3bdc53d1ee049ec04fce244f..cd81ff838263803704d775fe39f5cc0cc582fcde 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaApplicationTest.java
@@ -23,21 +23,19 @@
  */
 package de.ozgcloud.eingang.xta;
 
-import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ActiveProfiles;
 
-import de.ozgcloud.eingang.Application;
-
 @ActiveProfiles({ "local", "itcase" })
-@SpringBootTest(classes = Application.class)
+@SpringBootTest(classes = XtaApplication.class)
 class XtaApplicationTest {
 
 	@Test
 	void startup() {
-		// should start without exception;
+		// should start without exception
 		assertTrue(true);
 	}
 
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
index ad69220224b0e2dbf0d414344bcc8133c376cf7d..92b71131a29054468da0621fce5aeb5a5bae22da 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
@@ -44,8 +44,6 @@ import org.mockito.Captor;
 import org.mockito.Mock;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.boot.test.mock.mockito.SpyBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.test.context.ActiveProfiles;
 
@@ -58,6 +56,8 @@ import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServi
 import de.ozgcloud.vorgang.vorgang.GrpcEingang;
 import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
 import io.grpc.Channel;
+import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.springframework.test.context.bean.override.mockito.MockitoSpyBean;
 
 @SpringBootTest(classes = {
 		Application.class,
@@ -66,9 +66,9 @@ import io.grpc.Channel;
 @ActiveProfiles({ "itcase" })
 class XtaITCase {
 
-	@SpyBean
+	@MockitoSpyBean
 	private VorgangRemoteService vorgangRemoteService;
-	@MockBean
+	@MockitoBean
 	private VorgangManagerServerResolver resolver;
 
 	@Mock
@@ -83,7 +83,7 @@ class XtaITCase {
 	@Mock
 	private Channel channel;
 
-	@MockBean
+	@MockitoBean
 	private XtaRemoteService xtaRemoteService;
 
 	@Captor