[
https://issues.apache.org/jira/browse/HBASE-29864?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18055751#comment-18055751
]
Duo Zhang commented on HBASE-29864:
-----------------------------------
I prefer we just mark interfaces as IA.LimitedPrivate, if the current interface
is not enough, let's change the interface. Marking an implementation class as
IA.LimitedPrivate will increase the maintaining difficulty for HBase's
developers...
> Standardize KeyValueScanner interface and all implementations to
> LimitedPrivate
> -------------------------------------------------------------------------------
>
> Key: HBASE-29864
> URL: https://issues.apache.org/jira/browse/HBASE-29864
> Project: HBase
> Issue Type: Improvement
> Components: Scanners
> Reporter: Himanshu Gwalani
> Assignee: Himanshu Gwalani
> Priority: Minor
> Fix For: 2.7.0, 3.0.0-beta-2
>
>
> Currently, StoreFileScanner uses
> @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.PHOENIX)
> while the KeyValueScanner interface and all other implementations use
> @InterfaceAudience.Private.
> This inconsistency should be addressed for API clarity and maintainability.
> *Current State*
> - KeyValueScanner (interface): @InterfaceAudience.Private
> - StoreFileScanner:
> @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.PHOENIX)
> - All other implementations: @InterfaceAudience.Private
> *Proposed Change*
> Change the KeyValueScanner interface and ALL implementations to:
> @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.PHOENIX)
> *Rationale*
> 1. Phoenix requires direct access to scanner implementations
> (StoreFileScanner already has this)
> 2. Phoenix code references implementations through the KeyValueScanner
> interface type, so the interface must also be LimitedPrivate(PHOENIX) for
> consistency
> 3. All implementations should have the same audience annotation as the
> interface for maintainability
--
This message was sent by Atlassian Jira
(v8.20.10#820010)