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:20 UTC

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

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

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


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

commit 039525adfc0b76ef038db0e4ba574ce837eaa2f0
Author: zrlw <zr...@sina.com>
AuthorDate: Tue Sep 21 23:42:44 2021 +0800

    [master] add zookeeper node data created event check (#8834)
    
    * add zookeeper node data created event check
    
    * add NodeCreated process
    
    * add missed else condition
---
 .../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 494b36a..cbfc0c8 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
@@ -98,7 +98,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 c71cfe9..3f3b2c7 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
@@ -60,7 +60,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 abcb4ec..061809c 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
@@ -283,6 +283,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 d23f91e..30595f9 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
@@ -283,6 +283,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;