[ 
https://issues.apache.org/jira/browse/HIVE-17129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16105359#comment-16105359
 ] 

Sahil Takiar commented on HIVE-17129:
-------------------------------------

Technically users can use whatever Hive classes they want, as long as the class 
declaration is public, e.g. {{public class CreateTableEvent}}. The annotations 
don't actually stop users from using a class, they are just there to inform 
users what classes they *should* (or shouldn't) be using.

If {{MetaStoreEventListener}} should be public, then I suggest we make 
{{ListenerEvent}} and all classes used by {{MetaStoreEventListener}} public 
too. Generally, if an interface should be marked as Public, then all classes 
used by the interface should also be Public. For example, if we make 
{{MetaStoreEventListener}} then {{ConfigChangeEvent}}, {{CreateTableEvent}}, 
{{DropTableEvent}}, etc. should be Public too.

> Increase usage of InterfaceAudience and InterfaceStability annotations 
> -----------------------------------------------------------------------
>
>                 Key: HIVE-17129
>                 URL: https://issues.apache.org/jira/browse/HIVE-17129
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Sahil Takiar
>            Assignee: Sahil Takiar
>
> The {{InterfaceAudience}} and {{InterfaceStability}} annotations were added a 
> while ago to mark certain classes as available for public use. However, they 
> were only added to a few classes. The annotations are largely missing for 
> major APIs such as the SerDe and UDF APIs. We should update these interfaces 
> to use these annotations.
> When done in conjunction with HIVE-17130, we should have an automated way to 
> prevent backwards incompatible changes to Hive APIs.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to