From abe6a8153c8114b627bcb9122a62cc4f42c9d8ca Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Jan 2026 05:53:58 +0000 Subject: [PATCH 1/2] Initial plan From c3e5bde51842ffad7516b0e4bbda71b8f51787f3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 1 Jan 2026 06:04:19 +0000 Subject: [PATCH 2/2] Fix Java 11+ compatibility issues for compilation - Removed deprecated jdk.nashorn.internal.ir.annotations.Immutable from ClientVersion - Replaced sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl with ParameterizedType interface - Added javax.annotation-api dependency for @PostConstruct annotation support Co-authored-by: TimmyYu <1688061+TimmyYu@users.noreply.github.com> --- core/src/test/java/com/qq/tars/TestForGenericType.java | 4 ++-- spring/tars-spring-cloud-starter/pom.xml | 5 +++++ .../src/main/java/com/qq/tars/common/ClientVersion.java | 3 --- .../src/main/java/com/qq/tars/protocol/util/TarsHelper.java | 3 +-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/core/src/test/java/com/qq/tars/TestForGenericType.java b/core/src/test/java/com/qq/tars/TestForGenericType.java index fb09da9f..7b637ccd 100644 --- a/core/src/test/java/com/qq/tars/TestForGenericType.java +++ b/core/src/test/java/com/qq/tars/TestForGenericType.java @@ -2,10 +2,10 @@ import junit.framework.Assert; import org.junit.Test; -import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -25,7 +25,7 @@ public void testGenerictype() throws InvocationTargetException, IllegalAccessExc Type type = method.getGenericReturnType(); Type type2 = method.getReturnType(); Assert.assertEquals(type2, CompletableFuture.class); - ParameterizedTypeImpl parameterizedType = (ParameterizedTypeImpl) method.getGenericReturnType(); + ParameterizedType parameterizedType = (ParameterizedType) method.getGenericReturnType(); Assert.assertEquals(parameterizedType.getActualTypeArguments()[0].getTypeName(), "java.util.List"); System.out.println(parameterizedType.getActualTypeArguments()[0].getTypeName()); System.out.println("get inner type is " + parameterizedType.getActualTypeArguments()[0]); diff --git a/spring/tars-spring-cloud-starter/pom.xml b/spring/tars-spring-cloud-starter/pom.xml index bbe9168a..8fd3339e 100644 --- a/spring/tars-spring-cloud-starter/pom.xml +++ b/spring/tars-spring-cloud-starter/pom.xml @@ -21,6 +21,11 @@ + + javax.annotation + javax.annotation-api + 1.3.2 + com.netflix.eureka eureka-client diff --git a/tars-common-api/src/main/java/com/qq/tars/common/ClientVersion.java b/tars-common-api/src/main/java/com/qq/tars/common/ClientVersion.java index bf6583f1..d1c42420 100644 --- a/tars-common-api/src/main/java/com/qq/tars/common/ClientVersion.java +++ b/tars-common-api/src/main/java/com/qq/tars/common/ClientVersion.java @@ -16,9 +16,6 @@ package com.qq.tars.common; -import jdk.nashorn.internal.ir.annotations.Immutable; - -@Immutable public final class ClientVersion { // public static final String major = "1"; diff --git a/tars-common-api/src/main/java/com/qq/tars/protocol/util/TarsHelper.java b/tars-common-api/src/main/java/com/qq/tars/protocol/util/TarsHelper.java index ee3cb49b..f7c56650 100644 --- a/tars-common-api/src/main/java/com/qq/tars/protocol/util/TarsHelper.java +++ b/tars-common-api/src/main/java/com/qq/tars/protocol/util/TarsHelper.java @@ -34,7 +34,6 @@ import com.qq.tars.protocol.tars.support.TarsMethodParameterInfo; import com.qq.tars.protocol.tars.support.TarsStructInfo; import com.qq.tars.protocol.tars.support.TarsStrutPropertyInfo; -import sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl; import java.lang.annotation.Annotation; import java.lang.reflect.Array; @@ -477,7 +476,7 @@ public static TarsMethodInfo getMethodInfo(Class api, Method method, String o Type returnOriginType = method.getReturnType(); if (returnOriginType == CompletableFuture.class) { - ParameterizedTypeImpl parameterizedType = (ParameterizedTypeImpl) method.getGenericReturnType(); + ParameterizedType parameterizedType = (ParameterizedType) method.getGenericReturnType(); TarsMethodParameterInfo returnInfo = new TarsMethodParameterInfo(); returnInfo.setStamp(TarsHelper.getParameterStamp(parameterizedType.getActualTypeArguments()[0]));//CompletableFuture use gengeric inner type class returnInfo.setName("result");