* 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().
