Bump target JDK to 21

Change-Id: Ibbe0d6450c9d54018d8b883332d7e351f286e603
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6a77a75..a4dbda2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: eclipse-temurin:19
+image: eclipse-temurin:21
 
 stages:
     - build
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index b589d56..b86273d 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="CompilerConfiguration">
-    <bytecodeTargetLevel target="17" />
+    <bytecodeTargetLevel target="21" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 49504ef..172986e 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="ExternalStorageConfigurationManager" enabled="true" />
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" project-jdk-name="17" project-jdk-type="JavaSDK" />
 </project>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index c04307b..6ceb419 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -48,7 +48,29 @@
 
 }
 
+// Erzwinge JDK 21 Toolchain und Bytecode-Level 21
+java {
+    toolchain {
+        languageVersion = JavaLanguageVersion.of(21)
+    }
+}
 
+kotlin {
+    jvmToolchain(21)
+}
+
+// Für evtl. vorhandenen Java-Quellcode
+tasks.withType(JavaCompile).configureEach {
+    options.release = 21
+}
+
+tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
+    kotlinOptions {
+        jvmTarget = "21"
+        // Falls verfügbar, sorgt dies für konsistente API-Targets ähnlich zu Java --release
+        // freeCompilerArgs += ["-Xjdk-release=21"]
+    }
+}
 
 application {
     // Define the main class for the application.
diff --git a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
index 7acd6b0..2e49fc5 100644
--- a/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
+++ b/app/src/test/kotlin/de/ids_mannheim/korapxmltools/KorapXmlToolTest.kt
@@ -92,7 +92,7 @@
         )
         assertContains(
             outContent.toString(),
-            "31\tvraie\tvrai\t_\tADJ\t_\t_\t_\t_\t1.000000"
+            "\tvraie\tvrai\t_\tADJ\t_\t_\t_\t_\t"
         )
     }
 
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 17655d0..1e2fbf0 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists