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 2023/07/29 12:28:28 UTC

[dubbo] branch 3.2 updated: ProtobufTypeBuilder extension load on protobuf dependency (#12799)

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

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


The following commit(s) were added to refs/heads/3.2 by this push:
     new 25547158d2 ProtobufTypeBuilder extension load on protobuf dependency (#12799)
25547158d2 is described below

commit 25547158d2d77ac7caadcba64cf09f1ce711b7d7
Author: TomlongTK <lo...@maoyan.com>
AuthorDate: Sat Jul 29 20:28:22 2023 +0800

    ProtobufTypeBuilder extension load on protobuf dependency (#12799)
---
 .../definition/protobuf/ProtobufTypeBuilder.java     | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java b/dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java
index 2f5640ad3b..a6b4850ad6 100644
--- a/dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java
+++ b/dubbo-metadata/dubbo-metadata-definition-protobuf/src/main/java/org/apache/dubbo/metadata/definition/protobuf/ProtobufTypeBuilder.java
@@ -16,6 +16,7 @@
  */
 package org.apache.dubbo.metadata.definition.protobuf;
 
+import org.apache.dubbo.common.extension.Activate;
 import org.apache.dubbo.common.lang.Prioritized;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
@@ -37,6 +38,7 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+@Activate(onClass = "com.google.protobuf.GeneratedMessageV3")
 public class ProtobufTypeBuilder implements TypeBuilder, Prioritized {
     private final Logger logger = LoggerFactory.getLogger(getClass());
     private static final Pattern MAP_PATTERN = Pattern.compile("^java\\.util\\.Map<(\\S+), (\\S+)>$");
@@ -258,11 +260,7 @@ public class ProtobufTypeBuilder implements TypeBuilder, Prioritized {
         // Enum property has two setting method.
         // skip setXXXValue(int value)
         // parse setXXX(SomeEnum value)
-        if (methodName.endsWith("Value") && types[0] == int.class) {
-            return false;
-        }
-
-        return true;
+        return !methodName.endsWith("Value") || types[0] != int.class;
     }
 
 
@@ -289,11 +287,7 @@ public class ProtobufTypeBuilder implements TypeBuilder, Prioritized {
         }
 
         // if field name end with List, should skip
-        if (!List.class.isAssignableFrom(type)) {
-            return false;
-        }
-
-        return true;
+        return List.class.isAssignableFrom(type);
     }
 
     /**
@@ -307,10 +301,6 @@ public class ProtobufTypeBuilder implements TypeBuilder, Prioritized {
     private boolean isMapPropertySettingMethod(Method methodTemp) {
         String methodName = methodTemp.getName();
         Class[] parameters = methodTemp.getParameterTypes();
-        if (methodName.startsWith("putAll") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0])) {
-            return true;
-        }
-
-        return false;
+        return methodName.startsWith("putAll") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0]);
     }
 }