CURATOR-718: Refactor CuratorFramework inheritance hierarchy by composing functionalities (#517) * CURATOR-718: Refactor CuratorFramework inheritance hierarchy by composing functionalities Currently, the `CuratorFrameworkImpl` hierarchy is neither simple nor composable. Ideally, there should be only one instance of `CuratorFrameworkImpl`. Additional functionalities should be added by intercepting methods on purpose, but not by cloning through `CuratorFrameworkImpl(CuratorFrameworkImpl parent)`. We could take CURATOR-626 and CURATOR-710 as lessons to know how brittle the current hierarchy. * fixup! CURATOR-718: Refactor CuratorFramework inheritance hierarchy by composing functionalities Notable changes to the last review: 1. Rename `InternalCuratorFramework` to `CuratorFrameworkBase`. 2. Make `DelegatingCuratorFramework` `abstract` and package `private`. 3. Move `start`/`close` from `DelegatingCuratorFramework` to subclasses.
Apache Curator is a Java/JVM client library for Apache ZooKeeper, a distributed coordination service.
Apache Curator includes a high-level API framework and utilities to make using Apache ZooKeeper much easier and more reliable. It also includes recipes for common use cases and extensions such as service discovery and a Java 8 asynchronous DSL.
For more details: