curator-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From randg...@apache.org
Subject [5/5] git commit: updated disclaimers et al per spec
Date Sat, 30 Mar 2013 21:46:56 GMT
updated disclaimers et al per spec


Project: http://git-wip-us.apache.org/repos/asf/incubator-curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-curator/commit/79a1c6d4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-curator/tree/79a1c6d4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-curator/diff/79a1c6d4

Branch: refs/heads/master
Commit: 79a1c6d44ec5ffacbee41bd35c01528fa3467c1b
Parents: 895eec1
Author: randgalt <randgalt@apache.org>
Authored: Fri Mar 29 19:55:20 2013 -0700
Committer: randgalt <randgalt@apache.org>
Committed: Fri Mar 29 19:55:20 2013 -0700

----------------------------------------------------------------------
 CHANGES                                   |  558 ++++++++++++++++++++++++
 CHANGES.txt                               |  558 ------------------------
 DISCLAIMER                                |   10 +
 DISCLAIMER.txt                            |   10 -
 LICENSE                                   |  202 +++++++++
 LICENSE.txt                               |  202 ---------
 NOTICE                                    |    5 +
 NOTICE.txt                                |   17 -
 curator-client/DISCLAIMER                 |   10 +
 curator-client/DISCLAIMER.txt             |   10 -
 curator-client/LICENSE                    |  202 +++++++++
 curator-client/LICENSE.txt                |  202 ---------
 curator-client/NOTICE                     |    5 +
 curator-client/NOTICE.txt                 |   17 -
 curator-examples/DISCLAIMER               |   10 +
 curator-examples/DISCLAIMER.txt           |   10 -
 curator-examples/LICENSE                  |  202 +++++++++
 curator-examples/LICENSE.txt              |  202 ---------
 curator-examples/NOTICE                   |    5 +
 curator-examples/NOTICE.txt               |   17 -
 curator-framework/DISCLAIMER              |   10 +
 curator-framework/DISCLAIMER.txt          |   10 -
 curator-framework/LICENSE                 |  202 +++++++++
 curator-framework/LICENSE.txt             |  202 ---------
 curator-framework/NOTICE                  |    5 +
 curator-framework/NOTICE.txt              |   17 -
 curator-recipes/DISCLAIMER                |   10 +
 curator-recipes/DISCLAIMER.txt            |   10 -
 curator-recipes/LICENSE                   |  202 +++++++++
 curator-recipes/LICENSE.txt               |  202 ---------
 curator-recipes/NOTICE                    |    5 +
 curator-recipes/NOTICE.txt                |   17 -
 curator-test/DISCLAIMER                   |   10 +
 curator-test/DISCLAIMER.txt               |   10 -
 curator-test/LICENSE                      |  202 +++++++++
 curator-test/LICENSE.txt                  |  202 ---------
 curator-test/NOTICE                       |    5 +
 curator-test/NOTICE.txt                   |   17 -
 curator-x-discovery-server/DISCLAIMER     |   10 +
 curator-x-discovery-server/DISCLAIMER.txt |   10 -
 curator-x-discovery-server/LICENSE        |  202 +++++++++
 curator-x-discovery-server/LICENSE.txt    |  202 ---------
 curator-x-discovery-server/NOTICE         |    5 +
 curator-x-discovery-server/NOTICE.txt     |   17 -
 curator-x-discovery/DISCLAIMER            |   10 +
 curator-x-discovery/DISCLAIMER.txt        |   10 -
 curator-x-discovery/LICENSE               |  202 +++++++++
 curator-x-discovery/LICENSE.txt           |  202 ---------
 curator-x-discovery/NOTICE                |    5 +
 curator-x-discovery/NOTICE.txt            |   17 -
 pom.xml                                   |   10 +-
 51 files changed, 2299 insertions(+), 2395 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..de9f3a4
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,558 @@
+1.3.4 - xxxxxxxxxxxxx
+=====================
+* Issue 257: Fixed a race condition in LeaderLatch that cause the recipe to create
+two nodes in some edge cases.
+
+1.3.3 - March 6, 2013
+=====================
+* Issue 250: Restore support for passing null to usingWatcher().
+
+* Issue 251: Allow a custom Executor Service to be used for PathChildrenCache.
+
+* DistributedDoubleBarrier wasn't handling wait expiration correctly and was sending negative
+numbers to wait().
+
+* Issue 254: Check that executorService isn't null before closing.
+
+* Pull 258: Fix bad performing use of Guava's transform.
+
+1.3.2 - February 6, 2013
+========================
+* MAJOR BUG FIX - Issue 232: ZooKeeper guarantees that "A watch object, or function/context pair, will only
+be triggered once for a given notification." Curator was breaking this guarantee by internally creating a
+new Watcher object each time one was needed. This is now fixed and ZooKeeper's guarantee is restored. Big
+thanks to user barkbay for his persistence and help on this.
+
+* Issue 247: POST_INITIALIZED_EVENT wasn't correctly handling an initially empty node.
+
+* Issue 245: Auth info specified in the CuratorFrameworkFactory.Builder was not being re-set in cases
+where the internal ZooKeeper handle was recreated. i.e. if the cluster has issues auth info would be lost.
+
+* The default watcher in the ZooKeeper handle is now cleared before the ZooKeeper handle is closed. This avoids
+an edge case where events meant for the old ZooKeeper handle get processed.
+
+1.3.1 - January 28, 2013
+========================
+* Tightened up a possible race deep inside the connection management.
+
+* PathChildrenCache.rebuild() and PathChildrenCache.rebuildNode() were not handling deleted nodes.
+
+* Issue 237: New feature. PathChildrenCache now optionally posts an event when the initial cache is
+populated. To accommodate this behavior there is a new version of start() that takes an enum. See the
+Javadoc for each value. For this new behavior, use StartMode.POST_INITIALIZED_EVENT. Once the cache
+is initialized a PathChildrenCacheEvent.Type.INITIALIZED will be posted. Huge thanks to user philflesh
+for the idea and co-implementation.
+
+1.3.0 - January 10, 2013
+========================
+* MAJOR CHANGE (thus a version bump): I'd always thought that if the client is disconnected from the server
+long enough then an Expired event would be generated. Testing, however, shows this not to be the case. I believe
+it's related to ZOOKEEPER-1159. The behavior associated with this is that if the clients lost connection to the
+cluster for longer than the session expiration they would _never_ be able to reconnect. The connection would
+be permanently lost. Many users were seeing this as endless log messages indicating "Connection timed out
+for connection...". As a workaround, in 1.3.0+ when the Curator state changes to LOST, a flag will be set
+so that the next time Curator needs to get the ZooKeeper instance, the current instance will be closed and a new
+ZooKeeper instance will be allocated (as if the session had expired).
+
+* Added checks for illegal namespaces.
+
+* Issue 232: NodeCache wasn't handling server connection issues well. It would repeatedly execute checkExists()
+with a watcher causing the heap to fill with watcher objects.
+
+* Issue 233: An internal idiom being used to create an EnsurePath instance with the parent of a passed in path
+wasn't correct. Due to an unfortunate implementation of ZKPaths.PathAndNode (mea culpa) the root path is specified
+differently than non-root paths. To work around this, I added a method to EnsurePath - excludingLast() - that
+can be used instead of the idiom.
+
+* Issue 230: Added a filter to control which IP address are returned by ServiceInstanceBuilder.getAllLocalIPs().
+Set the filter via ServiceInstanceBuilder.setLocalIpFilter().
+
+1.2.6 - January 1, 2013
+=======================
+* 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.
+
+1.2.5 - November 27, 2012
+=========================
+* Depend on ZooKeeper 3.4.5
+
+* Issue 177: PathChildrenCache wasn't shutting down the executor when closed. Also, reworked the event
+queue to avoid potential herding of messages in unstable conditions. The herding could result in runaway
+memory allocation as reported in the issue. NOTE: due to this change, the PathChildrenCache node
+refresh code and the PathChildrenCacheListener notification threads have been merged. Do not block
+for very long inside of your PathChildrenCacheListener or you will prevent the cache from getting
+updated.
+
+* Issue 200: Post-creation services registered in ServiceDiscovery via registerService() were
+not being treated the same as the service passed in the constructor. Consequently they wouldn't get
+re-registered if there were connection problems.
+
+* Creating nodes withProtection() is now supported in the background. e.g.
+client.create().withProtection().inBackground()...
+
+* Added methods to InterProcessSemaphoreV2: setNodeData() and getParticipantNodes() and, to the Lease
+interface, getData().
+
+* Issue 205 - already started error message was misleading.
+
+* Pull 209 - Fixed inconsistent API for get() in DiscoveryResource.java - thanks to user dougnukem
+
+* Issue 211 - Added getState() method to CuratorFramework.
+
+* Issue 212 - There wasn't a good way to update the data for a Service. I've added a new method
+ServiceDiscovery: updateService(). NOTE: this method requires all ServiceDiscovery instances to be using
+version 1.2.5 of Curator. Internally, ServiceCache now uses PathChildrenCache.
+
+* Pull 210 - For convenience, a version of {@link DiscoveryContext} that uses any generic type as the
+payload. Thanks to user dougnukem.
+
+1.2.4 - November 2, 2012
+========================
+* Depend on ZooKeeper 3.4.4
+
+* Added a new Examples sub project - better late than never.
+
+* Guaranteed deletes were not working correctly if CuratorFramework.usingNamespace() was used.
+
+* I can't believe this has been like this for so long. The executor passed to listeners was never used.
+Doh!!! Major bug.
+
+* Issue 188: Display a meaningful message if the value node is corrupted
+
+* Issue 194: Initial sync() operation should occur immediately - like the change in 1.2.3 for all "background"
+operations.
+
+* Added support for ZK 3.4's read only operation as described here:
+http://wiki.apache.org/hadoop/ZooKeeper/GSoCReadOnlyMode - CuratorFrameworkFactory.Builder has a new
+method to set canBeReadOnly(). There is a new ConnectionState: READ_ONLY. Note: Your servers need to
+see a system property set "readonlymode.enabled" as true. This isn't documented anywhere that I can see.
+
+* Pull Request: 196 - Fix some issues with NamespaceFacade stemming from inconsistent state. Thanks to
+Answashe.
+
+* Issue 197 - Possible NullPointerException from ConnectionStateManager line 133 that is caused by a race
+condition. In CuratorFrameworkImpl, connectionStateManager.start() is called after client.start().
+
+1.2.3 - October 6, 2012
+=======================
+* Previously, all background operations (i.e. when the inBackground() method is used)
+were put into a queue and processed in an internal thread. Curator does this to handle retries in
+background operations. This can be improved, however. The first time the background operation is
+executed the ZooKeeper method can be called directly - without queuing. This will get the operation
+into ZooKeeper immediately and will help prevent Curator's internal queue from backing up.
+
+* Issue 173: The DistributedQueue (and, thus, all the other queue recipes) was unnecessarily
+calling getChildren (with a watch) after each group of children was processed. It can just as easily
+wait for the internal cache to get its watch notified. This change creates an edge case, though,
+for ErrorMode.REQUEUE. Consequently, when in mode ErrorMode.REQUEUE the DistributedQueue now
+deletes the bad message and re-creates it. This required the use of ZooKeeper 3.4.x's transactions.
+So, if you use ErrorMode.REQUEUE you MUST be running ZooKeeper 3.4+.
+
+1.2.2 - September 30, 2012
+==========================
+* NOTE: The 1.0.x branch is not being released and has been deprecated. It was advised many versions
+ago that this was coming. So, here it is.
+
+* For ZKClient Bridge: 1. Previous method of sending initial connect event to ZKClient was
+unreliable; 2. Added an option to not close the curator instance
+
+* The default connection timeout has increased to 15 seconds. The default session timeout has
+increased to 60 seconds. These both can now be overridden via system properties:
+"curator-default-connection-timeout" and "curator-default-session-timeout".
+
+* Thanks to Ben Bangert: the InterProcessSemaphore waiting semantics weren't ideal. The nth
+waiting node has to wait for all nodes in front of it. I've improved this a bit. However, the algorithm
+used still suffers from potential out of order acquisition as well as potential starvation if a given client
+does not release a lease. Therefore, I'm deprecating InterProcessSemaphore in favor of the new
+InterProcessSemaphoreV2 which is based on Ben's algorithm.
+
+* Issue 164: The PathChildrenCache no longer clears its internal state when there is a connection
+issue. Consequently, the PathChildrenCacheEvent.Type values have changed. Instead of a RESET event
+there are events that match the ConnectionState events.
+
+1.1.18/1.0.20 - September 4, 2012
+=================================
+* New extension project: "ZKClient Bridge". A bridge between Curator and ZKClient. Useful for
+projects that would like to use Curator but don't want to risk porting working code that uses
+ZKClient.
+
+1.1.17/1.0.18 - August 30, 2012
+===============================
+* Issue 132: If namespace is set in builder, getNamespace() does not return it
+
+* Issue 131: If connection is lost to the server, the ServiceInstance needs to re-register once
+there is a re-connection.
+
+* PathChildrenCache was not sending UPDATE messages when a node's data changed in the case
+that false was passed in the constructor for cacheData.
+
+* Merge 136 from wt: Add eclipse support to gradle.
+
+* Merge 137 from pbh101: ConnectionState declares IOException, never throws it
+
+1.1.16/1.0.17 - August 2, 2012
+==============================
+* Merge 114 from amuraru: Make sure internal executor services are not started until startup.
+
+* Merge 116 from samuelgmartinez: Fix for Issue 115: Wrong behaviour in LeaderLatch when a candidate
+loses connection
+
+* Issue 118: Ignore nonode exceptions when deleting lock path
+
+* Added a non-reentrant mutex: InterProcessSemaphoreMutex. This mutex doesn't have the threading
+restrictions that InterProcessMutex has. This should help with issues 75 and 117.
+
+* Merge 122 from ithaka that addresses Issue #98 - JsonInstanceSerializer does not deserialize
+custom payload types. IMPORTANT! This change introduces a breaking incompatibility with List payloads
+that will show up in environments that mix the old code and the new code. The new code will throw a
+JsonMappingException when it attempts to read a List payload written by the old code. The old code,
+when it reads a List payload generated by the new code, will generate a list with two elements,
+the first of which is the class name of the List type, and the second of which is the original list.
+
+* Issue 121: Apply bytecode rewriting to turn off JMX registrations to TestingServer as well as
+TestingCluster.
+
+* Issue 125: Use ScheduledThreadPoolExecutor instead of blocking threads that have period work.
+
+* Issue 126: Added getNamespace() method.
+
+* Issue 120: Additional check for connection loss in DistributedDoubleBarrier.
+
+1.1.15/1.0.16 - July 14, 2012
+=============================
+* Added ChildReaper. This builds on the newly added Reaper. This utility monitors a single node
+and reaps empty children of that node.
+
+* Issue 107: The namespace wrapper was corrupting the path if the EnsurePath handler had an error.
+The best thing to do is let the code continue.
+
+* Issue 109: Make duplicate close() calls in CuratorFrameworkImpl a NOP instead of an error.
+
+* A more complete solution for background build-ups. The previous implementation did the retry sleep
+in the background process which ends up blocking ZooKeeper. During connection problems, this would
+cause ZooKeeper packets/watchers to back up. The new implementation uses a DelayQueue to simulate a
+sleep in the background. NOTE: this caused a change to the RetryPolicy APIs.
+
+1.1.14/1.0.15 - July 6, 2012
+============================
+* Merge #100 from bbeck: Added BoundedExponentialBackoffRetry.
+
+* Merge #102 from artemip: Added REAP_UNTIL_GONE mode to Reaper; Remove items from activePaths once
+they are deletes; Tests
+
+* Issue 99: The Double Barrier should allow more than the max to enter the barrier. I don't see any
+harm in this.
+
+* Issue 103: Important change/fix for ExhibitorEnsembleProvider: the previous implementation wasn't
+handling outages very well. The connectionString could get stuck to an old value if the list of
+Exhibitors all went down and couldn't be contacted. Now, a backup provider is required and the backup
+is used to update the list of Exhibitors should there be connection problems.
+
+* IMPORTANT NOTE: The 1.0.x branch of Curator is now end of life. There will be a few more releases
+but please migrate to the 1.1.x branch.
+
+1.1.13/1.0.14 - June 25, 2012
+=============================
+* New queue features: a) bounded queues: use setMaxItems() in the builder to set an (approx) upper
+bound on the queue size; b) the builder now has an option to turn off background puts; c) queues now
+default to flushing remaining puts when closed - this can be controlled in the builder via
+finalFlushTime().
+
+* Issue 82: Generalized (and deprecated) nonNamespaceView() by adding the usingNamespace() method
+to allow getting a facade of the client that uses a specified namespace.
+
+* createParentsIfNeeded() should now perform better. Instead of "pre" checking, it now only does the
+check if KeeperException.NoNodeException is thrown. LockInternals now uses this method and, so, should
+perform a bit better.
+
+* Added a new utility: Reaper. This can be used to clean up parent lock nodes so that they don't
+stay around as garbage. See the Utilities wiki for details: https://github.com/Netflix/curator/wiki/Utilities
+
+* Unit tests should be a lot less noisy. A system property now turns off most internal error logging.
+
+* Issue 88: Children processor should wait for all nodes to be processed before fetching more items
+
+1.1.12/1.0.13 - June 5, 2012
+============================
+* Pull Request 81: Avoid invalid ipv6 localhost addresses
+
+* Another big bug: guaranteed deletions were not working with namespaces.
+
+1.1.11/1.0.12 - June 1, 2012
+============================
+* MAJOR BUG FIX!!!! Many of the Curator recipes rely on the internal class LockInternals. It has
+a bug that exhibits when the ZooKeeper cluster is unstable. There is an edge case that causes
+LockInternals to leak a node in the lock path that it is managing. This results in a deadlock. The
+leak occurs when retries are exhausted. NOTE: TestLockCleanlinessWithFaults now tests for this
+condition.
+
+* Added some missing combinations in the backgrounding API
+
+* Added QueueSharder utility. Due to limitations in ZooKeeper's transport layer, a single queue
+will break if it has more than 10K-ish items in it. This class provides a facade over multiple
+distributed queues. It monitors the queues and if any one of them goes over a threshold, a new
+queue is added. Puts are distributed amongst the queues.
+
+* Issue 80: Check for null data before decompressing data in getData().
+
+* Merge from user bbeck - enhanced the testing in-memory ZK server to handle some edge cases. A nice
+benefit is that it starts up faster. Thanks Brandon!
+
+1.1.10/1.0.11 - May 17, 2012
+============================
+* Generalized the ProtectedEphemeralSequential so that it works with any create mode.
+withProtectedEphemeralSequential() is deprecated in favor of the new method withProtection().
+
+* Update all uses of Preconditions to make sure they print a reasonable diagnostic message.
+
+* Added a new wrapped Watcher type that can throw exceptions as a convenience. The various
+usingWatcher() methods now can take CuratorWatcher instances.
+
+* InterProcessSemaphore and LeaderSelector weren't respecting the default bytes feature.
+
+* Make the default data for nodes be the local IP address. This helps in debugging and enables
+the deadlock analysis in Exhibitor.
+
+* New recipe added: DistributedDelayQueue
+
+1.1.9/1.0.10 - May 10, 2012
+===========================
+* Based on suggestion in Issue 67: Added new concept of UriSpec to the ServiceInstance in the
+Service Discovery Curator extension.
+
+* User "Pierre-Luc Bertrand" pointed out a potential race condition that would cause a SysConnected
+to get sent before an Expired. So, now I push the event to the parent watcher before resetting
+the connection in ConnectionState.process(WatchedEvent)
+
+* New Feature: SessionFailRetryLoop. Huge thanks to Pierre-Luc Bertrand for his work on this.
+SessionFailRetryLoop is a special type of retry loop that causes all Curator methods in a thread to
+fail when a session failure is detected. This enables sets of Curator operations that must be tied
+to a single ZooKeeper session. See Tech Note 3 for details: https://github.com/Netflix/curator/wiki/Tech-Note-3
+
+* Several users have expressed dissatisfaction with the LeaderSelector implementation - requiring a
+thread, etc. So, LeaderLatch has been added which behaves a lot like a CountDownLatch but for leader
+selection.
+
+1.1.8/1.0.9 - April 17, 2012
+============================
+* Added methods to compress data via create() and setData() and to decompress data via getData(). The
+compression is GZIP by default. You can change this via the CuratorFrameworkFactory by specifying
+a CompressionProvider.
+
+* Added ZookeeperFactory to the client as a testing aid.
+
+* Added ACLProvider to make it easier to use ACLs and recipes. It can be set via the
+CuratorFrameworkFactory builder.
+
+* Several of the recipes were creating new watcher objects each time they were needed when the watcher(s)
+can be created once in the constructor.
+
+* Issue 62: DistributedQueue wasn't handling getting interrupted very well. It was logging an error.
+
+* Issue 64: wasn't handling SASL events. Any non-SysConnected event was being treated as a disconnection.
+
+* Issue 65: Accepted a pull request that fixes a bug in RetryUntilElapsed.
+
+* Issue 66: Bad log string - needed String.format()
+
+1.1.7/1.0.8 - April 6, 2012
+===========================
+* Accepted a change so that testng is testCompile in Gradle
+
+* Rewrote TestingServer and TestingCluster based on work by Jeremie BORDIER (ahfeel)
+
+* Rewrote the log4j property files
+
+* Moved to ZK 3.4.3
+
+* More work on the Exhibitor integration
+
+1.1.5/1.0.6 - March 23, 2012
+============================
+* Moved to Gradle as the build system.
+
+* Added SimpleDistributedQueue, a drop-in replacement for the DistributedQueue that comes with the
+ZK distribution.
+
+* IMPORTANT CHANGE TO LeaderSelector. Previous versions of Curator overloaded the start() method
+to allow re-queueing. THIS IS NO LONGER SUPPORTED. Instead, there is a new method, requeue(), that
+does this. Calling start() more than once will now throw an exception.
+
+* LeaderSelector now supports auto re-queueing. In previous versions, it wasn't trivial to requeue
+the instance. Now, make a call to autoRequeue() to put the instance in a mode where it will requeue
+itself when the leader selector listener returns.
+
+* The mechanism that calls any kind of Curator listener wasn't protected against exceptions. Thus,
+an exception in a listener could break the listener event thread.
+
+* deleteDirectoryContents() no longer checks for sym links. This was a major issue in the Guava
+version and possibly one of the reasons they removed the method altogether.
+
+1.1.4/1.0.5 - March 12, 2012
+============================
+* Introduced a parent interface for Queues so that they can have some common methods
+
+* Added new Recipe: DistributedIdQueue - a version of DistributedQueue that allows IDs to be
+associated with queue items. Items can then be removed from the queue if needed.
+
+* Curator can now be configured to poll a cluster of Exhibitor (https://github.com/Netflix/exhibitor)
+instances to get the connection string to use with the ZooKeeper client. Should the connection
+string change, any new connections will use the new connection string.
+
+1.1.3/1.0.4 - March 7, 2012
+===========================
+* Issue 27: This bug exposed major problems with the PathChildrenCache. I ended up completely
+rewriting it. The original version was very inefficient and prone to herding. This new version
+is as efficient as possible and adds some nice new features. The major new feature is that when
+calling start(), you can have the cache load an initial working set of data.
+
+* Issue 31: It turns out an instance of InterProcessMutex could not be shared in multiple threads. My
+assumption was that users would create a new InterProcessMutex per thread. But, this restriction is
+arbitrary. For comparison, the JDK Lock doesn't have this requirement. I've fixed this however it
+was a significant change internally. I'm counting on my tests to prove correctness.
+
+* EnsurePath wasn't doing its work in a RetryLoop.
+
+* Added a new class to the Test module, Timing, that is used to better coordinate timings in tests
+
+* LockInternals had a retry loop for all failures when it was only needed if the session expired
+and the lock node was lost. So, I refined the code to handle this specific case.
+
+* Issue 34: PathChildrenCache should ensure the path
+
+* Moved to Guava 11.x
+
+* Lots of work on the Gradle build. NOTE: Gradle will soon become the build system for Curator
+
+1.1.2/1.0.3 - Feb. 8, 2012
+==========================
+* Added listener to Queues to listen for put completion
+
+* Issue 24: If InterProcesMutex.release() failed to delete the node (due to connection errors, etc.)
+the instance was left in an inconsistent state that would cause a future call to acquire() to
+succeed without actually creating the lock. A new feature (see next bullet) was added to solve this
+problem: guaranteed deletes. The various lock-based recipes now use this feature.
+
+* New feature: guaranteed deletes. The delete builder now has a method that will record failed node
+deletions and attempt to delete them in the background until successful. NOTE: you will still get
+an exception when the deletion fails. But, you can be assured that as long as the CuratorFramework
+instance is open attempts will be made to delete the node:
+    client.delete().guaranteed() ...
+
+1.1.1/1.0.2 - Jan. 21, 2012
+===========================
+* Issue 22: Make ServiceCache close itself down properly.
+
+* Issue 21: Move TestNG to the top-level pom and define its scope as test
+
+* Issue 17: ConnectionStateManager should use the builder's thread factory if present
+
+1.1.0 - Jan. 5, 2012
+=====================
+* 1.1.x marks a separate branch of Curator:
+    - 1.0.x will stay compatible with ZooKeeper 3.3.x
+    - 1.1.x+ will require ZooKeeper 3.4.x+
+
+* Added support for ZooKeeper 3.4's Transactions:
+    - CuratorFramework has a new method: inTransaction() that starts a
+      transaction builder
+    - See TestTransactions for examples
+
+1.0.1 - Jan. 4, 2012
+=====================
+* Updated and tested against ZooKeeper 3.4.2
+
+1.0.0 - Dec. 31, 2011
+=====================
+* Added a REST server for Service Discovery
+* Switched to slf4j for logging
+* Moved to 1.0 version
+* Curator is now feature complete
+
+0.6.4 - Dec. 7, 2011
+=====================
+* Added Barrier
+
+* Added Double Barrier
+
+* Added Read/Write lock
+
+* Added revocation to InterProcessMutex
+
+* Fixed (hopefully) intermittent failures with testRetry()
+
+* Updates/enhancements to Discovery based on suggestions from Eishay Smith
+
+0.6.3 - Nov. 30, 2011
+=====================
+* Added Service Discovery
+
+0.6.1 - Nov. 18, 2011
+=====================
+* Added new methods to LeaderSelector to identify/get all Participants
+
+* Moved to ZooKeeper 3.3.3
+
+* Made the TestingCluster not throw an assertion error due to internal JMX registrations
+in ZK. This is done with Javaassist ugliness.
+
+* Refactored listeners in Curator to a common methodology
+
+* Major changes to error handling. Adding a ConnectionStateManager that allows users to
+listen for connection changes. Connection loss is first treated as a recoverable Suspension.
+If the connection is not re-established, the state changes to connection loss. Any recipes
+that are affected by this have been updated.
+
+* PathChildrenCache now handles connection state changes much better.
+
+* All Curator created threads now have a meaningful name.
+
+0.5.2 - Nov. 14, 2011
+=====================
+* Jérémie Bordier posted on the ZK mailing list about a split brain issue with the Leader Selector.
+If the Leader is connected to a server that suffers a network partition, it needs to get notified
+that it has lost leadership. Curator handled this somewhat but only if the client application
+executed periodic ZooKeeper operations. I've enhanced the CuratorFramework implementation to check
+for disconnection and executed a background sync (with retries). This will cause any listener's
+unhandledError() method to get called when there is a network partition.
+
+* New utility: TestingCluster. Allows for testing with an in-memory ZK ensemble.
+
+* Reworked distributed atomic implementations. I was unhappy with the complexity of the previous
+one. Now, there's a simpler master implementation DistributedAtomicValue that is the basis for the
+others. Adding new versions should be simpler as well.
+
+0.5.1 - Nov. 12, 2011
+=====================
+* Another pass at fixing the semaphore. Went back to the model of the count being merely a
+convention. Added a new recipe for a SharedCount that can be used in place of the count convention
+with the semaphore. This is the best of both worlds. The semaphore code is a lot simpler and will
+perform better. Thanks to Monal Daxini for the idea.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
deleted file mode 100644
index de9f3a4..0000000
--- a/CHANGES.txt
+++ /dev/null
@@ -1,558 +0,0 @@
-1.3.4 - xxxxxxxxxxxxx
-=====================
-* Issue 257: Fixed a race condition in LeaderLatch that cause the recipe to create
-two nodes in some edge cases.
-
-1.3.3 - March 6, 2013
-=====================
-* Issue 250: Restore support for passing null to usingWatcher().
-
-* Issue 251: Allow a custom Executor Service to be used for PathChildrenCache.
-
-* DistributedDoubleBarrier wasn't handling wait expiration correctly and was sending negative
-numbers to wait().
-
-* Issue 254: Check that executorService isn't null before closing.
-
-* Pull 258: Fix bad performing use of Guava's transform.
-
-1.3.2 - February 6, 2013
-========================
-* MAJOR BUG FIX - Issue 232: ZooKeeper guarantees that "A watch object, or function/context pair, will only
-be triggered once for a given notification." Curator was breaking this guarantee by internally creating a
-new Watcher object each time one was needed. This is now fixed and ZooKeeper's guarantee is restored. Big
-thanks to user barkbay for his persistence and help on this.
-
-* Issue 247: POST_INITIALIZED_EVENT wasn't correctly handling an initially empty node.
-
-* Issue 245: Auth info specified in the CuratorFrameworkFactory.Builder was not being re-set in cases
-where the internal ZooKeeper handle was recreated. i.e. if the cluster has issues auth info would be lost.
-
-* The default watcher in the ZooKeeper handle is now cleared before the ZooKeeper handle is closed. This avoids
-an edge case where events meant for the old ZooKeeper handle get processed.
-
-1.3.1 - January 28, 2013
-========================
-* Tightened up a possible race deep inside the connection management.
-
-* PathChildrenCache.rebuild() and PathChildrenCache.rebuildNode() were not handling deleted nodes.
-
-* Issue 237: New feature. PathChildrenCache now optionally posts an event when the initial cache is
-populated. To accommodate this behavior there is a new version of start() that takes an enum. See the
-Javadoc for each value. For this new behavior, use StartMode.POST_INITIALIZED_EVENT. Once the cache
-is initialized a PathChildrenCacheEvent.Type.INITIALIZED will be posted. Huge thanks to user philflesh
-for the idea and co-implementation.
-
-1.3.0 - January 10, 2013
-========================
-* MAJOR CHANGE (thus a version bump): I'd always thought that if the client is disconnected from the server
-long enough then an Expired event would be generated. Testing, however, shows this not to be the case. I believe
-it's related to ZOOKEEPER-1159. The behavior associated with this is that if the clients lost connection to the
-cluster for longer than the session expiration they would _never_ be able to reconnect. The connection would
-be permanently lost. Many users were seeing this as endless log messages indicating "Connection timed out
-for connection...". As a workaround, in 1.3.0+ when the Curator state changes to LOST, a flag will be set
-so that the next time Curator needs to get the ZooKeeper instance, the current instance will be closed and a new
-ZooKeeper instance will be allocated (as if the session had expired).
-
-* Added checks for illegal namespaces.
-
-* Issue 232: NodeCache wasn't handling server connection issues well. It would repeatedly execute checkExists()
-with a watcher causing the heap to fill with watcher objects.
-
-* Issue 233: An internal idiom being used to create an EnsurePath instance with the parent of a passed in path
-wasn't correct. Due to an unfortunate implementation of ZKPaths.PathAndNode (mea culpa) the root path is specified
-differently than non-root paths. To work around this, I added a method to EnsurePath - excludingLast() - that
-can be used instead of the idiom.
-
-* Issue 230: Added a filter to control which IP address are returned by ServiceInstanceBuilder.getAllLocalIPs().
-Set the filter via ServiceInstanceBuilder.setLocalIpFilter().
-
-1.2.6 - January 1, 2013
-=======================
-* 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.
-
-1.2.5 - November 27, 2012
-=========================
-* Depend on ZooKeeper 3.4.5
-
-* Issue 177: PathChildrenCache wasn't shutting down the executor when closed. Also, reworked the event
-queue to avoid potential herding of messages in unstable conditions. The herding could result in runaway
-memory allocation as reported in the issue. NOTE: due to this change, the PathChildrenCache node
-refresh code and the PathChildrenCacheListener notification threads have been merged. Do not block
-for very long inside of your PathChildrenCacheListener or you will prevent the cache from getting
-updated.
-
-* Issue 200: Post-creation services registered in ServiceDiscovery via registerService() were
-not being treated the same as the service passed in the constructor. Consequently they wouldn't get
-re-registered if there were connection problems.
-
-* Creating nodes withProtection() is now supported in the background. e.g.
-client.create().withProtection().inBackground()...
-
-* Added methods to InterProcessSemaphoreV2: setNodeData() and getParticipantNodes() and, to the Lease
-interface, getData().
-
-* Issue 205 - already started error message was misleading.
-
-* Pull 209 - Fixed inconsistent API for get() in DiscoveryResource.java - thanks to user dougnukem
-
-* Issue 211 - Added getState() method to CuratorFramework.
-
-* Issue 212 - There wasn't a good way to update the data for a Service. I've added a new method
-ServiceDiscovery: updateService(). NOTE: this method requires all ServiceDiscovery instances to be using
-version 1.2.5 of Curator. Internally, ServiceCache now uses PathChildrenCache.
-
-* Pull 210 - For convenience, a version of {@link DiscoveryContext} that uses any generic type as the
-payload. Thanks to user dougnukem.
-
-1.2.4 - November 2, 2012
-========================
-* Depend on ZooKeeper 3.4.4
-
-* Added a new Examples sub project - better late than never.
-
-* Guaranteed deletes were not working correctly if CuratorFramework.usingNamespace() was used.
-
-* I can't believe this has been like this for so long. The executor passed to listeners was never used.
-Doh!!! Major bug.
-
-* Issue 188: Display a meaningful message if the value node is corrupted
-
-* Issue 194: Initial sync() operation should occur immediately - like the change in 1.2.3 for all "background"
-operations.
-
-* Added support for ZK 3.4's read only operation as described here:
-http://wiki.apache.org/hadoop/ZooKeeper/GSoCReadOnlyMode - CuratorFrameworkFactory.Builder has a new
-method to set canBeReadOnly(). There is a new ConnectionState: READ_ONLY. Note: Your servers need to
-see a system property set "readonlymode.enabled" as true. This isn't documented anywhere that I can see.
-
-* Pull Request: 196 - Fix some issues with NamespaceFacade stemming from inconsistent state. Thanks to
-Answashe.
-
-* Issue 197 - Possible NullPointerException from ConnectionStateManager line 133 that is caused by a race
-condition. In CuratorFrameworkImpl, connectionStateManager.start() is called after client.start().
-
-1.2.3 - October 6, 2012
-=======================
-* Previously, all background operations (i.e. when the inBackground() method is used)
-were put into a queue and processed in an internal thread. Curator does this to handle retries in
-background operations. This can be improved, however. The first time the background operation is
-executed the ZooKeeper method can be called directly - without queuing. This will get the operation
-into ZooKeeper immediately and will help prevent Curator's internal queue from backing up.
-
-* Issue 173: The DistributedQueue (and, thus, all the other queue recipes) was unnecessarily
-calling getChildren (with a watch) after each group of children was processed. It can just as easily
-wait for the internal cache to get its watch notified. This change creates an edge case, though,
-for ErrorMode.REQUEUE. Consequently, when in mode ErrorMode.REQUEUE the DistributedQueue now
-deletes the bad message and re-creates it. This required the use of ZooKeeper 3.4.x's transactions.
-So, if you use ErrorMode.REQUEUE you MUST be running ZooKeeper 3.4+.
-
-1.2.2 - September 30, 2012
-==========================
-* NOTE: The 1.0.x branch is not being released and has been deprecated. It was advised many versions
-ago that this was coming. So, here it is.
-
-* For ZKClient Bridge: 1. Previous method of sending initial connect event to ZKClient was
-unreliable; 2. Added an option to not close the curator instance
-
-* The default connection timeout has increased to 15 seconds. The default session timeout has
-increased to 60 seconds. These both can now be overridden via system properties:
-"curator-default-connection-timeout" and "curator-default-session-timeout".
-
-* Thanks to Ben Bangert: the InterProcessSemaphore waiting semantics weren't ideal. The nth
-waiting node has to wait for all nodes in front of it. I've improved this a bit. However, the algorithm
-used still suffers from potential out of order acquisition as well as potential starvation if a given client
-does not release a lease. Therefore, I'm deprecating InterProcessSemaphore in favor of the new
-InterProcessSemaphoreV2 which is based on Ben's algorithm.
-
-* Issue 164: The PathChildrenCache no longer clears its internal state when there is a connection
-issue. Consequently, the PathChildrenCacheEvent.Type values have changed. Instead of a RESET event
-there are events that match the ConnectionState events.
-
-1.1.18/1.0.20 - September 4, 2012
-=================================
-* New extension project: "ZKClient Bridge". A bridge between Curator and ZKClient. Useful for
-projects that would like to use Curator but don't want to risk porting working code that uses
-ZKClient.
-
-1.1.17/1.0.18 - August 30, 2012
-===============================
-* Issue 132: If namespace is set in builder, getNamespace() does not return it
-
-* Issue 131: If connection is lost to the server, the ServiceInstance needs to re-register once
-there is a re-connection.
-
-* PathChildrenCache was not sending UPDATE messages when a node's data changed in the case
-that false was passed in the constructor for cacheData.
-
-* Merge 136 from wt: Add eclipse support to gradle.
-
-* Merge 137 from pbh101: ConnectionState declares IOException, never throws it
-
-1.1.16/1.0.17 - August 2, 2012
-==============================
-* Merge 114 from amuraru: Make sure internal executor services are not started until startup.
-
-* Merge 116 from samuelgmartinez: Fix for Issue 115: Wrong behaviour in LeaderLatch when a candidate
-loses connection
-
-* Issue 118: Ignore nonode exceptions when deleting lock path
-
-* Added a non-reentrant mutex: InterProcessSemaphoreMutex. This mutex doesn't have the threading
-restrictions that InterProcessMutex has. This should help with issues 75 and 117.
-
-* Merge 122 from ithaka that addresses Issue #98 - JsonInstanceSerializer does not deserialize
-custom payload types. IMPORTANT! This change introduces a breaking incompatibility with List payloads
-that will show up in environments that mix the old code and the new code. The new code will throw a
-JsonMappingException when it attempts to read a List payload written by the old code. The old code,
-when it reads a List payload generated by the new code, will generate a list with two elements,
-the first of which is the class name of the List type, and the second of which is the original list.
-
-* Issue 121: Apply bytecode rewriting to turn off JMX registrations to TestingServer as well as
-TestingCluster.
-
-* Issue 125: Use ScheduledThreadPoolExecutor instead of blocking threads that have period work.
-
-* Issue 126: Added getNamespace() method.
-
-* Issue 120: Additional check for connection loss in DistributedDoubleBarrier.
-
-1.1.15/1.0.16 - July 14, 2012
-=============================
-* Added ChildReaper. This builds on the newly added Reaper. This utility monitors a single node
-and reaps empty children of that node.
-
-* Issue 107: The namespace wrapper was corrupting the path if the EnsurePath handler had an error.
-The best thing to do is let the code continue.
-
-* Issue 109: Make duplicate close() calls in CuratorFrameworkImpl a NOP instead of an error.
-
-* A more complete solution for background build-ups. The previous implementation did the retry sleep
-in the background process which ends up blocking ZooKeeper. During connection problems, this would
-cause ZooKeeper packets/watchers to back up. The new implementation uses a DelayQueue to simulate a
-sleep in the background. NOTE: this caused a change to the RetryPolicy APIs.
-
-1.1.14/1.0.15 - July 6, 2012
-============================
-* Merge #100 from bbeck: Added BoundedExponentialBackoffRetry.
-
-* Merge #102 from artemip: Added REAP_UNTIL_GONE mode to Reaper; Remove items from activePaths once
-they are deletes; Tests
-
-* Issue 99: The Double Barrier should allow more than the max to enter the barrier. I don't see any
-harm in this.
-
-* Issue 103: Important change/fix for ExhibitorEnsembleProvider: the previous implementation wasn't
-handling outages very well. The connectionString could get stuck to an old value if the list of
-Exhibitors all went down and couldn't be contacted. Now, a backup provider is required and the backup
-is used to update the list of Exhibitors should there be connection problems.
-
-* IMPORTANT NOTE: The 1.0.x branch of Curator is now end of life. There will be a few more releases
-but please migrate to the 1.1.x branch.
-
-1.1.13/1.0.14 - June 25, 2012
-=============================
-* New queue features: a) bounded queues: use setMaxItems() in the builder to set an (approx) upper
-bound on the queue size; b) the builder now has an option to turn off background puts; c) queues now
-default to flushing remaining puts when closed - this can be controlled in the builder via
-finalFlushTime().
-
-* Issue 82: Generalized (and deprecated) nonNamespaceView() by adding the usingNamespace() method
-to allow getting a facade of the client that uses a specified namespace.
-
-* createParentsIfNeeded() should now perform better. Instead of "pre" checking, it now only does the
-check if KeeperException.NoNodeException is thrown. LockInternals now uses this method and, so, should
-perform a bit better.
-
-* Added a new utility: Reaper. This can be used to clean up parent lock nodes so that they don't
-stay around as garbage. See the Utilities wiki for details: https://github.com/Netflix/curator/wiki/Utilities
-
-* Unit tests should be a lot less noisy. A system property now turns off most internal error logging.
-
-* Issue 88: Children processor should wait for all nodes to be processed before fetching more items
-
-1.1.12/1.0.13 - June 5, 2012
-============================
-* Pull Request 81: Avoid invalid ipv6 localhost addresses
-
-* Another big bug: guaranteed deletions were not working with namespaces.
-
-1.1.11/1.0.12 - June 1, 2012
-============================
-* MAJOR BUG FIX!!!! Many of the Curator recipes rely on the internal class LockInternals. It has
-a bug that exhibits when the ZooKeeper cluster is unstable. There is an edge case that causes
-LockInternals to leak a node in the lock path that it is managing. This results in a deadlock. The
-leak occurs when retries are exhausted. NOTE: TestLockCleanlinessWithFaults now tests for this
-condition.
-
-* Added some missing combinations in the backgrounding API
-
-* Added QueueSharder utility. Due to limitations in ZooKeeper's transport layer, a single queue
-will break if it has more than 10K-ish items in it. This class provides a facade over multiple
-distributed queues. It monitors the queues and if any one of them goes over a threshold, a new
-queue is added. Puts are distributed amongst the queues.
-
-* Issue 80: Check for null data before decompressing data in getData().
-
-* Merge from user bbeck - enhanced the testing in-memory ZK server to handle some edge cases. A nice
-benefit is that it starts up faster. Thanks Brandon!
-
-1.1.10/1.0.11 - May 17, 2012
-============================
-* Generalized the ProtectedEphemeralSequential so that it works with any create mode.
-withProtectedEphemeralSequential() is deprecated in favor of the new method withProtection().
-
-* Update all uses of Preconditions to make sure they print a reasonable diagnostic message.
-
-* Added a new wrapped Watcher type that can throw exceptions as a convenience. The various
-usingWatcher() methods now can take CuratorWatcher instances.
-
-* InterProcessSemaphore and LeaderSelector weren't respecting the default bytes feature.
-
-* Make the default data for nodes be the local IP address. This helps in debugging and enables
-the deadlock analysis in Exhibitor.
-
-* New recipe added: DistributedDelayQueue
-
-1.1.9/1.0.10 - May 10, 2012
-===========================
-* Based on suggestion in Issue 67: Added new concept of UriSpec to the ServiceInstance in the
-Service Discovery Curator extension.
-
-* User "Pierre-Luc Bertrand" pointed out a potential race condition that would cause a SysConnected
-to get sent before an Expired. So, now I push the event to the parent watcher before resetting
-the connection in ConnectionState.process(WatchedEvent)
-
-* New Feature: SessionFailRetryLoop. Huge thanks to Pierre-Luc Bertrand for his work on this.
-SessionFailRetryLoop is a special type of retry loop that causes all Curator methods in a thread to
-fail when a session failure is detected. This enables sets of Curator operations that must be tied
-to a single ZooKeeper session. See Tech Note 3 for details: https://github.com/Netflix/curator/wiki/Tech-Note-3
-
-* Several users have expressed dissatisfaction with the LeaderSelector implementation - requiring a
-thread, etc. So, LeaderLatch has been added which behaves a lot like a CountDownLatch but for leader
-selection.
-
-1.1.8/1.0.9 - April 17, 2012
-============================
-* Added methods to compress data via create() and setData() and to decompress data via getData(). The
-compression is GZIP by default. You can change this via the CuratorFrameworkFactory by specifying
-a CompressionProvider.
-
-* Added ZookeeperFactory to the client as a testing aid.
-
-* Added ACLProvider to make it easier to use ACLs and recipes. It can be set via the
-CuratorFrameworkFactory builder.
-
-* Several of the recipes were creating new watcher objects each time they were needed when the watcher(s)
-can be created once in the constructor.
-
-* Issue 62: DistributedQueue wasn't handling getting interrupted very well. It was logging an error.
-
-* Issue 64: wasn't handling SASL events. Any non-SysConnected event was being treated as a disconnection.
-
-* Issue 65: Accepted a pull request that fixes a bug in RetryUntilElapsed.
-
-* Issue 66: Bad log string - needed String.format()
-
-1.1.7/1.0.8 - April 6, 2012
-===========================
-* Accepted a change so that testng is testCompile in Gradle
-
-* Rewrote TestingServer and TestingCluster based on work by Jeremie BORDIER (ahfeel)
-
-* Rewrote the log4j property files
-
-* Moved to ZK 3.4.3
-
-* More work on the Exhibitor integration
-
-1.1.5/1.0.6 - March 23, 2012
-============================
-* Moved to Gradle as the build system.
-
-* Added SimpleDistributedQueue, a drop-in replacement for the DistributedQueue that comes with the
-ZK distribution.
-
-* IMPORTANT CHANGE TO LeaderSelector. Previous versions of Curator overloaded the start() method
-to allow re-queueing. THIS IS NO LONGER SUPPORTED. Instead, there is a new method, requeue(), that
-does this. Calling start() more than once will now throw an exception.
-
-* LeaderSelector now supports auto re-queueing. In previous versions, it wasn't trivial to requeue
-the instance. Now, make a call to autoRequeue() to put the instance in a mode where it will requeue
-itself when the leader selector listener returns.
-
-* The mechanism that calls any kind of Curator listener wasn't protected against exceptions. Thus,
-an exception in a listener could break the listener event thread.
-
-* deleteDirectoryContents() no longer checks for sym links. This was a major issue in the Guava
-version and possibly one of the reasons they removed the method altogether.
-
-1.1.4/1.0.5 - March 12, 2012
-============================
-* Introduced a parent interface for Queues so that they can have some common methods
-
-* Added new Recipe: DistributedIdQueue - a version of DistributedQueue that allows IDs to be
-associated with queue items. Items can then be removed from the queue if needed.
-
-* Curator can now be configured to poll a cluster of Exhibitor (https://github.com/Netflix/exhibitor)
-instances to get the connection string to use with the ZooKeeper client. Should the connection
-string change, any new connections will use the new connection string.
-
-1.1.3/1.0.4 - March 7, 2012
-===========================
-* Issue 27: This bug exposed major problems with the PathChildrenCache. I ended up completely
-rewriting it. The original version was very inefficient and prone to herding. This new version
-is as efficient as possible and adds some nice new features. The major new feature is that when
-calling start(), you can have the cache load an initial working set of data.
-
-* Issue 31: It turns out an instance of InterProcessMutex could not be shared in multiple threads. My
-assumption was that users would create a new InterProcessMutex per thread. But, this restriction is
-arbitrary. For comparison, the JDK Lock doesn't have this requirement. I've fixed this however it
-was a significant change internally. I'm counting on my tests to prove correctness.
-
-* EnsurePath wasn't doing its work in a RetryLoop.
-
-* Added a new class to the Test module, Timing, that is used to better coordinate timings in tests
-
-* LockInternals had a retry loop for all failures when it was only needed if the session expired
-and the lock node was lost. So, I refined the code to handle this specific case.
-
-* Issue 34: PathChildrenCache should ensure the path
-
-* Moved to Guava 11.x
-
-* Lots of work on the Gradle build. NOTE: Gradle will soon become the build system for Curator
-
-1.1.2/1.0.3 - Feb. 8, 2012
-==========================
-* Added listener to Queues to listen for put completion
-
-* Issue 24: If InterProcesMutex.release() failed to delete the node (due to connection errors, etc.)
-the instance was left in an inconsistent state that would cause a future call to acquire() to
-succeed without actually creating the lock. A new feature (see next bullet) was added to solve this
-problem: guaranteed deletes. The various lock-based recipes now use this feature.
-
-* New feature: guaranteed deletes. The delete builder now has a method that will record failed node
-deletions and attempt to delete them in the background until successful. NOTE: you will still get
-an exception when the deletion fails. But, you can be assured that as long as the CuratorFramework
-instance is open attempts will be made to delete the node:
-    client.delete().guaranteed() ...
-
-1.1.1/1.0.2 - Jan. 21, 2012
-===========================
-* Issue 22: Make ServiceCache close itself down properly.
-
-* Issue 21: Move TestNG to the top-level pom and define its scope as test
-
-* Issue 17: ConnectionStateManager should use the builder's thread factory if present
-
-1.1.0 - Jan. 5, 2012
-=====================
-* 1.1.x marks a separate branch of Curator:
-    - 1.0.x will stay compatible with ZooKeeper 3.3.x
-    - 1.1.x+ will require ZooKeeper 3.4.x+
-
-* Added support for ZooKeeper 3.4's Transactions:
-    - CuratorFramework has a new method: inTransaction() that starts a
-      transaction builder
-    - See TestTransactions for examples
-
-1.0.1 - Jan. 4, 2012
-=====================
-* Updated and tested against ZooKeeper 3.4.2
-
-1.0.0 - Dec. 31, 2011
-=====================
-* Added a REST server for Service Discovery
-* Switched to slf4j for logging
-* Moved to 1.0 version
-* Curator is now feature complete
-
-0.6.4 - Dec. 7, 2011
-=====================
-* Added Barrier
-
-* Added Double Barrier
-
-* Added Read/Write lock
-
-* Added revocation to InterProcessMutex
-
-* Fixed (hopefully) intermittent failures with testRetry()
-
-* Updates/enhancements to Discovery based on suggestions from Eishay Smith
-
-0.6.3 - Nov. 30, 2011
-=====================
-* Added Service Discovery
-
-0.6.1 - Nov. 18, 2011
-=====================
-* Added new methods to LeaderSelector to identify/get all Participants
-
-* Moved to ZooKeeper 3.3.3
-
-* Made the TestingCluster not throw an assertion error due to internal JMX registrations
-in ZK. This is done with Javaassist ugliness.
-
-* Refactored listeners in Curator to a common methodology
-
-* Major changes to error handling. Adding a ConnectionStateManager that allows users to
-listen for connection changes. Connection loss is first treated as a recoverable Suspension.
-If the connection is not re-established, the state changes to connection loss. Any recipes
-that are affected by this have been updated.
-
-* PathChildrenCache now handles connection state changes much better.
-
-* All Curator created threads now have a meaningful name.
-
-0.5.2 - Nov. 14, 2011
-=====================
-* Jérémie Bordier posted on the ZK mailing list about a split brain issue with the Leader Selector.
-If the Leader is connected to a server that suffers a network partition, it needs to get notified
-that it has lost leadership. Curator handled this somewhat but only if the client application
-executed periodic ZooKeeper operations. I've enhanced the CuratorFramework implementation to check
-for disconnection and executed a background sync (with retries). This will cause any listener's
-unhandledError() method to get called when there is a network partition.
-
-* New utility: TestingCluster. Allows for testing with an in-memory ZK ensemble.
-
-* Reworked distributed atomic implementations. I was unhappy with the complexity of the previous
-one. Now, there's a simpler master implementation DistributedAtomicValue that is the basis for the
-others. Adding new versions should be simpler as well.
-
-0.5.1 - Nov. 12, 2011
-=====================
-* Another pass at fixing the semaphore. Went back to the model of the count being merely a
-convention. Added a new recipe for a SharedCount that can be used in place of the count convention
-with the semaphore. This is the best of both worlds. The semaphore code is a lot simpler and will
-perform better. Thanks to Monal Daxini for the idea.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/DISCLAIMER
----------------------------------------------------------------------
diff --git a/DISCLAIMER b/DISCLAIMER
new file mode 100644
index 0000000..7c6dc44
--- /dev/null
+++ b/DISCLAIMER
@@ -0,0 +1,10 @@
+Apache Curator is an effort undergoing incubation at the Apache Software
+Foundation (ASF), sponsored by the Incubator PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness
+or stability of the code, it does indicate that the project has yet to be
+fully endorsed by the ASF.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/DISCLAIMER.txt
----------------------------------------------------------------------
diff --git a/DISCLAIMER.txt b/DISCLAIMER.txt
deleted file mode 100644
index 7c6dc44..0000000
--- a/DISCLAIMER.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Apache Curator is an effort undergoing incubation at the Apache Software
-Foundation (ASF), sponsored by the Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness
-or stability of the code, it does indicate that the project has yet to be
-fully endorsed by the ASF.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..fd3c866
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright 2013 The Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/LICENSE.txt
----------------------------------------------------------------------
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index fd3c866..0000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright 2013 The Apache Software Foundation
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..bf09616
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+Apache Curator
+      Copyright 2013 The Apache Software Foundation
+
+      This product includes software developed at
+      The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/NOTICE.txt
----------------------------------------------------------------------
diff --git a/NOTICE.txt b/NOTICE.txt
deleted file mode 100644
index 860ac68..0000000
--- a/NOTICE.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-Apache Curator
-      Copyright 2013 The Apache Software Foundation
-
-      This product includes software developed at
-      The Apache Software Foundation (http://www.apache.org/).
-
-Google Guava
-Apache License, Version 2.0
-Copyright (C) 2007 Google Inc.
-
-Mockito
-MIT License
-Copyright (c) 2007 Mockito contributors
-
-SLF4J
-Apache License, Version 2.0
-Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/curator-client/DISCLAIMER
----------------------------------------------------------------------
diff --git a/curator-client/DISCLAIMER b/curator-client/DISCLAIMER
new file mode 100644
index 0000000..7c6dc44
--- /dev/null
+++ b/curator-client/DISCLAIMER
@@ -0,0 +1,10 @@
+Apache Curator is an effort undergoing incubation at the Apache Software
+Foundation (ASF), sponsored by the Incubator PMC.
+
+Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process
+have stabilized in a manner consistent with other successful ASF projects.
+
+While incubation status is not necessarily a reflection of the completeness
+or stability of the code, it does indicate that the project has yet to be
+fully endorsed by the ASF.

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/79a1c6d4/curator-client/DISCLAIMER.txt
----------------------------------------------------------------------
diff --git a/curator-client/DISCLAIMER.txt b/curator-client/DISCLAIMER.txt
deleted file mode 100644
index 7c6dc44..0000000
--- a/curator-client/DISCLAIMER.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Apache Curator is an effort undergoing incubation at the Apache Software
-Foundation (ASF), sponsored by the Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness
-or stability of the code, it does indicate that the project has yet to be
-fully endorsed by the ASF.


Mime
View raw message