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

xiaoyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 07e085c  refactor:[ISSUE #1866] remove lombok dependency (#1887)
07e085c is described below

commit 07e085c40e847a921f3c94c70676aa3dd266446b
Author: 怡蘅 <[email protected]>
AuthorDate: Fri Aug 6 17:43:00 2021 +0800

    refactor:[ISSUE #1866] remove lombok dependency (#1887)
---
 .../sync/data/consul/ConsulSyncDataService.java    |  26 ++--
 .../sync/data/consul/config/ConsulConfig.java      |  88 +++++++++++++-
 .../data/consul/handler/ConsulCacheHandler.java    |  18 +--
 .../data/consul/ConsulSyncDataServiceTest.java     |   5 +-
 .../consul/handler/ConsulCacheHandlerTest.java     |  18 +--
 .../apache/shenyu/sync/data/etcd/EtcdClient.java   |  46 ++++---
 .../shenyu/sync/data/etcd/EtcdSyncDataService.java |  26 ++--
 .../shenyu/sync/data/http/HttpSyncDataService.java |  53 ++++----
 .../shenyu/sync/data/http/config/HttpConfig.java   |  95 ++++++++++++++-
 .../data/http/refresh/AbstractDataRefresh.java     |  15 ++-
 .../sync/data/http/refresh/AppAuthDataRefresh.java |  20 ++-
 .../sync/data/http/refresh/MetaDataRefresh.java    |  16 ++-
 .../sync/data/http/refresh/PluginDataRefresh.java  |  17 ++-
 .../sync/data/http/refresh/RuleDataRefresh.java    |  17 ++-
 .../data/http/refresh/SelectorDataRefresh.java     |  20 ++-
 .../sync/data/http/HttpSyncDataServiceTest.java    |  16 ++-
 .../sync/data/nacos/config/NacosACMConfig.java     | 134 ++++++++++++++++++++-
 .../shenyu/sync/data/nacos/config/NacosConfig.java | 134 ++++++++++++++++++++-
 .../sync/data/nacos/handler/NacosCacheHandler.java |  41 +++++--
 .../data/nacos/handler/NacosCacheHandlerTest.java  |  54 ++++-----
 .../data/websocket/WebsocketSyncDataService.java   |  25 ++--
 .../websocket/client/ShenyuWebsocketClient.java    |  22 ++--
 .../data/websocket/config/WebsocketConfig.java     |  47 +++++++-
 .../data/websocket/handler/AuthDataHandler.java    |   6 +-
 .../data/websocket/handler/MetaDataHandler.java    |   7 +-
 .../data/websocket/handler/PluginDataHandler.java  |   9 +-
 .../data/websocket/handler/RuleDataHandler.java    |   6 +-
 .../websocket/handler/SelectorDataHandler.java     |   9 +-
 .../data/zookeeper/ZookeeperSyncDataService.java   |   5 +-
 29 files changed, 789 insertions(+), 206 deletions(-)

diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataService.java
index 3747785..e11e055 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataService.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataService.java
@@ -21,7 +21,6 @@ import com.ecwid.consul.v1.ConsulClient;
 import com.ecwid.consul.v1.QueryParams;
 import com.ecwid.consul.v1.Response;
 import com.ecwid.consul.v1.kv.model.GetValue;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shenyu.common.concurrent.ShenyuThreadFactory;
 import org.apache.shenyu.common.constant.ConsulConstants;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
@@ -30,6 +29,8 @@ import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.sync.data.api.SyncDataService;
 import org.apache.shenyu.sync.data.consul.config.ConsulConfig;
 import org.apache.shenyu.sync.data.consul.handler.ConsulCacheHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.HashMap;
 import java.util.List;
@@ -42,8 +43,11 @@ import java.util.concurrent.atomic.AtomicBoolean;
 /**
  * Consul sync data service.
  */
-@Slf4j
 public class ConsulSyncDataService extends ConsulCacheHandler implements 
AutoCloseable, SyncDataService {
+    /**
+     * logger. 
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(ConsulSyncDataService.class);
 
     private final Map<String, OnChange> groupMap = new HashMap<>();
 
@@ -99,22 +103,22 @@ public class ConsulSyncDataService extends 
ConsulCacheHandler implements AutoClo
                     Response<List<GetValue>> response = 
this.consulClient.getKVValues(context, null,
                             new QueryParams(consulConfig.getWaitTime(), 
currentIndex));
                     if (response.getValue() == null || 
response.getValue().isEmpty()) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("No value for context " + context);
+                        if (LOG.isTraceEnabled()) {
+                            LOG.trace("No value for context " + context);
                         }
                         continue;
                     }
                     Long newIndex = response.getConsulIndex();
                     if (newIndex == null || newIndex.equals(currentIndex)) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("Same index for context " + context);
+                        if (LOG.isTraceEnabled()) {
+                            LOG.trace("Same index for context " + context);
                         }
                         continue;
                     }
                     if (!this.consulIndexes.containsValue(newIndex)
                             && 
!currentIndex.equals(ConsulConstants.INIT_CONFIG_VERSION_INDEX)) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("Context " + context + " has new index " 
+ newIndex);
+                        if (LOG.isTraceEnabled()) {
+                            LOG.trace("Context " + context + " has new index " 
+ newIndex);
                         }
                         final Long lastIndex = currentIndex;
                         response.getValue().forEach(data -> {
@@ -125,12 +129,12 @@ public class ConsulSyncDataService extends 
ConsulCacheHandler implements AutoClo
                             
groupMap.get(data.getKey()).change(data.getDecodedValue());
                         });
 
-                    } else if (log.isTraceEnabled()) {
-                        log.info("Event for index already published for 
context " + context);
+                    } else if (LOG.isTraceEnabled()) {
+                        LOG.info("Event for index already published for 
context " + context);
                     }
                     this.consulIndexes.put(context, newIndex);
                 } catch (Exception e) {
-                    log.warn("Error querying consul Key/Values for context '" 
+ context + "'. Message: " + e.getMessage());
+                    LOG.warn("Error querying consul Key/Values for context '" 
+ context + "'. Message: " + e.getMessage());
                 }
             }
         }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/config/ConsulConfig.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/config/ConsulConfig.java
index 6c85338..c629d56 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/config/ConsulConfig.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/config/ConsulConfig.java
@@ -17,12 +17,11 @@
 
 package org.apache.shenyu.sync.data.consul.config;
 
-import lombok.Data;
+import java.util.Objects;
 
 /**
  * The type Consul config.
  */
-@Data
 public class ConsulConfig {
 
     private String url;
@@ -31,4 +30,89 @@ public class ConsulConfig {
 
     private int watchDelay;
 
+    /**
+     * get url.
+     *
+     * @return url
+     */
+    public String getUrl() {
+        return url;
+    }
+
+    /**
+     * set url.
+     *
+     * @param url url
+     */
+    public void setUrl(final String url) {
+        this.url = url;
+    }
+
+    /**
+     * get waitTime.
+     *
+     * @return waitTime
+     */
+    public int getWaitTime() {
+        return waitTime;
+    }
+
+    /**
+     * set waitTime.
+     *
+     * @param waitTime waitTime
+     */
+    public void setWaitTime(final int waitTime) {
+        this.waitTime = waitTime;
+    }
+
+    /**
+     * get watchDelay.
+     *
+     * @return watchDelay
+     */
+    public int getWatchDelay() {
+        return watchDelay;
+    }
+
+    /**
+     * set watchDelay.
+     *
+     * @param watchDelay watchDelay
+     */
+    public void setWatchDelay(final int watchDelay) {
+        this.watchDelay = watchDelay;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        ConsulConfig that = (ConsulConfig) o;
+        return waitTime == that.waitTime
+                && watchDelay == that.watchDelay
+                && Objects.equals(url, that.url);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(url, waitTime, watchDelay);
+    }
+
+    @Override
+    public String toString() {
+        return "ConsulConfig{"
+                + "url='"
+                + url
+                + '\''
+                + ", waitTime="
+                + waitTime
+                + ", watchDelay="
+                + watchDelay
+                + '}';
+    }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandler.java
index d4bce59..d593448 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/main/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandler.java
@@ -18,7 +18,6 @@
 package org.apache.shenyu.sync.data.consul.handler;
 
 import com.google.gson.JsonParseException;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.dto.PluginData;
@@ -28,6 +27,8 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -38,8 +39,11 @@ import java.util.stream.Collectors;
 /**
  * Consul cache handler.
  */
-@Slf4j
 public class ConsulCacheHandler {
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(ConsulCacheHandler.class);
 
     private final PluginDataSubscriber pluginDataSubscriber;
 
@@ -63,7 +67,7 @@ public class ConsulCacheHandler {
                 subscriber.onSubscribe(pluginData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync plugin data have error:", e);
+            LOG.error("sync plugin data have error:", e);
         }
     }
 
@@ -75,7 +79,7 @@ public class ConsulCacheHandler {
                 subscriber.onSelectorSubscribe(selectorData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync selector data have error:", e);
+            LOG.error("sync selector data have error:", e);
         }
     }
 
@@ -89,7 +93,7 @@ public class ConsulCacheHandler {
                 subscriber.onRuleSubscribe(ruleData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync rule data have error:", e);
+            LOG.error("sync rule data have error:", e);
         }
     }
 
@@ -101,7 +105,7 @@ public class ConsulCacheHandler {
                 subscriber.onSubscribe(metaData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync meta data have error:", e);
+            LOG.error("sync meta data have error:", e);
         }
     }
 
@@ -113,7 +117,7 @@ public class ConsulCacheHandler {
                 subscriber.onSubscribe(appAuthData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync auth data have error:", e);
+            LOG.error("sync auth data have error:", e);
         }
     }
 
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
index cb4dab2..33826457 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/ConsulSyncDataServiceTest.java
@@ -20,7 +20,6 @@ package org.apache.shenyu.sync.data.consul;
 import com.ecwid.consul.v1.ConsulClient;
 import com.ecwid.consul.v1.Response;
 import com.ecwid.consul.v1.kv.model.GetValue;
-import lombok.SneakyThrows;
 import org.apache.shenyu.common.constant.ConsulConstants;
 import org.apache.shenyu.common.utils.ReflectUtils;
 import org.apache.shenyu.sync.data.consul.config.ConsulConfig;
@@ -28,6 +27,7 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -68,8 +68,7 @@ public class ConsulSyncDataServiceTest {
     }
 
     @Test
-    @SneakyThrows
-    public void testWatch() {
+    public void testWatch() throws InvocationTargetException, 
IllegalAccessException, NoSuchMethodException {
         Long index = 1L;
         final List<GetValue> list = new ArrayList<>();
         GetValue getValue = mock(GetValue.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
index 4e75bf1..8d8c1d6 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-consul/src/test/java/org/apache/shenyu/sync/data/consul/handler/ConsulCacheHandlerTest.java
@@ -20,13 +20,11 @@ package org.apache.shenyu.sync.data.consul.handler;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shenyu.common.dto.PluginData;
-import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.dto.AppAuthData;
-import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.common.dto.MetaData;
+import org.apache.shenyu.common.dto.PluginData;
+import org.apache.shenyu.common.dto.RuleData;
+import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
@@ -34,18 +32,14 @@ import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.junit.Assert;
 import org.junit.Test;
 
-import java.util.List;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 
 /**
  * test case for {@link ConsulCacheHandler}.
  */
-@Slf4j
-@SuppressWarnings("all")
 public final class ConsulCacheHandlerTest {
-
-    @SneakyThrows
     @Test
     public void testUpdatePluginMap() {
         String pluginName1 = "PLUGIN_NAME_1";
@@ -75,7 +69,6 @@ public final class ConsulCacheHandlerTest {
         Assert.assertEquals(2, unsubscribeList.size());
     }
 
-    @SneakyThrows
     @Test
     public void testUpdateSelectorMap() {
         String selectorDataPluginName1 = "SELECTOR_DATA_1";
@@ -114,7 +107,6 @@ public final class ConsulCacheHandlerTest {
         Assert.assertEquals(2, unsubscribeList.size());
     }
 
-    @SneakyThrows
     @Test
     public void testUpdateRuleMap() {
         String ruleDataId1 = "RULE_DATA_1";
@@ -148,7 +140,6 @@ public final class ConsulCacheHandlerTest {
         Assert.assertEquals(2, unsubscribeList.size());
     }
 
-    @SneakyThrows
     @Test
     public void testUpdateMetaDataMap() {
         String metadataPath1 = "METADATA_PATH_1";
@@ -178,7 +169,6 @@ public final class ConsulCacheHandlerTest {
         Assert.assertEquals(2, unsubscribeList.size());
     }
 
-    @SneakyThrows
     @Test
     public void testUpdateAuthMap() {
         String mockAppKey = "MOCK_APP_KEY";
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdClient.java
 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdClient.java
index cfc350c..ab5f537 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdClient.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdClient.java
@@ -25,12 +25,13 @@ import io.etcd.jetcd.options.DeleteOption;
 import io.etcd.jetcd.options.GetOption;
 import io.etcd.jetcd.options.WatchOption;
 import io.etcd.jetcd.watch.WatchEvent;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutionException;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
 import java.util.stream.Collectors;
@@ -38,9 +39,13 @@ import java.util.stream.Collectors;
 /**
  * Etcd client of Bootstrap.
  */
-@Slf4j
 public class EtcdClient {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(EtcdClient.class);
+
     private final Client client;
 
     private final ConcurrentHashMap<String, Watch.Watcher> watchCache = new 
ConcurrentHashMap<>();
@@ -58,23 +63,30 @@ public class EtcdClient {
 
     /**
      * get node value.
+     *
      * @param key node name
      * @return string
      */
-    @SneakyThrows
     public String get(final String key) {
-        List<KeyValue> keyValues = 
client.getKVClient().get(ByteSequence.from(key, 
StandardCharsets.UTF_8)).get().getKvs();
+        List<KeyValue> keyValues = null;
+        try {
+            keyValues = client.getKVClient().get(ByteSequence.from(key, 
StandardCharsets.UTF_8)).get().getKvs();
+        } catch (InterruptedException | ExecutionException e) {
+            LOG.error(e.getMessage(), e);
+        }
         return keyValues.isEmpty() ? null : 
keyValues.iterator().next().getValue().toString(StandardCharsets.UTF_8);
     }
 
     /**
      * get node sub nodes.
-     * @param prefix node prefix.
+     *
+     * @param prefix    node prefix.
      * @param separator separator char
      * @return sub nodes
+     * @throws ExecutionException   the exception
+     * @throws InterruptedException the exception
      */
-    @SneakyThrows
-    public List<String> getChildrenKeys(final String prefix, final String 
separator) {
+    public List<String> getChildrenKeys(final String prefix, final String 
separator) throws ExecutionException, InterruptedException {
         ByteSequence prefixByteSequence = ByteSequence.from(prefix, 
StandardCharsets.UTF_8);
         GetOption getOption = 
GetOption.newBuilder().withPrefix(prefixByteSequence).withSortField(GetOption.SortTarget.KEY).withSortOrder(GetOption.SortOrder.ASCEND).build();
         List<KeyValue> keyValues = 
client.getKVClient().get(prefixByteSequence, getOption).get().getKvs();
@@ -88,16 +100,19 @@ public class EtcdClient {
 
     /**
      * update value of node.
-     * @param key node name
+     *
+     * @param key   node name
      * @param value node value
+     * @throws ExecutionException   the exception
+     * @throws InterruptedException the exception
      */
-    @SneakyThrows
-    public void put(final String key, final String value) {
+    public void put(final String key, final String value) throws 
ExecutionException, InterruptedException {
         client.getKVClient().put(ByteSequence.from(key, 
StandardCharsets.UTF_8), ByteSequence.from(value, 
StandardCharsets.UTF_8)).get();
     }
 
     /**
      * delete node.
+     *
      * @param key node name
      */
     public void delete(final String key) {
@@ -106,6 +121,7 @@ public class EtcdClient {
 
     /**
      * delete node of recursive.
+     *
      * @param key parent node name
      */
     public void deleteRecursive(final String key) {
@@ -117,7 +133,8 @@ public class EtcdClient {
 
     /**
      * subscribe data change.
-     * @param key node name
+     *
+     * @param key           node name
      * @param updateHandler node value handler of update
      * @param deleteHandler node value handler of delete
      */
@@ -129,7 +146,8 @@ public class EtcdClient {
 
     /**
      * subscribe sub node change.
-     * @param key param node name.
+     *
+     * @param key           param node name.
      * @param updateHandler sub node handler of update
      * @param deleteHandler sub node delete of delete
      */
@@ -144,7 +162,7 @@ public class EtcdClient {
 
     private Watch.Listener watch(final BiConsumer<String, String> 
updateHandler, final Consumer<String> deleteHandler) {
         return Watch.listener(response -> {
-            for (WatchEvent event: response.getEvents()) {
+            for (WatchEvent event : response.getEvents()) {
                 String path = 
event.getKeyValue().getKey().toString(StandardCharsets.UTF_8);
                 String value = 
event.getKeyValue().getValue().toString(StandardCharsets.UTF_8);
                 switch (event.getEventType()) {
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataService.java
index ca57d5c..cf0daa9 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataService.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd/EtcdSyncDataService.java
@@ -19,13 +19,12 @@ package org.apache.shenyu.sync.data.etcd;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.Lists;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shenyu.common.constant.DefaultPathConstants;
+import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.dto.PluginData;
-import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.dto.RuleData;
-import org.apache.shenyu.common.dto.AppAuthData;
+import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.utils.CollectionUtils;
 import org.apache.shenyu.common.utils.GsonUtils;
@@ -33,19 +32,27 @@ import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.sync.data.api.SyncDataService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
+import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.ExecutionException;
 
 /**
  * Data synchronize of etcd.
  */
-@Slf4j
 public class EtcdSyncDataService implements SyncDataService, AutoCloseable {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(EtcdSyncDataService.class);
+
     private final EtcdClient etcdClient;
 
     private final PluginDataSubscriber pluginDataSubscriber;
@@ -57,13 +64,13 @@ public class EtcdSyncDataService implements 
SyncDataService, AutoCloseable {
     /**
      * Instantiates a new Zookeeper cache manager.
      *
-     * @param etcdClient             the etcd client
+     * @param etcdClient           the etcd client
      * @param pluginDataSubscriber the plugin data subscriber
      * @param metaDataSubscribers  the meta data subscribers
      * @param authDataSubscribers  the auth data subscribers
      */
     public EtcdSyncDataService(final EtcdClient etcdClient, final 
PluginDataSubscriber pluginDataSubscriber,
-                                    final List<MetaDataSubscriber> 
metaDataSubscribers, final List<AuthDataSubscriber> authDataSubscribers) {
+                               final List<MetaDataSubscriber> 
metaDataSubscribers, final List<AuthDataSubscriber> authDataSubscribers) {
         this.etcdClient = etcdClient;
         this.pluginDataSubscriber = pluginDataSubscriber;
         this.metaDataSubscribers = metaDataSubscribers;
@@ -300,7 +307,12 @@ public class EtcdSyncDataService implements 
SyncDataService, AutoCloseable {
     }
 
     private List<String> etcdClientGetChildren(final String parent) {
-        return etcdClient.getChildrenKeys(parent, "/");
+        try {
+            return etcdClient.getChildrenKeys(parent, "/");
+        } catch (ExecutionException | InterruptedException e) {
+            LOG.error(e.getMessage(), e);
+        }
+        return Collections.emptyList();
     }
 
     @Override
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/HttpSyncDataService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/HttpSyncDataService.java
index ca56b56..2f1668d 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/HttpSyncDataService.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/HttpSyncDataService.java
@@ -22,15 +22,6 @@ import com.google.common.collect.Lists;
 import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
-import java.time.Duration;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shenyu.common.concurrent.ShenyuThreadFactory;
@@ -45,6 +36,8 @@ import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.sync.data.api.SyncDataService;
 import org.apache.shenyu.sync.data.http.config.HttpConfig;
 import org.apache.shenyu.sync.data.http.refresh.DataRefreshFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -54,13 +47,26 @@ import org.springframework.util.MultiValueMap;
 import org.springframework.web.client.RestClientException;
 import org.springframework.web.client.RestTemplate;
 
+import java.time.Duration;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
 /**
  * HTTP long polling implementation.
  */
 @SuppressWarnings("all")
-@Slf4j
 public class HttpSyncDataService implements SyncDataService, AutoCloseable {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(HttpSyncDataService.class);
+
     private static final AtomicBoolean RUNNING = new AtomicBoolean(false);
 
     private static final Gson GSON = new Gson();
@@ -111,7 +117,7 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
             // start long polling, each server creates a thread to listen for 
changes.
             this.serverList.forEach(server -> this.executor.execute(new 
HttpLongPollingTask(server)));
         } else {
-            log.info("shenyu http long polling was started, executor=[{}]", 
executor);
+            LOG.info("shenyu http long polling was started, executor=[{}]", 
executor);
         }
     }
 
@@ -126,7 +132,7 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
                 if (index >= serverList.size() - 1) {
                     throw e;
                 }
-                log.warn("fetch config fail, try another one: {}", 
serverList.get(index + 1));
+                LOG.warn("fetch config fail, try another one: {}", 
serverList.get(index + 1));
             }
         }
     }
@@ -137,28 +143,29 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
             
params.append("groupKeys").append("=").append(groupKey.name()).append("&");
         }
         String url = server + "/configs/fetch?" + 
StringUtils.removeEnd(params.toString(), "&");
-        log.info("request configs: [{}]", url);
+        LOG.info("request configs: [{}]", url);
         String json = null;
         try {
             json = this.httpClient.getForObject(url, String.class);
         } catch (RestClientException e) {
             String message = String.format("fetch config fail from server[%s], 
%s", url, e.getMessage());
-            log.warn(message);
+            LOG.warn(message);
             throw new ShenyuException(message, e);
         }
         // update local cache
         boolean updated = this.updateCacheWithJson(json);
         if (updated) {
-            log.info("get latest configs: [{}]", json);
+            LOG.info("get latest configs: [{}]", json);
             return;
         }
         // not updated. it is likely that the current config server has not 
been updated yet. wait a moment.
-        log.info("The config of the server[{}] has not been updated or is out 
of date. Wait for 30s to listen for changes again.", server);
+        LOG.info("The config of the server[{}] has not been updated or is out 
of date. Wait for 30s to listen for changes again.", server);
         ThreadUtils.sleep(TimeUnit.SECONDS, 30);
     }
 
     /**
      * update local cache.
+     *
      * @param json the response from config server.
      * @return true: the local cache was updated. false: not updated.
      */
@@ -183,11 +190,11 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
         headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
         HttpEntity httpEntity = new HttpEntity(params, headers);
         String listenerUrl = server + "/configs/listener";
-        log.debug("request listener configs: [{}]", listenerUrl);
+        LOG.debug("request listener configs: [{}]", listenerUrl);
         JsonArray groupJson = null;
         try {
             String json = this.httpClient.postForEntity(listenerUrl, 
httpEntity, String.class).getBody();
-            log.debug("listener result: [{}]", json);
+            LOG.debug("listener result: [{}]", json);
             groupJson = GSON.fromJson(json, 
JsonObject.class).getAsJsonArray("data");
         } catch (RestClientException e) {
             String message = String.format("listener configs fail, 
server:[%s], %s", server, e.getMessage());
@@ -197,7 +204,7 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
             // fetch group configuration async.
             ConfigGroupEnum[] changedGroups = GSON.fromJson(groupJson, 
ConfigGroupEnum[].class);
             if (ArrayUtils.isNotEmpty(changedGroups)) {
-                log.info("Group config changed: {}", 
Arrays.toString(changedGroups));
+                LOG.info("Group config changed: {}", 
Arrays.toString(changedGroups));
                 this.doFetchGroupConfig(server, changedGroups);
             }
         }
@@ -230,20 +237,20 @@ public class HttpSyncDataService implements 
SyncDataService, AutoCloseable {
                     try {
                         doLongPolling(server);
                     } catch (Exception e) {
-                        // print warnning log.
+                        // print warnning LOG.
                         if (time < retryTimes) {
-                            log.warn("Long polling failed, tried {} times, {} 
times left, will be suspended for a while! {}",
+                            LOG.warn("Long polling failed, tried {} times, {} 
times left, will be suspended for a while! {}",
                                     time, retryTimes - time, e.getMessage());
                             ThreadUtils.sleep(TimeUnit.SECONDS, 5);
                             continue;
                         }
                         // print error, then suspended for a while.
-                        log.error("Long polling failed, try again after 5 
minutes!", e);
+                        LOG.error("Long polling failed, try again after 5 
minutes!", e);
                         ThreadUtils.sleep(TimeUnit.MINUTES, 5);
                     }
                 }
             }
-            log.warn("Stop http long polling.");
+            LOG.warn("Stop http long polling.");
         }
     }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/config/HttpConfig.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/config/HttpConfig.java
index 9ca15a7..ec5459b 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/config/HttpConfig.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/config/HttpConfig.java
@@ -17,17 +17,102 @@
 
 package org.apache.shenyu.sync.data.http.config;
 
-import lombok.Data;
+import java.util.Objects;
 
 /**
  * The type Http config.
  */
-@Data
 public class HttpConfig {
-    
+
     private String url;
-    
+
     private Integer delayTime;
-    
+
     private Integer connectionTimeout;
+
+    /**
+     * get url.
+     *
+     * @return url
+     */
+    public String getUrl() {
+        return url;
+    }
+
+    /**
+     * set url.
+     *
+     * @param url url
+     */
+    public void setUrl(final String url) {
+        this.url = url;
+    }
+
+    /**
+     * get delayTime.
+     *
+     * @return delayTime
+     */
+    public Integer getDelayTime() {
+        return delayTime;
+    }
+
+    /**
+     * set delayTime.
+     *
+     * @param delayTime delayTime
+     */
+    public void setDelayTime(final Integer delayTime) {
+        this.delayTime = delayTime;
+    }
+
+    /**
+     * get connectionTimeout.
+     *
+     * @return connectionTimeout
+     */
+    public Integer getConnectionTimeout() {
+        return connectionTimeout;
+    }
+
+    /**
+     * set connectionTimeout.
+     *
+     * @param connectionTimeout connectionTimeout
+     */
+    public void setConnectionTimeout(final Integer connectionTimeout) {
+        this.connectionTimeout = connectionTimeout;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        HttpConfig that = (HttpConfig) o;
+        return Objects.equals(url, that.url)
+                && Objects.equals(delayTime, that.delayTime)
+                && Objects.equals(connectionTimeout, that.connectionTimeout);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(url, delayTime, connectionTimeout);
+    }
+
+    @Override
+    public String toString() {
+        return "HttpConfig{"
+                + "url='"
+                + url
+                + '\''
+                + ", delayTime="
+                + delayTime
+                + ", connectionTimeout="
+                + connectionTimeout
+                + '}';
+    }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AbstractDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AbstractDataRefresh.java
index c89bebb..26d3252 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AbstractDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AbstractDataRefresh.java
@@ -19,10 +19,11 @@ package org.apache.shenyu.sync.data.http.refresh;
 
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
@@ -33,7 +34,6 @@ import java.util.concurrent.ConcurrentMap;
  *
  * @param <T> the type parameter
  */
-@Slf4j
 public abstract class AbstractDataRefresh<T> implements DataRefresh {
 
     /**
@@ -47,6 +47,11 @@ public abstract class AbstractDataRefresh<T> implements 
DataRefresh {
     protected static final Gson GSON = new Gson();
 
     /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(AbstractDataRefresh.class);
+
+    /**
      * Convert json object.
      *
      * @param data the data
@@ -107,15 +112,15 @@ public abstract class AbstractDataRefresh<T> implements 
DataRefresh {
         ResultHolder holder = new ResultHolder(false);
         GROUP_CACHE.merge(groupEnum, newVal, (oldVal, value) -> {
             if (StringUtils.equals(oldVal.getMd5(), newVal.getMd5())) {
-                log.info("Get the same config, the [{}] config cache will not 
be updated, md5:{}", groupEnum, oldVal.getMd5());
+                LOG.info("Get the same config, the [{}] config cache will not 
be updated, md5:{}", groupEnum, oldVal.getMd5());
                 return oldVal;
             }
             // must compare the last update time
             if (oldVal.getLastModifyTime() >= newVal.getLastModifyTime()) {
-                log.info("Last update time earlier than the current 
configuration, the [{}] config cache will not be updated", groupEnum);
+                LOG.info("Last update time earlier than the current 
configuration, the [{}] config cache will not be updated", groupEnum);
                 return oldVal;
             }
-            log.info("update {} config: {}", groupEnum, newVal);
+            LOG.info("update {} config: {}", groupEnum, newVal);
             holder.result = true;
             return newVal;
         });
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefresh.java
index 1590dc2..66a4ea6 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/AppAuthDataRefresh.java
@@ -19,24 +19,32 @@ package org.apache.shenyu.sync.data.http.refresh;
 
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
-import java.util.List;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
 
 /**
  * The type app auth data refresh.
  */
-@Slf4j
-@RequiredArgsConstructor
 public class AppAuthDataRefresh extends AbstractDataRefresh<AppAuthData> {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(AppAuthDataRefresh.class);
+
     private final List<AuthDataSubscriber> authDataSubscribers;
 
+    public AppAuthDataRefresh(final List<AuthDataSubscriber> 
authDataSubscribers) {
+        this.authDataSubscribers = authDataSubscribers;
+    }
+
     @Override
     protected JsonObject convert(final JsonObject data) {
         return data.getAsJsonObject(ConfigGroupEnum.APP_AUTH.name());
@@ -61,7 +69,7 @@ public class AppAuthDataRefresh extends 
AbstractDataRefresh<AppAuthData> {
     @Override
     protected void refresh(final List<AppAuthData> data) {
         if (CollectionUtils.isEmpty(data)) {
-            log.info("clear all appAuth data cache");
+            LOG.info("clear all appAuth data cache");
             authDataSubscribers.forEach(AuthDataSubscriber::refresh);
         } else {
             data.forEach(authData -> authDataSubscribers.forEach(subscriber -> 
subscriber.onSubscribe(authData)));
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefresh.java
index 5a979f1..e1efddf 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/MetaDataRefresh.java
@@ -20,23 +20,29 @@ package org.apache.shenyu.sync.data.http.refresh;
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import java.util.List;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The type meta data refresh.
  */
-@Slf4j
-@RequiredArgsConstructor
 public class MetaDataRefresh extends AbstractDataRefresh<MetaData> {
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(MetaDataRefresh.class);
 
     private final List<MetaDataSubscriber> metaDataSubscribers;
 
+    public MetaDataRefresh(final List<MetaDataSubscriber> metaDataSubscribers) 
{
+        this.metaDataSubscribers = metaDataSubscribers;
+    }
+
     @Override
     protected JsonObject convert(final JsonObject data) {
         return data.getAsJsonObject(ConfigGroupEnum.META_DATA.name());
@@ -61,7 +67,7 @@ public class MetaDataRefresh extends 
AbstractDataRefresh<MetaData> {
     @Override
     protected void refresh(final List<MetaData> data) {
         if (CollectionUtils.isEmpty(data)) {
-            log.info("clear all metaData cache");
+            LOG.info("clear all metaData cache");
             metaDataSubscribers.forEach(MetaDataSubscriber::refresh);
         } else {
             data.forEach(metaData -> metaDataSubscribers.forEach(subscriber -> 
subscriber.onSubscribe(metaData)));
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefresh.java
index bd7f105..c71cb8f 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/PluginDataRefresh.java
@@ -20,23 +20,30 @@ package org.apache.shenyu.sync.data.http.refresh;
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import java.util.List;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The type Plugin data refresh.
  */
-@Slf4j
-@RequiredArgsConstructor
 public class PluginDataRefresh extends AbstractDataRefresh<PluginData> {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(PluginDataRefresh.class);
+
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public PluginDataRefresh(final PluginDataSubscriber pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     protected JsonObject convert(final JsonObject data) {
         return data.getAsJsonObject(ConfigGroupEnum.PLUGIN.name());
@@ -62,7 +69,7 @@ public class PluginDataRefresh extends 
AbstractDataRefresh<PluginData> {
     protected void refresh(final List<PluginData> data) {
         pluginDataSubscriber.refreshPluginDataAll();
         if (CollectionUtils.isEmpty(data)) {
-            log.info("clear all plugin data cache");
+            LOG.info("clear all plugin data cache");
             return;
         }
         data.forEach(pluginDataSubscriber::onSubscribe);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefresh.java
index bee2727..01947b1 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/RuleDataRefresh.java
@@ -20,23 +20,30 @@ package org.apache.shenyu.sync.data.http.refresh;
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
 import java.util.List;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * The type Rule data refresh.
  */
-@Slf4j
-@RequiredArgsConstructor
 public class RuleDataRefresh extends AbstractDataRefresh<RuleData> {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(RuleDataRefresh.class);
+
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public RuleDataRefresh(final PluginDataSubscriber pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     protected JsonObject convert(final JsonObject data) {
         return data.getAsJsonObject(ConfigGroupEnum.RULE.name());
@@ -61,7 +68,7 @@ public class RuleDataRefresh extends 
AbstractDataRefresh<RuleData> {
     @Override
     protected void refresh(final List<RuleData> data) {
         if (CollectionUtils.isEmpty(data)) {
-            log.info("clear all rule cache, old cache");
+            LOG.info("clear all rule cache, old cache");
             data.forEach(pluginDataSubscriber::unRuleSubscribe);
             pluginDataSubscriber.refreshRuleDataAll();
         } else {
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefresh.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefresh.java
index 75d86ec..9696250 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefresh.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/SelectorDataRefresh.java
@@ -19,24 +19,32 @@ package org.apache.shenyu.sync.data.http.refresh;
 
 import com.google.gson.JsonObject;
 import com.google.gson.reflect.TypeToken;
-import java.util.List;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
 
 /**
  * The type Selector data refresh.
  */
-@Slf4j
-@RequiredArgsConstructor
 public class SelectorDataRefresh extends AbstractDataRefresh<SelectorData> {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(SelectorDataRefresh.class);
+
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public SelectorDataRefresh(final PluginDataSubscriber 
pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     protected JsonObject convert(final JsonObject data) {
         return data.getAsJsonObject(ConfigGroupEnum.SELECTOR.name());
@@ -61,7 +69,7 @@ public class SelectorDataRefresh extends 
AbstractDataRefresh<SelectorData> {
     @Override
     protected void refresh(final List<SelectorData> data) {
         if (CollectionUtils.isEmpty(data)) {
-            log.info("clear all selector cache, old cache");
+            LOG.info("clear all selector cache, old cache");
             data.forEach(pluginDataSubscriber::unSelectorSubscribe);
             pluginDataSubscriber.refreshSelectorDataAll();
         } else {
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/HttpSyncDataServiceTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/HttpSyncDataServiceTest.java
index 6a779c7..f9dd536 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/HttpSyncDataServiceTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/HttpSyncDataServiceTest.java
@@ -19,7 +19,6 @@ package org.apache.shenyu.sync.data.http;
 
 import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
-import lombok.SneakyThrows;
 import org.apache.shenyu.common.dto.ConfigData;
 import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
@@ -34,6 +33,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.junit.MockitoJUnitRunner;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.test.util.ReflectionTestUtils;
 import wiremock.org.apache.http.HttpHeaders;
 import wiremock.org.apache.http.entity.ContentType;
@@ -56,6 +57,11 @@ import static org.mockito.Mockito.verify;
 @RunWith(MockitoJUnitRunner.class)
 public class HttpSyncDataServiceTest {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(HttpSyncDataServiceTest.class);
+
     @Rule
     public WireMockRule wireMockRule = new 
WireMockRule(WireMockConfiguration.wireMockConfig().dynamicPort(), false);
 
@@ -96,9 +102,12 @@ public class HttpSyncDataServiceTest {
     }
 
     @After
-    @SneakyThrows
     public void after() {
-        httpSyncDataService.close();
+        try {
+            httpSyncDataService.close();
+        } catch (Exception e) {
+            LOG.error(e.getMessage(), e);
+        }
         AtomicBoolean running = (AtomicBoolean) 
ReflectionTestUtils.getField(httpSyncDataService, "RUNNING");
         assertFalse(running.get());
     }
@@ -123,7 +132,6 @@ public class HttpSyncDataServiceTest {
     }
 
     // mock configs fetch api response
-    @SneakyThrows
     private String mockConfigsFetchResponseJson() {
         ConfigData emptyData = new ConfigData()
                 
.setLastModifyTime(System.currentTimeMillis()).setData(Collections.emptyList())
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfig.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfig.java
index abaec34..d331ceb 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfig.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosACMConfig.java
@@ -17,9 +17,8 @@
 
 package org.apache.shenyu.sync.data.nacos.config;
 
-import lombok.Data;
+import java.util.Objects;
 
-@Data
 public class NacosACMConfig {
 
     private boolean enabled;
@@ -31,4 +30,135 @@ public class NacosACMConfig {
     private String accessKey;
 
     private String secretKey;
+
+    /**
+     * get enabled.
+     *
+     * @return enabled
+     */
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    /**
+     * set enabled.
+     *
+     * @param enabled enabled
+     */
+    public void setEnabled(final boolean enabled) {
+        this.enabled = enabled;
+    }
+
+    /**
+     * get endpoint.
+     *
+     * @return endpoint
+     */
+    public String getEndpoint() {
+        return endpoint;
+    }
+
+    /**
+     * set endpoint.
+     *
+     * @param endpoint endpoint
+     */
+    public void setEndpoint(final String endpoint) {
+        this.endpoint = endpoint;
+    }
+
+    /**
+     * get namespace.
+     *
+     * @return namespace
+     */
+    public String getNamespace() {
+        return namespace;
+    }
+
+    /**
+     * set namespace.
+     *
+     * @param namespace namespace
+     */
+    public void setNamespace(final String namespace) {
+        this.namespace = namespace;
+    }
+
+    /**
+     * get accessKey.
+     *
+     * @return accessKey
+     */
+    public String getAccessKey() {
+        return accessKey;
+    }
+
+    /**
+     * set accessKey.
+     *
+     * @param accessKey accessKey
+     */
+    public void setAccessKey(final String accessKey) {
+        this.accessKey = accessKey;
+    }
+
+    /**
+     * get secretKey.
+     *
+     * @return secretKey
+     */
+    public String getSecretKey() {
+        return secretKey;
+    }
+
+    /**
+     * set secretKey.
+     *
+     * @param secretKey secretKey
+     */
+    public void setSecretKey(final String secretKey) {
+        this.secretKey = secretKey;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        NacosACMConfig that = (NacosACMConfig) o;
+        return enabled == that.enabled
+                && Objects.equals(endpoint, that.endpoint)
+                && Objects.equals(namespace, that.namespace)
+                && Objects.equals(accessKey, that.accessKey)
+                && Objects.equals(secretKey, that.secretKey);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(enabled, endpoint, namespace, accessKey, 
secretKey);
+    }
+
+    @Override
+    public String toString() {
+        return "NacosACMConfig{"
+                + "enabled="
+                + enabled
+                + ", endpoint='"
+                + endpoint
+                + '\''
+                + ", namespace='"
+                + namespace
+                + '\''
+                + ", accessKey='"
+                + accessKey
+                + '\''
+                + ", secretKey='"
+                + secretKey
+                + '\''
+                + '}';
+    }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosConfig.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosConfig.java
index 942abe7..44e7363 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosConfig.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/config/NacosConfig.java
@@ -17,9 +17,8 @@
 
 package org.apache.shenyu.sync.data.nacos.config;
 
-import lombok.Data;
+import java.util.Objects;
 
-@Data
 public class NacosConfig {
 
     private String url;
@@ -31,4 +30,135 @@ public class NacosConfig {
     private String password;
 
     private NacosACMConfig acm;
+
+    /**
+     * get url.
+     *
+     * @return url
+     */
+    public String getUrl() {
+        return url;
+    }
+
+    /**
+     * set url.
+     *
+     * @param url url
+     */
+    public void setUrl(final String url) {
+        this.url = url;
+    }
+
+    /**
+     * get namespace.
+     *
+     * @return namespace
+     */
+    public String getNamespace() {
+        return namespace;
+    }
+
+    /**
+     * set namespace.
+     *
+     * @param namespace namespace
+     */
+    public void setNamespace(final String namespace) {
+        this.namespace = namespace;
+    }
+
+    /**
+     * get username.
+     *
+     * @return username
+     */
+    public String getUsername() {
+        return username;
+    }
+
+    /**
+     * set username.
+     *
+     * @param username username
+     */
+    public void setUsername(final String username) {
+        this.username = username;
+    }
+
+    /**
+     * get password.
+     *
+     * @return password
+     */
+    public String getPassword() {
+        return password;
+    }
+
+    /**
+     * set password.
+     *
+     * @param password password
+     */
+    public void setPassword(final String password) {
+        this.password = password;
+    }
+
+    /**
+     * get acm.
+     *
+     * @return acm
+     */
+    public NacosACMConfig getAcm() {
+        return acm;
+    }
+
+    /**
+     * set acm.
+     *
+     * @param acm acm
+     */
+    public void setAcm(final NacosACMConfig acm) {
+        this.acm = acm;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        NacosConfig that = (NacosConfig) o;
+        return Objects.equals(url, that.url)
+                && Objects.equals(namespace, that.namespace)
+                && Objects.equals(username, that.username)
+                && Objects.equals(password, that.password)
+                && Objects.equals(acm, that.acm);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(url, namespace, username, password, acm);
+    }
+
+    @Override
+    public String toString() {
+        return "NacosConfig{"
+                + "url='"
+                + url
+                + '\''
+                + ", namespace='"
+                + namespace
+                + '\''
+                + ", username='"
+                + username
+                + '\''
+                + ", password='"
+                + password
+                + '\''
+                + ", acm="
+                + acm
+                + '}';
+    }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandler.java
index cd7e3f3..b10864c 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandler.java
@@ -19,11 +19,9 @@ package org.apache.shenyu.sync.data.nacos.handler;
 
 import com.alibaba.nacos.api.config.ConfigService;
 import com.alibaba.nacos.api.config.listener.Listener;
+import com.alibaba.nacos.api.exception.NacosException;
 import com.google.common.collect.Maps;
 import com.google.gson.JsonParseException;
-import lombok.Getter;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shenyu.common.constant.NacosPathConstants;
 import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.dto.MetaData;
@@ -34,6 +32,8 @@ import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -46,12 +46,15 @@ import java.util.stream.Collectors;
 /**
  * Nacos cache handler.
  */
-@Slf4j
 public class NacosCacheHandler {
 
     protected static final Map<String, List<Listener>> LISTENERS = 
Maps.newConcurrentMap();
 
-    @Getter
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(NacosCacheHandler.class);
+
     private final ConfigService configService;
 
     private final PluginDataSubscriber pluginDataSubscriber;
@@ -69,6 +72,15 @@ public class NacosCacheHandler {
         this.authDataSubscribers = authDataSubscribers;
     }
 
+    /**
+     * get configService.
+     *
+     * @return configService
+     */
+    public ConfigService getConfigService() {
+        return this.configService;
+    }
+
     protected void updatePluginMap(final String configInfo) {
         try {
             // Fix bug #656(https://github.com/dromara/shenyu/issues/656)
@@ -78,7 +90,7 @@ public class NacosCacheHandler {
                 subscriber.onSubscribe(pluginData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync plugin data have error:", e);
+            LOG.error("sync plugin data have error:", e);
         }
     }
 
@@ -90,7 +102,7 @@ public class NacosCacheHandler {
                 subscriber.onSelectorSubscribe(selectorData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync selector data have error:", e);
+            LOG.error("sync selector data have error:", e);
         }
     }
 
@@ -104,7 +116,7 @@ public class NacosCacheHandler {
                 subscriber.onRuleSubscribe(ruleData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync rule data have error:", e);
+            LOG.error("sync rule data have error:", e);
         }
     }
 
@@ -116,7 +128,7 @@ public class NacosCacheHandler {
                 subscriber.onSubscribe(metaData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync meta data have error:", e);
+            LOG.error("sync meta data have error:", e);
         }
     }
 
@@ -128,13 +140,17 @@ public class NacosCacheHandler {
                 subscriber.onSubscribe(appAuthData);
             }));
         } catch (JsonParseException e) {
-            log.error("sync auth data have error:", e);
+            LOG.error("sync auth data have error:", e);
         }
     }
 
-    @SneakyThrows
     private String getConfigAndSignListener(final String dataId, final 
Listener listener) {
-        String config = configService.getConfigAndSignListener(dataId, 
NacosPathConstants.GROUP, 6000, listener);
+        String config = null;
+        try {
+            config = configService.getConfigAndSignListener(dataId, 
NacosPathConstants.GROUP, 6000, listener);
+        } catch (NacosException e) {
+            LOG.error(e.getMessage(), e);
+        }
         if (config == null) {
             config = "{}";
         }
@@ -158,7 +174,6 @@ public class NacosCacheHandler {
     }
 
     protected interface OnChange {
-
         void change(String changeData);
     }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
index 16315e5..b0d7b92 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data/nacos/handler/NacosCacheHandlerTest.java
@@ -18,19 +18,18 @@
 package org.apache.shenyu.sync.data.nacos.handler;
 
 import com.alibaba.nacos.api.config.ConfigService;
+import com.alibaba.nacos.api.exception.NacosException;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shenyu.common.dto.PluginData;
-import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.dto.AppAuthData;
-import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.common.dto.MetaData;
+import org.apache.shenyu.common.dto.PluginData;
+import org.apache.shenyu.common.dto.RuleData;
+import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
@@ -39,14 +38,14 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.List;
 import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.Collections;
-import java.util.Set;
-import java.util.Objects;
-import java.util.Map;
+import java.util.Comparator;
 import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.CountDownLatch;
 import java.util.stream.Collectors;
@@ -54,7 +53,6 @@ import java.util.stream.Collectors;
 /**
  * add test case for {@link NacosCacheHandler}.
  */
-@Slf4j
 @SuppressWarnings("all")
 public final class NacosCacheHandlerTest {
     private static final ConcurrentMap<String, PluginData> PLUGIN_MAP = 
Maps.newConcurrentMap();
@@ -92,9 +90,8 @@ public final class NacosCacheHandlerTest {
         configService = new NacosMockConfigService();
     }
 
-    @SneakyThrows
     @Test
-    public void testUpdatePluginMap() {
+    public void testUpdatePluginMap() throws NacosException {
         String pluginName1 = "PLUGIN_NAME_1";
         String pluginName2 = "PLUGIN_NAME_2";
         PluginData pluginData1 =
@@ -132,9 +129,8 @@ public final class NacosCacheHandlerTest {
 
     }
 
-    @SneakyThrows
     @Test
-    public void testUpdateSelectorMap() {
+    public void testUpdateSelectorMap() throws NacosException {
         String selectorDataPluginName1 = "SELECTOR_DATA_1";
         String selectorDataPluginName2 = "SELECTOR_DATA_2";
         SelectorData selectorData1 =
@@ -184,9 +180,8 @@ public final class NacosCacheHandlerTest {
                                         ImmutableList.of(selectorData1))));
     }
 
-    @SneakyThrows
     @Test
-    public void testUpdateRuleMap() {
+    public void testUpdateRuleMap() throws NacosException {
         String ruleDataId1 = "RULE_DATA_1";
         String ruleDataId2 = "RULE_DATA_2";
         String selectorId1 = "ID_1";
@@ -231,9 +226,8 @@ public final class NacosCacheHandlerTest {
                                         ImmutableList.of(ruleData1))));
     }
 
-    @SneakyThrows
     @Test
-    public void testUpdateMetaDataMap() {
+    public void testUpdateMetaDataMap() throws NacosException {
         String metadataPath1 = "METADATA_PATH_1";
         String metadataPath2 = "METADATA_PATH_2";
         MetaData metaData1 = 
MetaData.builder().path(metadataPath1).id("meta_1").build();
@@ -269,9 +263,8 @@ public final class NacosCacheHandlerTest {
                         .toJson(ImmutableMap.of(metadataPath1, metaData1, 
metadataPath2, metaData2)));
     }
 
-    @SneakyThrows
     @Test
-    public void testUpdateAuthMap() {
+    public void testUpdateAuthMap() throws NacosException {
         String mockAppKey = "MOCK_APP_KEY";
         String mockAppKey2 = "MOCK_APP_KEY2";
         String mockAppSecret = "MOCK_APP_SECRET";
@@ -312,9 +305,8 @@ public final class NacosCacheHandlerTest {
                         .toJson(ImmutableMap.of(mockAppKey2, appAuthData2, 
mockAppKey, appAuthData)));
     }
 
-    @SneakyThrows
     @Test
-    public void testWatcherData() {
+    public void testWatcherData() throws NacosException {
         String mockAppKey = "MOCK_APP_KEY";
         String mockAppKey2 = "MOCK_APP_KEY2";
         String mockAppSecret = "MOCK_APP_SECRET";
@@ -350,7 +342,7 @@ public final class NacosCacheHandlerTest {
         nacosCacheHandlerService.watcherData(AUTH_DATA_ID, oc);
     }
 
-    private void changePluginData(final List<PluginData> changed) {
+    private void changePluginData(final List<PluginData> changed) throws 
NacosException {
         updateDataMap(getConfig(PLUGIN_DATA_ID));
 
         changed.forEach(plugin -> PLUGIN_MAP.put(plugin.getName(), plugin));
@@ -358,7 +350,7 @@ public final class NacosCacheHandlerTest {
         publishConfig(PLUGIN_DATA_ID, PLUGIN_MAP);
     }
 
-    private void changeSelectorData(final List<SelectorData> changed) {
+    private void changeSelectorData(final List<SelectorData> changed) throws 
NacosException {
         changeSelectorDataMap(getConfig(SELECTOR_DATA_ID));
 
         changed.forEach(selector -> {
@@ -375,7 +367,7 @@ public final class NacosCacheHandlerTest {
         publishConfig(SELECTOR_DATA_ID, SELECTOR_MAP);
     }
 
-    private void changeRuleData(final List<RuleData> changed) {
+    private void changeRuleData(final List<RuleData> changed) throws 
NacosException {
         changeRuleDataMap(getConfig(RULE_DATA_ID));
 
         changed.forEach(rule -> {
@@ -392,7 +384,7 @@ public final class NacosCacheHandlerTest {
         publishConfig(RULE_DATA_ID, RULE_MAP);
     }
 
-    private void changeMetaData(final List<MetaData> changed) {
+    private void changeMetaData(final List<MetaData> changed) throws 
NacosException {
         changeMetaDataMap(getConfig(META_DATA_ID));
 
         changed.forEach(meta -> {
@@ -407,7 +399,7 @@ public final class NacosCacheHandlerTest {
         publishConfig(META_DATA_ID, META_DATA);
     }
 
-    private void changeAuthData(final List<AppAuthData> changed) {
+    private void changeAuthData(final List<AppAuthData> changed) throws 
NacosException {
         changeAppAuthDataMap(getConfig(AUTH_DATA_ID));
 
         changed.forEach(appAuth -> AUTH_MAP.put(appAuth.getAppKey(), appAuth));
@@ -470,13 +462,11 @@ public final class NacosCacheHandlerTest {
         PLUGIN_MAP.keySet().removeAll(set);
     }
 
-    @SneakyThrows
-    private String getConfig(final String dataId) {
+    private String getConfig(final String dataId) throws NacosException {
         return configService.getConfig(dataId, GROUP, 6000);
     }
 
-    @SneakyThrows
-    private void publishConfig(final String dataId, final Object data) {
+    private void publishConfig(final String dataId, final Object data) throws 
NacosException {
         configService.publishConfig(dataId, GROUP, 
GsonUtils.getInstance().toJson(data));
     }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketSyncDataService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketSyncDataService.java
index 36ae925..4f0f911 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketSyncDataService.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketSyncDataService.java
@@ -17,7 +17,6 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket;
 
-import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shenyu.common.concurrent.ShenyuThreadFactory;
 import 
org.apache.shenyu.plugin.sync.data.websocket.client.ShenyuWebsocketClient;
@@ -27,6 +26,8 @@ import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.sync.data.api.SyncDataService;
 import org.java_websocket.client.WebSocketClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -39,9 +40,13 @@ import java.util.concurrent.TimeUnit;
 /**
  * Websocket sync data service.
  */
-@Slf4j
 public class WebsocketSyncDataService implements SyncDataService, 
AutoCloseable {
 
+    /**
+     * logger. 
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(WebsocketSyncDataService.class);
+
     private final List<WebSocketClient> clients = new ArrayList<>();
 
     private final ScheduledThreadPoolExecutor executor;
@@ -64,38 +69,38 @@ public class WebsocketSyncDataService implements 
SyncDataService, AutoCloseable
             try {
                 clients.add(new ShenyuWebsocketClient(new URI(url), 
Objects.requireNonNull(pluginDataSubscriber), metaDataSubscribers, 
authDataSubscribers));
             } catch (URISyntaxException e) {
-                log.error("websocket url({}) is error", url, e);
+                LOG.error("websocket url({}) is error", url, e);
             }
         }
         try {
             for (WebSocketClient client : clients) {
                 boolean success = client.connectBlocking(3000, 
TimeUnit.MILLISECONDS);
                 if (success) {
-                    log.info("websocket connection is successful.....");
+                    LOG.info("websocket connection is successful.....");
                 } else {
-                    log.error("websocket connection is error.....");
+                    LOG.error("websocket connection is error.....");
                 }
                 executor.scheduleAtFixedRate(() -> {
                     try {
                         if (client.isClosed()) {
                             boolean reconnectSuccess = 
client.reconnectBlocking();
                             if (reconnectSuccess) {
-                                log.info("websocket reconnect server[{}] is 
successful.....", client.getURI().toString());
+                                LOG.info("websocket reconnect server[{}] is 
successful.....", client.getURI().toString());
                             } else {
-                                log.error("websocket reconnection server[{}] 
is error.....", client.getURI().toString());
+                                LOG.error("websocket reconnection server[{}] 
is error.....", client.getURI().toString());
                             }
                         } else {
                             client.sendPing();
-                            log.debug("websocket send to [{}] ping message 
successful", client.getURI().toString());
+                            LOG.debug("websocket send to [{}] ping message 
successful", client.getURI().toString());
                         }
                     } catch (InterruptedException e) {
-                        log.error("websocket connect is error :{}", 
e.getMessage());
+                        LOG.error("websocket connect is error :{}", 
e.getMessage());
                     }
                 }, 10, 10, TimeUnit.SECONDS);
             }
             /* client.setProxy(new Proxy(Proxy.Type.HTTP, new 
InetSocketAddress("proxyaddress", 80)));*/
         } catch (InterruptedException e) {
-            log.info("websocket connection...exception....", e);
+            LOG.info("websocket connection...exception....", e);
         }
 
     }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClient.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClient.java
index 9caa54f..a327cf4 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClient.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/client/ShenyuWebsocketClient.java
@@ -17,9 +17,6 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket.client;
 
-import java.net.URI;
-import java.util.List;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shenyu.common.dto.WebsocketData;
 import org.apache.shenyu.common.enums.ConfigGroupEnum;
 import org.apache.shenyu.common.enums.DataEventTypeEnum;
@@ -30,13 +27,22 @@ import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.java_websocket.client.WebSocketClient;
 import org.java_websocket.handshake.ServerHandshake;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.URI;
+import java.util.List;
 
 /**
  * The type shenyu websocket client.
  */
-@Slf4j
 public final class ShenyuWebsocketClient extends WebSocketClient {
 
+    /**
+     * logger.
+     */
+    private static final Logger LOG = 
LoggerFactory.getLogger(ShenyuWebsocketClient.class);
+
     private volatile boolean alreadySync = Boolean.FALSE;
 
     private final WebsocketDataHandler websocketDataHandler;
@@ -44,10 +50,10 @@ public final class ShenyuWebsocketClient extends 
WebSocketClient {
     /**
      * Instantiates a new shenyu websocket client.
      *
-     * @param serverUri             the server uri
+     * @param serverUri            the server uri
      * @param pluginDataSubscriber the plugin data subscriber
-     * @param metaDataSubscribers   the meta data subscribers
-     * @param authDataSubscribers   the auth data subscribers
+     * @param metaDataSubscribers  the meta data subscribers
+     * @param authDataSubscribers  the auth data subscribers
      */
     public ShenyuWebsocketClient(final URI serverUri, final 
PluginDataSubscriber pluginDataSubscriber,
                                  final List<MetaDataSubscriber> 
metaDataSubscribers, final List<AuthDataSubscriber> authDataSubscribers) {
@@ -80,7 +86,7 @@ public final class ShenyuWebsocketClient extends 
WebSocketClient {
 
     @SuppressWarnings("ALL")
     private void handleResult(final String result) {
-        log.info("handleResult({})", result);
+        LOG.info("handleResult({})", result);
         WebsocketData websocketData = GsonUtils.getInstance().fromJson(result, 
WebsocketData.class);
         ConfigGroupEnum groupEnum = 
ConfigGroupEnum.acquireByName(websocketData.getGroupType());
         String eventType = websocketData.getEventType();
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfig.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfig.java
index af30d87..936a698 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfig.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/config/WebsocketConfig.java
@@ -17,9 +17,8 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket.config;
 
-import lombok.Data;
+import java.util.Objects;
 
-@Data
 public class WebsocketConfig {
     
     /**
@@ -27,4 +26,48 @@ public class WebsocketConfig {
      * 127.0.0.1:8888,127.0.0.1:8889
      */
     private String urls;
+
+    /**
+     * get urls.
+     *
+     * @return urls
+     */
+    public String getUrls() {
+        return urls;
+    }
+
+    /**
+     * set urls.
+     *
+     * @param urls urls
+     */
+    public void setUrls(final String urls) {
+        this.urls = urls;
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        WebsocketConfig that = (WebsocketConfig) o;
+        return Objects.equals(urls, that.urls);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(urls);
+    }
+
+    @Override
+    public String toString() {
+        return "WebsocketConfig{"
+                + "urls='"
+                + urls
+                + '\''
+                + '}';
+    }
 }
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandler.java
index 9479eba..3a5a5d8 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AuthDataHandler.java
@@ -18,7 +18,6 @@
 package org.apache.shenyu.plugin.sync.data.websocket.handler;
 
 import java.util.List;
-import lombok.RequiredArgsConstructor;
 import org.apache.shenyu.common.dto.AppAuthData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
@@ -26,11 +25,14 @@ import org.apache.shenyu.sync.data.api.AuthDataSubscriber;
 /**
  * The type Auth data handler.
  */
-@RequiredArgsConstructor
 public class AuthDataHandler extends AbstractDataHandler<AppAuthData> {
 
     private final List<AuthDataSubscriber> authDataSubscribers;
 
+    public AuthDataHandler(final List<AuthDataSubscriber> authDataSubscribers) 
{
+        this.authDataSubscribers = authDataSubscribers;
+    }
+
     @Override
     public List<AppAuthData> convert(final String json) {
         return GsonUtils.getInstance().fromList(json, AppAuthData.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandler.java
index 413222e..a1edc31 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/MetaDataHandler.java
@@ -18,7 +18,7 @@
 package org.apache.shenyu.plugin.sync.data.websocket.handler;
 
 import java.util.List;
-import lombok.RequiredArgsConstructor;
+
 import org.apache.shenyu.common.dto.MetaData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
@@ -26,11 +26,14 @@ import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 /**
  * The type Meta data handler.
  */
-@RequiredArgsConstructor
 public class MetaDataHandler extends AbstractDataHandler<MetaData> {
 
     private final List<MetaDataSubscriber> metaDataSubscribers;
 
+    public MetaDataHandler(final List<MetaDataSubscriber> metaDataSubscribers) 
{
+        this.metaDataSubscribers = metaDataSubscribers;
+    }
+
     @Override
     public List<MetaData> convert(final String json) {
         return GsonUtils.getInstance().fromList(json, MetaData.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandler.java
index ee80005..b55d749 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/PluginDataHandler.java
@@ -17,20 +17,23 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket.handler;
 
-import java.util.List;
-import lombok.RequiredArgsConstructor;
 import org.apache.shenyu.common.dto.PluginData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 
+import java.util.List;
+
 /**
  * The type Plugin data handler.
  */
-@RequiredArgsConstructor
 public class PluginDataHandler extends AbstractDataHandler<PluginData> {
 
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public PluginDataHandler(final PluginDataSubscriber pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     public List<PluginData> convert(final String json) {
         return GsonUtils.getInstance().fromList(json, PluginData.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandler.java
index 8852e10..d9a47b5 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/RuleDataHandler.java
@@ -18,7 +18,6 @@
 package org.apache.shenyu.plugin.sync.data.websocket.handler;
 
 import java.util.List;
-import lombok.RequiredArgsConstructor;
 import org.apache.shenyu.common.dto.RuleData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
@@ -26,11 +25,14 @@ import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 /**
  * The type rule data handler.
  */
-@RequiredArgsConstructor
 public class RuleDataHandler extends AbstractDataHandler<RuleData> {
 
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public RuleDataHandler(final PluginDataSubscriber pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     public List<RuleData> convert(final String json) {
         return GsonUtils.getInstance().fromList(json, RuleData.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandler.java
 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandler.java
index 80570c9..d33eb76 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandler.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/SelectorDataHandler.java
@@ -17,20 +17,23 @@
 
 package org.apache.shenyu.plugin.sync.data.websocket.handler;
 
-import java.util.List;
-import lombok.RequiredArgsConstructor;
 import org.apache.shenyu.common.dto.SelectorData;
 import org.apache.shenyu.common.utils.GsonUtils;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 
+import java.util.List;
+
 /**
  * The type Selector data handler.
  */
-@RequiredArgsConstructor
 public class SelectorDataHandler extends AbstractDataHandler<SelectorData> {
 
     private final PluginDataSubscriber pluginDataSubscriber;
 
+    public SelectorDataHandler(final PluginDataSubscriber 
pluginDataSubscriber) {
+        this.pluginDataSubscriber = pluginDataSubscriber;
+    }
+
     @Override
     public List<SelectorData> convert(final String json) {
         return GsonUtils.getInstance().fromList(json, SelectorData.class);
diff --git 
a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/main/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataService.java
 
b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/main/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataService.java
index 0f796b4..1a36fd7 100644
--- 
a/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/main/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataService.java
+++ 
b/shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/main/java/org/apache/shenyu/sync/data/zookeeper/ZookeeperSyncDataService.java
@@ -19,7 +19,6 @@ package org.apache.shenyu.sync.data.zookeeper;
 
 import com.google.common.base.Splitter;
 import com.google.common.collect.Lists;
-import lombok.SneakyThrows;
 import org.I0Itec.zkclient.IZkDataListener;
 import org.I0Itec.zkclient.ZkClient;
 import org.apache.commons.collections4.CollectionUtils;
@@ -36,6 +35,7 @@ import org.apache.shenyu.sync.data.api.MetaDataSubscriber;
 import org.apache.shenyu.sync.data.api.PluginDataSubscriber;
 import org.apache.shenyu.sync.data.api.SyncDataService;
 
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
@@ -298,9 +298,8 @@ public class ZookeeperSyncDataService implements 
SyncDataService, AutoCloseable
                 
cacheMetaData(GsonUtils.getInstance().fromJson(data.toString(), 
MetaData.class));
             }
 
-            @SneakyThrows
             @Override
-            public void handleDataDeleted(final String dataPath) {
+            public void handleDataDeleted(final String dataPath) throws 
UnsupportedEncodingException {
                 final String realPath = 
dataPath.substring(DefaultPathConstants.META_DATA.length() + 1);
                 MetaData metaData = new MetaData();
                 metaData.setPath(URLDecoder.decode(realPath, 
StandardCharsets.UTF_8.name()));

Reply via email to