From ead91433d7f18c37cda215f2a90a78ddefb1b498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E7=BB=8D=E9=94=A6?= Date: Fri, 13 May 2022 11:32:47 +0800 Subject: [PATCH] fastjson update 1.x to 2.0.2 (#4160) --- .../controller/CanalClusterController.java | 4 +- .../es/core/service/ESSyncService.java | 6 +- .../adapter/es/core/support/ESSyncUtil.java | 2 +- .../hbase/service/HbaseSyncService.java | 6 +- .../adapter/kudu/service/KuduSyncService.java | 12 ++-- .../adapter/logger/LoggerAdapterExample.java | 6 +- client-adapter/phoenix/pom.xml | 6 +- .../phoenix/service/PhoenixSyncService.java | 10 ++-- .../rdb/service/RdbMirrorDbSyncService.java | 6 +- .../adapter/rdb/service/RdbSyncService.java | 6 +- .../service/TablestoreSyncService.java | 6 +- client/pom.xml | 4 -- .../client/kafka/KafkaCanalConnector.java | 2 +- .../kafka/KafkaOffsetCanalConnector.java | 2 +- .../pulsarmq/PulsarMQCanalConnector.java | 2 +- .../rabbitmq/RabbitMQCanalConnector.java | 2 +- .../rocketmq/RocketMQCanalConnector.java | 2 +- common/pom.xml | 4 +- .../otter/canal/common/utils/JsonUtils.java | 55 +++++++++---------- .../kafka/consumer/CanalKafkaConsumer.java | 2 +- .../kafka/producer/CanalKafkaProducer.java | 8 +-- .../consumer/CanalPulsarMQConsumer.java | 2 +- .../producer/CanalPulsarMQProducer.java | 6 +- .../consumer/CanalPulsarMQConsumerTest.java | 2 +- .../consumer/CanalRabbitMQConsumer.java | 2 +- .../producer/CanalRabbitMQProducer.java | 6 +- .../consumer/CanalRocketMQConsumer.java | 2 +- .../producer/CanalRocketMQProducer.java | 8 +-- .../instance/manager/plain/HttpHelper.java | 2 +- .../manager/plain/PlainCanalConfigClient.java | 6 +- .../canal/meta/ZooKeeperMetaManager.java | 8 +-- .../request/DescribeBackupPolicyRequest.java | 4 +- .../request/DescribeBinlogFilesRequest.java | 6 +- .../inbound/mysql/tsdb/DatabaseTableMeta.java | 4 +- pom.xml | 6 +- 35 files changed, 105 insertions(+), 112 deletions(-) diff --git a/admin/admin-web/src/main/java/com/alibaba/otter/canal/admin/controller/CanalClusterController.java b/admin/admin-web/src/main/java/com/alibaba/otter/canal/admin/controller/CanalClusterController.java index a6b4d025..e1a228bf 100644 --- a/admin/admin-web/src/main/java/com/alibaba/otter/canal/admin/controller/CanalClusterController.java +++ b/admin/admin-web/src/main/java/com/alibaba/otter/canal/admin/controller/CanalClusterController.java @@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.alibaba.otter.canal.admin.model.BaseModel; import com.alibaba.otter.canal.admin.model.CanalCluster; import com.alibaba.otter.canal.admin.model.NodeServer; diff --git a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java index 31e22eb6..3ba71efd 100644 --- a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java +++ b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/service/ESSyncService.java @@ -8,11 +8,11 @@ import java.util.Map; import javax.sql.DataSource; +import com.alibaba.fastjson2.JSONWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlSelectQueryBlock; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig.ESMapping; @@ -79,7 +79,7 @@ public class ESSyncService { esSyncConfigs .forEach(esSyncConfig -> configIndexes.append(esSyncConfig.getEsMapping().get_index()).append(" ")); logger.debug("DML: {} \nAffected indexes: {}", - JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue), + JSON.toJSONString(dml, JSONWriter.Feature.WriteNulls), configIndexes.toString()); } } diff --git a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java index 0e930910..914300c3 100644 --- a/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java +++ b/client-adapter/escore/src/main/java/com/alibaba/otter/canal/client/adapter/es/core/support/ESSyncUtil.java @@ -18,7 +18,7 @@ import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.adapter.es.core.config.ESSyncConfig.ESMapping; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem; import com.alibaba.otter.canal.client.adapter.es.core.config.SchemaItem.ColumnItem; diff --git a/client-adapter/hbase/src/main/java/com/alibaba/otter/canal/client/adapter/hbase/service/HbaseSyncService.java b/client-adapter/hbase/src/main/java/com/alibaba/otter/canal/client/adapter/hbase/service/HbaseSyncService.java index e0dc1279..895d3ae8 100644 --- a/client-adapter/hbase/src/main/java/com/alibaba/otter/canal/client/adapter/hbase/service/HbaseSyncService.java +++ b/client-adapter/hbase/src/main/java/com/alibaba/otter/canal/client/adapter/hbase/service/HbaseSyncService.java @@ -6,8 +6,8 @@ import org.apache.hadoop.hbase.util.Bytes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.hbase.config.MappingConfig; import com.alibaba.otter.canal.client.adapter.hbase.support.*; import com.alibaba.otter.canal.client.adapter.support.Dml; @@ -39,7 +39,7 @@ public class HbaseSyncService { delete(config, dml); } if (logger.isDebugEnabled()) { - logger.debug("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.debug("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } } diff --git a/client-adapter/kudu/src/main/java/com/alibaba/otter/canal/client/adapter/kudu/service/KuduSyncService.java b/client-adapter/kudu/src/main/java/com/alibaba/otter/canal/client/adapter/kudu/service/KuduSyncService.java index d388b410..116a7661 100644 --- a/client-adapter/kudu/src/main/java/com/alibaba/otter/canal/client/adapter/kudu/service/KuduSyncService.java +++ b/client-adapter/kudu/src/main/java/com/alibaba/otter/canal/client/adapter/kudu/service/KuduSyncService.java @@ -10,8 +10,8 @@ import org.apache.kudu.client.KuduException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.kudu.config.KuduMappingConfig; import com.alibaba.otter.canal.client.adapter.kudu.support.KuduTemplate; import com.alibaba.otter.canal.client.adapter.support.Dml; @@ -55,7 +55,7 @@ public class KuduSyncService { delete(config, dml); } if (logger.isDebugEnabled()) { - logger.debug("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.debug("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } } @@ -118,7 +118,7 @@ public class KuduSyncService { } } catch (KuduException e) { logger.error(e.getMessage()); - logger.error("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.error("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } } @@ -159,7 +159,7 @@ public class KuduSyncService { } } catch (KuduException e) { logger.error(e.getMessage()); - logger.error("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.error("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } @@ -201,7 +201,7 @@ public class KuduSyncService { } } catch (KuduException e) { logger.error(e.getMessage()); - logger.error("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.error("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } } diff --git a/client-adapter/logger/src/main/java/com/alibaba/otter/canal/client/adapter/logger/LoggerAdapterExample.java b/client-adapter/logger/src/main/java/com/alibaba/otter/canal/client/adapter/logger/LoggerAdapterExample.java index 8a195d65..c4526b26 100644 --- a/client-adapter/logger/src/main/java/com/alibaba/otter/canal/client/adapter/logger/LoggerAdapterExample.java +++ b/client-adapter/logger/src/main/java/com/alibaba/otter/canal/client/adapter/logger/LoggerAdapterExample.java @@ -6,8 +6,8 @@ import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.OuterAdapter; import com.alibaba.otter.canal.client.adapter.support.Dml; import com.alibaba.otter.canal.client.adapter.support.OuterAdapterConfig; @@ -36,7 +36,7 @@ public class LoggerAdapterExample implements OuterAdapter { } public void sync(Dml dml) { - logger.info("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.info("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } @Override diff --git a/client-adapter/phoenix/pom.xml b/client-adapter/phoenix/pom.xml index bfaf89ea..4cac7243 100644 --- a/client-adapter/phoenix/pom.xml +++ b/client-adapter/phoenix/pom.xml @@ -75,9 +75,9 @@ test - com.alibaba - fastjson - 1.2.58 + com.alibaba.fastjson2 + fastjson2 + 2.0.2 provided diff --git a/client-adapter/phoenix/src/main/java/com/alibaba/otter/canal/client/adapter/phoenix/service/PhoenixSyncService.java b/client-adapter/phoenix/src/main/java/com/alibaba/otter/canal/client/adapter/phoenix/service/PhoenixSyncService.java index cdfd63f1..11d7c329 100644 --- a/client-adapter/phoenix/src/main/java/com/alibaba/otter/canal/client/adapter/phoenix/service/PhoenixSyncService.java +++ b/client-adapter/phoenix/src/main/java/com/alibaba/otter/canal/client/adapter/phoenix/service/PhoenixSyncService.java @@ -6,8 +6,8 @@ import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.statement.*; import com.alibaba.druid.sql.parser.ParserException; import com.alibaba.druid.util.JdbcConstants; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.phoenix.config.ConfigurationManager; import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig; import com.alibaba.otter.canal.client.adapter.phoenix.config.MappingConfig.DbMapping; @@ -208,7 +208,7 @@ public class PhoenixSyncService { for (Map.Entry entry : configMap.entrySet()) { MappingConfig config = entry.getValue(); if (config.isDebug()) { - logger.info("DML: {} {}", entry.getKey(), JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.info("DML: {} {}", entry.getKey(), JSON.toJSONString(dml, Feature.WriteNulls)); } if (config.getConcurrent()) { //并行同步 @@ -257,7 +257,7 @@ public class PhoenixSyncService { } else if (type != null && type.equalsIgnoreCase("TRUNCATE")) { truncate(batchExecutor, config); } else if (logger.isInfoEnabled()){ - logger.info("SingleDml: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.info("SingleDml: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } catch (SQLException e) { logger.error("sync error: " + e.getMessage(), e); @@ -268,7 +268,7 @@ public class PhoenixSyncService { private void alter(BatchExecutor batchExecutor, MappingConfig config, Dml dml, List stmtList, String configFile) throws SQLException { if (config.isDebug()) { - logger.info("DML: {} {}", configFile, JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.info("DML: {} {}", configFile, JSON.toJSONString(dml, Feature.WriteNulls)); } DbMapping dbMapping = config.getDbMapping(); if (!dbMapping.isAlter()) { diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbMirrorDbSyncService.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbMirrorDbSyncService.java index 52862337..7ba260ae 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbMirrorDbSyncService.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbMirrorDbSyncService.java @@ -13,8 +13,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.rdb.config.MappingConfig; import com.alibaba.otter.canal.client.adapter.rdb.config.MirrorDbConfig; import com.alibaba.otter.canal.client.adapter.rdb.support.SingleDml; @@ -68,7 +68,7 @@ public class RdbMirrorDbSyncService { if (dml.getIsDdl() != null && dml.getIsDdl() && StringUtils.isNotEmpty(dml.getSql())) { // DDL if (logger.isDebugEnabled()) { - logger.debug("DDL: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.debug("DDL: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } executeDdl(mirrorDbConfig, dml); rdbSyncService.getColumnsTypeCache().remove(destination + "." + database + "." + dml.getTable()); diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java index d27bb544..68491c19 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbSyncService.java @@ -21,8 +21,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.rdb.config.MappingConfig; import com.alibaba.otter.canal.client.adapter.rdb.config.MappingConfig.DbMapping; import com.alibaba.otter.canal.client.adapter.rdb.support.BatchExecutor; @@ -220,7 +220,7 @@ public class RdbSyncService { truncate(batchExecutor, config); } if (logger.isDebugEnabled()) { - logger.debug("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.debug("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } } catch (SQLException e) { throw new RuntimeException(e); diff --git a/client-adapter/tablestore/src/main/java/com/alibaba/otter/canal/client/adapter/tablestore/service/TablestoreSyncService.java b/client-adapter/tablestore/src/main/java/com/alibaba/otter/canal/client/adapter/tablestore/service/TablestoreSyncService.java index 45b3bbba..b62b7f91 100644 --- a/client-adapter/tablestore/src/main/java/com/alibaba/otter/canal/client/adapter/tablestore/service/TablestoreSyncService.java +++ b/client-adapter/tablestore/src/main/java/com/alibaba/otter/canal/client/adapter/tablestore/service/TablestoreSyncService.java @@ -6,8 +6,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Future; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.client.adapter.tablestore.enums.TablestoreFieldType; import com.alibaba.otter.canal.client.adapter.tablestore.support.SyncUtil; import com.alicloud.openservices.tablestore.TableStoreWriter; @@ -59,7 +59,7 @@ public class TablestoreSyncService { Future future = writer.addRowChangeWithFuture(rowChanges); if (logger.isDebugEnabled()) { - logger.debug("DML: {}", JSON.toJSONString(dml, SerializerFeature.WriteMapNullValue)); + logger.debug("DML: {}", JSON.toJSONString(dml, Feature.WriteNulls)); } return future; } diff --git a/client/pom.xml b/client/pom.xml index 70a61076..bbb4c4d3 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -50,10 +50,6 @@ commons-codec commons-codec - - com.alibaba - fastjson - com.google.guava guava diff --git a/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java b/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java index aa8c41f8..afc870f4 100644 --- a/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java +++ b/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java @@ -10,7 +10,7 @@ import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.serialization.StringDeserializer; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.CanalMQConnector; import com.alibaba.otter.canal.client.impl.SimpleCanalConnector; import com.alibaba.otter.canal.protocol.FlatMessage; diff --git a/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaOffsetCanalConnector.java b/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaOffsetCanalConnector.java index bd2f775d..46841ae4 100644 --- a/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaOffsetCanalConnector.java +++ b/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaOffsetCanalConnector.java @@ -1,6 +1,6 @@ package com.alibaba.otter.canal.client.kafka; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.kafka.protocol.KafkaFlatMessage; import com.alibaba.otter.canal.client.kafka.protocol.KafkaMessage; import com.alibaba.otter.canal.protocol.FlatMessage; diff --git a/client/src/main/java/com/alibaba/otter/canal/client/pulsarmq/PulsarMQCanalConnector.java b/client/src/main/java/com/alibaba/otter/canal/client/pulsarmq/PulsarMQCanalConnector.java index 31762417..9e3e2cb8 100644 --- a/client/src/main/java/com/alibaba/otter/canal/client/pulsarmq/PulsarMQCanalConnector.java +++ b/client/src/main/java/com/alibaba/otter/canal/client/pulsarmq/PulsarMQCanalConnector.java @@ -1,6 +1,6 @@ package com.alibaba.otter.canal.client.pulsarmq; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.CanalMQConnector; import com.alibaba.otter.canal.client.CanalMessageDeserializer; import com.alibaba.otter.canal.client.impl.SimpleCanalConnector; diff --git a/client/src/main/java/com/alibaba/otter/canal/client/rabbitmq/RabbitMQCanalConnector.java b/client/src/main/java/com/alibaba/otter/canal/client/rabbitmq/RabbitMQCanalConnector.java index b0bbc97c..0f9565b6 100644 --- a/client/src/main/java/com/alibaba/otter/canal/client/rabbitmq/RabbitMQCanalConnector.java +++ b/client/src/main/java/com/alibaba/otter/canal/client/rabbitmq/RabbitMQCanalConnector.java @@ -1,6 +1,6 @@ package com.alibaba.otter.canal.client.rabbitmq; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.CanalMQConnector; import com.alibaba.otter.canal.client.CanalMessageDeserializer; import com.alibaba.otter.canal.client.ConsumerBatchMessage; diff --git a/client/src/main/java/com/alibaba/otter/canal/client/rocketmq/RocketMQCanalConnector.java b/client/src/main/java/com/alibaba/otter/canal/client/rocketmq/RocketMQCanalConnector.java index ac0a6191..ac178993 100644 --- a/client/src/main/java/com/alibaba/otter/canal/client/rocketmq/RocketMQCanalConnector.java +++ b/client/src/main/java/com/alibaba/otter/canal/client/rocketmq/RocketMQCanalConnector.java @@ -22,7 +22,7 @@ import org.apache.rocketmq.remoting.RPCHook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.client.CanalMQConnector; import com.alibaba.otter.canal.client.CanalMessageDeserializer; import com.alibaba.otter.canal.client.impl.SimpleCanalConnector; diff --git a/common/pom.xml b/common/pom.xml index c8125c45..0e698a13 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -39,8 +39,8 @@ commons-codec - com.alibaba - fastjson + com.alibaba.fastjson2 + fastjson2 com.google.guava diff --git a/common/src/main/java/com/alibaba/otter/canal/common/utils/JsonUtils.java b/common/src/main/java/com/alibaba/otter/canal/common/utils/JsonUtils.java index 456d9688..bcaccb89 100644 --- a/common/src/main/java/com/alibaba/otter/canal/common/utils/JsonUtils.java +++ b/common/src/main/java/com/alibaba/otter/canal/common/utils/JsonUtils.java @@ -1,6 +1,5 @@ package com.alibaba.otter.canal.common.utils; -import java.io.IOException; import java.lang.reflect.Type; import java.net.Inet4Address; import java.net.Inet6Address; @@ -8,14 +7,13 @@ import java.net.InetAddress; import java.util.Arrays; import java.util.List; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.TypeReference; -import com.alibaba.fastjson.parser.ParserConfig; -import com.alibaba.fastjson.serializer.JSONSerializer; -import com.alibaba.fastjson.serializer.ObjectSerializer; -import com.alibaba.fastjson.serializer.SerializeConfig; -import com.alibaba.fastjson.serializer.SerializeWriter; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONFactory; +import com.alibaba.fastjson2.TypeReference; +import com.alibaba.fastjson2.filter.PropertyFilter; +import com.alibaba.fastjson2.JSONWriter; +import com.alibaba.fastjson2.writer.ObjectWriter; + /** * 字节处理相关工具类 @@ -25,13 +23,12 @@ import com.alibaba.fastjson.serializer.SerializerFeature; public class JsonUtils { static { - SerializeConfig.getGlobalInstance().put(InetAddress.class, InetAddressSerializer.instance); - SerializeConfig.getGlobalInstance().put(Inet4Address.class, InetAddressSerializer.instance); - SerializeConfig.getGlobalInstance().put(Inet6Address.class, InetAddressSerializer.instance); - // ParserConfig.getGlobalInstance().setAutoTypeSupport(true); + JSON.register(InetAddress.class, InetAddressWriter.instance); + JSON.register(Inet4Address.class, InetAddressWriter.instance); + JSON.register(Inet6Address.class, InetAddressWriter.instance); - ParserConfig.getGlobalInstance().addAccept("com.alibaba.otter."); - ParserConfig.getGlobalInstance().addAccept("com.taobao.tddl.dbsync."); + JSONFactory.getDefaultObjectReaderProvider().addAutoTypeAccept("com.alibaba.otter."); + JSONFactory.getDefaultObjectReaderProvider().addAutoTypeAccept("com.taobao.tddl.dbsync."); } public static T unmarshalFromByte(byte[] bytes, Class targetClass) { @@ -46,7 +43,7 @@ public class JsonUtils { return JSON.toJSONBytes(obj); // 默认为UTF-8 } - public static byte[] marshalToByte(Object obj, SerializerFeature... features) { + public static byte[] marshalToByte(Object obj, JSONWriter.Feature... features) { return JSON.toJSONBytes(obj, features); // 默认为UTF-8 } @@ -62,7 +59,7 @@ public class JsonUtils { return JSON.toJSONString(obj); // 默认为UTF-8 } - public static String marshalToString(Object obj, SerializerFeature... features) { + public static String marshalToString(Object obj, JSONWriter.Feature... features) { return JSON.toJSONString(obj, features); // 默认为UTF-8 } @@ -71,29 +68,29 @@ public class JsonUtils { */ public static String marshalToString(Object obj, String... fliterFields) { final List propertyFliters = Arrays.asList(fliterFields); - try (SerializeWriter out = new SerializeWriter()) { - JSONSerializer serializer = new JSONSerializer(out); - serializer.getPropertyFilters().add((source, name, value) -> !propertyFliters.contains(name)); - serializer.write(obj); - return out.toString(); - } + + return JSON.toJSONString(obj, new PropertyFilter() { + @Override + public boolean process(Object object, String name, Object value) { + return !propertyFliters.contains(name); + } + }); } - public static class InetAddressSerializer implements ObjectSerializer { + public static class InetAddressWriter implements ObjectWriter { - public static InetAddressSerializer instance = new InetAddressSerializer(); + public static InetAddressWriter instance = new InetAddressWriter(); @Override - public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) - throws IOException { + public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) { if (object == null) { - serializer.writeNull(); + jsonWriter.writeNull(); return; } InetAddress address = (InetAddress) object; // 优先使用name - serializer.write(address.getHostName()); + jsonWriter.writeString(address.getHostName()); } } } diff --git a/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/consumer/CanalKafkaConsumer.java b/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/consumer/CanalKafkaConsumer.java index 07be61d3..ecd5ecfe 100644 --- a/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/consumer/CanalKafkaConsumer.java +++ b/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/consumer/CanalKafkaConsumer.java @@ -16,7 +16,7 @@ import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.common.TopicPartition; import org.apache.kafka.common.serialization.StringDeserializer; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.connector.core.config.CanalConstants; import com.alibaba.otter.canal.connector.core.consumer.CommonMessage; import com.alibaba.otter.canal.connector.core.spi.CanalMsgConsumer; diff --git a/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/producer/CanalKafkaProducer.java b/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/producer/CanalKafkaProducer.java index 3c30b96b..9fdd342f 100644 --- a/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/producer/CanalKafkaProducer.java +++ b/connector/kafka-connector/src/main/java/com/alibaba/otter/canal/connector/kafka/producer/CanalKafkaProducer.java @@ -18,8 +18,8 @@ import org.apache.kafka.common.serialization.StringSerializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; import com.alibaba.otter.canal.common.utils.ExecutorTemplate; import com.alibaba.otter.canal.connector.core.producer.AbstractMQProducer; import com.alibaba.otter.canal.connector.core.producer.MQDestination; @@ -249,13 +249,13 @@ public class CanalKafkaProducer extends AbstractMQProducer implements CanalMQPro FlatMessage flatMessagePart = partitionFlatMessage[i]; if (flatMessagePart != null) { records.add(new ProducerRecord<>(topicName, i, null, JSON.toJSONBytes(flatMessagePart, - SerializerFeature.WriteMapNullValue))); + JSONWriter.Feature.WriteNulls))); } } } else { final int partition = mqDestination.getPartition() != null ? mqDestination.getPartition() : 0; records.add(new ProducerRecord<>(topicName, partition, null, JSON.toJSONBytes(flatMessage, - SerializerFeature.WriteMapNullValue))); + JSONWriter.Feature.WriteNulls))); } } } diff --git a/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumer.java b/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumer.java index fc9369a1..5967a698 100644 --- a/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumer.java +++ b/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumer.java @@ -1,6 +1,6 @@ package com.alibaba.otter.canal.connector.pulsarmq.consumer; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.common.utils.MQUtil; import com.alibaba.otter.canal.connector.core.config.CanalConstants; import com.alibaba.otter.canal.connector.core.consumer.CommonMessage; diff --git a/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/producer/CanalPulsarMQProducer.java b/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/producer/CanalPulsarMQProducer.java index 4c2c8f38..bad5bc63 100644 --- a/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/producer/CanalPulsarMQProducer.java +++ b/connector/pulsarmq-connector/src/main/java/com/alibaba/otter/canal/connector/pulsarmq/producer/CanalPulsarMQProducer.java @@ -1,7 +1,7 @@ package com.alibaba.otter.canal.connector.pulsarmq.producer; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter.Feature; import com.alibaba.otter.canal.common.utils.ExecutorTemplate; import com.alibaba.otter.canal.common.utils.NamedThreadFactory; import com.alibaba.otter.canal.common.utils.PropertiesUtils; @@ -305,7 +305,7 @@ public class CanalPulsarMQProducer extends AbstractMQProducer implements CanalMQ MessageId msgResultId = producer .newMessage() .property(MSG_PROPERTY_PARTITION_NAME, String.valueOf(partition)) - .value(JSON.toJSONBytes(f, SerializerFeature.WriteMapNullValue)) + .value(JSON.toJSONBytes(f, Feature.WriteNulls)) .send() // ; diff --git a/connector/pulsarmq-connector/src/test/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumerTest.java b/connector/pulsarmq-connector/src/test/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumerTest.java index 463d0bde..760d5b1b 100644 --- a/connector/pulsarmq-connector/src/test/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumerTest.java +++ b/connector/pulsarmq-connector/src/test/java/com/alibaba/otter/canal/connector/pulsarmq/consumer/CanalPulsarMQConsumerTest.java @@ -1,6 +1,6 @@ package com.alibaba.otter.canal.connector.pulsarmq.consumer; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.connector.core.config.CanalConstants; import com.alibaba.otter.canal.connector.core.consumer.CommonMessage; import com.alibaba.otter.canal.connector.pulsarmq.config.PulsarMQConstants; diff --git a/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/consumer/CanalRabbitMQConsumer.java b/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/consumer/CanalRabbitMQConsumer.java index ebd3fa03..fc827c1c 100644 --- a/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/consumer/CanalRabbitMQConsumer.java +++ b/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/consumer/CanalRabbitMQConsumer.java @@ -13,7 +13,7 @@ import com.alibaba.otter.canal.common.utils.PropertiesUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.connector.core.config.CanalConstants; import com.alibaba.otter.canal.connector.core.consumer.CommonMessage; import com.alibaba.otter.canal.connector.core.spi.CanalMsgConsumer; diff --git a/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/producer/CanalRabbitMQProducer.java b/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/producer/CanalRabbitMQProducer.java index a9905746..80f70854 100644 --- a/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/producer/CanalRabbitMQProducer.java +++ b/connector/rabbitmq-connector/src/main/java/com/alibaba/otter/canal/connector/rabbitmq/producer/CanalRabbitMQProducer.java @@ -10,8 +10,8 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; import com.alibaba.otter.canal.common.CanalException; import com.alibaba.otter.canal.common.utils.ExecutorTemplate; import com.alibaba.otter.canal.common.utils.PropertiesUtils; @@ -151,7 +151,7 @@ public class CanalRabbitMQProducer extends AbstractMQProducer implements CanalMQ // 串行分区 List flatMessages = MQMessageUtils.messageConverter(datas, messageSub.getId()); for (FlatMessage flatMessage : flatMessages) { - byte[] message = JSON.toJSONBytes(flatMessage, SerializerFeature.WriteMapNullValue); + byte[] message = JSON.toJSONBytes(flatMessage, JSONWriter.Feature.WriteNulls); if (logger.isDebugEnabled()) { logger.debug("send message:{} to destination:{}", message, canalDestination.getCanalDestination()); } diff --git a/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/consumer/CanalRocketMQConsumer.java b/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/consumer/CanalRocketMQConsumer.java index e3f969cb..36373125 100644 --- a/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/consumer/CanalRocketMQConsumer.java +++ b/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/consumer/CanalRocketMQConsumer.java @@ -21,7 +21,7 @@ import org.apache.rocketmq.remoting.RPCHook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; import com.alibaba.otter.canal.connector.core.config.CanalConstants; import com.alibaba.otter.canal.connector.core.consumer.CommonMessage; import com.alibaba.otter.canal.connector.core.spi.CanalMsgConsumer; diff --git a/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/producer/CanalRocketMQProducer.java b/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/producer/CanalRocketMQProducer.java index e08a3b97..824304e9 100644 --- a/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/producer/CanalRocketMQProducer.java +++ b/connector/rocketmq-connector/src/main/java/com/alibaba/otter/canal/connector/rocketmq/producer/CanalRocketMQProducer.java @@ -1,7 +1,7 @@ package com.alibaba.otter.canal.connector.rocketmq.producer; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONWriter; import com.alibaba.otter.canal.common.CanalException; import com.alibaba.otter.canal.common.utils.ExecutorTemplate; import com.alibaba.otter.canal.common.utils.NamedThreadFactory; @@ -263,7 +263,7 @@ import java.util.stream.Collectors; List messages = flatMessagePart.stream() .map(flatMessage -> new Message(topicName, ((RocketMQProducerConfig) this.mqProperties).getTag(), - JSON.toJSONBytes(flatMessage, SerializerFeature.WriteMapNullValue))) + JSON.toJSONBytes(flatMessage, JSONWriter.Feature.WriteNulls))) .collect(Collectors.toList()); // 批量发送 sendMessage(messages, index); @@ -278,7 +278,7 @@ import java.util.stream.Collectors; List messages = flatMessages.stream() .map(flatMessage -> new Message(topicName, ((RocketMQProducerConfig) this.mqProperties).getTag(), - JSON.toJSONBytes(flatMessage, SerializerFeature.WriteMapNullValue))) + JSON.toJSONBytes(flatMessage, JSONWriter.Feature.WriteNulls))) .collect(Collectors.toList()); // 批量发送 sendMessage(messages, partition); diff --git a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/HttpHelper.java b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/HttpHelper.java index 8d7c3dbb..0482a07b 100644 --- a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/HttpHelper.java +++ b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/HttpHelper.java @@ -29,7 +29,7 @@ import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson2.JSON; /** * http client 工具类 diff --git a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/PlainCanalConfigClient.java b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/PlainCanalConfigClient.java index ed87bdc4..2f509569 100644 --- a/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/PlainCanalConfigClient.java +++ b/instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/plain/PlainCanalConfigClient.java @@ -10,8 +10,8 @@ import java.util.Properties; import org.apache.commons.lang.StringUtils; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.TypeReference; import com.alibaba.otter.canal.common.AbstractCanalLifeCycle; import com.alibaba.otter.canal.common.CanalException; import com.alibaba.otter.canal.common.CanalLifeCycle; @@ -119,7 +119,7 @@ public class PlainCanalConfigClient extends AbstractCanalLifeCycle implements Ca heads.put("user", user); heads.put("passwd", passwd); String response = httpHelper.get(url, heads, REQUEST_TIMEOUT); - ResponseModel resp = JSONObject.parseObject(response, + ResponseModel resp = JSON.parseObject(response, new TypeReference>() { }); diff --git a/meta/src/main/java/com/alibaba/otter/canal/meta/ZooKeeperMetaManager.java b/meta/src/main/java/com/alibaba/otter/canal/meta/ZooKeeperMetaManager.java index a9e65b24..f2d6f760 100644 --- a/meta/src/main/java/com/alibaba/otter/canal/meta/ZooKeeperMetaManager.java +++ b/meta/src/main/java/com/alibaba/otter/canal/meta/ZooKeeperMetaManager.java @@ -12,7 +12,7 @@ import org.apache.commons.lang.StringUtils; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; -import com.alibaba.fastjson.serializer.SerializerFeature; +import com.alibaba.fastjson2.JSONWriter; import com.alibaba.otter.canal.common.AbstractCanalLifeCycle; import com.alibaba.otter.canal.common.utils.JsonUtils; import com.alibaba.otter.canal.common.zookeeper.ZkClientx; @@ -155,7 +155,7 @@ public class ZooKeeperMetaManager extends AbstractCanalLifeCycle implements Cana public void updateCursor(ClientIdentity clientIdentity, Position position) throws CanalMetaManagerException { String path = ZookeeperPathUtils.getCursorPath(clientIdentity.getDestination(), clientIdentity.getClientId()); - byte[] data = JsonUtils.marshalToByte(position, SerializerFeature.WriteClassName); + byte[] data = JsonUtils.marshalToByte(position, JSONWriter.Feature.WriteClassName); try { zkClientx.writeData(path, data); } catch (ZkNoNodeException e) { @@ -166,7 +166,7 @@ public class ZooKeeperMetaManager extends AbstractCanalLifeCycle implements Cana public Long addBatch(ClientIdentity clientIdentity, PositionRange positionRange) throws CanalMetaManagerException { String path = ZookeeperPathUtils.getBatchMarkPath(clientIdentity.getDestination(), clientIdentity.getClientId()); - byte[] data = JsonUtils.marshalToByte(positionRange, SerializerFeature.WriteClassName); + byte[] data = JsonUtils.marshalToByte(positionRange, JSONWriter.Feature.WriteClassName); String batchPath = zkClientx .createPersistentSequential(path + ZookeeperPathUtils.ZOOKEEPER_SEPARATOR, data, true); String batchIdString = StringUtils.substringAfterLast(batchPath, ZookeeperPathUtils.ZOOKEEPER_SEPARATOR); @@ -177,7 +177,7 @@ public class ZooKeeperMetaManager extends AbstractCanalLifeCycle implements Cana Long batchId) throws CanalMetaManagerException { String path = ZookeeperPathUtils .getBatchMarkWithIdPath(clientIdentity.getDestination(), clientIdentity.getClientId(), batchId); - byte[] data = JsonUtils.marshalToByte(positionRange, SerializerFeature.WriteClassName); + byte[] data = JsonUtils.marshalToByte(positionRange, JSONWriter.Feature.WriteClassName); zkClientx.createPersistent(path, data, true); } diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBackupPolicyRequest.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBackupPolicyRequest.java index cf51961a..0578078c 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBackupPolicyRequest.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBackupPolicyRequest.java @@ -3,8 +3,8 @@ package com.alibaba.otter.canal.parse.inbound.mysql.rds.request; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.alibaba.otter.canal.parse.inbound.mysql.rds.data.RdsBackupPolicy; /** diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBinlogFilesRequest.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBinlogFilesRequest.java index 8aa90569..dfa3f13a 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBinlogFilesRequest.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/rds/request/DescribeBinlogFilesRequest.java @@ -2,11 +2,11 @@ package com.alibaba.otter.canal.parse.inbound.mysql.rds.request; import java.util.Date; +import com.alibaba.fastjson2.JSON; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; -import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson2.TypeReference; import com.alibaba.otter.canal.parse.inbound.mysql.rds.data.DescribeBinlogFileResult; /** @@ -47,7 +47,7 @@ public class DescribeBinlogFilesRequest extends AbstractRequest() { }); return describeBinlogFileResult; diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java index e61bc601..3e1ecf71 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java @@ -22,8 +22,8 @@ import org.slf4j.LoggerFactory; import org.slf4j.MDC; import com.alibaba.druid.sql.repository.Schema; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.alibaba.otter.canal.filter.CanalEventFilter; import com.alibaba.otter.canal.parse.driver.mysql.packets.server.ResultSetPacket; import com.alibaba.otter.canal.parse.exception.CanalParseException; diff --git a/pom.xml b/pom.xml index 65605933..5eae6d19 100644 --- a/pom.xml +++ b/pom.xml @@ -218,9 +218,9 @@ 0.10 - com.alibaba - fastjson - 1.2.58.sec06 + com.alibaba.fastjson2 + fastjson2 + 2.0.2 com.google.guava