You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Chia-Ping Tsai (JIRA)" <ji...@apache.org> on 2018/03/08 04:06:00 UTC

[jira] [Updated] (HBASE-19713) Enable TestInterfaceAudienceAnnotations

     [ https://issues.apache.org/jira/browse/HBASE-19713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chia-Ping Tsai updated HBASE-19713:
-----------------------------------
    Release Note: 
All classes, which are in 
a) hbase-server,
b) hbase-client, 
c) hbase-replication,
d) hbase-mapreduce,
e) hbase-http,
f) hbase-thrift,
g) hbase-common,
h) hbase-procedure,
i) hbase-endpoint,
j) hbase-rest,
k) and hbase-zookeeper,
must obey the following rules.
1. Public class MUST have the InterfaceAudience annotation
2. The class having InterfaceAudience.Public must NOT have InterfaceStability
3. The class having InterfaceAudience.LimitedPrivate MUST have InterfaceStability unless InterfaceAudience.LimitedPrivate consists of HBaseInterfaceAudience.Tools or HBaseInterfaceAudience.Config
4. All classes extending the o.a.h.u.Tool must have InterfaceAudience.LimitedPrivate and HBaseInterfaceAudience.Tools annotations
5. The Public class having InterfaceAudience.Public/LimitedPrivate CAN’T use protobuf object as parameter and return type unless the class is denoted as either HBaseInterfaceAudience.TOOLS or HBaseInterfaceAudience.CONFIG
6. All Test** class should have a small/medium/large category

Add two annotations
1. HBaseInterfaceAudience.Hive - The TokenUtil is exposed as Public for Hive
2. HBaseInterfaceAudience.ProtobufExposed- used to denote the classes which are allowed to use protobuf object in return type or parameter

TestInterfaceAudienceAnnotations is moved to hbase-example module since TestInterfaceAudienceAnnotations have to "see" other modules from the classpath.  The hbase-example module can add dependencies freely.

  was:
All classes, which are in 
a) hbase-server,
b) hbase-client, 
c) hbase-replication,
d) hbase-mapreduce,
e) hbase-http,
f) hbase-thrift,
g) hbase-common,
h) hbase-procedure,
i) hbase-endpoint,
j) hbase-rest,
k) and hbase-zookeeper,
must obey the following rules.
1. Public class MUST have the InterfaceAudience annotation
2. The class having InterfaceAudience.Public must NOT have InterfaceStability
3. The class having InterfaceAudience.LimitedPrivate MUST have InterfaceStability unless InterfaceAudience.LimitedPrivate consists of HBaseInterfaceAudience.Tools or HBaseInterfaceAudience.Config
4. All classes extending the o.a.h.u.Tool must have InterfaceAudience.LimitedPrivate and HBaseInterfaceAudience.Tools annotations
5. The Public class having InterfaceAudience.Public/LimitedPrivate CAN’T use protobuf object as parameter and return type unless the class is denoted as either HBaseInterfaceAudience.TOOLS or HBaseInterfaceAudience.CONFIG

Add two annotations
1. HBaseInterfaceAudience.Hive - The TokenUtil is exposed as Public for Hive
2. HBaseInterfaceAudience.ProtobufExposed- used to denote the classes which are allowed to use protobuf object in return type or parameter

TestInterfaceAudienceAnnotations is moved to hbase-example module since TestInterfaceAudienceAnnotations have to "see" other modules from the classpath.  The hbase-example module can add dependencies freely.


> Enable TestInterfaceAudienceAnnotations
> ---------------------------------------
>
>                 Key: HBASE-19713
>                 URL: https://issues.apache.org/jira/browse/HBASE-19713
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: HBASE-19713.branch-2.v0.patch, HBASE-19713.branch-2.v1.patch, HBASE-19713.branch-2.v2.patch, HBASE-19713.v0.patch
>
>
> Make sure TestInterfaceAudienceAnnotations pass before 2.0 release.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)