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,