You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@curator.apache.org by GitBox <gi...@apache.org> on 2019/11/03 23:26:26 UTC

[GitHub] [curator] Randgalt opened a new pull request #333: [CURATOR-549] - Support ZooKeeper 3.5.6 Persistent Recursive Watchers

Randgalt opened a new pull request #333: [CURATOR-549] - Support ZooKeeper 3.5.6 Persistent Recursive Watchers
URL: https://github.com/apache/curator/pull/333
 
 
   ### 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:
users@infra.apache.org


With regards,
Apache Git Services