* Issue 214: Added rebuildNode method to PathChildrenCache.
* Added a NodeCache to compliment the PathChildrenCache. The doc is here:
https://github.com/Netflix/curator/wiki/Node-Cache
* Creating nodes in background wasn't handling createParentsIfNeeded.
* Issue 216: Rewrote LeaderLatch to better handle connection/server
instability. At the same time, made
most of the calls async which will help concurrency and performance.
* Issue 217: DistributedAtomicLong (et al) should use ensurePath internally to
be consistent with
other recipes.
* Issue 220: When creating a ServiceCacheImpl, a PathChildrenCache is created.
The cache loads all existing services,
but because preloading does not create events, ServiceCacheImpl never notices
this. ServiceCacheImpl.getInstances()
will return an empty list.
* Issue 221: client.getACL().forPath("/") throws a NullPointerException,
because the Zookeeper
API expects a Stat, but GetACLBuilderImpl initializes responseStat to null.
* Issue 222: Counter and log messages reversed in RetryLoop.takeException().
* New feature: CuratorTempFramework. Temporary CuratorFramework instances are
meant for single requests to
ZooKeeper ensembles over a failure prone network such as a WAN. The APIs
available from CuratorTempFramework
are limited. Further, the connection will be closed after a period of
inactivity. Based on an idea mentioned in a
post by Camille Fournier:
http://whilefalse.blogspot.com/2012/12/building-global-highly-available.html -
details
here: https://github.com/Netflix/curator/wiki/Temporary-Framework
* Issue 224: ExponentialBackoffRetry was not protected against edge-cases where
a too big maxRetries argument
was used. It now also incorporates a maxSleep value.