From 275860bf9cc058fc237f884b6f62d475e16f3d12 Mon Sep 17 00:00:00 2001
From: Hongwei Wang <hongweiw@google.com>
Date: Wed, 8 Jul 2015 15:26:48 -0700
Subject: [PATCH] Add zookeeper resolver

---
 BUILD                                                  | 6 ++++++
 Makefile                                               | 2 ++
 build.json                                             | 2 ++
 gRPC.podspec                                           | 3 +++
 tools/doxygen/Doxyfile.core.internal                   | 2 ++
 tools/run_tests/sources_and_headers.json               | 6 ++++++
 vsprojects/grpc/grpc.vcxproj                           | 3 +++
 vsprojects/grpc/grpc.vcxproj.filters                   | 6 ++++++
 vsprojects/grpc_unsecure/grpc_unsecure.vcxproj         | 3 +++
 vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters | 6 ++++++
 10 files changed, 39 insertions(+)

diff --git a/BUILD b/BUILD
index 6b186fccbb..2f6309c8ae 100644
--- a/BUILD
+++ b/BUILD
@@ -165,6 +165,7 @@ cc_library(
     "src/core/client_config/resolver_registry.h",
     "src/core/client_config/resolvers/dns_resolver.h",
     "src/core/client_config/resolvers/unix_resolver_posix.h",
+    "src/core/client_config/resolvers/zookeeper_resolver.h",
     "src/core/client_config/subchannel.h",
     "src/core/client_config/subchannel_factory.h",
     "src/core/client_config/uri_parser.h",
@@ -282,6 +283,7 @@ cc_library(
     "src/core/client_config/resolver_registry.c",
     "src/core/client_config/resolvers/dns_resolver.c",
     "src/core/client_config/resolvers/unix_resolver_posix.c",
+    "src/core/client_config/resolvers/zookeeper_resolver.c",
     "src/core/client_config/subchannel.c",
     "src/core/client_config/subchannel_factory.c",
     "src/core/client_config/uri_parser.c",
@@ -417,6 +419,7 @@ cc_library(
     "src/core/client_config/resolver_registry.h",
     "src/core/client_config/resolvers/dns_resolver.h",
     "src/core/client_config/resolvers/unix_resolver_posix.h",
+    "src/core/client_config/resolvers/zookeeper_resolver.h",
     "src/core/client_config/subchannel.h",
     "src/core/client_config/subchannel_factory.h",
     "src/core/client_config/uri_parser.h",
@@ -512,6 +515,7 @@ cc_library(
     "src/core/client_config/resolver_registry.c",
     "src/core/client_config/resolvers/dns_resolver.c",
     "src/core/client_config/resolvers/unix_resolver_posix.c",
+    "src/core/client_config/resolvers/zookeeper_resolver.c",
     "src/core/client_config/subchannel.c",
     "src/core/client_config/subchannel_factory.c",
     "src/core/client_config/uri_parser.c",
@@ -974,6 +978,7 @@ objc_library(
     "src/core/client_config/resolver_registry.c",
     "src/core/client_config/resolvers/dns_resolver.c",
     "src/core/client_config/resolvers/unix_resolver_posix.c",
+    "src/core/client_config/resolvers/zookeeper_resolver.c",
     "src/core/client_config/subchannel.c",
     "src/core/client_config/subchannel_factory.c",
     "src/core/client_config/uri_parser.c",
@@ -1110,6 +1115,7 @@ objc_library(
     "src/core/client_config/resolver_registry.h",
     "src/core/client_config/resolvers/dns_resolver.h",
     "src/core/client_config/resolvers/unix_resolver_posix.h",
+    "src/core/client_config/resolvers/zookeeper_resolver.h",
     "src/core/client_config/subchannel.h",
     "src/core/client_config/subchannel_factory.h",
     "src/core/client_config/uri_parser.h",
diff --git a/Makefile b/Makefile
index e7b784b857..e1b803d935 100644
--- a/Makefile
+++ b/Makefile
@@ -3212,6 +3212,7 @@ LIBGRPC_SRC = \
     src/core/client_config/resolver_registry.c \
     src/core/client_config/resolvers/dns_resolver.c \
     src/core/client_config/resolvers/unix_resolver_posix.c \
+    src/core/client_config/resolvers/zookeeper_resolver.c \
     src/core/client_config/subchannel.c \
     src/core/client_config/subchannel_factory.c \
     src/core/client_config/uri_parser.c \
@@ -3472,6 +3473,7 @@ LIBGRPC_UNSECURE_SRC = \
     src/core/client_config/resolver_registry.c \
     src/core/client_config/resolvers/dns_resolver.c \
     src/core/client_config/resolvers/unix_resolver_posix.c \
+    src/core/client_config/resolvers/zookeeper_resolver.c \
     src/core/client_config/subchannel.c \
     src/core/client_config/subchannel_factory.c \
     src/core/client_config/uri_parser.c \
diff --git a/build.json b/build.json
index 19078ed726..2b53e0b508 100644
--- a/build.json
+++ b/build.json
@@ -126,6 +126,7 @@
         "src/core/client_config/resolver_registry.h",
         "src/core/client_config/resolvers/dns_resolver.h",
         "src/core/client_config/resolvers/unix_resolver_posix.h",
+        "src/core/client_config/resolvers/zookeeper_resolver.h",
         "src/core/client_config/subchannel.h",
         "src/core/client_config/subchannel_factory.h",
         "src/core/client_config/uri_parser.h",
@@ -221,6 +222,7 @@
         "src/core/client_config/resolver_registry.c",
         "src/core/client_config/resolvers/dns_resolver.c",
         "src/core/client_config/resolvers/unix_resolver_posix.c",
+        "src/core/client_config/resolvers/zookeeper_resolver.c",
         "src/core/client_config/subchannel.c",
         "src/core/client_config/subchannel_factory.c",
         "src/core/client_config/uri_parser.c",
diff --git a/gRPC.podspec b/gRPC.podspec
index bdcbc3f612..5222848961 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -167,6 +167,7 @@ Pod::Spec.new do |s|
                       'src/core/client_config/resolver_registry.h',
                       'src/core/client_config/resolvers/dns_resolver.h',
                       'src/core/client_config/resolvers/unix_resolver_posix.h',
+                      'src/core/client_config/resolvers/zookeeper_resolver.h',
                       'src/core/client_config/subchannel.h',
                       'src/core/client_config/subchannel_factory.h',
                       'src/core/client_config/uri_parser.h',
@@ -291,6 +292,7 @@ Pod::Spec.new do |s|
                       'src/core/client_config/resolver_registry.c',
                       'src/core/client_config/resolvers/dns_resolver.c',
                       'src/core/client_config/resolvers/unix_resolver_posix.c',
+                      'src/core/client_config/resolvers/zookeeper_resolver.c',
                       'src/core/client_config/subchannel.c',
                       'src/core/client_config/subchannel_factory.c',
                       'src/core/client_config/uri_parser.c',
@@ -425,6 +427,7 @@ Pod::Spec.new do |s|
                               'src/core/client_config/resolver_registry.h',
                               'src/core/client_config/resolvers/dns_resolver.h',
                               'src/core/client_config/resolvers/unix_resolver_posix.h',
+                              'src/core/client_config/resolvers/zookeeper_resolver.h',
                               'src/core/client_config/subchannel.h',
                               'src/core/client_config/subchannel_factory.h',
                               'src/core/client_config/uri_parser.h',
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index e2701eca3a..7178d349f3 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -802,6 +802,7 @@ src/core/client_config/resolver_factory.h \
 src/core/client_config/resolver_registry.h \
 src/core/client_config/resolvers/dns_resolver.h \
 src/core/client_config/resolvers/unix_resolver_posix.h \
+src/core/client_config/resolvers/zookeeper_resolver.h \
 src/core/client_config/subchannel.h \
 src/core/client_config/subchannel_factory.h \
 src/core/client_config/uri_parser.h \
@@ -919,6 +920,7 @@ src/core/client_config/resolver_factory.c \
 src/core/client_config/resolver_registry.c \
 src/core/client_config/resolvers/dns_resolver.c \
 src/core/client_config/resolvers/unix_resolver_posix.c \
+src/core/client_config/resolvers/zookeeper_resolver.c \
 src/core/client_config/subchannel.c \
 src/core/client_config/subchannel_factory.c \
 src/core/client_config/uri_parser.c \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index b228aaa66c..82079b6b5d 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -8693,6 +8693,7 @@
       "src/core/client_config/resolver_registry.h", 
       "src/core/client_config/resolvers/dns_resolver.h", 
       "src/core/client_config/resolvers/unix_resolver_posix.h", 
+      "src/core/client_config/resolvers/zookeeper_resolver.h", 
       "src/core/client_config/subchannel.h", 
       "src/core/client_config/subchannel_factory.h", 
       "src/core/client_config/uri_parser.h", 
@@ -8835,6 +8836,8 @@
       "src/core/client_config/resolvers/dns_resolver.h", 
       "src/core/client_config/resolvers/unix_resolver_posix.c", 
       "src/core/client_config/resolvers/unix_resolver_posix.h", 
+      "src/core/client_config/resolvers/zookeeper_resolver.c", 
+      "src/core/client_config/resolvers/zookeeper_resolver.h", 
       "src/core/client_config/subchannel.c", 
       "src/core/client_config/subchannel.h", 
       "src/core/client_config/subchannel_factory.c", 
@@ -9142,6 +9145,7 @@
       "src/core/client_config/resolver_registry.h", 
       "src/core/client_config/resolvers/dns_resolver.h", 
       "src/core/client_config/resolvers/unix_resolver_posix.h", 
+      "src/core/client_config/resolvers/zookeeper_resolver.h", 
       "src/core/client_config/subchannel.h", 
       "src/core/client_config/subchannel_factory.h", 
       "src/core/client_config/uri_parser.h", 
@@ -9267,6 +9271,8 @@
       "src/core/client_config/resolvers/dns_resolver.h", 
       "src/core/client_config/resolvers/unix_resolver_posix.c", 
       "src/core/client_config/resolvers/unix_resolver_posix.h", 
+      "src/core/client_config/resolvers/zookeeper_resolver.c", 
+      "src/core/client_config/resolvers/zookeeper_resolver.h", 
       "src/core/client_config/subchannel.c", 
       "src/core/client_config/subchannel.h", 
       "src/core/client_config/subchannel_factory.c", 
diff --git a/vsprojects/grpc/grpc.vcxproj b/vsprojects/grpc/grpc.vcxproj
index 14ddf95f81..0bac985ae0 100644
--- a/vsprojects/grpc/grpc.vcxproj
+++ b/vsprojects/grpc/grpc.vcxproj
@@ -191,6 +191,7 @@
     <ClInclude Include="..\..\src\core\client_config\resolver_registry.h" />
     <ClInclude Include="..\..\src\core\client_config\resolvers\dns_resolver.h" />
     <ClInclude Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.h" />
+    <ClInclude Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.h" />
     <ClInclude Include="..\..\src\core\client_config\subchannel.h" />
     <ClInclude Include="..\..\src\core\client_config\subchannel_factory.h" />
     <ClInclude Include="..\..\src\core\client_config\uri_parser.h" />
@@ -350,6 +351,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.c">
     </ClCompile>
+    <ClCompile Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.c">
+    </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel_factory.c">
diff --git a/vsprojects/grpc/grpc.vcxproj.filters b/vsprojects/grpc/grpc.vcxproj.filters
index 591fe1bb03..dfee04d9fc 100644
--- a/vsprojects/grpc/grpc.vcxproj.filters
+++ b/vsprojects/grpc/grpc.vcxproj.filters
@@ -121,6 +121,9 @@
     <ClCompile Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.c">
       <Filter>src\core\client_config\resolvers</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.c">
+      <Filter>src\core\client_config\resolvers</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel.c">
       <Filter>src\core\client_config</Filter>
     </ClCompile>
@@ -527,6 +530,9 @@
     <ClInclude Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.h">
       <Filter>src\core\client_config\resolvers</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.h">
+      <Filter>src\core\client_config\resolvers</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\client_config\subchannel.h">
       <Filter>src\core\client_config</Filter>
     </ClInclude>
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
index 4ead6f8d98..8779ebf87c 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
@@ -173,6 +173,7 @@
     <ClInclude Include="..\..\src\core\client_config\resolver_registry.h" />
     <ClInclude Include="..\..\src\core\client_config\resolvers\dns_resolver.h" />
     <ClInclude Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.h" />
+    <ClInclude Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.h" />
     <ClInclude Include="..\..\src\core\client_config\subchannel.h" />
     <ClInclude Include="..\..\src\core\client_config\subchannel_factory.h" />
     <ClInclude Include="..\..\src\core\client_config\uri_parser.h" />
@@ -288,6 +289,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.c">
     </ClCompile>
+    <ClCompile Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.c">
+    </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel_factory.c">
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 45ca1f7c33..f9f508879a 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -55,6 +55,9 @@
     <ClCompile Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.c">
       <Filter>src\core\client_config\resolvers</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.c">
+      <Filter>src\core\client_config\resolvers</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\core\client_config\subchannel.c">
       <Filter>src\core\client_config</Filter>
     </ClCompile>
@@ -410,6 +413,9 @@
     <ClInclude Include="..\..\src\core\client_config\resolvers\unix_resolver_posix.h">
       <Filter>src\core\client_config\resolvers</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\client_config\resolvers\zookeeper_resolver.h">
+      <Filter>src\core\client_config\resolvers</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\client_config\subchannel.h">
       <Filter>src\core\client_config</Filter>
     </ClInclude>
-- 
GitLab