[
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)