This is an automated email from the ASF dual-hosted git repository.

fanng pushed a commit to branch stats_job
in repository https://gitbox.apache.org/repos/asf/gravitino.git

commit 6bde30bef03921df53567ecd11a8becb59fb7074
Author: fanng <[email protected]>
AuthorDate: Thu Mar 5 11:45:36 2026 +0800

    Fix client-java Java 8/17 compatibility split
    
    - Keep clients:client-java main artifact targeting Java 8 while 
compiling/running tests with Java 17
    
    - Set test classpath target JVM to 17 to resolve :core/:server variant 
matching
    
    - Remove clients:client-java from root compatibleWithJDK8 shortcut to avoid 
forcing test runtime to Java 8
---
 build.gradle.kts                     |  1 -
 clients/client-java/build.gradle.kts | 30 ++++++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index d1b53e093e..ee9f7ed796 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -337,7 +337,6 @@ subprojects {
     if (path.startsWith(":maintenance:jobs") ||
       path.startsWith(":maintenance:optimizer-api") ||
       path.startsWith(":maintenance:gravitino-updaters") ||
-      path.startsWith(":clients:client-java") ||
       name == "api" ||
       name == "common" ||
       name == "catalog-common" ||
diff --git a/clients/client-java/build.gradle.kts 
b/clients/client-java/build.gradle.kts
index 17c6e2d7f8..04279d6e0b 100644
--- a/clients/client-java/build.gradle.kts
+++ b/clients/client-java/build.gradle.kts
@@ -16,12 +16,36 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+import org.gradle.api.attributes.java.TargetJvmVersion
+import org.gradle.api.tasks.compile.JavaCompile
+
 plugins {
   `maven-publish`
   id("java")
   id("idea")
 }
 
+java {
+  sourceCompatibility = JavaVersion.VERSION_1_8
+  targetCompatibility = JavaVersion.VERSION_1_8
+}
+
+tasks.named<JavaCompile>("compileJava") {
+  options.release.set(8)
+}
+
+tasks.named<JavaCompile>("compileTestJava") {
+  options.release.set(17)
+}
+
+val targetJvmVersionAttribute = TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE
+configurations.named("testCompileClasspath") {
+  attributes.attribute(targetJvmVersionAttribute, 17)
+}
+configurations.named("testRuntimeClasspath") {
+  attributes.attribute(targetJvmVersionAttribute, 17)
+}
+
 dependencies {
   implementation(project(":api"))
   implementation(project(":common")) {
@@ -70,6 +94,12 @@ tasks.build {
 }
 
 tasks.test {
+  javaLauncher.set(
+    javaToolchains.launcherFor {
+      languageVersion.set(JavaLanguageVersion.of(17))
+    }
+  )
+
   val skipITs = project.hasProperty("skipITs")
   if (skipITs) {
     exclude("**/integration/test/**")

Reply via email to