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

chenjiahao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 2fb40e3a5a8 Replace the use of Gson with Jackson (#28263)
2fb40e3a5a8 is described below

commit 2fb40e3a5a86b1537b43c91e066e4ab387684be3
Author: Raigor <[email protected]>
AuthorDate: Sat Aug 26 15:30:03 2023 +0800

    Replace the use of Gson with Jackson (#28263)
    
    * Replace the use of Gson with Jackson
    
    * optimized naming in JsonUtils.
---
 .../shardingsphere/infra/util/json/JsonUtils.java  | 32 ++++++++++++++++------
 .../opengauss/ingest/wal/decode/MppTableData.java  |  2 +-
 .../ingest/wal/decode/MppdbDecodingPlugin.java     |  2 +-
 .../migration/api/impl/MigrationJobAPI.java        |  3 +-
 .../cluster/consul/lock/ConsulDistributedLock.java | 11 +++-----
 .../ral/queryable/ShowComputeNodeModeExecutor.java |  4 +--
 .../ral/updatable/ImportMetaDataUpdater.java       |  2 +-
 .../distsql/rul/sql/ParseDistSQLExecutor.java      |  4 +--
 .../distsql/rul/sql/ParseDistSQLExecutorTest.java  |  7 ++---
 test/e2e/agent/plugins/common/pom.xml              |  5 ++--
 .../test/e2e/agent/common/util/OkHttpUtils.java    | 18 ++----------
 .../test/e2e/agent/jaeger/asserts/SpanAssert.java  |  8 ++----
 .../e2e/agent/jaeger/result/JaegerTraceResult.java | 10 +++----
 .../test/e2e/agent/jaeger/result/SpanResult.java   |  6 ++--
 .../test/e2e/agent/jaeger/result/TraceResult.java  |  4 +--
 .../test/e2e/agent/zipkin/asserts/SpanAssert.java  |  8 +++---
 16 files changed, 60 insertions(+), 66 deletions(-)

diff --git 
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonUtils.java
 
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonUtils.java
index c230a869349..4f45b937672 100644
--- 
a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonUtils.java
+++ 
b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/json/JsonUtils.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.infra.util.json;
 
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
@@ -50,26 +51,39 @@ public final class JsonUtils {
     }
     
     /**
-     * Parse data to json string.
+     * Serialize object as json string.
      *
-     * @param data data
+     * @param obj object
      * @return json string
      */
     @SneakyThrows(JsonProcessingException.class)
-    public static String toJsonString(final Object data) {
-        return MAPPER.writeValueAsString(data);
+    public static String toJsonString(final Object obj) {
+        return MAPPER.writeValueAsString(obj);
     }
     
     /**
-     * Deserialize to Object from json string.
+     * Deserialize from json string to object.
      *
      * @param value json string
-     * @param clazz target Object
-     * @param <T> the type of return Object data
-     * @return target Object data
+     * @param clazz target object type
+     * @param <T> the type of target object
+     * @return object
      */
     @SneakyThrows(JsonProcessingException.class)
-    public static <T> T readValue(final String value, final Class<T> clazz) {
+    public static <T> T fromJsonString(final String value, final Class<T> 
clazz) {
         return MAPPER.readValue(value, clazz);
     }
+    
+    /**
+     * Deserialize from json string to object.
+     *
+     * @param value json string
+     * @param typeReference target object type reference
+     * @param <T> the type of target object
+     * @return object
+     */
+    @SneakyThrows(JsonProcessingException.class)
+    public static <T> T fromJsonString(final String value, final 
TypeReference<T> typeReference) {
+        return MAPPER.readValue(value, typeReference);
+    }
 }
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppTableData.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppTableData.java
index 9743cd785c4..0e5ec3717a3 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppTableData.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppTableData.java
@@ -22,7 +22,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * Mppdb decoding Gson related class.
+ * Mppdb decoding json related class.
  */
 @Setter
 @Getter
diff --git 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
index b33f2b2e733..8203f1245c5 100644
--- 
a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
+++ 
b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
@@ -96,7 +96,7 @@ public final class MppdbDecodingPlugin implements 
DecodingPlugin {
     
     private AbstractRowEvent readTableEvent(final String mppData) {
         MppTableData mppTableData;
-        mppTableData = JsonUtils.readValue(mppData, MppTableData.class);
+        mppTableData = JsonUtils.fromJsonString(mppData, MppTableData.class);
         AbstractRowEvent result;
         String rowEventType = mppTableData.getOpType();
         switch (rowEventType) {
diff --git 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
index 134ca33febc..b91a8ea0af7 100644
--- 
a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
+++ 
b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.data.pipeline.scenario.migration.api.impl;
 
-import com.google.gson.Gson;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
 import 
org.apache.shardingsphere.data.pipeline.api.config.TableNameSchemaNameMapping;
@@ -491,7 +490,7 @@ public final class MigrationJobAPI extends 
AbstractInventoryIncrementalJobAPIImp
             props.add(getStandardProperty(standardProps, "minPoolSize"));
             props.add(getStandardProperty(standardProps, "readOnly"));
             Map<String, Object> otherProps = 
value.getCustomProperties().getProperties();
-            props.add(otherProps.isEmpty() ? "" : new 
Gson().toJson(otherProps));
+            props.add(otherProps.isEmpty() ? "" : 
JsonUtils.toJsonString(otherProps));
             result.add(props);
         }
         return result;
diff --git 
a/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
 
b/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
index 0c7c76c505b..18c43de83aa 100644
--- 
a/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
+++ 
b/mode/type/cluster/repository/provider/consul/src/main/java/org/apache/shardingsphere/mode/repository/cluster/consul/lock/ConsulDistributedLock.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.mode.repository.cluster.consul.lock;
 
 import com.ecwid.consul.ConsulException;
-import com.ecwid.consul.json.GsonFactory;
 import com.ecwid.consul.transport.RawResponse;
 import com.ecwid.consul.v1.ConsulClient;
 import com.ecwid.consul.v1.OperationException;
@@ -28,8 +27,9 @@ import com.ecwid.consul.v1.kv.model.GetValue;
 import com.ecwid.consul.v1.kv.model.PutParams;
 import com.ecwid.consul.v1.session.model.NewSession;
 import com.ecwid.consul.v1.session.model.Session.Behavior;
+import com.fasterxml.jackson.core.type.TypeReference;
 import com.google.common.base.Strings;
-import com.google.common.reflect.TypeToken;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 import 
org.apache.shardingsphere.mode.repository.cluster.consul.ShardingSphereConsulClient;
 import 
org.apache.shardingsphere.mode.repository.cluster.consul.ShardingSphereQueryParams;
 import 
org.apache.shardingsphere.mode.repository.cluster.consul.props.ConsulProperties;
@@ -135,11 +135,8 @@ public final class ConsulDistributedLock implements 
DistributedLock {
     
     private Response<GetValue> getResponse(final RawResponse rawResponse) {
         if (200 == rawResponse.getStatusCode()) {
-            List<GetValue> value = 
GsonFactory.getGson().fromJson(rawResponse.getContent(), new 
TypeToken<List<GetValue>>() {
-                
-                private static final long serialVersionUID = 
-5065504617907914417L;
-                
-            }.getType());
+            List<GetValue> value = 
JsonUtils.fromJsonString(rawResponse.getContent(), new 
TypeReference<List<GetValue>>() {
+            });
             if (value.isEmpty()) {
                 return new Response<>(null, rawResponse);
             }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutor.java
index eb8521c9e90..9d1cae30ad0 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutor.java
@@ -17,12 +17,12 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable;
 
-import com.google.gson.Gson;
 import 
org.apache.shardingsphere.distsql.handler.ral.query.InstanceContextRequiredQueryableRALExecutor;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ShowComputeNodeModeStatement;
 import 
org.apache.shardingsphere.infra.config.mode.PersistRepositoryConfiguration;
 import org.apache.shardingsphere.infra.instance.InstanceContext;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -43,7 +43,7 @@ public final class ShowComputeNodeModeExecutor implements 
InstanceContextRequire
         PersistRepositoryConfiguration repositoryConfig = 
instanceContext.getModeConfiguration().getRepository();
         String modeType = instanceContext.getModeConfiguration().getType();
         String repositoryType = null == repositoryConfig ? "" : 
repositoryConfig.getType();
-        String props = null == repositoryConfig || null == 
repositoryConfig.getProps() || repositoryConfig.getProps().isEmpty() ? "" : new 
Gson().toJson(repositoryConfig.getProps());
+        String props = null == repositoryConfig || null == 
repositoryConfig.getProps() || repositoryConfig.getProps().isEmpty() ? "" : 
JsonUtils.toJsonString(repositoryConfig.getProps());
         return Collections.singleton(new LocalDataQueryResultRow(modeType, 
repositoryType, props));
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdater.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdater.java
index 372605e1b7e..30370d3eda8 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdater.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/ImportMetaDataUpdater.java
@@ -61,7 +61,7 @@ public final class ImportMetaDataUpdater implements 
RALUpdater<ImportMetaDataSta
         } else {
             jsonMetaDataConfig = new 
String(Base64.decodeBase64(sqlStatement.getMetaDataValue()));
         }
-        ExportedClusterInfo exportedClusterInfo = 
JsonUtils.readValue(jsonMetaDataConfig, ExportedClusterInfo.class);
+        ExportedClusterInfo exportedClusterInfo = 
JsonUtils.fromJsonString(jsonMetaDataConfig, ExportedClusterInfo.class);
         ExportedMetaData exportedMetaData = exportedClusterInfo.getMetaData();
         importServerConfig(exportedMetaData);
         importDatabase(exportedMetaData);
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutor.java
index cb43bb893f8..bf8b86b200d 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutor.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.rul.sql;
 
-import com.google.gson.Gson;
 import 
org.apache.shardingsphere.distsql.parser.statement.rul.sql.ParseStatement;
 import 
org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 import org.apache.shardingsphere.parser.rule.SQLParserRule;
 import 
org.apache.shardingsphere.proxy.backend.handler.distsql.rul.executor.ConnectionSessionRequiredRULExecutor;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -43,7 +43,7 @@ public final class ParseDistSQLExecutor implements 
ConnectionSessionRequiredRULE
     @Override
     public Collection<LocalDataQueryResultRow> getRows(final 
ShardingSphereMetaData metaData, final ConnectionSession connectionSession, 
final ParseStatement sqlStatement) {
         SQLStatement parsedSqlStatement = parseSQL(metaData, 
connectionSession, sqlStatement);
-        return Collections.singleton(new 
LocalDataQueryResultRow(parsedSqlStatement.getClass().getSimpleName(), new 
Gson().toJson(parsedSqlStatement)));
+        return Collections.singleton(new 
LocalDataQueryResultRow(parsedSqlStatement.getClass().getSimpleName(), 
JsonUtils.toJsonString(parsedSqlStatement)));
     }
     
     private SQLStatement parseSQL(final ShardingSphereMetaData metaData, final 
ConnectionSession connectionSession, final ParseStatement sqlStatement) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutorTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutorTest.java
index 78d072e5934..a0b52f7342b 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutorTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rul/sql/ParseDistSQLExecutorTest.java
@@ -17,13 +17,12 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.rul.sql;
 
-import com.google.gson.Gson;
-import com.google.gson.JsonParser;
 import 
org.apache.shardingsphere.distsql.parser.statement.rul.sql.FormatStatement;
 import 
org.apache.shardingsphere.distsql.parser.statement.rul.sql.ParseStatement;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.parser.rule.SQLParserRule;
 import 
org.apache.shardingsphere.parser.rule.builder.DefaultSQLParserRuleConfigurationBuilder;
@@ -78,7 +77,7 @@ class ParseDistSQLExecutorTest {
         handler.next();
         SQLStatement statement = 
sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class, 
"MySQL")).parse(sql, false);
         assertThat(new 
LinkedList<>(handler.getRowData().getData()).getFirst(), 
is("MySQLSelectStatement"));
-        assertThat(JsonParser.parseString(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString()), 
is(JsonParser.parseString(new Gson().toJson(statement))));
+        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonUtils.toJsonString(statement)));
     }
     
     @Test
@@ -90,7 +89,7 @@ class ParseDistSQLExecutorTest {
         handler.execute();
         handler.next();
         SQLStatement statement = 
sqlParserRule.getSQLParserEngine(TypedSPILoader.getService(DatabaseType.class, 
"PostgreSQL")).parse(sql, false);
-        assertThat(JsonParser.parseString(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString()), 
is(JsonParser.parseString(new Gson().toJson(statement))));
+        assertThat(new 
LinkedList<>(handler.getRowData().getData()).getLast().toString(), 
is(JsonUtils.toJsonString(statement)));
     }
     
     @Test
diff --git a/test/e2e/agent/plugins/common/pom.xml 
b/test/e2e/agent/plugins/common/pom.xml
index 82b024c85a7..1a8f74e9a0c 100644
--- a/test/e2e/agent/plugins/common/pom.xml
+++ b/test/e2e/agent/plugins/common/pom.xml
@@ -32,8 +32,9 @@
     
     <dependencies>
         <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-infra-util</artifactId>
+            <version>${project.version}</version>
         </dependency>
         
         <dependency>
diff --git 
a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/util/OkHttpUtils.java
 
b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/util/OkHttpUtils.java
index bd0886f1e97..335a3f3cab1 100644
--- 
a/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/util/OkHttpUtils.java
+++ 
b/test/e2e/agent/plugins/common/src/test/java/org/apache/shardingsphere/test/e2e/agent/common/util/OkHttpUtils.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.test.e2e.agent.common.util;
 
-import com.google.gson.Gson;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.Response;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
@@ -34,8 +34,6 @@ public final class OkHttpUtils {
     
     private static final OkHttpUtils OK_HTTP_UTILS = new OkHttpUtils();
     
-    private static final Gson GSON = new Gson();
-    
     private final OkHttpClient client;
     
     private OkHttpUtils() {
@@ -65,7 +63,7 @@ public final class OkHttpUtils {
      * @throws IOException IO exception
      */
     public <T> T get(final String url, final Class<T> clazz) throws 
IOException {
-        return GSON.fromJson(get(url), clazz);
+        return JsonUtils.fromJsonString(get(url), clazz);
     }
     
     /**
@@ -81,16 +79,4 @@ public final class OkHttpUtils {
         assertNotNull(response.body());
         return response.body().string();
     }
-    
-    /**
-     * Get response.
-     *
-     * @param url url
-     * @return response
-     * @throws IOException IO exception
-     */
-    public Response getResponse(final String url) throws IOException {
-        Request request = new Request.Builder().url(url).build();
-        return client.newCall(request).execute();
-    }
 }
diff --git 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/SpanAssert.java
 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/SpanAssert.java
index 6fb4891370e..669c26699c9 100644
--- 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/SpanAssert.java
+++ 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/asserts/SpanAssert.java
@@ -18,10 +18,9 @@
 package org.apache.shardingsphere.test.e2e.agent.jaeger.asserts;
 
 import com.google.common.collect.ImmutableMap;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 import org.apache.shardingsphere.test.e2e.agent.common.util.OkHttpUtils;
 import org.apache.shardingsphere.test.e2e.agent.jaeger.cases.SpanTestCase;
 import org.apache.shardingsphere.test.e2e.agent.jaeger.cases.TagAssertion;
@@ -73,7 +72,7 @@ public final class SpanAssert {
     
     private static void assertTagValue(final String baseUrl, final 
SpanTestCase expected, final TagAssertion expectedTagCase) {
         String urlWithParameter = 
String.format("%s/api/traces?service=%s&operation=%s&tags=%s&limit=%s", 
baseUrl, getEncodeValue(expected.getServiceName()),
-                getEncodeValue(expected.getSpanName()), getEncodeValue(new 
Gson().toJson(ImmutableMap.of(expectedTagCase.getTagKey(), 
expectedTagCase.getTagValue()))), 1000);
+                getEncodeValue(expected.getSpanName()), 
getEncodeValue(JsonUtils.toJsonString(ImmutableMap.of(expectedTagCase.getTagKey(),
 expectedTagCase.getTagValue()))), 1000);
         Collection<TraceResult> traceResults = 
getTraceResults(urlWithParameter);
         assertFalse(traceResults.isEmpty(), String.format("The tag `%s`=`%s` 
does not exist in `%s` span", expectedTagCase.getTagKey(), 
expectedTagCase.getTagValue(), expected.getSpanName()));
     }
@@ -85,8 +84,7 @@ public final class SpanAssert {
     
     @SneakyThrows(IOException.class)
     private static Collection<TraceResult> getTraceResults(final String url) {
-        TraceResults result = new 
Gson().fromJson(OkHttpUtils.getInstance().get(url), new 
TypeToken<TraceResults>() {
-        }.getType());
+        TraceResults result = 
JsonUtils.fromJsonString(OkHttpUtils.getInstance().get(url), 
TraceResults.class);
         assertNotNull(result);
         return result.getData();
     }
diff --git 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/JaegerTraceResult.java
 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/JaegerTraceResult.java
index f8d6f6323ea..21c2625abf0 100644
--- 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/JaegerTraceResult.java
+++ 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/JaegerTraceResult.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.test.e2e.agent.jaeger.result;
 
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
 import 
org.apache.shardingsphere.test.e2e.agent.common.result.JsonConfiguration;
@@ -45,7 +45,7 @@ public final class JaegerTraceResult implements 
JsonConfiguration {
     @Setter
     public static final class JaegerTraceResultData {
         
-        @SerializedName("traceID")
+        @JsonProperty("traceID")
         private String traceId;
         
         private List<Object> spans;
@@ -59,10 +59,10 @@ public final class JaegerTraceResult implements 
JsonConfiguration {
     @Setter
     public static final class Span {
         
-        @SerializedName("traceID")
+        @JsonProperty("traceID")
         private String traceId;
         
-        @SerializedName("spanID")
+        @JsonProperty("spanID")
         private String spanId;
         
         private int flags;
@@ -79,7 +79,7 @@ public final class JaegerTraceResult implements 
JsonConfiguration {
         
         private List<String> logs;
         
-        @SerializedName("processID")
+        @JsonProperty("processID")
         private String processId;
         
         private String warnings;
diff --git 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/SpanResult.java
 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/SpanResult.java
index c5dce6d9e00..099a8d84e5c 100644
--- 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/SpanResult.java
+++ 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/SpanResult.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.test.e2e.agent.jaeger.result;
 
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -27,10 +27,10 @@ import java.util.Collection;
 @Setter
 public final class SpanResult {
     
-    @SerializedName("traceID")
+    @JsonProperty("traceID")
     private String traceId;
     
-    @SerializedName("spanID")
+    @JsonProperty("spanID")
     private String spanId;
     
     private String operationName;
diff --git 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/TraceResult.java
 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/TraceResult.java
index 9108d6ee82f..ecf56585724 100644
--- 
a/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/TraceResult.java
+++ 
b/test/e2e/agent/plugins/tracing/jaeger/src/test/java/org/apache/shardingsphere/test/e2e/agent/jaeger/result/TraceResult.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.test.e2e.agent.jaeger.result;
 
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -27,7 +27,7 @@ import java.util.Collection;
 @Setter
 public final class TraceResult {
     
-    @SerializedName("traceID")
+    @JsonProperty("traceID")
     private String traceId;
     
     private Collection<SpanResult> spans;
diff --git 
a/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/SpanAssert.java
 
b/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/SpanAssert.java
index df835994561..cdade204e63 100644
--- 
a/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/SpanAssert.java
+++ 
b/test/e2e/agent/plugins/tracing/zipkin/src/test/java/org/apache/shardingsphere/test/e2e/agent/zipkin/asserts/SpanAssert.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.test.e2e.agent.zipkin.asserts;
 
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
+import com.fasterxml.jackson.core.type.TypeReference;
 import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.util.json.JsonUtils;
 import org.apache.shardingsphere.test.e2e.agent.common.util.OkHttpUtils;
 import org.apache.shardingsphere.test.e2e.agent.zipkin.cases.SpanTestCase;
 import org.apache.shardingsphere.test.e2e.agent.zipkin.cases.TagAssertion;
@@ -77,8 +77,8 @@ public final class SpanAssert {
     
     @SneakyThrows(IOException.class)
     private static Collection<SpanResult> getSpanResults(final SpanTestCase 
expected, final String url) {
-        List<List<SpanResult>> result = new 
Gson().fromJson(OkHttpUtils.getInstance().get(url), new 
TypeToken<List<List<SpanResult>>>() {
-        }.getType());
+        List<List<SpanResult>> result = 
JsonUtils.fromJsonString(OkHttpUtils.getInstance().get(url), new 
TypeReference<List<List<SpanResult>>>() {
+        });
         assertNotNull(result);
         return 
result.stream().findFirst().orElse(Collections.emptyList()).stream()
                 .filter(each -> 
expected.getSpanName().equalsIgnoreCase(each.getName())).collect(Collectors.toList());

Reply via email to