From 00a15c3c2dc18fbe1f41678659eb4c33ed8af1bc Mon Sep 17 00:00:00 2001 From: Adam Saghy Date: Thu, 17 Sep 2026 15:14:29 +0100 Subject: [PATCH] FINERACT-2842: Move away from JDK8 in avro and fineract-client --- .../org.apache.fineract.dependencies.gradle | 2 -- fineract-avro-schemas/build.gradle | 8 +------- fineract-client/build.gradle | 17 ++++++----------- fineract-client/dependencies.gradle | 1 - renovate.json | 9 +++++++-- 5 files changed, 14 insertions(+), 23 deletions(-) diff --git a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle index 26a1448a5f2..13147b2634c 100644 --- a/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle +++ b/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle @@ -149,7 +149,6 @@ dependencyManagement { // fineract client dependencies dependency "com.squareup.retrofit2:retrofit:2.12.0" dependency "com.squareup.retrofit2:retrofit-mock:2.12.0" - dependency "com.squareup.retrofit2:adapter-java8:2.12.0" dependency "com.squareup.retrofit2:adapter-rxjava2:2.12.0" dependency "com.squareup.retrofit2:adapter-rxjava3:2.12.0" dependency "com.squareup.retrofit2:adapter-guava:2.12.0" @@ -157,7 +156,6 @@ dependencyManagement { dependency "com.squareup.retrofit2:converter-jackson:2.12.0" dependency "com.squareup.retrofit2:converter-simplexml:2.12.0" dependency "com.squareup.retrofit2:converter-jaxb:2.12.0" - dependency "com.squareup.retrofit2:converter-java8:2.12.0" dependency "com.squareup.retrofit2:converter-scalars:2.12.0" dependency "com.squareup.retrofit2:converter-gson:2.12.0" dependency "com.squareup.retrofit2:converter-protobuf:2.12.0" diff --git a/fineract-avro-schemas/build.gradle b/fineract-avro-schemas/build.gradle index b9a277b201c..0378621d13b 100644 --- a/fineract-avro-schemas/build.gradle +++ b/fineract-avro-schemas/build.gradle @@ -99,13 +99,7 @@ jar { compileJava { dependsOn buildJavaSdk source = sourceSets.main.java.srcDirs - options.compilerArgs += ['-parameters', '-proc:none', '-Xlint:-options'] -} - -java { - // keep this at Java 8, not 17 - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + options.compilerArgs += ['-parameters', '-proc:none'] } tasks.withType(JavaCompile).configureEach { diff --git a/fineract-client/build.gradle b/fineract-client/build.gradle index 6aa9022dfbb..19769bc6cc7 100644 --- a/fineract-client/build.gradle +++ b/fineract-client/build.gradle @@ -254,9 +254,12 @@ tasks.named('licenseMain') { } java { - // keep this at Java 8, not 17; see https://issues.apache.org/jira/browse/FINERACT-1214 - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + // This SDK is published for external consumers, including Android apps, so it stays behind the + // project toolchain. Java 17 is the ceiling that buys us: Android 14 ships OpenJDK 17 core + // libraries, and the Android Gradle Plugin still requires/targets JDK 17. Java 21+ bytecode is + // not consumable by D8/R8. The previous Java 8 pin (FINERACT-1214) predates all of that. + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } tasks.withType(JavaCompile).configureEach { @@ -273,11 +276,3 @@ configurations { generatedCompileClasspath.extendsFrom implementation generatedRuntimeClasspath.extendsFrom runtimeClasspath } - -// The generated SDK targets Java 8; JUnit 6 (managed by the Boot 4 BOM) requires JVM 17+, -// so keep this module's test stack on the JUnit 5 line -dependencyManagement { - imports { - mavenBom 'org.junit:junit-bom:5.14.4' - } -} diff --git a/fineract-client/dependencies.gradle b/fineract-client/dependencies.gradle index a7f02ff9cd6..b71f41cda94 100644 --- a/fineract-client/dependencies.gradle +++ b/fineract-client/dependencies.gradle @@ -24,7 +24,6 @@ dependencies { implementation( 'io.swagger.core.v3:swagger-annotations-jakarta', 'com.squareup.retrofit2:retrofit', - 'com.squareup.retrofit2:adapter-java8', 'com.squareup.retrofit2:adapter-rxjava2', // TODO https://github.com/OpenAPITools/openapi-generator/issues/7758 'com.squareup.retrofit2:converter-scalars', 'com.squareup.retrofit2:converter-gson', diff --git a/renovate.json b/renovate.json index 427a982f0f2..517fe04db3d 100644 --- a/renovate.json +++ b/renovate.json @@ -7,8 +7,7 @@ "helpers:pinGitHubActionDigests" ], "ignorePaths": [ - "docs/**", - "fineract-client/**" + "docs/**" ], "ignoreDeps": [ "com.gradle.develocity" @@ -23,6 +22,12 @@ "matchPackageNames": ["org.glassfish.jaxb:jaxb-runtime"], "allowedVersions": "<=2.3.6" }, + { + "matchPackageNames": ["jakarta.annotation:jakarta.annotation-api"], + "matchFileNames": ["fineract-client/dependencies.gradle"], + "allowedVersions": "<2.0.0", + "description": "The OpenAPI Generator emits javax.annotation.Generated, which only exists in the 1.x line; 2.x+ moved it to the jakarta.annotation namespace. Unrelated to the Java baseline -- fineract-client targets Java 17." + }, { "matchPackageNames": ["com.sun.mail:jakarta.mail", "com.icegreen:greenmail-junit5"], "allowedVersions": "<=2.0.1"