diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..cb10675c49a239d953c3ef9a232094fda1587788
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+# Common Library for OZG-Cloud Applications
+
+## Changelog
+
+### 4.0.0
+* Update to Spring-Boot 3.2 / Spring 6.1
+* Update to Java 21
+* fixed dependencies for jjwt
+* Umstellung auf io.github.git-commit-id git-commit-id-maven-plugin
diff --git a/ozgcloud-common-dependencies/pom.xml b/ozgcloud-common-dependencies/pom.xml
index 281dd8d9ce2ac67a718a8d5a73671c73e8c2696d..d40b1b97758c56dedecf93491f6a03374c5e3648 100644
--- a/ozgcloud-common-dependencies/pom.xml
+++ b/ozgcloud-common-dependencies/pom.xml
@@ -31,7 +31,7 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common</artifactId>
-		<version>3.1.0-SNAPSHOT</version>
+		<version>4.0.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>ozgcloud-common-dependencies</artifactId>
@@ -40,16 +40,15 @@
 	<description>Dependenencies management for ozgcloud projects</description>
 
 	<properties>
-		<vorgang-manager.version>2.0.0-SNAPSHOT</vorgang-manager.version>
-		<license.version>1.8.0</license.version>
+		<vorgang-manager.version>2.0.0</vorgang-manager.version>
+		<license.version>1.3.0</license.version>
 
-		<java.version>17</java.version>
-		<maven.compiler.source>17</maven.compiler.source>
-		<maven.compiler.target>17</maven.compiler.target>
+		<maven.compiler.source>${java.version}</maven.compiler.source>
+		<maven.compiler.target>${java.version}</maven.compiler.target>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
-		<spring-boot.version>3.1.6</spring-boot.version>
-		<spring.version>6.0.14</spring.version>
+		<spring-boot.version>3.2.0</spring-boot.version>
+		<spring.version>6.1.1</spring.version>
 
 		<grpc.spring-boot-starter.version>5.0.0</grpc.spring-boot-starter.version>
 
@@ -61,10 +60,10 @@
 		<protoc-jar-plugin.version>3.11.4</protoc-jar-plugin.version>
 
 		<protobuf.version>3.25.1</protobuf.version>
-		<protoc-gen.version>1.59.0</protoc-gen.version>
+		<protoc-gen.version>1.60.0</protoc-gen.version>
 
 		<mapstruct.version>1.5.5.Final</mapstruct.version>
-		<commons-io.version>2.15.0</commons-io.version>
+		<commons-io.version>2.15.1</commons-io.version>
 		<commons-beanutils.version>1.9.4</commons-beanutils.version>
 		<commons-lang3.version>3.14.0</commons-lang3.version>
 		<commons-collections.version>4.4</commons-collections.version>
@@ -252,19 +251,8 @@
 				<version>${jjwt.version}</version>
 				<scope>runtime</scope>
 			</dependency>
-			<!-- TODO legacy - pleace remove -->
-			<dependency>
-				<groupId>io.jsonwebtoken</groupId>
-				<artifactId>jjwt</artifactId>
-				<version>0.9.1</version>
-			</dependency>
 
 			<!-- APIs -->
-			<dependency>
-				<groupId>jakarta.annotation</groupId>
-				<artifactId>jakarta.annotation-api</artifactId>
-				<version>${jakarta.version}</version>
-			</dependency>
 			<dependency>
 				<groupId>jakarta.interceptor</groupId>
 				<artifactId>jakarta.interceptor-api</artifactId>
diff --git a/ozgcloud-common-lib/pom.xml b/ozgcloud-common-lib/pom.xml
index 023d5d4c9138d2c27bbbbd027783348a78de3625..0d80e8a8f8e4632ae9950235340cf4bcd33dd1dd 100644
--- a/ozgcloud-common-lib/pom.xml
+++ b/ozgcloud-common-lib/pom.xml
@@ -27,18 +27,19 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
+	
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common</artifactId>
-		<version>3.1.0-SNAPSHOT</version>
+		<version>4.0.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>ozgcloud-common-lib</artifactId>
 	<name>OzgCloud Common - Shared Lib</name>
 
 	<properties>
-		<maven.compiler.source>17</maven.compiler.source>
-		<maven.compiler.target>17</maven.compiler.target>
+		<maven.compiler.source>${java.version}</maven.compiler.source>
+		<maven.compiler.target>${java.version}</maven.compiler.target>
 		<mockito.version>5.7.0</mockito.version>
 		
 	</properties>
diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java
index 2ff7cecb6ac8ea59e2f3b7440fa31711487a7340..63027ea6ee1bfda1f9c8dc2259f51ccf500c706a 100644
--- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java
+++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java
@@ -27,8 +27,6 @@ import static org.assertj.core.api.Assertions.*;
 
 import org.junit.jupiter.api.Test;
 
