You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/21 15:43:40 UTC

[dubbo] branch 3.0 updated: [3.0] add zookeeper node data created event check (#8833)

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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new a9bbf1e  [3.0] add zookeeper node data created event check (#8833)
a9bbf1e is described below

commit a9bbf1e4ca059771bb3d0c04e340d16f242c3c76
Author: zrlw <zr...@sina.com>
AuthorDate: Tue Sep 21 23:43:30 2021 +0800

    [3.0] add zookeeper node data created event check (#8833)
    
    * add zookeeper node data created event check
    
    * add NodeCreated process to support integration test
---
 .../apache/dubbo/configcenter/support/zookeeper/CacheListener.java    | 4 +++-
 .../dubbo/registry/integration/AbstractConfiguratorListener.java      | 4 +++-
 .../dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClient.java    | 3 +++
 .../dubbo/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 66bd0e9..515b46c 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 8bcf41b..a818984 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 9bd1988..9fc626a 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<Curator5Zoo
             EventType eventType;
             if (childData == null) {
                 eventType = EventType.NodeDeleted;
+            } else if (childData.getStat().getVersion() == 0) {
+                content = new String(childData.getData(), CHARSET);
+                eventType = EventType.NodeCreated;
             } else {
                 content = new String(childData.getData(), CHARSET);
                 eventType = EventType.NodeDataChanged;
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
index 64188cd..91dc2d7 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
+++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java
@@ -338,6 +338,9 @@ public class CuratorZookeeperClient extends AbstractZookeeperClient<CuratorZooke
             EventType eventType;
             if (childData == null) {
                 eventType = EventType.NodeDeleted;
+            } else if (childData.getStat().getVersion() == 0) {
+                content = new String(childData.getData(), CHARSET);
+                eventType = EventType.NodeCreated;
             } else {
                 content = new String(childData.getData(), CHARSET);
                 eventType = EventType.NodeDataChanged;