[ https://issues.apache.org/jira/browse/HBASE-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12792704#action_12792704 ]
Paul Smith commented on HBASE-2051: ----------------------------------- :) Yeah comments could definitely be added, hopefully the code is self-documenting in most ways, but always good to add some more, obviously test cases would be essential. Personally I think this sort of pattern has high value within HBase itself and would (hopefully) lend to more people being able to get up to speed quicker with Hbase. The critical issue is this project's current dependency set (Spring and Google Collections). While both ASL licensed, adding dependencies in a project can be controversial. Ideally yes, Hadoop and Hbase final versions should be in the Maven repo, I'm really not sure why it's not published, that would really help, I can't imagine that's very hard ..? I don't mind starting this of in Google Code (has advantage of quicker release cycle), but that may inhibit overall usage and development as well. happy to discuss further. > Use builder pattern to improve usability of client API > ------------------------------------------------------ > > Key: HBASE-2051 > URL: https://issues.apache.org/jira/browse/HBASE-2051 > Project: Hadoop HBase > Issue Type: Improvement > Reporter: Andrew Purtell > Fix For: 0.21.0 > > Attachments: aconex-hbase-utils.zip > > > From Paul Smith up on hbase-user@: > {quote} > I think a good collection of useful builders and utilities that handle the > 80% case will help HBase gain much more traction. As an person starting with > HBase, there are a lot of concepts to get, Bytes definitely get in the way of > seeing the real underlying patterns. I'm a total believer in understanding > the internals to get the best out of a product, but that often comes after > experimentation, and these high-level libraries grease the wheels for faster > 'grok'ing the concepts. > Thinking out loud here, but something like this may be useful: > {code} > PutBuilder builder = new PutBuilder(hTable); > // first Row > builder.withRowKey(1stRowKey).withColumnFamily("foo") > .put("columnA", valueA) > .put("columnB",valueB); > // secondRow > builder.withRowKey(2ndRowKey).withColumnFamily("eek") > .put("columnC", valueC) > .put("columnD",valueD); > .. > builder.putAll(); > {code} > {quote} > Perhaps we could use the Builder pattern to achieve simplification (e.g. > HBASE-1990) and API support for multicalls (HBASE-1986, HBASE-1845) at the > same time. Method variants should accept byte[] or String for keys or values, > and lists. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.