-import de.ozgcloud.common.errorhandling.ExceptionUtil;
-
 class ExceptionUtilTest {
 
 	@Test
diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java
index e173d6e2e3ff416c7cbbe0c93af3317b4e1d4b15..01b398cecb8582d6ed7dc00051953dcfc498b165 100644
--- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java
+++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java
@@ -29,8 +29,6 @@ import org.junit.jupiter.api.Test;
 
 import com.thedeanda.lorem.LoremIpsum;
 
-import de.ozgcloud.common.errorhandling.TechnicalException;
-
 class TechnicalExceptionTest {
 
 	private final String MESSAGE = LoremIpsum.getInstance().getWords(5);
diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java
index f129f1539bab3b07c6c39ebc314ed92003c22545..0107dfc4b1f46d030b8d86e9fc95f1c2efd079a9 100644
--- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java
+++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java
@@ -7,7 +7,6 @@ import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 
-import de.ozgcloud.common.grpc.GrpcUtil;
 import io.grpc.Metadata;
 
 class GrpcUtilTest {
diff --git a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java
index c1f1c025c2d9752ed03459018c515bad717d9680..775f1107c1b9bcbc303a2e040e4d20a1ad6e875c 100644
--- a/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java
+++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java
@@ -23,7 +23,11 @@
  */
 package de.ozgcloud.common.logging;
 
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
 import jakarta.interceptor.InvocationContext;
+
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -32,12 +36,6 @@ import org.junit.jupiter.api.Test;
 import org.mockito.Mock;
 import org.mockito.MockedStatic;
 
-import de.ozgcloud.common.logging.AspectLoggingUtils;
-import de.ozgcloud.common.logging.OzgCloudLoggingInterceptor;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
 class OzgCloudLoggingInterceptorTest {
 
 	private final OzgCloudLoggingInterceptor interceptor = new OzgCloudLoggingInterceptor();
diff --git a/ozgcloud-common-parent/pom.xml b/ozgcloud-common-parent/pom.xml
index 675d64697ff4a8a2a482a28e588df5a17eea85da..a9b9860f866b3d2ecad72209ac3307f285713335 100644
--- a/ozgcloud-common-parent/pom.xml
+++ b/ozgcloud-common-parent/pom.xml
@@ -31,28 +31,28 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>3.1.6</version>
+		<version>3.2.0</version>
 		<relativePath />
 	</parent>
 
 	<groupId>de.ozgcloud.common</groupId>
 	<artifactId>ozgcloud-common-parent</artifactId>
-	<version>3.1.0-SNAPSHOT</version>
+	<version>4.0.0-SNAPSHOT</version>
 
 	<packaging>pom</packaging>
 	<name>OzgCloud Common - Parent</name>
 	<description>Parent for all OzgCloud spring boot projects</description>
 
 	<properties>
-		<java.version>17</java.version>
+		<java.version>21</java.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
-		<ozgcloud-common.version>3.0.0</ozgcloud-common.version>
-		<ozgcloud.license.version>1.6.0</ozgcloud.license.version>
+		<ozgcloud-common.version>4.0.0-SNAPSHOT</ozgcloud-common.version>
+		<ozgcloud.license.version>1.3.0</ozgcloud.license.version>
 
 		<mapstruct.version>1.5.5.Final</mapstruct.version>
-		<spring-boot.version>3.1.6</spring-boot.version>
+		<spring-boot.version>3.2.0</spring-boot.version>
 
 		<!-- plugins -->
 		<maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version>
@@ -63,8 +63,8 @@
 		<license.plugin.version>4.1</license.plugin.version>
 		<rewrite.plugin.version>4.38.2</rewrite.plugin.version>
 
-		<!--overriden to fix security issue CVE-2022-1471 -->
-		<snakeyaml.version>2.2</snakeyaml.version>
+		<!--overriden for issue CVE-2021-26291-->
+		<git-commit-id-maven-plugin.version>7.0.0.</git-commit-id-maven-plugin.version>
 	</properties>
 
 	<dependencyManagement>
@@ -97,6 +97,7 @@
 		<dependency>
 			<groupId>de.ozgcloud.common</groupId>
 			<artifactId>ozgcloud-common-test</artifactId>
+			<scope>test</scope>
 		</dependency>
 		<dependency>
 			<groupId>de.ozgcloud.common</groupId>
@@ -274,8 +275,9 @@
 					</executions>
 				</plugin>
 				<plugin>
-					<groupId>pl.project13.maven</groupId>
-					<artifactId>git-commit-id-plugin</artifactId>
+					<groupId>io.github.git-commit-id</groupId>
+					<artifactId>git-commit-id-maven-plugin</artifactId>
+					<version>${git-commit-id-maven-plugin.version}</version>
 					<configuration>
 						<offline>true</offline>
 					</configuration>
@@ -338,13 +340,13 @@
 				</plugin>
 			</plugins>
 		</pluginManagement>
-		
+
 		<plugins>
 			<plugin>
 				<groupId>org.openrewrite.maven</groupId>
 				<artifactId>rewrite-maven-plugin</artifactId>
 				<version>${rewrite.plugin.version}</version>
-		    </plugin>
+			</plugin>
 		</plugins>
 	</build>
 
diff --git a/ozgcloud-common-pdf/pom.xml b/ozgcloud-common-pdf/pom.xml
index 06854af0d8f1f9d63406082e350397e5db9daba9..11b4241cef4a15297f04a05ba2d9a1eb910864d9 100644
--- a/ozgcloud-common-pdf/pom.xml
+++ b/ozgcloud-common-pdf/pom.xml
@@ -23,34 +23,23 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
+
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
-		<artifactId>ozgcloud-common</artifactId>
-		<version>3.1.0-SNAPSHOT</version>
+		<artifactId>ozgcloud-common-dependencies</artifactId>
+		<version>4.0.0-SNAPSHOT</version>
+		<relativePath>../ozgcloud-common-dependencies</relativePath>
 	</parent>
 	<artifactId>ozgcloud-common-pdf</artifactId>
 	<name>OzgCloud Common - PDF Export library</name>
 
 	<properties>
-		<!-- TODO move to ozgcloud-common-dependencies -->
-		<jakarta.cdi-api.version>4.0.1</jakarta.cdi-api.version>
-		<fop.version>2.7</fop.version>
+		<fop.version>2.9</fop.version>
 	</properties>
 
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>de.ozgcloud.common</groupId>
-				<artifactId>ozgcloud-common-dependencies</artifactId>
-				<version>${ozgcloud-common.version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-
 	<dependencies>
 		<dependency>
 			<groupId>de.ozgcloud.common</groupId>
@@ -61,7 +50,6 @@
 		<dependency>
 			<groupId>jakarta.enterprise</groupId>
 			<artifactId>jakarta.enterprise.cdi-api</artifactId>
-			<version>${jakarta.cdi-api.version}</version>
 		</dependency>
 		<dependency>
 			<groupId>org.springframework</groupId>
@@ -89,7 +77,7 @@
 			<groupId>org.glassfish.jaxb</groupId>
 			<artifactId>jaxb-runtime</artifactId>
 		</dependency>
-	
+
 		<!-- dev tools -->
 		<dependency>
 			<groupId>org.projectlombok</groupId>
@@ -114,5 +102,5 @@
 			<artifactId>ozgcloud-common-test</artifactId>
 		</dependency>
 	</dependencies>
-	
+
 </project>
\ No newline at end of file
diff --git a/ozgcloud-common-test/pom.xml b/ozgcloud-common-test/pom.xml
index 8be9f3aa6ed469c3a5a751d55eabc3e54021c9ac..fb9835041eeb77bffca0d13e3a7c30cd1a4740f4 100644
--- a/ozgcloud-common-test/pom.xml
+++ b/ozgcloud-common-test/pom.xml
@@ -30,7 +30,7 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-dependencies</artifactId>
-		<version>3.1.0-SNAPSHOT</version>
+		<version>4.0.0-SNAPSHOT</version>
 		<relativePath>../ozgcloud-common-dependencies</relativePath>
 	</parent>
 
diff --git a/pom.xml b/pom.xml
index 3881f3f82ac8a95ae82ce9f09e6d7d5e6ce9ee3c..9f71426d9e71045bcf5571ff5bad3d8b41cf8cff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
 	<groupId>de.ozgcloud.common</groupId>
 	<artifactId>ozgcloud-common</artifactId>
-	<version>3.1.0-SNAPSHOT</version>
+	<version>4.0.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<name>OzgCloud Common</name>
@@ -45,12 +45,12 @@
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
-		<ozgcloud-common.version>3.0.0</ozgcloud-common.version>
-		<ozgcloud.license.version>1.6.0</ozgcloud.license.version>
+		<ozgcloud-common.version>4.0.0-SNAPSHOT</ozgcloud-common.version>
+		<ozgcloud.license.version>1.3.0</ozgcloud.license.version>
 
-		<java.version>17</java.version>
-		<maven.compiler.target>17</maven.compiler.target>
-		<maven.compiler.source>17</maven.compiler.source>
+		<java.version>21</java.version>
+		<maven.compiler.target>${java.version}</maven.compiler.target>
+		<maven.compiler.source>${java.version}</maven.compiler.source>
 	</properties>
 
 	<distributionManagement>