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

albumenj pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3 by this push:
     new 8467329b9e Native support generic service (#14573)
8467329b9e is described below

commit 8467329b9ea98f39b8f3c8462f1e6d735619a428
Author: Jermaine Hua <[email protected]>
AuthorDate: Mon Aug 26 09:45:20 2024 +0800

    Native support generic service (#14573)
    
    Signed-off-by: “JermaineHua” <[email protected]>
---
 .../ReferenceAnnotationWithAotBeanPostProcessor.java           | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-spring6/src/main/java/org/apache/dubbo/config/spring6/beans/factory/annotation/ReferenceAnnotationWithAotBeanPostProcessor.java
 
b/dubbo-config/dubbo-config-spring6/src/main/java/org/apache/dubbo/config/spring6/beans/factory/annotation/ReferenceAnnotationWithAotBeanPostProcessor.java
index ca3435eb9a..971e010e41 100644
--- 
a/dubbo-config/dubbo-config-spring6/src/main/java/org/apache/dubbo/config/spring6/beans/factory/annotation/ReferenceAnnotationWithAotBeanPostProcessor.java
+++ 
b/dubbo-config/dubbo-config-spring6/src/main/java/org/apache/dubbo/config/spring6/beans/factory/annotation/ReferenceAnnotationWithAotBeanPostProcessor.java
@@ -29,6 +29,7 @@ import 
org.apache.dubbo.config.spring6.beans.factory.aot.ReferencedMethodArgumen
 import org.apache.dubbo.config.spring6.utils.AotUtils;
 import org.apache.dubbo.rpc.service.Destroyable;
 import org.apache.dubbo.rpc.service.EchoService;
+import org.apache.dubbo.rpc.service.GenericService;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Member;
@@ -237,19 +238,19 @@ public class ReferenceAnnotationWithAotBeanPostProcessor 
extends ReferenceAnnota
             CodeBlock.Builder code = CodeBlock.builder();
             if 
(!CollectionUtils.isEmpty(this.annotatedInjectionMetadata.getFieldElements())) {
                 for (AnnotatedInjectElement referenceElement : 
this.annotatedInjectionMetadata.getFieldElements()) {
-                    
code.addStatement(generateMethodStatementForElement(targetClassName, 
referenceElement, hints));
+                    
code.addStatement(generateStatementForElement(targetClassName, 
referenceElement, hints));
                 }
             }
             if 
(!CollectionUtils.isEmpty(this.annotatedInjectionMetadata.getMethodElements())) 
{
                 for (AnnotatedInjectElement referenceElement : 
this.annotatedInjectionMetadata.getMethodElements()) {
-                    
code.addStatement(generateMethodStatementForElement(targetClassName, 
referenceElement, hints));
+                    
code.addStatement(generateStatementForElement(targetClassName, 
referenceElement, hints));
                 }
             }
             code.addStatement("return $L", INSTANCE_PARAMETER);
             return code.build();
         }
 
-        private CodeBlock generateMethodStatementForElement(
+        private CodeBlock generateStatementForElement(
                 ClassName targetClassName, AnnotatedInjectElement 
referenceElement, RuntimeHints hints) {
 
             Member member = referenceElement.getMember();
@@ -260,11 +261,12 @@ public class ReferenceAnnotationWithAotBeanPostProcessor 
extends ReferenceAnnota
                 Class<?> c = referenceElement.getInjectedType();
                 AotUtils.registerSerializationForService(c, hints);
                 hints.reflection().registerType(TypeReference.of(c), 
MemberCategory.INVOKE_PUBLIC_METHODS);
-                hints.proxies().registerJdkProxy(c, EchoService.class, 
Destroyable.class);
+                hints.proxies().registerJdkProxy(c, EchoService.class, 
Destroyable.class, GenericService.class);
                 hints.proxies()
                         .registerJdkProxy(
                                 c,
                                 EchoService.class,
+                                GenericService.class,
                                 Destroyable.class,
                                 SpringProxy.class,
                                 Advised.class,

Reply via email to