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

songxiaosheng pushed a commit to branch 3.1.0
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git


The following commit(s) were added to refs/heads/3.1.0 by this push:
     new ed15ea2  upgrade dubbo to the 3.1 latest version in 3.1.0 branch (#293)
ed15ea2 is described below

commit ed15ea22353d2563cc2b41795efdf36e5313b50e
Author: aofall <[email protected]>
AuthorDate: Tue Mar 19 20:55:37 2024 +0800

    upgrade dubbo to the 3.1 latest version in 3.1.0 branch (#293)
    
    * upgrade dubbo to the 3.1.x the latest version
    
    * fix(#207): Dubbo Redis register support select databases
    
    (cherry picked from commit 0f42ecd6b0188282da3366ad4056c8e5e12d9ffe)
---
 dubbo-extensions-dependencies-bom/pom.xml             |  2 +-
 .../remoting/redis/jedis/ClusterRedisClient.java      |  5 ++++-
 .../dubbo/remoting/redis/jedis/MonoRedisClient.java   |  6 ++----
 .../remoting/redis/jedis/SentinelRedisClient.java     |  8 ++++++--
 .../apache/dubbo/rpc/rocketmq/RocketMQInvoker.java    |  2 +-
 .../dubbo/rpc/rocketmq/codec/RocketMQCodec.java       |  2 +-
 .../dubbo-serialization-fury/pom.xml                  |  3 ---
 .../common/serialize/gson/GsonJsonObjectOutput.java   |  4 ++--
 .../serialize/kryo/optimized/KryoObjectOutput2.java   |  2 +-
 .../common/serialize/msgpack/MsgpackObjectOutput.java |  2 +-
 .../support/GenericProtobufJsonObjectOutput.java      | 19 +++++++++++--------
 .../protobuf/support/GenericProtobufObjectOutput.java | 18 +++++++++++-------
 12 files changed, 41 insertions(+), 32 deletions(-)

diff --git a/dubbo-extensions-dependencies-bom/pom.xml 
b/dubbo-extensions-dependencies-bom/pom.xml
index ecca731..09e110d 100644
--- a/dubbo-extensions-dependencies-bom/pom.xml
+++ b/dubbo-extensions-dependencies-bom/pom.xml
@@ -90,7 +90,7 @@
 
     <properties>
         <revision>1.0.5-SNAPSHOT</revision>
-        <dubbo.version>3.1.2</dubbo.version>
+        <dubbo.version>3.1.11</dubbo.version>
         <spring.version>5.2.9.RELEASE</spring.version>
         <spring-boot.version>2.4.1</spring-boot.version>
 
diff --git 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
index e0e4c14..fb5f4ff 100644
--- 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
+++ 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/ClusterRedisClient.java
@@ -45,12 +45,15 @@ public class ClusterRedisClient extends AbstractRedisClient 
implements RedisClie
 
     private static final int DEFAULT_MAX_ATTEMPTS = 5;
 
-    private JedisCluster jedisCluster;
+    private final JedisCluster jedisCluster;
     private Pattern COLON_SPLIT_PATTERN = Pattern.compile("\\s*[:]+\\s*");
 
     public ClusterRedisClient(URL url) {
         super(url);
         Set<HostAndPort> nodes = getNodes(url);
+        if (url.hasParameter("db.index")) {
+            logger.warn("Redis Cluster does not support multiple databases, 
the SELECT command is not allowed. So the setting of db.index will not be 
effect");
+        }
         jedisCluster = new JedisCluster(nodes, 
url.getParameter("connection.timeout", DEFAULT_TIMEOUT),
                 url.getParameter("so.timeout", DEFAULT_SO_TIMEOUT), 
url.getParameter("max.attempts", DEFAULT_MAX_ATTEMPTS),
                 url.getPassword(), getConfig());
diff --git 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
index 864f18e..07cb9ed 100644
--- 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
+++ 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/MonoRedisClient.java
@@ -35,14 +35,12 @@ import static 
org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
 public class MonoRedisClient extends AbstractRedisClient implements 
RedisClient {
     private static final Logger logger = 
LoggerFactory.getLogger(MonoRedisClient.class);
 
-    private static final String START_CURSOR = "0";
-
-    private JedisPool jedisPool;
+    private final JedisPool jedisPool;
 
     public MonoRedisClient(URL url) {
         super(url);
         jedisPool = new JedisPool(getConfig(), url.getHost(), url.getPort(),
-                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), 
url.getPassword());
+                url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), 
url.getPassword(), url.getParameter("db.index", 0));
     }
 
     @Override
diff --git 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
index 6a10bf9..137a379 100644
--- 
a/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
+++ 
b/dubbo-remoting-extensions/dubbo-remoting-redis/src/main/java/org/apache/dubbo/remoting/redis/jedis/SentinelRedisClient.java
@@ -32,10 +32,13 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import static 
org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;
+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;
+
 public class SentinelRedisClient extends AbstractRedisClient implements 
RedisClient {
     private static final Logger logger = 
LoggerFactory.getLogger(SentinelRedisClient.class);
 
-    private JedisSentinelPool sentinelPool;
+    private final JedisSentinelPool sentinelPool;
 
     public SentinelRedisClient(URL url) {
         super(url);
@@ -47,7 +50,8 @@ public class SentinelRedisClient extends AbstractRedisClient 
implements RedisCli
         }
         Set<String> sentinels = new HashSet<>(Arrays.asList(backupAddresses));
         sentinels.add(address);
-        sentinelPool = new JedisSentinelPool(masterName, sentinels, 
getConfig(), url.getPassword());
+        sentinelPool = new JedisSentinelPool(masterName, sentinels, 
getConfig(), url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), url.getPassword(),
+            url.getParameter("db.index", 0));
     }
 
     @Override
diff --git 
a/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/RocketMQInvoker.java
 
b/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/RocketMQInvoker.java
index 7cdb420..2a0e5c7 100644
--- 
a/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/RocketMQInvoker.java
+++ 
b/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/RocketMQInvoker.java
@@ -165,7 +165,7 @@ public class RocketMQInvoker<T> extends AbstractInvoker<T> {
         Object countdown = 
RpcContext.getContext().get().get(CommonConstants.TIME_COUNTDOWN_KEY);
         int timeout = 1000;
         if (countdown == null) {
-            timeout = (int) RpcUtils.getTimeout(getUrl(), methodName, 
RpcContext.getContext(), this.timeout);
+            timeout = (int) RpcUtils.getTimeout(getUrl(), methodName, 
RpcContext.getContext(), invocation, this.timeout);
             if 
(getUrl().getParameter(CommonConstants.ENABLE_TIMEOUT_COUNTDOWN_KEY, false)) {
                 
invocation.setObjectAttachment(CommonConstants.TIMEOUT_ATTACHMENT_KEY, 
timeout); // pass timeout to remote server
             }
diff --git 
a/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/codec/RocketMQCodec.java
 
b/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/codec/RocketMQCodec.java
index edfb32d..ce7a54c 100644
--- 
a/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/codec/RocketMQCodec.java
+++ 
b/dubbo-rpc-extensions/dubbo-rpc-rocketmq/src/main/java/org/apache/dubbo/rpc/rocketmq/codec/RocketMQCodec.java
@@ -95,7 +95,7 @@ public class RocketMQCodec extends ExchangeCodec {
                             data = decodeEventData(channel, in, eventPayload);
                         }
                     } else {
-                        DecodeableRpcResult result = new 
DecodeableRpcResult(channel, res, is, (Invocation) getRequestData(id), proto);
+                        DecodeableRpcResult result = new 
DecodeableRpcResult(channel, res, is, (Invocation) getRequestData(channel, res, 
id), proto);
                         result.decode();
                         data = result;
                     }
diff --git a/dubbo-serialization-extensions/dubbo-serialization-fury/pom.xml 
b/dubbo-serialization-extensions/dubbo-serialization-fury/pom.xml
index fb7b98d..cd851ed 100644
--- a/dubbo-serialization-extensions/dubbo-serialization-fury/pom.xml
+++ b/dubbo-serialization-extensions/dubbo-serialization-fury/pom.xml
@@ -32,20 +32,17 @@ limitations under the License.
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <dubbo.version>3.2.1</dubbo.version>
     </properties>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-serialization-api</artifactId>
-            <version>${dubbo.version}</version>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
             <optional>true</optional>
         </dependency>
         <dependency>
diff --git 
a/dubbo-serialization-extensions/dubbo-serialization-gson/src/main/java/org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java
 
b/dubbo-serialization-extensions/dubbo-serialization-gson/src/main/java/org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java
index 763dd13..1a59892 100644
--- 
a/dubbo-serialization-extensions/dubbo-serialization-gson/src/main/java/org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java
+++ 
b/dubbo-serialization-extensions/dubbo-serialization-gson/src/main/java/org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java
@@ -31,7 +31,7 @@ import java.io.Writer;
 public class GsonJsonObjectOutput implements ObjectOutput {
 
     private final PrintWriter writer;
-    private Gson gson = null;
+    private Gson gson;
 
     public GsonJsonObjectOutput(OutputStream out) {
         this(new OutputStreamWriter(out));
@@ -103,7 +103,7 @@ public class GsonJsonObjectOutput implements ObjectOutput {
 
 
     @Override
-    public void writeThrowable(Object obj) throws IOException {
+    public void writeThrowable(Throwable obj) throws IOException {
         String clazz = obj.getClass().getName();
         ExceptionWrapper bo = new ExceptionWrapper(obj, clazz);
         this.writeObject(bo);
diff --git 
a/dubbo-serialization-extensions/dubbo-serialization-kryo/src/main/java/org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java
 
b/dubbo-serialization-extensions/dubbo-serialization-kryo/src/main/java/org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java
index 8500a06..fd15864 100644
--- 
a/dubbo-serialization-extensions/dubbo-serialization-kryo/src/main/java/org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java
+++ 
b/dubbo-serialization-extensions/dubbo-serialization-kryo/src/main/java/org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java
@@ -105,7 +105,7 @@ public class KryoObjectOutput2 implements ObjectOutput, 
Cleanable {
     }
 
     @Override
-    public void writeThrowable(Object v) throws IOException {
+    public void writeThrowable(Throwable v) throws IOException {
         kryo.writeClassAndObject(output, v);
     }
 
diff --git 
a/dubbo-serialization-extensions/dubbo-serialization-msgpack/src/main/java/org/apache/dubbo/common/serialize/msgpack/MsgpackObjectOutput.java
 
b/dubbo-serialization-extensions/dubbo-serialization-msgpack/src/main/java/org/apache/dubbo/common/serialize/msgpack/MsgpackObjectOutput.java
index c335352..f707b9d 100644
--- 
a/dubbo-serialization-extensions/dubbo-serialization-msgpack/src/main/java/org/apache/dubbo/common/serialize/msgpack/MsgpackObjectOutput.java
+++ 
b/dubbo-serialization-extensions/dubbo-serialization-msgpack/src/main/java/org/apache/dubbo/common/serialize/msgpack/MsgpackObjectOutput.java
@@ -97,7 +97,7 @@ public class MsgpackObjectOutput implements ObjectOutput {
     }
 
     @Override
-    public void writeThrowable(Object obj) throws IOException {
+    public void writeThrowable(Throwable obj) throws IOException {
         writeObject(obj.getClass());
         writeObject(obj);
     }
diff --git 
a/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java
 
b/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java
index 4940e28..9d93bef 100644
--- 
a/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java
+++ 
b/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java
@@ -27,12 +27,14 @@ import com.google.protobuf.FloatValue;
 import com.google.protobuf.Int32Value;
 import com.google.protobuf.Int64Value;
 import com.google.protobuf.StringValue;
+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;
 
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.Map;
+import java.util.Objects;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;
 import static 
org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;
@@ -108,28 +110,29 @@ public class GenericProtobufJsonObjectOutput implements 
ObjectOutput {
         if (!ProtobufUtils.isSupported(obj.getClass())) {
             throw new IllegalArgumentException("This serialization only 
support google protobuf object, the object class is: " + 
obj.getClass().getName());
         }
-
         writer.write(ProtobufUtils.serializeJson(obj));
         writer.println();
         writer.flush();
     }
 
     @Override
-    public void writeThrowable(Object th) throws IOException {
-        if (th instanceof Throwable && 
!ProtobufUtils.isSupported(th.getClass())) {
-            th = ProtobufUtils.convertToThrowableProto((Throwable) th);
+    public void writeThrowable(Throwable th) throws IOException {
+        if (th != null && !ProtobufUtils.isSupported(th.getClass())) {
+            ThrowablePB.ThrowableProto throwableProto = 
ProtobufUtils.convertToThrowableProto((Throwable) th);
+            writer.write(ProtobufUtils.serializeJson(throwableProto));
+        } else {
+            writer.write(ProtobufUtils.serializeJson(th));
         }
-        writer.write(ProtobufUtils.serializeJson(th));
         writer.println();
         writer.flush();
     }
 
     @Override
-    public void writeEvent(Object data) throws IOException {
-        if (data == HEARTBEAT_EVENT) {
+    public void writeEvent(String data) throws IOException {
+        if (Objects.equals(data, HEARTBEAT_EVENT)) {
             data = MOCK_HEARTBEAT_EVENT;
         }
-        writeUTF((String) data);
+        writeUTF(data);
     }
 
     /**
diff --git 
a/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java
 
b/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java
index 55bdba9..e6522be 100644
--- 
a/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java
+++ 
b/dubbo-serialization-extensions/dubbo-serialization-protobuf/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java
@@ -28,10 +28,12 @@ import com.google.protobuf.StringValue;
 
 import org.apache.dubbo.common.serialize.ObjectOutput;
 import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;
+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;
 
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Map;
+import java.util.Objects;
 
 import static 
org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;
 import static 
org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;
@@ -119,19 +121,21 @@ public class GenericProtobufObjectOutput implements 
ObjectOutput {
     }
 
     @Override
-    public void writeEvent(Object data) throws IOException {
-        if (data == HEARTBEAT_EVENT) {
+    public void writeEvent(String data) throws IOException {
+        if (Objects.equals(data, HEARTBEAT_EVENT)) {
             data = MOCK_HEARTBEAT_EVENT;
         }
-        writeUTF((String) data);
+        writeUTF(data);
     }
 
     @Override
-    public void writeThrowable(Object obj) throws IOException {
-        if (obj instanceof Throwable && !(obj instanceof MessageLite)) {
-            obj = ProtobufUtils.convertToThrowableProto((Throwable) obj);
+    public void writeThrowable(Throwable obj) throws IOException {
+        if (obj != null && !(obj instanceof MessageLite)) {
+            ThrowablePB.ThrowableProto throwableProto = 
ProtobufUtils.convertToThrowableProto(obj);
+            ProtobufUtils.serialize(throwableProto, os);
+        } else {
+            ProtobufUtils.serialize(obj, os);
         }
-        ProtobufUtils.serialize(obj, os);
         os.flush();
     }
 

Reply via email to