You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/06/24 08:06:55 UTC

[dubbo] branch master updated: annotation cannt be serializable, so change to String (#7908)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 99ccb57  annotation cannt be serializable,so change to String (#7908)
99ccb57 is described below

commit 99ccb57025e2b1cf56e1155a67c801702b589670
Author: 老夫正年轻 <ka...@163.com>
AuthorDate: Thu Jun 24 16:06:42 2021 +0800

    annotation cannt be serializable,so change to String (#7908)
    
    * annotation cannt be serializable,so change to String
    
    * delete unuse import
    
    * fix checkstyle
    
    * codestyle fix
    
    Co-authored-by: kalman03 <ka...@qq.com>
---
 .../definition/ServiceDefinitionBuilder.java        | 21 +++++++++++++++------
 .../metadata/definition/model/MethodDefinition.java | 15 +++++++--------
 .../definition/model/ServiceDefinition.java         |  7 +++----
 3 files changed, 25 insertions(+), 18 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 7e3aa94..e89b4e7 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,19 +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.Arrays;
-import java.util.Collections;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -65,7 +63,7 @@ public final class ServiceDefinitionBuilder {
         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<Method> methods = ClassUtils.getPublicNonStaticMethods(interfaceClass);
@@ -74,7 +72,7 @@ public final class ServiceDefinitionBuilder {
             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 +95,17 @@ public final class ServiceDefinitionBuilder {
         sd.setTypes(builder.getTypeDefinitions());
     }
 
+    private static List<String> annotationToStringList(Annotation[] annotations) {
+        List<String> 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 f409151..e5ba736 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,17 +16,16 @@
  */
 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.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 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.
  */
@@ -36,8 +35,8 @@ public class MethodDefinition implements Serializable {
     private String[] parameterTypes;
     private String returnType;
     private List<TypeDefinition> parameters;
-    private List<Annotation> annotations;
-    
+    private List<String> annotations;
+
     public String getName() {
         return name;
     }
@@ -73,14 +72,14 @@ public class MethodDefinition implements Serializable {
         this.returnType = formatType(returnType);
     }
 
-    public List<Annotation> getAnnotations() {
+    public List<String> getAnnotations() {
         if (annotations == null) {
             annotations = Collections.emptyList();
         }
         return annotations;
     }
 
-    public void setAnnotations(List<Annotation> annotations) {
+    public void setAnnotations(List<String> 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 deb26e2..bf0e172 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;
@@ -32,7 +31,7 @@ public class ServiceDefinition implements Serializable {
     private String codeSource;
     private List<MethodDefinition> methods;
     private List<TypeDefinition> types;
-    private List<Annotation> annotations;
+    private List<String> annotations;
 
     public String getCanonicalName() {
         return canonicalName;
@@ -56,7 +55,7 @@ public class ServiceDefinition implements Serializable {
         return types;
     }
 
-    public List<Annotation> getAnnotations() {
+    public List<String> getAnnotations() {
         if (annotations == null) {
             annotations = Collections.emptyList();
         }
@@ -83,7 +82,7 @@ public class ServiceDefinition implements Serializable {
         this.types = types;
     }
 
-    public void setAnnotations(List<Annotation> annotations) {
+    public void setAnnotations(List<String> annotations) {
         this.annotations = annotations;
     }