[ https://issues.apache.org/jira/browse/HBASE-18995?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226026#comment-16226026 ]
stack commented on HBASE-18995: ------------------------------- [~mdrob] Annotating on the method-level is unusual in the codebase. Usual is to annotate on the class. Some methods remain annotated Private in CellUtil even after this change but I think the sense is that this is a failing to be fixed. We are having trouble with CellUtil and TagUtil and a profusion of classes colored by access. Annotation by method might help. Background. Much of the alpha-4 project (and before this) is about shutting down access to internals either removing private classes as parameters to Coprocessors or sorting classes by private and public portions (usually returning an Interface that has the public methods but internally we'll use the implementation that allows access to all methods or populating Coprocessor Environments/Context with methods that have been properly santized). This CellUtil (and TagUtil) are a little difficult. Their static methods generally so options are less. A long running project has been about undoing dependence on our internal Cell representation so we can change it one day. There are Factories and Builders if you want to make Cells. We want to steer folks this direction. CellUtil is peppered with methods that are for nought but internal devs and a particular context. Hiding them from non-devs saves them trouble should the format change. > Move methods that are for internal usage from CellUtil to Private util class > ---------------------------------------------------------------------------- > > Key: HBASE-18995 > URL: https://issues.apache.org/jira/browse/HBASE-18995 > Project: HBase > Issue Type: Sub-task > Affects Versions: 2.0.0-alpha-3 > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Priority: Critical > Fix For: 2.0.0-alpha-4 > > Attachments: HBASE-18995-branch-2.002.patch, > HBASE-18995-branch-2.patch, HBASE-18995-branch-2_1.patch, > HBASE-18995-branch-2_1.patch, HBASE-18995-branch-2_1.patch, > HBASE-18995-branch-2_1.patch, HBASE-18995-branch-2_2.patch, > HBASE-18995_002-branch-2.patch, HBASE-18995_002-branch-2.patch, > HBASE-18995_003-branch-2.patch, HBASE-18995_1.patch, HBASE-18995_2.patch, > HBASE-18995_2.patch > > > This was brought up long time back. We need to move some of the public APIs > from CellUtil to internal private Util class because they are used in some > internal flow and does not make sense to have it in a @public exposed Util > class. > The topic again came in HBASE-18945 RB comments also. -- This message was sent by Atlassian JIRA (v6.4.14#64029)