Skip to content

Commit d7e27d6

Browse files
authored
[ISSUE #9396] Use fastjson2 in all modules (#9397)
* Use fastjson2 in all modules * Update test * Update test * Update test * Add serialization compatibility test tool class * Update RemotingSerializableCompatTest.java * Update RemotingSerializableCompatTest.java * Update RemotingSerializableCompatTest.java * Update BitSet problem * Update * Update * Update test * Update test * Update BUILD.bazel * Update BUILD.bazel * Update test * Update BitSet problem * Add test * Add compat test * merge develop * Update test * merge develop
1 parent 47c6e89 commit d7e27d6

116 files changed

Lines changed: 4205 additions & 591 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

broker/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ java_library(
3131
"//tieredstore",
3232
"@maven//:org_slf4j_slf4j_api",
3333
"@maven//:ch_qos_logback_logback_classic",
34-
"@maven//:com_alibaba_fastjson",
3534
"@maven//:com_alibaba_fastjson2_fastjson2",
3635
"@maven//:com_github_luben_zstd_jni",
3736
"@maven//:com_google_guava_guava",
@@ -83,7 +82,6 @@ java_library(
8382
"//remoting",
8483
"//store",
8584
"//tieredstore",
86-
"@maven//:com_alibaba_fastjson",
8785
"@maven//:com_alibaba_fastjson2_fastjson2",
8886
"@maven//:org_slf4j_slf4j_api",
8987
"@maven//:com_google_guava_guava",

broker/pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,6 @@
6666
<groupId>commons-io</groupId>
6767
<artifactId>commons-io</artifactId>
6868
</dependency>
69-
<dependency>
70-
<groupId>com.alibaba</groupId>
71-
<artifactId>fastjson</artifactId>
72-
</dependency>
7369
<dependency>
7470
<groupId>org.javassist</groupId>
7571
<artifactId>javassist</artifactId>

broker/src/main/java/org/apache/rocketmq/broker/config/v1/RocksDBConfigManager.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
*/
1717
package org.apache.rocketmq.broker.config.v1;
1818

19-
import com.alibaba.fastjson.JSON;
20-
import java.nio.charset.Charset;
21-
import java.nio.charset.StandardCharsets;
22-
import java.util.function.BiConsumer;
19+
import com.alibaba.fastjson2.JSON;
2320
import org.apache.commons.lang3.StringUtils;
2421
import org.apache.rocketmq.common.config.ConfigRocksDBStorage;
2522
import org.apache.rocketmq.common.constant.LoggerName;
@@ -33,6 +30,10 @@
3330
import org.rocksdb.Statistics;
3431
import org.rocksdb.WriteBatch;
3532

33+
import java.nio.charset.Charset;
34+
import java.nio.charset.StandardCharsets;
35+
import java.util.function.BiConsumer;
36+
3637
public class RocksDBConfigManager {
3738
protected static final Logger BROKER_LOG = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
3839

broker/src/main/java/org/apache/rocketmq/broker/config/v1/RocksDBConsumerOffsetManager.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,8 @@
1616
*/
1717
package org.apache.rocketmq.broker.config.v1;
1818

19-
import com.alibaba.fastjson.JSON;
20-
import com.alibaba.fastjson.serializer.SerializerFeature;
21-
import java.nio.file.Path;
22-
import java.nio.file.Paths;
23-
import java.util.Map.Entry;
24-
import java.util.concurrent.ConcurrentMap;
19+
import com.alibaba.fastjson2.JSON;
20+
import com.alibaba.fastjson2.JSONWriter;
2521
import org.apache.commons.lang3.StringUtils;
2622
import org.apache.rocketmq.broker.BrokerController;
2723
import org.apache.rocketmq.broker.BrokerPathConfigHelper;
@@ -35,6 +31,11 @@
3531
import org.rocksdb.CompressionType;
3632
import org.rocksdb.WriteBatch;
3733

34+
import java.nio.file.Path;
35+
import java.nio.file.Paths;
36+
import java.util.Map.Entry;
37+
import java.util.concurrent.ConcurrentMap;
38+
3839
public class RocksDBConsumerOffsetManager extends ConsumerOffsetManager {
3940

4041
protected static final Logger log = LoggerFactory.getLogger(LoggerName.BROKER_LOGGER_NAME);
@@ -184,7 +185,7 @@ private void putWriteBatch(final WriteBatch writeBatch, final String topicGroupN
184185
byte[] keyBytes = topicGroupName.getBytes(DataConverter.CHARSET_UTF8);
185186
RocksDBOffsetSerializeWrapper wrapper = new RocksDBOffsetSerializeWrapper();
186187
wrapper.setOffsetTable(offsetMap);
187-
byte[] valueBytes = JSON.toJSONBytes(wrapper, SerializerFeature.BrowserCompatible);
188+
byte[] valueBytes = JSON.toJSONBytes(wrapper, JSONWriter.Feature.BrowserCompatible);
188189
rocksDBConfigManager.writeBatchPutOperation(writeBatch, keyBytes, valueBytes);
189190
}
190191

broker/src/main/java/org/apache/rocketmq/broker/config/v1/RocksDBSubscriptionGroupManager.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,9 @@
1616
*/
1717
package org.apache.rocketmq.broker.config.v1;
1818

19-
import com.alibaba.fastjson.JSON;
20-
import com.alibaba.fastjson.JSONObject;
21-
import com.alibaba.fastjson.serializer.SerializerFeature;
22-
import java.nio.file.Path;
23-
import java.nio.file.Paths;
24-
import java.util.Map;
25-
import java.util.Set;
26-
import java.util.concurrent.ConcurrentHashMap;
27-
import java.util.concurrent.ConcurrentMap;
28-
import java.util.function.BiConsumer;
19+
import com.alibaba.fastjson2.JSON;
20+
import com.alibaba.fastjson2.JSONObject;
21+
import com.alibaba.fastjson2.JSONWriter;
2922
import org.apache.commons.lang3.StringUtils;
3023
import org.apache.rocketmq.broker.BrokerController;
3124
import org.apache.rocketmq.broker.BrokerPathConfigHelper;
@@ -35,6 +28,14 @@
3528
import org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
3629
import org.rocksdb.CompressionType;
3730

31+
import java.nio.file.Path;
32+
import java.nio.file.Paths;
33+
import java.util.Map;
34+
import java.util.Set;
35+
import java.util.concurrent.ConcurrentHashMap;
36+
import java.util.concurrent.ConcurrentMap;
37+
import java.util.function.BiConsumer;
38+
3839
public class RocksDBSubscriptionGroupManager extends SubscriptionGroupManager {
3940

4041
protected transient RocksDBConfigManager rocksDBConfigManager;
@@ -162,7 +163,7 @@ public SubscriptionGroupConfig putSubscriptionGroupConfig(SubscriptionGroupConfi
162163

163164
try {
164165
byte[] keyBytes = groupName.getBytes(RocksDBConfigManager.CHARSET);
165-
byte[] valueBytes = JSON.toJSONBytes(subscriptionGroupConfig, SerializerFeature.BrowserCompatible);
166+
byte[] valueBytes = JSON.toJSONBytes(subscriptionGroupConfig, JSONWriter.Feature.BrowserCompatible);
166167
this.rocksDBConfigManager.put(keyBytes, valueBytes);
167168
} catch (Exception e) {
168169
log.error("kv put sub Failed, {}", subscriptionGroupConfig.toString());
@@ -177,7 +178,7 @@ protected SubscriptionGroupConfig putSubscriptionGroupConfigIfAbsent(Subscriptio
177178
if (oldConfig == null) {
178179
try {
179180
byte[] keyBytes = groupName.getBytes(RocksDBConfigManager.CHARSET);
180-
byte[] valueBytes = JSON.toJSONBytes(subscriptionGroupConfig, SerializerFeature.BrowserCompatible);
181+
byte[] valueBytes = JSON.toJSONBytes(subscriptionGroupConfig, JSONWriter.Feature.BrowserCompatible);
181182
this.rocksDBConfigManager.put(keyBytes, valueBytes);
182183
} catch (Exception e) {
183184
log.error("kv put sub Failed, {}", subscriptionGroupConfig.toString());

broker/src/main/java/org/apache/rocketmq/broker/config/v1/RocksDBTopicConfigManager.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,8 @@
1616
*/
1717
package org.apache.rocketmq.broker.config.v1;
1818

19-
import com.alibaba.fastjson.JSON;
20-
import com.alibaba.fastjson.serializer.SerializerFeature;
21-
import java.nio.file.Path;
22-
import java.nio.file.Paths;
23-
import java.util.Map;
24-
import java.util.concurrent.ConcurrentMap;
19+
import com.alibaba.fastjson2.JSON;
20+
import com.alibaba.fastjson2.JSONWriter;
2521
import org.apache.commons.lang3.StringUtils;
2622
import org.apache.rocketmq.broker.BrokerController;
2723
import org.apache.rocketmq.broker.BrokerPathConfigHelper;
@@ -32,6 +28,11 @@
3228
import org.apache.rocketmq.remoting.protocol.DataVersion;
3329
import org.rocksdb.CompressionType;
3430

31+
import java.nio.file.Path;
32+
import java.nio.file.Paths;
33+
import java.util.Map;
34+
import java.util.concurrent.ConcurrentMap;
35+
3536
public class RocksDBTopicConfigManager extends TopicConfigManager {
3637
private static final String VERSION_COLUMN_FAMILY = "topicVersion";
3738
private static final String TOPIC_COLUMN_FAMILY = "topic";
@@ -142,7 +143,7 @@ public TopicConfig putTopicConfig(TopicConfig topicConfig) {
142143
TopicConfig oldTopicConfig = this.topicConfigTable.put(topicName, topicConfig);
143144
try {
144145
byte[] keyBytes = topicName.getBytes(DataConverter.CHARSET_UTF8);
145-
byte[] valueBytes = JSON.toJSONBytes(topicConfig, SerializerFeature.BrowserCompatible);
146+
byte[] valueBytes = JSON.toJSONBytes(topicConfig, JSONWriter.Feature.BrowserCompatible);
146147
this.rocksDBConfigManager.put(keyBytes, valueBytes);
147148
} catch (Exception e) {
148149
log.error("kv put topic Failed, {}", topicConfig.toString(), e);

broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerRecord.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
*/
1717
package org.apache.rocketmq.broker.pop;
1818

19-
import com.alibaba.fastjson.JSON;
20-
import com.alibaba.fastjson.JSONObject;
21-
import com.alibaba.fastjson.annotation.JSONField;
19+
import com.alibaba.fastjson2.JSON;
20+
import com.alibaba.fastjson2.annotation.JSONField;
21+
2222
import java.nio.ByteBuffer;
2323
import java.nio.charset.StandardCharsets;
2424

@@ -119,7 +119,7 @@ public byte[] getValueBytes() {
119119
}
120120

121121
public static PopConsumerRecord decode(byte[] body) {
122-
return JSONObject.parseObject(body, PopConsumerRecord.class);
122+
return JSON.parseObject(body, PopConsumerRecord.class);
123123
}
124124

125125
public long getPopTime() {

broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerService.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,9 @@
1616
*/
1717
package org.apache.rocketmq.broker.pop;
1818

19-
import com.alibaba.fastjson.JSON;
19+
import com.alibaba.fastjson2.JSON;
2020
import com.google.common.annotations.VisibleForTesting;
2121
import com.google.common.base.Stopwatch;
22-
import java.nio.ByteBuffer;
23-
import java.nio.file.Paths;
24-
import java.util.ArrayList;
25-
import java.util.Collections;
26-
import java.util.HashMap;
27-
import java.util.List;
28-
import java.util.Objects;
29-
import java.util.Queue;
30-
import java.util.concurrent.CompletableFuture;
31-
import java.util.concurrent.CompletionException;
32-
import java.util.concurrent.ConcurrentHashMap;
33-
import java.util.concurrent.ConcurrentMap;
34-
import java.util.concurrent.LinkedBlockingQueue;
35-
import java.util.concurrent.TimeUnit;
36-
import java.util.concurrent.atomic.AtomicBoolean;
37-
import java.util.concurrent.atomic.AtomicLong;
3822
import org.apache.commons.lang3.StringUtils;
3923
import org.apache.commons.lang3.tuple.Triple;
4024
import org.apache.rocketmq.broker.BrokerController;
@@ -65,6 +49,23 @@
6549
import org.slf4j.Logger;
6650
import org.slf4j.LoggerFactory;
6751

52+
import java.nio.ByteBuffer;
53+
import java.nio.file.Paths;
54+
import java.util.ArrayList;
55+
import java.util.Collections;
56+
import java.util.HashMap;
57+
import java.util.List;
58+
import java.util.Objects;
59+
import java.util.Queue;
60+
import java.util.concurrent.CompletableFuture;
61+
import java.util.concurrent.CompletionException;
62+
import java.util.concurrent.ConcurrentHashMap;
63+
import java.util.concurrent.ConcurrentMap;
64+
import java.util.concurrent.LinkedBlockingQueue;
65+
import java.util.concurrent.TimeUnit;
66+
import java.util.concurrent.atomic.AtomicBoolean;
67+
import java.util.concurrent.atomic.AtomicLong;
68+
6869
public class PopConsumerService extends ServiceThread {
6970

7071
private static final Logger log = LoggerFactory.getLogger(LoggerName.ROCKETMQ_POP_LOGGER_NAME);

broker/src/main/java/org/apache/rocketmq/broker/pop/orderly/QueueLevelConsumerManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
package org.apache.rocketmq.broker.pop.orderly;
1818

19-
import com.alibaba.fastjson.annotation.JSONField;
19+
import com.alibaba.fastjson2.annotation.JSONField;
2020
import com.google.common.annotations.VisibleForTesting;
2121
import com.google.common.base.MoreObjects;
2222
import java.util.ArrayList;

broker/src/main/java/org/apache/rocketmq/broker/processor/AckMessageProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*/
1717
package org.apache.rocketmq.broker.processor;
1818

19-
import com.alibaba.fastjson.JSON;
19+
import com.alibaba.fastjson2.JSON;
2020
import io.netty.channel.Channel;
2121
import io.netty.channel.ChannelHandlerContext;
2222
import java.nio.charset.StandardCharsets;

0 commit comments

Comments
 (0)