From 04b40eab88ce86898e43ccb9f10318a3fbab2390 Mon Sep 17 00:00:00 2001 From: kalman03 Date: Fri, 28 May 2021 21:47:05 +0800 Subject: [PATCH 1/4] annotation cannt be serializable,so change to String --- .../definition/ServiceDefinitionBuilder.java | 16 ++++++++++++++-- .../definition/model/MethodDefinition.java | 8 ++++---- .../definition/model/ServiceDefinition.java | 6 +++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java index 7e3aa94539f..921c8bda1e9 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java @@ -27,6 +27,7 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -65,7 +66,7 @@ public static void build(T sd, final Class inte sd.setCanonicalName(interfaceClass.getCanonicalName()); sd.setCodeSource(ClassUtils.getCodeSource(interfaceClass)); Annotation[] classAnnotations = interfaceClass.getAnnotations(); - sd.setAnnotations(classAnnotations == null ? Collections.emptyList() : Arrays.asList(classAnnotations)); + sd.setAnnotations(annotationToStringList(classAnnotations)); TypeDefinitionBuilder builder = new TypeDefinitionBuilder(); List methods = ClassUtils.getPublicNonStaticMethods(interfaceClass); @@ -74,7 +75,7 @@ public static void build(T sd, final Class inte md.setName(method.getName()); Annotation[] methodAnnotations = method.getAnnotations(); - md.setAnnotations(methodAnnotations == null ? Collections.emptyList() : Arrays.asList(methodAnnotations)); + md.setAnnotations(annotationToStringList(methodAnnotations)); // Process parameter types. Class[] paramTypes = method.getParameterTypes(); @@ -97,6 +98,17 @@ public static void build(T sd, final Class inte sd.setTypes(builder.getTypeDefinitions()); } + private static List annotationToStringList(Annotation[] annotations) { + List list = new ArrayList<>(); + if (annotations == null) { + return list; + } + for (Annotation annotation : annotations) { + list.add(annotation.toString()); + } + return list; + } + /** * Describe a Java interface in Json schema. * diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java index f409151adda..e4fb8d8bc15 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java @@ -36,8 +36,8 @@ public class MethodDefinition implements Serializable { private String[] parameterTypes; private String returnType; private List parameters; - private List annotations; - + private List annotations; + public String getName() { return name; } @@ -73,14 +73,14 @@ public void setReturnType(String returnType) { this.returnType = formatType(returnType); } - public List getAnnotations() { + public List getAnnotations() { if (annotations == null) { annotations = Collections.emptyList(); } return annotations; } - public void setAnnotations(List annotations) { + public void setAnnotations(List annotations) { this.annotations = annotations; } diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java index deb26e22557..e0292ea3846 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java @@ -32,7 +32,7 @@ public class ServiceDefinition implements Serializable { private String codeSource; private List methods; private List types; - private List annotations; + private List annotations; public String getCanonicalName() { return canonicalName; @@ -56,7 +56,7 @@ public List getTypes() { return types; } - public List getAnnotations() { + public List getAnnotations() { if (annotations == null) { annotations = Collections.emptyList(); } @@ -83,7 +83,7 @@ public void setTypes(List types) { this.types = types; } - public void setAnnotations(List annotations) { + public void setAnnotations(List annotations) { this.annotations = annotations; } From 8483a44050a9b71a1876cfa4682705a9dd9b112a Mon Sep 17 00:00:00 2001 From: kalman03 Date: Fri, 28 May 2021 22:03:58 +0800 Subject: [PATCH 2/4] delete unuse import --- .../apache/dubbo/metadata/definition/model/MethodDefinition.java | 1 - 1 file changed, 1 deletion(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java index e4fb8d8bc15..bc172e74a10 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java @@ -17,7 +17,6 @@ package org.apache.dubbo.metadata.definition.model; import java.io.Serializable; -import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; From f564d3239cdc625546b3348042a2e7b92b7f8a33 Mon Sep 17 00:00:00 2001 From: kalman03 Date: Tue, 22 Jun 2021 16:01:10 +0800 Subject: [PATCH 3/4] fix checkstyle --- .../dubbo/metadata/definition/model/MethodDefinition.java | 6 +++--- .../dubbo/metadata/definition/model/ServiceDefinition.java | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java index bc172e74a10..e5ba7362a59 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/MethodDefinition.java @@ -16,6 +16,9 @@ */ package org.apache.dubbo.metadata.definition.model; +import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType; +import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes; + import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; @@ -23,9 +26,6 @@ import java.util.List; import java.util.Objects; -import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType; -import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes; - /** * 2015/1/27. */ diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java index e0292ea3846..bf0e172681b 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/model/ServiceDefinition.java @@ -17,7 +17,6 @@ package org.apache.dubbo.metadata.definition.model; import java.io.Serializable; -import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Collections; import java.util.List; From ea475cedc6193cf1571dfdf6d7b25117cd263846 Mon Sep 17 00:00:00 2001 From: kalman03 Date: Tue, 22 Jun 2021 16:28:14 +0800 Subject: [PATCH 4/4] codestyle fix --- .../dubbo/metadata/definition/ServiceDefinitionBuilder.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java index 921c8bda1e9..e89b4e7fa3b 100755 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java @@ -16,20 +16,17 @@ */ package org.apache.dubbo.metadata.definition; +import com.google.gson.Gson; import org.apache.dubbo.metadata.definition.model.FullServiceDefinition; import org.apache.dubbo.metadata.definition.model.MethodDefinition; import org.apache.dubbo.metadata.definition.model.ServiceDefinition; import org.apache.dubbo.metadata.definition.model.TypeDefinition; import org.apache.dubbo.metadata.definition.util.ClassUtils; -import com.google.gson.Gson; - import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.lang.reflect.Type; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map;