Randgalt opened a new pull request #334: [CURATOR-549] - Support ZooKeeper 
3.5.6 Persistent Recursive Watchers
URL: https://github.com/apache/curator/pull/334
 
 
   Introduction
   
   Support persistent watchers in ZK 3.6+ while maintaining background 
compatability with previous versions of ZK. Added a new module to make sure we 
maintain compatibility with ZK 3.5.x.
   
   The master ZK dependency is changed to 3.6.0
   The code has checks for the ZK lib being used so that it can still run with 
older ZK libraries/ensembles. This is done in a similar manner to how ZK 3.4 
support is done
   A new module, curator-test-zk35 (analog to curator-test-zk34) does testing 
with a forced version of ZooKeeper 3.5.6 to ensure compatbility
   3.6.0 has many changes
   
   ZooKeeper 3.6.0 has some significant changes from previous versions and a 
significant portion of this PR is only bringing Curator up to date. Some of 
these changes are:
   
   The reconfig APIs have moved into a new class, ZooKeeperAdmin. This class 
existed in 3.5.x but wasn't required. Now it is.
   DefaultZookeeperFactory now checks Compatibility.hasZooKeeperAdmin() and 
creates a ZooKeeperAdmin if it's available
   A bunch of little things changed in the ZK server code which affected 
Curator's test classes. I moved it all into reflection based calls in 
Compatibility.java in the test module. We now have modules that test ZK 3.4, 
3.5 and 3.6 so we're safe with compatibility.
   ZooKeeper's MultiTransactionRecord has been removed it seems. That forced 
CuratorMultiTransactionRecord to be re-written. It's not a public class so 
hopefully it won't affect anyone.
   Persistent Watchers
   
   This first PR only adds Curator Framework DSL calls to ZooKeeper's 
addWatch() method. Subsequent PRs will add recipes. Both the older Framework 
and the async Framework now have methods to add persistent watchers.
   
   New module
   
   As mentioned above, there is a new module, curator-test-zk35. It forces 
ZooKeeper 3.5.6 and performs selected tests from the other modules to ensure 
compatibility. Tests annotated with TestNG groups zk35 and zk35Compatibility 
are tested. Group zk36 is excluded. Note: these tests will only run from Maven. 
I don't think IntelliJ/Eclipse support the Maven syntax I used.
   
   2 More PRs coming
   
   I have 2 more PRs that will be separate from this to avoid too much review 
pain:
   
   TBD

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to