Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CURATOR-549 #337

Closed
wants to merge 1 commit into from
Closed

CURATOR-549 #337

wants to merge 1 commit into from

Conversation

Randgalt
Copy link
Member

@Randgalt Randgalt commented Nov 4, 2019

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.

New module

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.

3 More PRs coming

I have 3 more PRs that will be separate from this to avoid too much review pain:

Bring Curator up to ZooKeeper 3.5.6 in preparation for supporting persistent recursive watchers while maintaining background compatability with previous versions of ZK. Added a new module to make sure we maintain compatibility with ZK 3.5.x. ZooKeeper 3.6.0 has some significant changes from previous versions. The reconfig APIs have moved into a new class, ZooKeeperAdmin. This class existed in 3.5.x but wasn't required. Now it is. 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.

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.
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 comaptibility with ZK 3.5.x
@Randgalt Randgalt closed this Nov 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant