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:
[email protected]


With regards,
Apache Git Services

Reply via email to