From a9bbf1e4ca059771bb3d0c04e340d16f242c3c76 Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 21 Sep 2021 23:43:30 +0800 Subject: [PATCH] [3.0] add zookeeper node data created event check (#8833) * add zookeeper node data created event check * add NodeCreated process to support integration test --- .../dubbo/configcenter/support/zookeeper/CacheListener.java | 4 +++- .../registry/integration/AbstractConfiguratorListener.java | 4 +++- .../remoting/zookeeper/curator5/Curator5ZookeeperClient.java | 3 +++ .../remoting/zookeeper/curator/CuratorZookeeperClient.java | 3 +++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java index 66bd0e9e52..515b46c1e8 100644 --- a/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java +++ b/dubbo-configcenter/dubbo-configcenter-zookeeper/src/main/java/org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java @@ -94,7 +94,9 @@ public class CacheListener implements DataListener { @Override public void dataChanged(String path, Object value, EventType eventType) { ConfigChangeType changeType; - if (value == null) { + if (EventType.NodeCreated.equals(eventType)) { + changeType = ConfigChangeType.ADDED; + } else if (value == null) { changeType = ConfigChangeType.DELETED; } else { changeType = ConfigChangeType.MODIFIED; diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java index 8bcf41b8f5..a818984746 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java @@ -89,7 +89,9 @@ public abstract class AbstractConfiguratorListener implements ConfigurationListe ", raw config content is:\n " + event.getContent()); } - if (event.getChangeType().equals(ConfigChangeType.DELETED)) { + if (event.getChangeType().equals(ConfigChangeType.ADDED)) { + return; + } else if (event.getChangeType().equals(ConfigChangeType.DELETED)) { configurators.clear(); } else { if (!genConfiguratorsFromRawRule(event.getContent())) { diff --git a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java index 9bd19883cd..9fc626a7a7 100644 --- a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java +++ b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/main/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java @@ -338,6 +338,9 @@ public class Curator5ZookeeperClient extends AbstractZookeeperClient