diff --git a/client/BUILD.bazel b/client/BUILD.bazel index b93f3d90996..3e55605bd6f 100644 --- a/client/BUILD.bazel +++ b/client/BUILD.bazel @@ -27,7 +27,7 @@ java_library( "@maven//:commons_validator_commons_validator", "@maven//:com_github_luben_zstd_jni", "@maven//:org_lz4_lz4_java", - "@maven//:com_alibaba_fastjson", + "@maven//:com_alibaba_fastjson2_fastjson2", "@maven//:io_netty_netty_all", "@maven//:io_opentracing_opentracing_api", "@maven//:commons_collections_commons_collections", diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java index 30d7b0a1d5f..760ddd52e59 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/MQClientAPIImpl.java @@ -16,7 +16,7 @@ */ package org.apache.rocketmq.client.impl; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.util.ArrayList; diff --git a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java index 3055f2cdee1..665774e931c 100644 --- a/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java +++ b/client/src/main/java/org/apache/rocketmq/client/impl/factory/MQClientInstance.java @@ -16,7 +16,7 @@ */ package org.apache.rocketmq.client.impl.factory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import io.netty.channel.Channel; import java.util.Collections; import java.util.HashMap; diff --git a/client/src/main/java/org/apache/rocketmq/client/producer/SendResult.java b/client/src/main/java/org/apache/rocketmq/client/producer/SendResult.java index d160eb4eae9..54052753983 100644 --- a/client/src/main/java/org/apache/rocketmq/client/producer/SendResult.java +++ b/client/src/main/java/org/apache/rocketmq/client/producer/SendResult.java @@ -16,7 +16,7 @@ */ package org.apache.rocketmq.client.producer; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import org.apache.rocketmq.common.message.MessageQueue; public class SendResult { diff --git a/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java b/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java index 6cb96df05f4..405acc0f9e7 100644 --- a/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java +++ b/client/src/test/java/org/apache/rocketmq/client/impl/MQClientAPIImplTest.java @@ -16,6 +16,7 @@ */ package org.apache.rocketmq.client.impl; +import com.alibaba.fastjson2.JSON; import org.apache.rocketmq.client.ClientConfig; import org.apache.rocketmq.client.consumer.AckCallback; import org.apache.rocketmq.client.consumer.AckResult; @@ -34,6 +35,7 @@ import org.apache.rocketmq.client.producer.SendCallback; import org.apache.rocketmq.client.producer.SendResult; import org.apache.rocketmq.client.producer.SendStatus; +import org.apache.rocketmq.common.CheckRocksdbCqWriteResult; import org.apache.rocketmq.common.MixAll; import org.apache.rocketmq.common.ObjectCreator; import org.apache.rocketmq.common.Pair; @@ -2148,6 +2150,22 @@ public NettyClientConfig getNettyClientConfig() { } } + @Test + public void testCheckRocksdbCqWriteProgress() throws Exception { + RemotingCommand response = RemotingCommand.createResponseCommand(ResponseCode.SUCCESS, "Success"); + CheckRocksdbCqWriteResult expectedResult = new CheckRocksdbCqWriteResult(); + expectedResult.setCheckStatus(CheckRocksdbCqWriteResult.CheckStatus.CHECK_OK.getValue()); + response.setBody(JSON.toJSONString(expectedResult).getBytes()); + + when(remotingClient.invokeSync(any(String.class), any(RemotingCommand.class), any(Long.class))) + .thenReturn(response); + + CheckRocksdbCqWriteResult result = mqClientAPI.checkRocksdbCqWriteProgress( + "brokerAddr", "testTopic", 12345L, 3000L); + + assertEquals(CheckRocksdbCqWriteResult.CheckStatus.CHECK_OK.getValue(), result.getCheckStatus()); + } + private Properties createProperties() { Properties result = new Properties(); result.put("key", "value"); diff --git a/client/src/test/java/org/apache/rocketmq/client/producer/SendResultTest.java b/client/src/test/java/org/apache/rocketmq/client/producer/SendResultTest.java new file mode 100644 index 00000000000..1ae8371a96b --- /dev/null +++ b/client/src/test/java/org/apache/rocketmq/client/producer/SendResultTest.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.rocketmq.client.producer; + +import com.alibaba.fastjson2.JSON; +import org.apache.rocketmq.common.message.MessageQueue; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +public class SendResultTest { + + @Test + public void testEncoderSendResultToJson() { + SendResult sendResult = new SendResult(); + sendResult.setSendStatus(SendStatus.SEND_OK); + sendResult.setMsgId("12345"); + sendResult.setQueueOffset(100L); + MessageQueue messageQueue = new MessageQueue("TestTopic", "BrokerA", 1); + sendResult.setMessageQueue(messageQueue); + + String json = SendResult.encoderSendResultToJson(sendResult); + + SendResult decodedResult = JSON.parseObject(json, SendResult.class); + assertEquals(sendResult.getSendStatus(), decodedResult.getSendStatus()); + assertEquals(sendResult.getMsgId(), decodedResult.getMsgId()); + assertEquals(sendResult.getQueueOffset(), decodedResult.getQueueOffset()); + assertEquals(sendResult.getMessageQueue(), decodedResult.getMessageQueue()); + } + + @Test + public void testDecoderSendResultFromJson() { + String json = "{\"sendStatus\":\"SEND_OK\",\"msgId\":\"12345\",\"queueOffset\":100,\"messageQueue\":{\"topic\":\"TestTopic\",\"brokerName\":\"BrokerA\",\"queueId\":1}}"; + + SendResult sendResult = SendResult.decoderSendResultFromJson(json); + + assertEquals(SendStatus.SEND_OK, sendResult.getSendStatus()); + assertEquals("12345", sendResult.getMsgId()); + assertEquals(100L, sendResult.getQueueOffset()); + assertEquals("TestTopic", sendResult.getMessageQueue().getTopic()); + assertEquals("BrokerA", sendResult.getMessageQueue().getBrokerName()); + assertEquals(1, sendResult.getMessageQueue().getQueueId()); + } +}