[
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
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 in 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: Task
> Reporter: Chia-Ping Tsai
> Assignee: Chia-Ping Tsai
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: HBASE-19713.branch-2.v0.patch, HBASE-19713.v0.patch
>
>
> Make sure TestInterfaceAudienceAnnotations pass before 2.0 release.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)