Jakob Homan updated ZOOKEEPER-139:

    Attachment: ZOOKEEPER-139.patch

The named constants in the EventWatcher for KeeperState and EventType are 
particularly confusing.  I've created enums for them, which simplifies and 
clarifies the client-side code quite a bit.  As usual, the rub is with Jute and 
enums.  Since there is no way to use enums in Jute, I changed the original 
generated WatcherEvent class to a wrapper for these values, which are wrapped 
and unwrapped right before/after transmission from server/client.  The actual 
new WatcherEvent class is used in all interactions in the code.  If at some 
point, a different serialization protocol is used that supports enums, the 
wrapper class can be disposed of.

This patch:
   * Creates enums for KeeperState and EventType that were previously named 
constants in Watcher.java
   * Provides for conversion of these enums to/from integer values for sending 
over the wire
   * Creates a full-fledged WatcherEvent class.  The previous Jute-generated 
WatcherEvent class becomes a wrapper for the enums during transmission.
   * Changes all references to the old named constants to the shiny new enums.
   * Provides unit tests for everything new.

While doing this, I had to resolve ZOOKEEPER-18.  Since it looked like a bug, I 
eliminated the KeeperStateChanged value as it doesn't appear anywhere else in 
the source code.  

Let me know if this looks good.  If so I'll start on converting the permissions.

> Create Enums for WatcherEvent's KeeperState and EventType
> ---------------------------------------------------------
>                 Key: ZOOKEEPER-139
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-139
>             Project: Zookeeper
>          Issue Type: Sub-task
>    Affects Versions: 3.0.0
>            Reporter: Jakob Homan
>            Assignee: Jakob Homan
>             Fix For: 3.0.0
>         Attachments: ZOOKEEPER-139.patch

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to