You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2020/08/04 02:57:38 UTC

[shardingsphere] branch master updated: Fix checkstyle (#6601)

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

panjuan 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 050f5c0  Fix checkstyle (#6601)
050f5c0 is described below

commit 050f5c0ab329c5181700d900d990cfb02558ba45
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Aug 4 10:57:22 2020 +0800

    Fix checkstyle (#6601)
    
    * Refactor OrderedSPIRegistry
    
    * Make field as local if possible
    
    * Add @SuppressWarnings("unchecked")
    
    * Remove redundant throws
    
    * Remove assertEquals
    
    * Add genertic type
---
 .../cluster/state/ClusterStateInstanceTest.java    |  5 +---
 .../merge/dal/EncryptDALResultDecorator.java       |  4 +--
 .../merge/dql/EncryptDQLResultDecorator.java       |  4 +--
 .../datetime/IntervalShardingAlgorithmTest.java    |  5 ++--
 .../infra/spi/order/OrderedSPIRegistry.java        | 14 ++++-----
 .../infra/callback/CallbackTest.java               | 20 ++++++-------
 .../merge/engine/decorator/ResultDecorator.java    |  4 +--
 .../decorator/impl/TransparentResultDecorator.java |  4 +--
 .../shardingsphere/infra/route/DataNodeRouter.java |  4 +--
 .../jdbc/adapter/AbstractStatementAdapter.java     | 16 +++++------
 .../core/resultset/ShardingSphereResultSet.java    |  3 +-
 .../driver/executor/AbstractBaseExecutorTest.java  |  4 +--
 .../ShardingSpherePreparedStatementTest.java       |  3 +-
 .../statement/ShardingSphereStatementTest.java     |  3 +-
 .../connection/CircuitBreakerConnection.java       | 14 ++-------
 .../connection/CircuitBreakerConnectionTest.java   |  3 +-
 .../spring/boot/type/SpringBootJNDITest.java       | 22 ++++++---------
 .../spring/AbstractSpringJUnitTest.java            |  2 +-
 .../spring/KeyGenerateAlgorithmTest.java           |  5 ++--
 .../spring/ShardingNamespaceTest.java              |  3 +-
 .../AbstractDbcp2DataSourcePropertiesSetter.java   |  2 +-
 .../JDBCDriverURLRecognizerEngineTest.java         |  6 ++--
 .../frontend/command/CommandExecutorTask.java      | 10 +++----
 .../mysql/command/MySQLCommandExecuteEngine.java   |  6 ++--
 .../admin/initdb/MySQLComInitDbExecutor.java       |  2 +-
 .../command/admin/ping/MySQLComPingExecutor.java   |  2 +-
 .../command/admin/quit/MySQLComQuitExecutor.java   |  2 +-
 .../generic/MySQLUnsupportedCommandExecutor.java   |  2 +-
 .../binary/close/MySQLComStmtCloseExecutor.java    |  2 +-
 .../execute/MySQLComStmtExecuteExecutor.java       |  6 ++--
 .../prepare/MySQLComStmtPrepareExecutor.java       |  4 +--
 .../binary/reset/MySQLComStmtResetExecutor.java    |  2 +-
 .../fieldlist/MySQLComFieldListPacketExecutor.java |  9 +++---
 .../text/query/MySQLComQueryPacketExecutor.java    |  6 ++--
 .../reset/MySQLComStmtResetExecutorTest.java       |  2 +-
 .../command/PostgreSQLCommandExecuteEngine.java    |  6 ++--
 .../generic/PostgreSQLComTerminationExecutor.java  |  2 +-
 .../PostgreSQLUnsupportedCommandExecutor.java      |  2 +-
 .../binary/bind/PostgreSQLComBindExecutor.java     |  6 ++--
 .../describe/PostgreSQLComDescribeExecutor.java    |  2 +-
 .../execute/PostgreSQLComExecuteExecutor.java      |  2 +-
 .../binary/parse/PostgreSQLComParseExecutor.java   |  2 +-
 .../binary/sync/PostgreSQLComSyncExecutor.java     |  2 +-
 .../query/text/PostgreSQLComQueryExecutor.java     |  6 ++--
 .../proxy/frontend/api/CommandExecutor.java        |  2 +-
 .../frontend/engine/CommandExecuteEngine.java      |  4 +--
 .../core/config/utils/RdbmsConfigurationUtil.java  |  6 ++--
 .../engine/ShardingScalingExecuteEngine.java       |  8 +++---
 .../executor/AbstractShardingScalingExecutor.java  | 18 ++++--------
 .../core/job/position/PrimaryKeyPosition.java      |  2 +-
 .../resume/AbstractResumablePositionManager.java   |  2 ++
 .../incremental/IncrementalDataScalingTask.java    |  4 +--
 .../task/inventory/InventoryDataScalingTask.java   |  4 +--
 .../config/utils/SyncConfigurationUtilTest.java    |  6 ++--
 .../preparer/resumer/SyncPositionResumerTest.java  | 13 +++++----
 .../AbstractResumablePositionManagerTest.java      | 11 ++++----
 .../scaling/mysql/client/MySQLClientTest.java      |  7 ++---
 .../manager/BitronixRecoveryResourceTest.java      | 33 ++++++++++------------
 .../xa/jta/connection/XAConnectionFactoryTest.java |  2 +-
 .../DataSourceXAResourceRecoveryHelperTest.java    | 25 +++++++---------
 60 files changed, 172 insertions(+), 210 deletions(-)

diff --git a/shardingsphere-control-panel/shardingsphere-cluster/shardingsphere-cluster-state/src/test/java/org/apache/shardingsphere/cluster/state/ClusterStateInstanceTest.java b/shardingsphere-control-panel/shardingsphere-cluster/shardingsphere-cluster-state/src/test/java/org/apache/shardingsphere/cluster/state/ClusterStateInstanceTest.java
index ece6b47..9e7cc1b 100644
--- a/shardingsphere-control-panel/shardingsphere-cluster/shardingsphere-cluster-state/src/test/java/org/apache/shardingsphere/cluster/state/ClusterStateInstanceTest.java
+++ b/shardingsphere-control-panel/shardingsphere-cluster/shardingsphere-cluster-state/src/test/java/org/apache/shardingsphere/cluster/state/ClusterStateInstanceTest.java
@@ -23,11 +23,8 @@ import static org.junit.Assert.assertNotNull;
 
 public final class ClusterStateInstanceTest {
     
-    private ClusterStateInstance clusterStateInstance;
-    
     @Test
     public void assertGetInstance() {
-        clusterStateInstance = ClusterStateInstance.getInstance();
-        assertNotNull(clusterStateInstance);
+        assertNotNull(ClusterStateInstance.getInstance());
     }
 }
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
index 49134ff..8136c62 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/EncryptDALResultDecorator.java
@@ -35,13 +35,13 @@ import org.apache.shardingsphere.infra.merge.result.impl.transparent.Transparent
 public final class EncryptDALResultDecorator implements ResultDecorator {
     
     @Override
-    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return isNeedMergeEncryptColumns(sqlStatementContext.getSqlStatement())
                 ? new MergedEncryptColumnsMergedResult(queryResult, sqlStatementContext, schemaMetaData) : new TransparentMergedResult(queryResult);
     }
     
     @Override
-    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return isNeedMergeEncryptColumns(sqlStatementContext.getSqlStatement()) ? new DecoratedEncryptColumnsMergedResult(mergedResult, sqlStatementContext, schemaMetaData) : mergedResult;
     }
     
diff --git a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java
index fb8c684..a095478 100644
--- a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java
+++ b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-merge/src/main/java/org/apache/shardingsphere/encrypt/merge/dql/EncryptDQLResultDecorator.java
@@ -36,12 +36,12 @@ public final class EncryptDQLResultDecorator implements ResultDecorator {
     private final boolean queryWithCipherColumn;
     
     @Override
-    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return new EncryptMergedResult(metaData, new TransparentMergedResult(queryResult), queryWithCipherColumn);
     }
     
     @Override
-    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return new EncryptMergedResult(metaData, mergedResult, queryWithCipherColumn);
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithmTest.java
index c12c7d6..260af21 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithmTest.java
@@ -36,7 +36,6 @@ import java.util.List;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
@@ -149,7 +148,7 @@ public final class IntervalShardingAlgorithmTest {
         LocalDateTime localDateTime = LocalDateTime.parse(value.substring(0, inputFormat.length()), DateTimeFormatter.ofPattern(inputFormat));
         String tableNameShardedByQuarter = localDateTime.format(DateTimeFormatter.ofPattern(tableFormatByQuarter));
         String tableNameShardedByMonth = localDateTime.format(DateTimeFormatter.ofPattern(tableFormatByMonth));
-        assertEquals("202004", tableNameShardedByQuarter);
-        assertEquals("202010", tableNameShardedByMonth);
+        assertThat(tableNameShardedByQuarter, is("202004"));
+        assertThat(tableNameShardedByMonth, is("202010"));
     }
 }
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/order/OrderedSPIRegistry.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/order/OrderedSPIRegistry.java
index 6dfc7b2..20c3c83 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/order/OrderedSPIRegistry.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/order/OrderedSPIRegistry.java
@@ -37,10 +37,10 @@ public final class OrderedSPIRegistry {
      * @param <T> type of ordered SPI class
      * @return registered services
      */
-    public static <T extends OrderedSPI> Map<Class<?>, T> getRegisteredServicesByClass(final Collection<Class<?>> types, final Class<T> orderedSPIClass) {
+    public static <T extends OrderedSPI<?>> Map<Class<?>, T> getRegisteredServicesByClass(final Collection<Class<?>> types, final Class<T> orderedSPIClass) {
         Map<Class<?>, T> result = new LinkedHashMap<>();
         for (T each : getRegisteredServices(orderedSPIClass)) {
-            types.stream().filter(type -> isSameTypeClass(each, type)).forEach(type -> result.put(type, each));
+            types.stream().filter(type -> ((OrderedSPI<?>) each).getTypeClass() == type).forEach(type -> result.put(type, each));
         }
         return result;
     }
@@ -54,23 +54,19 @@ public final class OrderedSPIRegistry {
      * @param <V> type of ordered SPI class
      * @return registered services
      */
-    public static <K, V extends OrderedSPI> Map<K, V> getRegisteredServices(final Collection<K> types, final Class<V> orderedSPIClass) {
+    public static <K, V extends OrderedSPI<?>> Map<K, V> getRegisteredServices(final Collection<K> types, final Class<V> orderedSPIClass) {
         Map<K, V> result = new LinkedHashMap<>();
         for (V each : getRegisteredServices(orderedSPIClass)) {
-            types.stream().filter(type -> isSameTypeClass(each, type.getClass())).forEach(type -> result.put(type, each));
+            types.stream().filter(type -> each.getTypeClass() == type.getClass()).forEach(type -> result.put(type, each));
         }
         return result;
     }
     
-    private static <T extends OrderedSPI> Collection<T> getRegisteredServices(final Class<T> orderedSPIClass) {
+    private static <T extends OrderedSPI<?>> Collection<T> getRegisteredServices(final Class<T> orderedSPIClass) {
         Map<Integer, T> result = new TreeMap<>();
         for (T each : ShardingSphereServiceLoader.newServiceInstances(orderedSPIClass)) {
             result.put(each.getOrder(), each);
         }
         return result.values();
     }
-    
-    private static boolean isSameTypeClass(final OrderedSPI<?> orderedSPI, final Class<?> typeClass) {
-        return orderedSPI.getTypeClass() == typeClass;
-    }
 }
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/callback/CallbackTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/callback/CallbackTest.java
index 0a3fbe2..3eea72c 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/callback/CallbackTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/callback/CallbackTest.java
@@ -17,10 +17,6 @@
 
 package org.apache.shardingsphere.infra.callback;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
 import org.apache.shardingsphere.infra.callback.orchestration.DataSourceCallback;
 import org.apache.shardingsphere.infra.callback.orchestration.MetaDataCallback;
 import org.apache.shardingsphere.infra.callback.orchestration.RuleCallback;
@@ -29,8 +25,13 @@ import org.apache.shardingsphere.infra.config.RuleConfiguration;
 import org.apache.shardingsphere.infra.metadata.schema.RuleSchemaMetaData;
 import org.junit.Test;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 
 public final class CallbackTest {
@@ -41,14 +42,14 @@ public final class CallbackTest {
     public void assertRun() {
         MetaDataCallback.getInstance().run(TEST, new RuleSchemaMetaData(null, null));
         MetaDataCallback.getInstance().register((schemaName, ruleSchemaMetaData) -> {
-            assertEquals(schemaName, TEST);
+            assertThat(schemaName, is(TEST));
             assertThat(ruleSchemaMetaData.getClass().getName(), is(RuleSchemaMetaData.class.getName()));
         });
         MetaDataCallback.getInstance().run(TEST, new RuleSchemaMetaData(null, null));
         
         DataSourceCallback.getInstance().run(TEST, new HashMap<>());
         DataSourceCallback.getInstance().register((schemaName, map) -> {
-            assertEquals(schemaName, TEST);
+            assertThat(schemaName, is(TEST));
             assertThat(map.size(), is(1));
             map.forEach((k, v) -> assertThat(v.getClass().getName(), is(DataSourceConfiguration.class.getName())));
         });
@@ -59,8 +60,8 @@ public final class CallbackTest {
         
         RuleCallback.getInstance().run(TEST, new ArrayList<>());
         RuleCallback.getInstance().register((schemaName, ruleConfigurations) -> {
-            assertEquals(schemaName, TEST);
-            assertThat(ruleConfigurations.isEmpty(), is(false));
+            assertThat(schemaName, is(TEST));
+            assertFalse(ruleConfigurations.isEmpty());
             ruleConfigurations.forEach(each -> assertThat(each.getClass().getName(), is(TestRuleConfiguration.class.getName())));
         });
         Collection<RuleConfiguration> ruleConfigurations = new ArrayList<>();
@@ -71,4 +72,3 @@ public final class CallbackTest {
     static class TestRuleConfiguration implements RuleConfiguration {
     }
 }
-
diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java
index c1956b4..e9d3040 100644
--- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java
+++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/ResultDecorator.java
@@ -38,7 +38,7 @@ public interface ResultDecorator {
      * @return merged result
      * @throws SQLException SQL exception
      */
-    MergedResult decorate(QueryResult queryResult, SQLStatementContext sqlStatementContext, SchemaMetaData schemaMetaData) throws SQLException;
+    MergedResult decorate(QueryResult queryResult, SQLStatementContext<?> sqlStatementContext, SchemaMetaData schemaMetaData) throws SQLException;
     
     /**
      * Decorate merged result.
@@ -49,5 +49,5 @@ public interface ResultDecorator {
      * @return merged result
      * @throws SQLException SQL exception
      */
-    MergedResult decorate(MergedResult mergedResult, SQLStatementContext sqlStatementContext, SchemaMetaData schemaMetaData) throws SQLException;
+    MergedResult decorate(MergedResult mergedResult, SQLStatementContext<?> sqlStatementContext, SchemaMetaData schemaMetaData) throws SQLException;
 }
diff --git a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java
index 0ffeae5..3dce484 100644
--- a/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java
+++ b/shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/engine/decorator/impl/TransparentResultDecorator.java
@@ -30,12 +30,12 @@ import org.apache.shardingsphere.sql.parser.binder.statement.SQLStatementContext
 public final class TransparentResultDecorator implements ResultDecorator {
     
     @Override
-    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return new TransparentMergedResult(queryResult);
     }
     
     @Override
-    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext sqlStatementContext, final SchemaMetaData schemaMetaData) {
+    public MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext, final SchemaMetaData schemaMetaData) {
         return mergedResult;
     }
 }
diff --git a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/DataNodeRouter.java b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/DataNodeRouter.java
index b1da8d9..fb1ad3e 100644
--- a/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/DataNodeRouter.java
+++ b/shardingsphere-infra/shardingsphere-infra-route/src/main/java/org/apache/shardingsphere/infra/route/DataNodeRouter.java
@@ -93,11 +93,11 @@ public final class DataNodeRouter {
     
     private RouteContext createRouteContext(final SQLStatement sqlStatement, final List<Object> parameters) {
         try {
-            SQLStatementContext sqlStatementContext = SQLStatementContextFactory.newInstance(metaData.getSchema().getSchemaMetaData(), parameters, sqlStatement);
+            SQLStatementContext<?> sqlStatementContext = SQLStatementContextFactory.newInstance(metaData.getSchema().getSchemaMetaData(), parameters, sqlStatement);
             return new RouteContext(sqlStatementContext, parameters, new RouteResult());
             // TODO should pass parameters for master-slave
         } catch (final IndexOutOfBoundsException ex) {
-            return new RouteContext(new CommonSQLStatementContext(sqlStatement), parameters, new RouteResult());
+            return new RouteContext(new CommonSQLStatementContext<>(sqlStatement), parameters, new RouteResult());
         }
     }
 }
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
index 0f93b65..355bb7b 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/adapter/AbstractStatementAdapter.java
@@ -42,7 +42,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
     
     private final ForceExecuteTemplate<Statement> forceExecuteTemplate = new ForceExecuteTemplate<>();
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void close() throws SQLException {
         closed = true;
@@ -63,7 +63,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         return poolable;
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setPoolable(final boolean poolable) throws SQLException {
         this.poolable = poolable;
@@ -76,7 +76,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         return fetchSize;
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setFetchSize(final int rows) throws SQLException {
         this.fetchSize = rows;
@@ -84,14 +84,14 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         forceExecuteTemplate.execute((Collection) getRoutedStatements(), statement -> statement.setFetchSize(rows));
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setEscapeProcessing(final boolean enable) throws SQLException {
         recordMethodInvocation(targetClass, "setEscapeProcessing", new Class[] {boolean.class}, new Object[] {enable});
         forceExecuteTemplate.execute((Collection) getRoutedStatements(), statement -> statement.setEscapeProcessing(enable));
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void cancel() throws SQLException {
         forceExecuteTemplate.execute((Collection) getRoutedStatements(), Statement::cancel);
@@ -154,7 +154,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         return getRoutedStatements().isEmpty() ? 0 : getRoutedStatements().iterator().next().getMaxFieldSize();
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setMaxFieldSize(final int max) throws SQLException {
         recordMethodInvocation(targetClass, "setMaxFieldSize", new Class[] {int.class}, new Object[] {max});
@@ -167,7 +167,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         return getRoutedStatements().isEmpty() ? -1 : getRoutedStatements().iterator().next().getMaxRows();
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setMaxRows(final int max) throws SQLException {
         recordMethodInvocation(targetClass, "setMaxRows", new Class[] {int.class}, new Object[] {max});
@@ -179,7 +179,7 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
         return getRoutedStatements().isEmpty() ? 0 : getRoutedStatements().iterator().next().getQueryTimeout();
     }
     
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"unchecked", "rawtypes"})
     @Override
     public final void setQueryTimeout(final int seconds) throws SQLException {
         recordMethodInvocation(targetClass, "setQueryTimeout", new Class[] {int.class}, new Object[] {seconds});
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
index 985a165..856280d 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/resultset/ShardingSphereResultSet.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.driver.jdbc.core.resultset;
 
-import java.sql.Array;
 import org.apache.shardingsphere.driver.jdbc.adapter.AbstractResultSetAdapter;
 import org.apache.shardingsphere.infra.executor.sql.context.ExecutionContext;
 import org.apache.shardingsphere.infra.merge.result.MergedResult;
@@ -26,6 +25,7 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.math.BigDecimal;
 import java.net.URL;
+import java.sql.Array;
 import java.sql.Blob;
 import java.sql.Clob;
 import java.sql.Date;
@@ -364,6 +364,7 @@ public final class ShardingSphereResultSet extends AbstractResultSetAdapter {
         return getObject(getIndexFromColumnLabelAndIndexMap(columnLabel));
     }
     
+    @SuppressWarnings("unchecked")
     @Override
     public <T> T getObject(final int columnIndex, final Class<T> type) throws SQLException {
         if (LocalDateTime.class.equals(type) || LocalDate.class.equals(type) || LocalTime.class.equals(type)) {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
index c84c87b..9d5ab6f 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/executor/AbstractBaseExecutorTest.java
@@ -96,8 +96,8 @@ public abstract class AbstractBaseExecutorTest {
         return result;
     }
 
-    protected final SQLStatementContext getSQLStatementContext() {
-        SQLStatementContext result = mock(SQLStatementContext.class);
+    protected final SQLStatementContext<?> getSQLStatementContext() {
+        SQLStatementContext<?> result = mock(SQLStatementContext.class);
         TablesContext tablesContext = mock(TablesContext.class);
         when(tablesContext.getTableNames()).thenReturn(Collections.singleton("table_x"));
         when(result.getTablesContext()).thenReturn(tablesContext);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatementTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatementTest.java
index 2eedda6..af5f6f9 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatementTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSpherePreparedStatementTest.java
@@ -31,7 +31,6 @@ import java.sql.Statement;
 import java.util.Collection;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
@@ -462,7 +461,7 @@ public final class ShardingSpherePreparedStatementTest extends AbstractShardingS
                     count++;
                 }
             }
-            assertEquals(result.size(), count);
+            assertThat(result.size(), is(count));
         }
     }
     
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatementTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatementTest.java
index 4405924..56c317b 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatementTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/ShardingSphereStatementTest.java
@@ -33,10 +33,9 @@ import static org.junit.Assert.assertTrue;
 
 public final class ShardingSphereStatementTest extends AbstractShardingSphereDataSourceForShardingTest {
     
-    private final String sql = "INSERT INTO t_order_item(order_id, user_id, status) VALUES (%d, %d, '%s')";
-    
     @Test
     public void assertGetGeneratedKeys() throws SQLException {
+        String sql = "INSERT INTO t_order_item(order_id, user_id, status) VALUES (%d, %d, '%s')";
         try (
                 Connection connection = getShardingSphereDataSource().getConnection();
                 Statement statement = connection.createStatement()) {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnection.java b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnection.java
index a9b776b..10589e9 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnection.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/main/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnection.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.driver.orchestration.internal.circuit.statement
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
-import java.sql.SQLException;
 import java.sql.SQLWarning;
 import java.sql.Statement;
 
@@ -41,7 +40,6 @@ public final class CircuitBreakerConnection extends AbstractUnsupportedOperation
     
     @Override
     public void setReadOnly(final boolean readOnly) {
-        
     }
     
     @Override
@@ -51,7 +49,6 @@ public final class CircuitBreakerConnection extends AbstractUnsupportedOperation
     
     @Override
     public void setTransactionIsolation(final int level) {
-        
     }
     
     @Override
@@ -66,12 +63,10 @@ public final class CircuitBreakerConnection extends AbstractUnsupportedOperation
     
     @Override
     public void clearWarnings() {
-        
     }
     
     @Override
     public void setAutoCommit(final boolean autoCommit) {
-        
     }
     
     @Override
@@ -81,17 +76,14 @@ public final class CircuitBreakerConnection extends AbstractUnsupportedOperation
     
     @Override
     public void commit() {
-        
     }
     
     @Override
     public void rollback() {
-        
     }
     
     @Override
     public void setHoldability(final int holdability) {
-        
     }
     
     @Override
@@ -128,12 +120,12 @@ public final class CircuitBreakerConnection extends AbstractUnsupportedOperation
     public PreparedStatement prepareStatement(final String sql, final String[] columnNames) {
         return new CircuitBreakerPreparedStatement();
     }
-
+    
     @Override
-    public boolean isValid(final int timeout) throws SQLException {
+    public boolean isValid(final int timeout) {
         return true;
     }
-
+    
     @Override
     public Statement createStatement() {
         return new CircuitBreakerStatement();
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/test/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnectionTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/test/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnectionTest.java
index f34b2db..dfa48e3 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/test/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnectionTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-orchestration/src/test/java/org/apache/shardingsphere/driver/orchestration/internal/circuit/connection/CircuitBreakerConnectionTest.java
@@ -36,8 +36,6 @@ public final class CircuitBreakerConnectionTest {
     
     private final CircuitBreakerConnection connection = new CircuitBreakerConnection();
     
-    private final String sql = "select 1";
-    
     @Test
     public void assertGetMetaData() {
         assertTrue(connection.getMetaData() instanceof CircuitBreakerDatabaseMetaData);
@@ -109,6 +107,7 @@ public final class CircuitBreakerConnectionTest {
     
     @Test
     public void assertPrepareStatement() {
+        String sql = "SELECT 1";
         assertTrue(connection.prepareStatement(sql) instanceof CircuitBreakerPreparedStatement);
         assertTrue(connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) instanceof CircuitBreakerPreparedStatement);
         assertTrue(connection.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT) instanceof CircuitBreakerPreparedStatement);
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/type/SpringBootJNDITest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/type/SpringBootJNDITest.java
index 79b1353..36aa873 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/type/SpringBootJNDITest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/type/SpringBootJNDITest.java
@@ -46,15 +46,11 @@ import static org.junit.Assert.assertTrue;
 @ActiveProfiles("jndi")
 public class SpringBootJNDITest {
     
-    private static final String TEST_DATASOURCE_URL = "jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL";
+    private static final String TEST_DATA_SOURCE_URL = "jdbc:h2:mem:%s;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MYSQL";
     
-    private static final String JNDI_DATASOURCE_0 = "java:comp/env/jdbc/jndi0";
+    private static final String JNDI_DATA_SOURCE_0 = "java:comp/env/jdbc/jndi0";
     
-    private static final String JNDI_DATASOURCE_1 = "java:comp/env/jdbc/jndi1";
-    
-    private static DataSource dataSource0;
-    
-    private static DataSource dataSource1;
+    private static final String JNDI_DATA_SOURCE_1 = "java:comp/env/jdbc/jndi1";
     
     @Resource
     private DataSource dataSource;
@@ -62,15 +58,13 @@ public class SpringBootJNDITest {
     @BeforeClass
     public static void setUpBeforeClass() {
         System.setProperty(Context.INITIAL_CONTEXT_FACTORY, TestJndiInitialContextFactory.class.getName());
-        dataSource0 = createNewDataSource("jndi0");
-        dataSource1 = createNewDataSource("jndi1");
-        TestJndiInitialContextFactory.bind(JNDI_DATASOURCE_0, dataSource0);
-        TestJndiInitialContextFactory.bind(JNDI_DATASOURCE_1, dataSource1);
+        TestJndiInitialContextFactory.bind(JNDI_DATA_SOURCE_0, createNewDataSource("jndi0"));
+        TestJndiInitialContextFactory.bind(JNDI_DATA_SOURCE_1, createNewDataSource("jndi1"));
     }
     
     private static DataSource createNewDataSource(final String dsName) {
         BasicDataSource result = new BasicDataSource();
-        result.setUrl(String.format(TEST_DATASOURCE_URL, dsName));
+        result.setUrl(String.format(TEST_DATA_SOURCE_URL, dsName));
         result.setUsername("sa");
         result.setPassword("");
         result.setDriverClassName("org.h2.Driver");
@@ -84,8 +78,8 @@ public class SpringBootJNDITest {
         assertThat(dataSourceMap.size(), is(2));
         assertTrue(dataSourceMap.containsKey("jndi0"));
         assertTrue(dataSourceMap.containsKey("jndi1"));
-        assertDatasource(dataSourceMap.get("jndi0"), String.format(TEST_DATASOURCE_URL, "jndi0"));
-        assertDatasource(dataSourceMap.get("jndi1"), String.format(TEST_DATASOURCE_URL, "jndi1"));
+        assertDatasource(dataSourceMap.get("jndi0"), String.format(TEST_DATA_SOURCE_URL, "jndi0"));
+        assertDatasource(dataSourceMap.get("jndi1"), String.format(TEST_DATA_SOURCE_URL, "jndi1"));
     }
     
     private void assertDatasource(final DataSource actualDatasource, final String expectedJDBCUrl) throws SQLException {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
index 7ab6be8..78068ae 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/AbstractSpringJUnitTest.java
@@ -109,7 +109,7 @@ public abstract class AbstractSpringJUnitTest extends AbstractJUnit4SpringContex
     }
     
     private Optional<Field> getField(final Object object, final String name) {
-        Class clazz = object.getClass();
+        Class<?> clazz = object.getClass();
         Optional<Field> result = Optional.empty();
         while (!result.isPresent() && null != clazz) {
             try {
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/KeyGenerateAlgorithmTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/KeyGenerateAlgorithmTest.java
index 2e85ae6..774a0c7 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/KeyGenerateAlgorithmTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/KeyGenerateAlgorithmTest.java
@@ -28,7 +28,8 @@ import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 
-import static org.junit.Assert.assertEquals;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
 
 @ContextConfiguration(locations = "classpath:META-INF/rdb/datasource/dataSource.xml")
 public final class KeyGenerateAlgorithmTest extends AbstractJUnit4SpringContextTests {
@@ -50,6 +51,6 @@ public final class KeyGenerateAlgorithmTest extends AbstractJUnit4SpringContextT
         context.registerBeanDefinition("incrementAlgorithm", beanDefinition);
         KeyGenerateAlgorithm incrementKeyGenerateAlgorithm = (KeyGenerateAlgorithm) context.getBean("incrementAlgorithm");
         KeyGenerateAlgorithm directIncrementKeyGenerateAlgorithm = new IncrementKeyGenerateAlgorithm();
-        assertEquals(incrementKeyGenerateAlgorithm.generateKey(), directIncrementKeyGenerateAlgorithm.generateKey());
+        assertThat(directIncrementKeyGenerateAlgorithm.generateKey(), is(incrementKeyGenerateAlgorithm.generateKey()));
     }
 }
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/ShardingNamespaceTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/ShardingNamespaceTest.java
index b9d5840..f7589d8 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/ShardingNamespaceTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-namespace/src/test/java/org/apache/shardingsphere/spring/ShardingNamespaceTest.java
@@ -46,7 +46,6 @@ import java.util.Map;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
@@ -60,7 +59,7 @@ public class ShardingNamespaceTest extends AbstractJUnit4SpringContextTests {
         assertThat(applicationContext.getBean("incrementAlgorithm"), instanceOf(KeyGenerateAlgorithm.class));
         KeyGenerateAlgorithm incrementKeyGenerateAlgorithm = (KeyGenerateAlgorithm) applicationContext.getBean("incrementAlgorithm");
         KeyGenerateAlgorithm directIncrementKeyGenerateAlgorithm = new IncrementKeyGenerateAlgorithm();
-        assertEquals(incrementKeyGenerateAlgorithm.generateKey(), directIncrementKeyGenerateAlgorithm.generateKey());
+        assertThat(directIncrementKeyGenerateAlgorithm.generateKey(), is(incrementKeyGenerateAlgorithm.generateKey()));
     }
     
     @Test
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-spring-infra/shardingsphere-jdbc-spring-boot-starter-infra/src/main/java/org/apache/shardingsphere/spring/boot/datasource/prop/impl/AbstractDbcp2DataSourcePropertiesSetter.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-spring-infra/shardingsphere-jdbc-spring-boot-starter-infra/src/main/java/org/apache/shardingsphere/spring/boot/datasource/prop/impl/AbstractDbcp2DataSourcePropertiesSe [...]
index d1c5efe..405d575 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-spring-infra/shardingsphere-jdbc-spring-boot-starter-infra/src/main/java/org/apache/shardingsphere/spring/boot/datasource/prop/impl/AbstractDbcp2DataSourcePropertiesSetter.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-spring-infra/shardingsphere-jdbc-spring-boot-starter-infra/src/main/java/org/apache/shardingsphere/spring/boot/datasource/prop/impl/AbstractDbcp2DataSourcePropertiesSetter.java
@@ -43,7 +43,7 @@ public abstract class AbstractDbcp2DataSourcePropertiesSetter implements DataSou
     public void propertiesSet(final Environment environment, final String prefix, final String dataSourceName, final DataSource dataSource) {
         String datasourcePropertiesPrefix = prefix + dataSourceName.trim() + ".connection-properties";
         if (PropertyUtil.containPropertyPrefix(environment, datasourcePropertiesPrefix)) {
-            Map datasourceProperties = PropertyUtil.handle(environment, datasourcePropertiesPrefix, Map.class);
+            Map<?, ?> datasourceProperties = PropertyUtil.handle(environment, datasourcePropertiesPrefix, Map.class);
             Method method = dataSource.getClass().getMethod("addConnectionProperty", String.class, String.class);
             for (Object each : datasourceProperties.keySet()) {
                 method.invoke(dataSource, each, datasourceProperties.get(each));
diff --git a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/recognizer/JDBCDriverURLRecognizerEngineTest.java b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/recognizer/JDBCDriverURLRecognizerEngineTest.java
index 98b9037..5a55549 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/recognizer/JDBCDriverURLRecognizerEngineTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/recognizer/JDBCDriverURLRecognizerEngineTest.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.proxy.backend.communication.jdbc.recognizer.spi
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.junit.Assert.assertEquals;
+import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
 public final class JDBCDriverURLRecognizerEngineTest {
@@ -61,8 +61,8 @@ public final class JDBCDriverURLRecognizerEngineTest {
     @Test
     public void assertGetJDBCDriverURLRecognizerForP6spy() {
         JDBCDriverURLRecognizer driverURLRecognizer = JDBCDriverURLRecognizerEngine.getJDBCDriverURLRecognizer("jdbc:p6spy:mysql:xxx");
-        assertEquals(driverURLRecognizer.getDatabaseType(), new MySQLDatabaseType().getName());
-        assertEquals(driverURLRecognizer.getDriverClassName(), "com.p6spy.engine.spy.P6SpyDriver");
+        assertThat(driverURLRecognizer.getDatabaseType(), is(new MySQLDatabaseType().getName()));
+        assertThat(driverURLRecognizer.getDriverClassName(), is("com.p6spy.engine.spy.P6SpyDriver"));
     }
     
     @Test(expected = ShardingSphereException.class)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
index 4f9d441..fbac5e7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.proxy.frontend.command;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.channel.ChannelHandlerContext;
-import java.util.function.Supplier;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.control.panel.spi.engine.SingletonFacadeEngine;
@@ -28,18 +27,19 @@ import org.apache.shardingsphere.db.protocol.packet.CommandPacket;
 import org.apache.shardingsphere.db.protocol.packet.CommandPacketType;
 import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
 import org.apache.shardingsphere.db.protocol.payload.PacketPayload;
+import org.apache.shardingsphere.infra.hook.RootInvokeHook;
+import org.apache.shardingsphere.infra.hook.SPIRootInvokeHook;
 import org.apache.shardingsphere.metrics.enums.MetricsLabelEnum;
 import org.apache.shardingsphere.proxy.backend.communication.jdbc.connection.BackendConnection;
 import org.apache.shardingsphere.proxy.frontend.api.CommandExecutor;
 import org.apache.shardingsphere.proxy.frontend.api.QueryCommandExecutor;
 import org.apache.shardingsphere.proxy.frontend.engine.CommandExecuteEngine;
 import org.apache.shardingsphere.proxy.frontend.spi.DatabaseProtocolFrontendEngine;
-import org.apache.shardingsphere.infra.hook.RootInvokeHook;
-import org.apache.shardingsphere.infra.hook.SPIRootInvokeHook;
 
 import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Optional;
+import java.util.function.Supplier;
 
 /**
  * Command executor task.
@@ -84,7 +84,7 @@ public final class CommandExecutorTask implements Runnable {
             // CHECKSTYLE:ON
             log.error("Exception occur: ", ex);
             context.writeAndFlush(databaseProtocolFrontendEngine.getCommandExecuteEngine().getErrorPacket(ex));
-            Optional<DatabasePacket> databasePacket = databaseProtocolFrontendEngine.getCommandExecuteEngine().getOtherPacket();
+            Optional<DatabasePacket<?>> databasePacket = databaseProtocolFrontendEngine.getCommandExecuteEngine().getOtherPacket();
             databasePacket.ifPresent(context::writeAndFlush);
         } finally {
             if (isNeedFlush) {
@@ -102,7 +102,7 @@ public final class CommandExecutorTask implements Runnable {
         CommandPacketType type = commandExecuteEngine.getCommandPacketType(payload);
         CommandPacket commandPacket = commandExecuteEngine.getCommandPacket(payload, type, backendConnection);
         CommandExecutor commandExecutor = commandExecuteEngine.getCommandExecutor(type, commandPacket, backendConnection);
-        Collection<DatabasePacket> responsePackets = commandExecutor.execute();
+        Collection<DatabasePacket<?>> responsePackets = commandExecutor.execute();
         if (responsePackets.isEmpty()) {
             return false;
         }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
index 1c4f9b8..b699610 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/MySQLCommandExecuteEngine.java
@@ -61,12 +61,12 @@ public final class MySQLCommandExecuteEngine implements CommandExecuteEngine {
     }
     
     @Override
-    public DatabasePacket getErrorPacket(final Exception cause) {
+    public DatabasePacket<?> getErrorPacket(final Exception cause) {
         return MySQLErrPacketFactory.newInstance(1, cause);
     }
     
     @Override
-    public Optional<DatabasePacket> getOtherPacket() {
+    public Optional<DatabasePacket<?>> getOtherPacket() {
         return Optional.empty();
     }
     
@@ -86,7 +86,7 @@ public final class MySQLCommandExecuteEngine implements CommandExecuteEngine {
                 context.flush();
                 backendConnection.getResourceSynchronizer().doAwaitUntil();
             }
-            DatabasePacket dataValue = queryCommandExecutor.getQueryData();
+            DatabasePacket<?> dataValue = queryCommandExecutor.getQueryData();
             context.write(dataValue);
             if (flushThreshold == count) {
                 context.flush();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
index ba9e051..c83e35d 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/initdb/MySQLComInitDbExecutor.java
@@ -42,7 +42,7 @@ public final class MySQLComInitDbExecutor implements CommandExecutor {
     private final BackendConnection backendConnection;
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         String schema = SQLUtil.getExactlyValue(packet.getSchema());
         if (ProxySchemaContexts.getInstance().schemaExists(schema) && isAuthorizedSchema(schema)) {
             backendConnection.setCurrentSchema(packet.getSchema());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
index 9db2d34..bfe4a41 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/ping/MySQLComPingExecutor.java
@@ -30,7 +30,7 @@ import java.util.Collections;
 public final class MySQLComPingExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.singletonList(new MySQLOKPacket(1));
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
index ee72671..1f3d7cf 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/admin/quit/MySQLComQuitExecutor.java
@@ -30,7 +30,7 @@ import java.util.Collections;
 public final class MySQLComQuitExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.singletonList(new MySQLOKPacket(1));
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
index eaa3011..1c60d41 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/generic/MySQLUnsupportedCommandExecutor.java
@@ -36,7 +36,7 @@ public final class MySQLUnsupportedCommandExecutor implements CommandExecutor {
     private final MySQLCommandPacketType type;
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.singletonList(new MySQLErrPacket(1, CommonErrorCode.UNSUPPORTED_COMMAND, type));
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
index c16a53d..534f15f 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/close/MySQLComStmtCloseExecutor.java
@@ -34,7 +34,7 @@ public final class MySQLComStmtCloseExecutor implements CommandExecutor {
     private final MySQLComStmtClosePacket packet;
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         //TODO we need to design the cache in future.
 //        packet.removeCachedStatement();
         return Collections.emptyList();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
index 3190254..81a10b2 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutor.java
@@ -72,7 +72,7 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         if (ProxySchemaContexts.getInstance().getSchemaContexts().isCircuitBreak()) {
             return Collections.singletonList(new MySQLErrPacket(1, CommonErrorCode.CIRCUIT_BREAK_MODE));
         }
@@ -97,8 +97,8 @@ public final class MySQLComStmtExecuteExecutor implements QueryCommandExecutor {
         return new MySQLOKPacket(1, updateResponse.getUpdateCount(), updateResponse.getLastInsertId());
     }
     
-    private Collection<DatabasePacket> createQueryPacket(final QueryResponse backendResponse) {
-        Collection<DatabasePacket> result = new LinkedList<>();
+    private Collection<DatabasePacket<?>> createQueryPacket(final QueryResponse backendResponse) {
+        Collection<DatabasePacket<?>> result = new LinkedList<>();
         List<QueryHeader> queryHeader = backendResponse.getQueryHeaders();
         result.add(new MySQLFieldCountPacket(++currentSequenceId, queryHeader.size()));
         for (QueryHeader each : queryHeader) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
index f534044..ed5948e 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/prepare/MySQLComStmtPrepareExecutor.java
@@ -56,8 +56,8 @@ public final class MySQLComStmtPrepareExecutor implements CommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() {
-        Collection<DatabasePacket> result = new LinkedList<>();
+    public Collection<DatabasePacket<?>> execute() {
+        Collection<DatabasePacket<?>> result = new LinkedList<>();
         int currentSequenceId = 0;
         SQLStatement sqlStatement = schema.getRuntimeContext().getSqlParserEngine().parse(packet.getSql(), true);
         if (!MySQLComStmtPrepareChecker.isStatementAllowed(sqlStatement)) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
index 094ed03..a2212ee 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutor.java
@@ -35,7 +35,7 @@ public final class MySQLComStmtResetExecutor implements CommandExecutor {
     private final MySQLComStmtResetPacket packet;
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         // TODO we should implement the stmt reset after supporting COM_STMT_SEND_LONG_DATA
         return Collections.singletonList(new MySQLOKPacket(1));
     }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
index 675ec7b..49832a4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/fieldlist/MySQLComFieldListPacketExecutor.java
@@ -55,7 +55,7 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() throws SQLException {
+    public Collection<DatabasePacket<?>> execute() throws SQLException {
         BackendResponse backendResponse = databaseCommunicationEngine.execute();
         return backendResponse instanceof ErrorResponse ? Collections.singletonList(MySQLErrPacketFactory.newInstance(1, ((ErrorResponse) backendResponse).getCause())) 
                 : getColumnDefinition41Packets();
@@ -65,13 +65,12 @@ public final class MySQLComFieldListPacketExecutor implements CommandExecutor {
         return String.format(SQL, packet.getTable(), schemaName);
     }
     
-    private Collection<DatabasePacket> getColumnDefinition41Packets() throws SQLException {
-        Collection<DatabasePacket> result = new LinkedList<>();
+    private Collection<DatabasePacket<?>> getColumnDefinition41Packets() throws SQLException {
+        Collection<DatabasePacket<?>> result = new LinkedList<>();
         int currentSequenceId = 0;
         while (databaseCommunicationEngine.next()) {
             String columnName = databaseCommunicationEngine.getQueryData().getData().get(0).toString();
-            result.add(new MySQLColumnDefinition41Packet(++currentSequenceId,
-                    schemaName, packet.getTable(), packet.getTable(), columnName, columnName, 100, MySQLColumnType.MYSQL_TYPE_VARCHAR, 0));
+            result.add(new MySQLColumnDefinition41Packet(++currentSequenceId, schemaName, packet.getTable(), packet.getTable(), columnName, columnName, 100, MySQLColumnType.MYSQL_TYPE_VARCHAR, 0));
         }
         result.add(new MySQLEofPacket(++currentSequenceId));
         return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
index 5b796d5..e2d3993 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/main/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/text/query/MySQLComQueryPacketExecutor.java
@@ -71,7 +71,7 @@ public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() throws SQLException {
+    public Collection<DatabasePacket<?>> execute() throws SQLException {
         if (ProxySchemaContexts.getInstance().getSchemaContexts().isCircuitBreak()) {
             return Collections.singletonList(new MySQLErrPacket(1, CommonErrorCode.CIRCUIT_BREAK_MODE));
         }
@@ -96,8 +96,8 @@ public final class MySQLComQueryPacketExecutor implements QueryCommandExecutor {
         return new MySQLOKPacket(1, updateResponse.getUpdateCount(), updateResponse.getLastInsertId());
     }
     
-    private Collection<DatabasePacket> createQueryPackets(final QueryResponse backendResponse) {
-        Collection<DatabasePacket> result = new LinkedList<>();
+    private Collection<DatabasePacket<?>> createQueryPackets(final QueryResponse backendResponse) {
+        Collection<DatabasePacket<?>> result = new LinkedList<>();
         List<QueryHeader> queryHeader = backendResponse.getQueryHeaders();
         result.add(new MySQLFieldCountPacket(++currentSequenceId, queryHeader.size()));
         for (QueryHeader each : queryHeader) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
index b7ffdbc..9b0c0b8 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/reset/MySQLComStmtResetExecutorTest.java
@@ -40,7 +40,7 @@ public final class MySQLComStmtResetExecutorTest {
     @Test
     public void assertExecute() {
         MySQLComStmtResetExecutor mysqlComStmtResetExecutor = new MySQLComStmtResetExecutor(packet);
-        Collection<DatabasePacket> actual = mysqlComStmtResetExecutor.execute();
+        Collection<DatabasePacket<?>> actual = mysqlComStmtResetExecutor.execute();
         assertThat(actual.size(), is(1));
         assertThat(actual.iterator().next(), instanceOf(MySQLOKPacket.class));
     }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
index 1607fbd..3064051 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/PostgreSQLCommandExecuteEngine.java
@@ -62,14 +62,14 @@ public final class PostgreSQLCommandExecuteEngine implements CommandExecuteEngin
     }
     
     @Override
-    public DatabasePacket getErrorPacket(final Exception cause) {
+    public DatabasePacket<?> getErrorPacket(final Exception cause) {
         PostgreSQLErrorResponsePacket errorResponsePacket = new PostgreSQLErrorResponsePacket();
         errorResponsePacket.addField(PostgreSQLErrorResponsePacket.FIELD_TYPE_MESSAGE, cause.getMessage());
         return errorResponsePacket;
     }
     
     @Override
-    public Optional<DatabasePacket> getOtherPacket() {
+    public Optional<DatabasePacket<?>> getOtherPacket() {
         return Optional.of(new PostgreSQLReadyForQueryPacket());
     }
     
@@ -94,7 +94,7 @@ public final class PostgreSQLCommandExecuteEngine implements CommandExecuteEngin
                 context.flush();
                 backendConnection.getResourceSynchronizer().doAwaitUntil();
             }
-            DatabasePacket resultValue = queryCommandExecutor.getQueryData();
+            DatabasePacket<?> resultValue = queryCommandExecutor.getQueryData();
             context.write(resultValue);
             if (proxyFrontendFlushThreshold == count) {
                 context.flush();
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
index ff26f97..b7ff4ff 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLComTerminationExecutor.java
@@ -29,7 +29,7 @@ import java.util.Collections;
 public final class PostgreSQLComTerminationExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.emptyList();
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
index 1a7c61c..21a79d1 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/generic/PostgreSQLUnsupportedCommandExecutor.java
@@ -30,7 +30,7 @@ import java.util.Collections;
 public final class PostgreSQLUnsupportedCommandExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.singletonList(new PostgreSQLErrorResponsePacket());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/bind/PostgreSQLComBindExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/bind/PostgreSQLComBindExecutor.java
index 667b169..a256d49 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/bind/PostgreSQLComBindExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/bind/PostgreSQLComBindExecutor.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.binary.bind;
 
-import java.sql.ResultSetMetaData;
 import lombok.Getter;
 import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
 import org.apache.shardingsphere.db.protocol.postgresql.constant.PostgreSQLColumnType;
@@ -44,6 +43,7 @@ import org.apache.shardingsphere.proxy.backend.schema.ProxySchemaContexts;
 import org.apache.shardingsphere.proxy.frontend.api.QueryCommandExecutor;
 import org.apache.shardingsphere.proxy.frontend.postgresql.PostgreSQLErrPacketFactory;
 
+import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -76,11 +76,11 @@ public final class PostgreSQLComBindExecutor implements QueryCommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         if (ProxySchemaContexts.getInstance().getSchemaContexts().isCircuitBreak()) {
             return Collections.singletonList(new PostgreSQLErrorResponsePacket());
         }
-        List<DatabasePacket> result = new LinkedList<>();
+        List<DatabasePacket<?>> result = new LinkedList<>();
         result.add(new PostgreSQLBindCompletePacket());
         if (null == databaseCommunicationEngine) {
             return result;
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/describe/PostgreSQLComDescribeExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/describe/PostgreSQLComDescribeExecutor.java
index 3a54566..c9d8bd4 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/describe/PostgreSQLComDescribeExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/describe/PostgreSQLComDescribeExecutor.java
@@ -29,7 +29,7 @@ import java.util.Collections;
 public final class PostgreSQLComDescribeExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.emptyList();
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/execute/PostgreSQLComExecuteExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/execute/PostgreSQLComExecuteExecutor.java
index 6083ef3..3f5cce7 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/execute/PostgreSQLComExecuteExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/execute/PostgreSQLComExecuteExecutor.java
@@ -29,7 +29,7 @@ import java.util.Collections;
 public final class PostgreSQLComExecuteExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.emptyList();
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutor.java
index 0295d6d..babc8d0 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/parse/PostgreSQLComParseExecutor.java
@@ -48,7 +48,7 @@ public final class PostgreSQLComParseExecutor implements CommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         if (!packet.getSql().isEmpty()) {
             SQLStatement sqlStatement = schema.getRuntimeContext().getSqlParserEngine().parse(packet.getSql(), true);
             binaryStatementRegistry.register(packet.getStatementId(), packet.getSql(), sqlStatement.getParameterCount(), packet.getBinaryStatementParameterTypes());
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/sync/PostgreSQLComSyncExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/sync/PostgreSQLComSyncExecutor.java
index 77f2a6e..e1682a3 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/sync/PostgreSQLComSyncExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/binary/sync/PostgreSQLComSyncExecutor.java
@@ -29,7 +29,7 @@ import java.util.Collections;
 public final class PostgreSQLComSyncExecutor implements CommandExecutor {
     
     @Override
-    public Collection<DatabasePacket> execute() {
+    public Collection<DatabasePacket<?>> execute() {
         return Collections.emptyList();
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/text/PostgreSQLComQueryExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/text/PostgreSQLComQueryExecutor.java
index a6fabff..f334cce 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/text/PostgreSQLComQueryExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-postgresql/src/main/java/org/apache/shardingsphere/proxy/frontend/postgresql/command/query/text/PostgreSQLComQueryExecutor.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.frontend.postgresql.command.query.text;
 
-import java.sql.ResultSetMetaData;
 import lombok.Getter;
 import org.apache.shardingsphere.db.protocol.packet.DatabasePacket;
 import org.apache.shardingsphere.db.protocol.postgresql.packet.PostgreSQLPacket;
@@ -41,6 +40,7 @@ import org.apache.shardingsphere.proxy.backend.text.TextProtocolBackendHandlerFa
 import org.apache.shardingsphere.proxy.frontend.api.QueryCommandExecutor;
 import org.apache.shardingsphere.proxy.frontend.postgresql.PostgreSQLErrPacketFactory;
 
+import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.util.Collection;
 import java.util.Collections;
@@ -68,7 +68,7 @@ public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
     }
     
     @Override
-    public Collection<DatabasePacket> execute() throws SQLException {
+    public Collection<DatabasePacket<?>> execute() throws SQLException {
         if (ProxySchemaContexts.getInstance().getSchemaContexts().isCircuitBreak()) {
             return Collections.singletonList(new PostgreSQLErrorResponsePacket());
         }
@@ -82,7 +82,7 @@ public final class PostgreSQLComQueryExecutor implements QueryCommandExecutor {
             return Collections.singletonList(createUpdatePacket((UpdateResponse) backendResponse));
         }
         Optional<PostgreSQLRowDescriptionPacket> result = createQueryPacket((QueryResponse) backendResponse);
-        return result.<List<DatabasePacket>>map(Collections::singletonList).orElseGet(Collections::emptyList);
+        return result.<List<DatabasePacket<?>>>map(Collections::singletonList).orElseGet(Collections::emptyList);
     }
     
     private PostgreSQLErrorResponsePacket createErrorPacket(final ErrorResponse errorResponse) {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/api/CommandExecutor.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/api/CommandExecutor.java
index b368bc3..a0aba03 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/api/CommandExecutor.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/api/CommandExecutor.java
@@ -33,5 +33,5 @@ public interface CommandExecutor {
      * @return database packets to be sent
      * @throws SQLException SQL exception
      */
-    Collection<DatabasePacket> execute() throws SQLException;
+    Collection<DatabasePacket<?>> execute() throws SQLException;
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/engine/CommandExecuteEngine.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/engine/CommandExecuteEngine.java
index def0b01..d3ff089 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/engine/CommandExecuteEngine.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-spi/src/main/java/org/apache/shardingsphere/proxy/frontend/engine/CommandExecuteEngine.java
@@ -69,14 +69,14 @@ public interface CommandExecuteEngine {
      * @param cause cause of error
      * @return error packet
      */
-    DatabasePacket getErrorPacket(Exception cause);
+    DatabasePacket<?> getErrorPacket(Exception cause);
     
     /**
      * Get other packet.
      *
      * @return other packet
      */
-    Optional<DatabasePacket> getOtherPacket();
+    Optional<DatabasePacket<?>> getOtherPacket();
     
     /**
      * Write query data.
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/utils/RdbmsConfigurationUtil.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/utils/RdbmsConfigurationUtil.java
index 60ddf20..074fe71 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/utils/RdbmsConfigurationUtil.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/utils/RdbmsConfigurationUtil.java
@@ -24,16 +24,16 @@ import org.apache.shardingsphere.scaling.core.job.position.PositionManager;
 import org.apache.shardingsphere.scaling.core.job.position.PrimaryKeyPosition;
 
 /**
- * Rdbms configuration Util.
+ * Rdbms configuration utility.
  */
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class RdbmsConfigurationUtil {
     
     /**
-     * Get sql where condition whit primary key.
+     * Get SQL where condition whit primary key.
      *
      * @param rdbmsConfiguration rdbms configuration
-     * @return sql where condition
+     * @return SQL where condition
      */
     public static String getWhereCondition(final RdbmsConfiguration rdbmsConfiguration) {
         return getWhereCondition(rdbmsConfiguration.getPrimaryKey(), rdbmsConfiguration.getPositionManager());
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/engine/ShardingScalingExecuteEngine.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/engine/ShardingScalingExecuteEngine.java
index d0e6c8e..56817fd 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/engine/ShardingScalingExecuteEngine.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/engine/ShardingScalingExecuteEngine.java
@@ -49,7 +49,7 @@ public class ShardingScalingExecuteEngine {
      * @param shardingScalingExecutor sharding scaling executor
      * @return execute future
      */
-    public Future submit(final ShardingScalingExecutor shardingScalingExecutor) {
+    public Future<?> submit(final ShardingScalingExecutor shardingScalingExecutor) {
         return executorService.submit(shardingScalingExecutor);
     }
     
@@ -60,8 +60,8 @@ public class ShardingScalingExecuteEngine {
      * @param executeCallback execute callback
      * @return execute future
      */
-    public Future submit(final ShardingScalingExecutor shardingScalingExecutor, final ExecuteCallback executeCallback) {
-        ListenableFuture result = executorService.submit(shardingScalingExecutor);
+    public Future<?> submit(final ShardingScalingExecutor shardingScalingExecutor, final ExecuteCallback executeCallback) {
+        ListenableFuture<?> result = executorService.submit(shardingScalingExecutor);
         Futures.addCallback(result, new ExecuteFutureCallback<>(executeCallback));
         return result;
     }
@@ -73,7 +73,7 @@ public class ShardingScalingExecuteEngine {
      * @param executeCallback execute callback
      * @return execute future of all
      */
-    public Future submitAll(final Collection<? extends ShardingScalingExecutor> shardingScalingExecutors, final ExecuteCallback executeCallback) {
+    public Future<?> submitAll(final Collection<? extends ShardingScalingExecutor> shardingScalingExecutors, final ExecuteCallback executeCallback) {
         Collection<ListenableFuture<Object>> listenableFutures = new ArrayList<>(shardingScalingExecutors.size());
         for (ShardingScalingExecutor each : shardingScalingExecutors) {
             ListenableFuture listenableFuture = executorService.submit(each);
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/executor/AbstractShardingScalingExecutor.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/executor/AbstractShardingScalingExecutor.java
index 5fddd2c..5c39a98 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/executor/AbstractShardingScalingExecutor.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/execute/executor/AbstractShardingScalingExecutor.java
@@ -25,31 +25,23 @@ import org.apache.shardingsphere.scaling.core.job.position.PositionManager;
 /**
  * Abstract sharding scaling executor.
  */
+@Setter
+@Getter
 public abstract class AbstractShardingScalingExecutor implements ShardingScalingExecutor {
-
+    
     @Setter(AccessLevel.PROTECTED)
     @Getter(AccessLevel.PROTECTED)
     private boolean running;
     
-    @Setter
-    @Getter
     private String taskId;
     
-    @Setter
-    @Getter
     private PositionManager positionManager;
-
-    /**
-     * Generic start implement.
-     */
+    
     @Override
     public void start() {
         running = true;
     }
-
-    /**
-     * Generic stop implement.
-     */
+    
     @Override
     public void stop() {
         running = false;
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
index 589f0a0..8d0342a 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
@@ -55,6 +55,7 @@ public class PrimaryKeyPosition implements Position {
      * @param json json data
      * @return primary key position
      */
+    @SuppressWarnings("unchecked")
     public static PrimaryKeyPosition fromJson(final String json) {
         List<Double> values = GSON.fromJson(json, List.class);
         if (2 == values.size()) {
@@ -72,7 +73,6 @@ public class PrimaryKeyPosition implements Position {
      * Finish flag position for inventory task finished.
      */
     public static class FinishedPosition extends PrimaryKeyPosition {
-    
     }
     
     /**
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManager.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManager.java
index d6a19b7..b5284ee 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManager.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManager.java
@@ -84,6 +84,7 @@ public abstract class AbstractResumablePositionManager implements ResumablePosit
         }
     }
     
+    @SuppressWarnings("unchecked")
     protected void resumeIncrementalPosition(final String data) {
         if (Strings.isNullOrEmpty(data)) {
             return;
@@ -138,6 +139,7 @@ public abstract class AbstractResumablePositionManager implements ResumablePosit
          * @param data json data
          * @return inventory position
          */
+        @SuppressWarnings("unchecked")
         public static InventoryPosition fromJson(final String data) {
             InventoryPosition result = new InventoryPosition();
             JsonObject json = JsonParser.parseString(data).getAsJsonObject();
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalDataScalingTask.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalDataScalingTask.java
index 2d23120..2ab66c2 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalDataScalingTask.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalDataScalingTask.java
@@ -66,7 +66,7 @@ public final class IncrementalDataScalingTask extends AbstractShardingScalingExe
         dumper = DumperFactory.newInstanceLogDumper(syncConfiguration.getDumperConfiguration(), getPositionManager().getCurrentPosition());
         Collection<Importer> importers = instanceImporters();
         instanceChannel(importers);
-        Future future = ScalingContext.getInstance().getTaskExecuteEngine().submitAll(importers, new ExecuteCallback() {
+        Future<?> future = ScalingContext.getInstance().getTaskExecuteEngine().submitAll(importers, new ExecuteCallback() {
             
             @Override
             public void onSuccess() {
@@ -103,7 +103,7 @@ public final class IncrementalDataScalingTask extends AbstractShardingScalingExe
         }
     }
     
-    private void waitForResult(final Future future) {
+    private void waitForResult(final Future<?> future) {
         try {
             future.get();
         } catch (InterruptedException ignored) {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryDataScalingTask.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryDataScalingTask.java
index 1ee12f0..c75d5a1 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryDataScalingTask.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryDataScalingTask.java
@@ -84,7 +84,7 @@ public final class InventoryDataScalingTask extends AbstractShardingScalingExecu
         instanceDumper();
         Importer importer = ImporterFactory.newInstance(syncConfiguration.getImporterConfiguration(), dataSourceManager);
         instanceChannel(importer);
-        Future future = ScalingContext.getInstance().getImporterExecuteEngine().submit(importer, new ExecuteCallback() {
+        Future<?> future = ScalingContext.getInstance().getImporterExecuteEngine().submit(importer, new ExecuteCallback() {
             
             @Override
             public void onSuccess() {
@@ -138,7 +138,7 @@ public final class InventoryDataScalingTask extends AbstractShardingScalingExecu
         importer.setChannel(channel);
     }
     
-    private void waitForResult(final Future future) {
+    private void waitForResult(final Future<?> future) {
         try {
             future.get();
         } catch (InterruptedException ignored) {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/config/utils/SyncConfigurationUtilTest.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/config/utils/SyncConfigurationUtilTest.java
index e24337b..afbc359 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/config/utils/SyncConfigurationUtilTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/config/utils/SyncConfigurationUtilTest.java
@@ -21,7 +21,6 @@ import com.google.gson.Gson;
 import org.apache.shardingsphere.scaling.core.config.ScalingConfiguration;
 import org.apache.shardingsphere.scaling.core.config.SyncConfiguration;
 import org.apache.shardingsphere.scaling.core.datasource.DataSourceManagerTest;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -29,6 +28,9 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.List;
 
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
 public final class SyncConfigurationUtilTest {
     
     private static final Gson GSON = new Gson();
@@ -43,7 +45,7 @@ public final class SyncConfigurationUtilTest {
     @Test
     public void assertFilterByShardingDataSourceTables() {
         List<SyncConfiguration> syncConfigurations = (List<SyncConfiguration>) SyncConfigurationUtil.toSyncConfigurations(scalingConfiguration);
-        Assert.assertEquals(syncConfigurations.get(0).getTableNameMap().size(), 1);
+        assertThat(syncConfigurations.get(0).getTableNameMap().size(), is(1));
     }
     
     private void initConfig(final String configFile) {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/job/preparer/resumer/SyncPositionResumerTest.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/job/preparer/resumer/SyncPositionResumerTest.java
index 546858f..aad3c1c 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/job/preparer/resumer/SyncPositionResumerTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/job/preparer/resumer/SyncPositionResumerTest.java
@@ -37,7 +37,9 @@ import org.junit.Test;
 import java.util.HashMap;
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
@@ -69,8 +71,8 @@ public final class SyncPositionResumerTest {
         resumablePositionManager.getInventoryPositionManagerMap().put("ds0", new PrimaryKeyPositionManager(new PrimaryKeyPosition(0, 100)));
         resumablePositionManager.getIncrementalPositionManagerMap().put("ds0.t_order", mockPositionManager());
         syncPositionResumer.resumePosition(shardingScalingJob, new DataSourceManager(), resumablePositionManager);
-        assertEquals(1, shardingScalingJob.getIncrementalDataTasks().size());
-        assertEquals(0, shardingScalingJob.getInventoryDataTasks().size());
+        assertThat(shardingScalingJob.getIncrementalDataTasks().size(), is(1));
+        assertTrue(shardingScalingJob.getInventoryDataTasks().isEmpty());
     }
     
     @Test
@@ -83,6 +85,7 @@ public final class SyncPositionResumerTest {
     
     private PositionManager mockPositionManager() {
         return new PositionManager() {
+            
             @Override
             public Position getCurrentPosition() {
                 return null;
@@ -90,7 +93,6 @@ public final class SyncPositionResumerTest {
             
             @Override
             public void updateCurrentPosition(final Position newPosition) {
-            
             }
         };
     }
@@ -100,8 +102,7 @@ public final class SyncPositionResumerTest {
         RdbmsConfiguration importerConfig = new RdbmsConfiguration();
         Map<String, String> tableMap = new HashMap<>();
         tableMap.put("t_order", "t_order");
-        return new SyncConfiguration(3, tableMap,
-                dumperConfig, importerConfig);
+        return new SyncConfiguration(3, tableMap, dumperConfig, importerConfig);
     }
     
     private RdbmsConfiguration mockDumperConfig() {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManagerTest.java b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManagerTest.java
index fe52b65..885ec8b 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManagerTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/core/job/position/resume/AbstractResumablePositionManagerTest.java
@@ -28,7 +28,8 @@ import org.junit.Test;
 
 import java.util.Map;
 
-import static org.junit.Assert.assertEquals;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
 
 public final class AbstractResumablePositionManagerTest {
     
@@ -50,20 +51,20 @@ public final class AbstractResumablePositionManagerTest {
     @Test
     public void assertResumeIncrementalPosition() {
         resumablePositionManager.resumeIncrementalPosition(incrementalPosition);
-        assertEquals(2, resumablePositionManager.getIncrementalPositionManagerMap().size());
+        assertThat(resumablePositionManager.getIncrementalPositionManagerMap().size(), is(2));
     }
     
     @Test
     public void assertResumeInventoryPosition() {
         resumablePositionManager.resumeInventoryPosition(inventoryPosition);
-        assertEquals(4, resumablePositionManager.getInventoryPositionManagerMap().size());
+        assertThat(resumablePositionManager.getInventoryPositionManagerMap().size(), is(4));
     }
     
     @Test
     public void assertGetIncrementalPositionData() {
         resumablePositionManager.getIncrementalPositionManagerMap().put("ds0", new MySQLPositionManager("{\"filename\":\"mysql-bin.000001\",\"position\":4}"));
         resumablePositionManager.getIncrementalPositionManagerMap().put("ds1", new MySQLPositionManager("{\"filename\":\"mysql-bin.000002\",\"position\":4}"));
-        assertEquals(incrementalPosition, resumablePositionManager.getIncrementalPositionData());
+        assertThat(resumablePositionManager.getIncrementalPositionData(), is(incrementalPosition));
     }
     
     @Test
@@ -72,6 +73,6 @@ public final class AbstractResumablePositionManagerTest {
         resumablePositionManager.getInventoryPositionManagerMap().put("ds0.t_order_1#1", new PrimaryKeyPositionManager(new PrimaryKeyPosition.FinishedPosition()));
         resumablePositionManager.getInventoryPositionManagerMap().put("ds0.t_order_2", new PrimaryKeyPositionManager(new PrimaryKeyPosition.PlaceholderPosition()));
         resumablePositionManager.getInventoryPositionManagerMap().put("ds1.t_order_1#0", new PrimaryKeyPositionManager(new PrimaryKeyPosition(0, 200)));
-        assertEquals(inventoryPosition, resumablePositionManager.getInventoryPositionData());
+        assertThat(resumablePositionManager.getInventoryPositionData(), is(inventoryPosition));
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/client/MySQLClientTest.java b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/client/MySQLClientTest.java
index 6aa0322..1da287d 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/client/MySQLClientTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/client/MySQLClientTest.java
@@ -51,16 +51,13 @@ public final class MySQLClientTest {
     @Mock
     private ChannelPipeline pipeline;
     
-    private InetSocketAddress inetSocketAddress;
-    
     private MySQLClient mysqlClient;
     
     @Before
     public void setUp() {
         mysqlClient = new MySQLClient(new ConnectInfo(1, "host", 3306, "username", "password"));
         when(channel.pipeline()).thenReturn(pipeline);
-        inetSocketAddress = new InetSocketAddress("host", 3306);
-        when(channel.localAddress()).thenReturn(inetSocketAddress);
+        when(channel.localAddress()).thenReturn(new InetSocketAddress("host", 3306));
     }
     
     @Test
@@ -119,7 +116,7 @@ public final class MySQLClientTest {
     private void mockChannelResponse(final Object response) {
         new Thread(() -> {
             while (true) {
-                Promise responseCallback = null;
+                Promise<Object> responseCallback = null;
                 try {
                     responseCallback = ReflectionUtil.getFieldValueFromClass(mysqlClient, "responseCallback", Promise.class);
                 } catch (final NoSuchFieldException ex) {
diff --git a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/BitronixRecoveryResourceTest.java b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/BitronixRecoveryResourceTest.java
index fde6835..506d979 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/BitronixRecoveryResourceTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/BitronixRecoveryResourceTest.java
@@ -17,19 +17,8 @@
 
 package org.apache.shardingsphere.transaction.xa.bitronix.manager;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import bitronix.tm.internal.XAResourceHolderState;
 import bitronix.tm.resource.common.XAResourceHolder;
-import javax.sql.XAConnection;
-import javax.sql.XADataSource;
-import javax.transaction.xa.XAResource;
-import lombok.SneakyThrows;
 import org.apache.shardingsphere.transaction.xa.spi.SingleXAResource;
 import org.junit.Before;
 import org.junit.Test;
@@ -37,8 +26,19 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
+import javax.sql.XAConnection;
+import javax.sql.XADataSource;
+import javax.transaction.xa.XAResource;
+import java.sql.SQLException;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 @RunWith(MockitoJUnitRunner.class)
-public class BitronixRecoveryResourceTest {
+public final class BitronixRecoveryResourceTest {
     
     @Mock
     private SingleXAResource singleXAResource;
@@ -54,27 +54,24 @@ public class BitronixRecoveryResourceTest {
     
     private BitronixRecoveryResource bitronixRecoveryResource;
     
-    @SneakyThrows
     @Before
-    public void setUp() {
+    public void setUp() throws SQLException {
         when(singleXAResource.getResourceName()).thenReturn("ds1");
         when(xaDataSource.getXAConnection()).thenReturn(xaConnection);
         when(xaConnection.getXAResource()).thenReturn(xaResource);
         bitronixRecoveryResource = new BitronixRecoveryResource("ds1", xaDataSource);
     }
     
-    @SneakyThrows
     @Test
-    public void assertRecovery() {
+    public void assertRecovery() throws SQLException {
         XAResourceHolderState xaResourceHolderState = bitronixRecoveryResource.startRecovery();
-        assertEquals(xaResourceHolderState.getUniqueName(), "ds1");
+        assertThat(xaResourceHolderState.getUniqueName(), is("ds1"));
         XAResourceHolder xaResourceHolder = xaResourceHolderState.getXAResourceHolder();
         assertThat(xaResourceHolder.getXAResource(), is(xaResource));
         bitronixRecoveryResource.endRecovery();
         verify(xaConnection).close();
     }
     
-    @SneakyThrows
     @Test
     public void assertFindXAResourceHolder() {
         assertNotNull(bitronixRecoveryResource.findXAResourceHolder(singleXAResource));
diff --git a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/jta/connection/XAConnectionFactoryTest.java b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/jta/connection/XAConnectionFactoryTest.java
index 5f72243..6bb4f91 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/jta/connection/XAConnectionFactoryTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/jta/connection/XAConnectionFactoryTest.java
@@ -66,7 +66,7 @@ public final class XAConnectionFactoryTest {
     @Test
     @Ignore("oracle jdbc driver is not import because of the limitations of license")
     public void assertCreateOracleXAConnection() throws ClassNotFoundException {
-        Class clazz = Class.forName("oracle.jdbc.xa.client.OracleXAConnection");
+        Class<?> clazz = Class.forName("oracle.jdbc.xa.client.OracleXAConnection");
         assertThat(XAConnectionFactory.createXAConnection(DatabaseTypes.getActualDatabaseType("Oracle"), xaDataSource, connection), instanceOf(clazz));
     }
     
diff --git a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-narayana/src/test/java/org/apache/shardingsphere/transaction/xa/narayana/manager/DataSourceXAResourceRecoveryHelperTest.java b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-narayana/src/test/java/org/apache/shardingsphere/transaction/xa/narayana/manager/DataSourceXAResourceRecoveryHelperTest.java
index d763272..4ab1c6d 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-narayana/src/test/java/org/apache/shardingsphere/transaction/xa/narayana/manager/DataSourceXAResourceRecoveryHelperTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-narayana/src/test/java/org/apache/shardingsphere/transaction/xa/narayana/manager/DataSourceXAResourceRecoveryHelperTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.transaction.xa.narayana.manager;
 
-import lombok.SneakyThrows;
 import org.apache.shardingsphere.transaction.xa.narayana.manager.fixture.ReflectiveUtil;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,16 +28,17 @@ import javax.sql.XAConnection;
 import javax.sql.XADataSource;
 import javax.transaction.xa.XAException;
 import javax.transaction.xa.XAResource;
+import java.sql.SQLException;
 
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.sameInstance;
-import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
-public class DataSourceXAResourceRecoveryHelperTest {
+public final class DataSourceXAResourceRecoveryHelperTest {
     
     @Mock
     private XADataSource xaDataSource;
@@ -51,49 +51,44 @@ public class DataSourceXAResourceRecoveryHelperTest {
     
     private DataSourceXAResourceRecoveryHelper recoveryHelper;
     
-    @SneakyThrows
     @Before
-    public void setUp() {
+    public void setUp() throws SQLException {
         when(xaConnection.getXAResource()).thenReturn(xaResource);
         when(xaDataSource.getXAConnection()).thenReturn(xaConnection);
         recoveryHelper = new DataSourceXAResourceRecoveryHelper(xaDataSource);
     }
     
-    @SneakyThrows
     @Test
-    public void assertGetXAResourcesCreatingConnecting() {
+    public void assertGetXAResourcesCreatingConnecting() throws SQLException {
         recoveryHelper.getXAResources();
         XAResource[] xaResources = recoveryHelper.getXAResources();
-        assertEquals(1, xaResources.length);
+        assertThat(xaResources.length, is(1));
         assertThat(xaResources[0], sameInstance(recoveryHelper));
         verify(xaConnection, times(1)).getXAResource();
         verify(xaDataSource, times(1)).getXAConnection();
     }
     
-    @SneakyThrows
     @Test
-    public void assertGetXAResourcesWithoutConnecting() {
+    public void assertGetXAResourcesWithoutConnecting() throws SQLException {
         ReflectiveUtil.setProperty(recoveryHelper, "delegate", xaResource);
         recoveryHelper.getXAResources();
         XAResource[] xaResources = recoveryHelper.getXAResources();
-        assertEquals(1, xaResources.length);
+        assertThat(xaResources.length, is(1));
         assertThat(xaResources[0], sameInstance(recoveryHelper));
         verify(xaConnection, times(0)).getXAResource();
         verify(xaDataSource, times(0)).getXAConnection();
     }
     
-    @SneakyThrows
     @Test
-    public void assertDelegateRecover() {
+    public void assertDelegateRecover() throws XAException, SQLException {
         recoveryHelper.getXAResources();
         recoveryHelper.recover(XAResource.TMSTARTRSCAN);
         verify(xaResource, times(1)).recover(XAResource.TMSTARTRSCAN);
         verify(xaConnection, times(0)).close();
     }
     
-    @SneakyThrows
     @Test
-    public void assertDelegateRecoverAndCloseConnection() {
+    public void assertDelegateRecoverAndCloseConnection() throws XAException, SQLException {
         recoveryHelper.getXAResources();
         recoveryHelper.recover(XAResource.TMENDRSCAN);
         verify(xaResource).recover(XAResource.TMENDRSCAN);