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
> 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.