Henry Robinson commented on ZOOKEEPER-679:

Hi Aaron - 

The great thing about open source, and the relatively permissive Apache license 
in particular, is that Chris is free to copy any and all of ZK into github and 
continue with a development process that he finds more agreeable. It is 
completely kosher to do this. As Chris says, you are welcome to contribute, 
fork or ignore it. 

As far as I am concerned, contrib is an excellent place to put projects that 
directly add more functionality to their parent project (the language bindings 
and this patch are good examples), but not a great place to store standalone 
projects that simply leverage the parent (an example might be a DNS server, 
written in ZooKeeper). This is a needfully vague distinction, and others will 
have different opinions.

I do not know specifically to what Chris is referring when he talks about an 
'onerous' patch process, but I speculate he might mean that the role of 
'committer' - someone who is gating the submission of patches - makes it harder 
to get your patches available for others to use quickly. Of course there are 
also benefits of this approach, such as a ready collection of experienced users 
on hand to offer advice and the relatively high standard for patches to be 
accepted to trunk arguably improves code quality. What's great is the two 
development styles are not mutually exclusive, and can, ideally, benefit from 
each other. If you are having difficulties with, or are frustrated by, the 
patch submission process here, ask for help. The community here is very happy 
to help, and we'll do what we can to address pain points. 

As for this patch, I'm happy it's going into contrib - users sometimes find 
ZooKeeper difficult to program to, and examples and new abstractions are always 
welcome. Keeping this patch in the main repository means that newcomers to 
ZooKeeper will find it more easily. Thanks for the contribution!


> Offers a node design for interacting with the Java Zookeeper client.
> --------------------------------------------------------------------
>                 Key: ZOOKEEPER-679
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-679
>             Project: Zookeeper
>          Issue Type: New Feature
>          Components: contrib, java client, tests
>            Reporter: Aaron Crow
>            Assignee: Aaron Crow
>             Fix For: 3.4.0
>         Attachments: ZOOKEEPER-679.patch, ZOOKEEPER-679.patch, 
> ZOOKEEPER-679.patch, ZOOKEEPER-679.patch
> Following up on my conversations with Patrick and Mahadev 
> (http://n2.nabble.com/Might-I-contribute-a-Node-design-for-the-Java-API-td4567695.html#a4567695).
> This patch includes the implementation as well as unit tests. The first unit 
> test gives a simple high level demo of using the node API.
> The current implementation is simple and is only what I need withe current 
> project I am working on. However, I am very open to any and all suggestions 
> for improvement.
> This is a proposal to support a simplified node (or File) like API into a 
> Zookeeper tree, by wrapping the Zookeeper Java client. It is similar to 
> Java's File API design.
> Although, I'm trying to make it easier in a few spots. For example, deleting 
> a Node recursively is done by default. I also lean toward resolving 
> Exceptions "under the hood" when it seems appropriate. For example, if you 
> ask a Node if it exists, and its parent doesn't even exist, you just get a 
> false back (rather than a nasty Exception).
> As for watches and ephemeral nodes, my current work does not need these 
> things so I currently have no handling of them. But if potential users of  
> the "Node a.k.a. File" design want these things, I'd be open to supporting 
> them as reasonable.

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