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();
}