Repository: hive Updated Branches: refs/heads/master f5091f55a -> 1c1ad5e73
HIVE-17179: Add InterfaceAudience and InterfaceStability annotations for Hook APIs (Sahil Takiar, reviewed by Aihua Xu) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/1c1ad5e7 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/1c1ad5e7 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/1c1ad5e7 Branch: refs/heads/master Commit: 1c1ad5e738fa6110c44a8c05eb33963ce56914e0 Parents: f5091f5 Author: Sahil Takiar <takiar.sa...@gmail.com> Authored: Fri Jul 28 11:29:55 2017 -0700 Committer: Sahil Takiar <stak...@cloudera.com> Committed: Fri Jul 28 11:29:55 2017 -0700 ---------------------------------------------------------------------- .../hadoop/hive/metastore/hooks/JDOConnectionURLHook.java | 4 ++++ ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java | 4 ++++ .../org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java | 4 ++++ .../apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java | 5 +++++ ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java | 6 ++++++ ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java | 4 ++++ ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java | 4 ++++ ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java | 4 ++++ .../org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java | 5 +++++ .../apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java | 4 ++++ .../hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java | 5 +++++ .../apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java | 4 ++++ .../hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java | 4 ++++ .../org/apache/hive/service/cli/session/HiveSessionHook.java | 4 ++++ 14 files changed, 61 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/metastore/src/java/org/apache/hadoop/hive/metastore/hooks/JDOConnectionURLHook.java ---------------------------------------------------------------------- diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/hooks/JDOConnectionURLHook.java b/metastore/src/java/org/apache/hadoop/hive/metastore/hooks/JDOConnectionURLHook.java index 4fa841b..a1a2fb9 100644 --- a/metastore/src/java/org/apache/hadoop/hive/metastore/hooks/JDOConnectionURLHook.java +++ b/metastore/src/java/org/apache/hadoop/hive/metastore/hooks/JDOConnectionURLHook.java @@ -19,12 +19,16 @@ package org.apache.hadoop.hive.metastore.hooks; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; /** * JDOConnectURLHook is used to get the URL that JDO uses to connect to the * database that stores the metastore data. Classes implementing this must be * thread-safe (for Thrift server). */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface JDOConnectionURLHook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java b/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java index 4dafeac..94fde3b 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHook.java @@ -18,6 +18,8 @@ package org.apache.hadoop.hive.ql; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.hooks.Hook; /** @@ -29,6 +31,8 @@ import org.apache.hadoop.hive.ql.hooks.Hook; * Note that the lifetime of an instantiated hook object is scoped to * the analysis of a single statement; hook instances are never reused. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface HiveDriverRunHook extends Hook { /** * Invoked before Hive begins any processing of a command in the Driver, http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java index 777730b..ce2b28d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/HiveDriverRunHookContext.java @@ -19,11 +19,15 @@ package org.apache.hadoop.hive.ql; import org.apache.hadoop.conf.Configurable; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; /** * Context information provided by Hive to implementations of * HiveDriverRunHook. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface HiveDriverRunHookContext extends Configurable{ public String getCommand(); public void setCommand(String command); http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java index 2c75878..aa3b88a 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/ExecuteWithHookContext.java @@ -18,12 +18,17 @@ package org.apache.hadoop.hive.ql.hooks; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; + /** * * ExecuteWithHookContext is a new interface that the Pre/Post Execute Hook can run with the HookContext. * */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface ExecuteWithHookContext extends Hook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java index bd40e4b..fa71c19 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/Hook.java @@ -17,11 +17,17 @@ */ package org.apache.hadoop.hive.ql.hooks; + +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; + /** * * The new interface for all the pre execute hooks and post execute hooks * */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface Hook { } http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java index 97ad3c7..7b61730 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/HookContext.java @@ -25,6 +25,8 @@ import java.util.Map; import java.util.Set; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.ql.QueryInfo; import org.apache.hadoop.hive.ql.QueryPlan; @@ -41,6 +43,8 @@ import org.apache.hadoop.yarn.api.records.ApplicationId; * Hook Context keeps all the necessary information for all the hooks. * New implemented hook can get the query plan, job conf and the list of all completed tasks from this hook context */ +@InterfaceAudience.Public +@InterfaceStability.Stable public class HookContext { static public enum HookType { http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java index 453abfa..466450e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PostExecute.java @@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.hooks; import java.util.Set; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.security.UserGroupInformation; @@ -27,6 +29,8 @@ import org.apache.hadoop.security.UserGroupInformation; * The post execute hook interface. A list of such hooks can be configured to be * called after compilation and before execution. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface PostExecute extends Hook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java index 8ca9b1b..bc16334 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/PreExecute.java @@ -20,6 +20,8 @@ package org.apache.hadoop.hive.ql.hooks; import java.util.Set; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.security.UserGroupInformation; @@ -27,6 +29,8 @@ import org.apache.hadoop.security.UserGroupInformation; * The pre execute hook interface. A list of such hooks can be configured to be * called after compilation and before execution. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface PreExecute extends Hook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java index be57452..3c04fcc 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHook.java @@ -18,9 +18,14 @@ package org.apache.hadoop.hive.ql.hooks; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; + /** * A type of hook which triggers before query compilation and after query execution. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface QueryLifeTimeHook extends Hook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java index c599173..b0a9f96 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookContext.java @@ -18,11 +18,15 @@ package org.apache.hadoop.hive.ql.hooks; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.conf.HiveConf; /** * Hook context for {@link QueryLifeTimeHook}. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface QueryLifeTimeHookContext { /** * Get the current Hive configuration http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java index 787590d..afdf527 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/QueryLifeTimeHookWithParseHooks.java @@ -18,9 +18,14 @@ package org.apache.hadoop.hive.ql.hooks; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; + /** * Extension of {@link QueryLifeTimeHook} that has hooks for pre and post parsing of a query. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface QueryLifeTimeHookWithParseHooks extends QueryLifeTimeHook { /** http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java index d1e761b..08aa7e0 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHook.java @@ -21,6 +21,8 @@ package org.apache.hadoop.hive.ql.parse; import java.io.Serializable; import java.util.List; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.exec.Task; import org.apache.hadoop.hive.ql.hooks.Hook; @@ -36,6 +38,8 @@ import org.apache.hadoop.hive.ql.hooks.Hook; * Note that the lifetime of an instantiated hook object is scoped to * the analysis of a single statement; hook instances are never reused. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface HiveSemanticAnalyzerHook extends Hook { /** * Invoked before Hive performs its own semantic analysis on http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java index 166375c..0481b48 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveSemanticAnalyzerHookContext.java @@ -21,6 +21,8 @@ package org.apache.hadoop.hive.ql.parse; import java.util.Set; import org.apache.hadoop.conf.Configurable; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.hooks.ReadEntity; import org.apache.hadoop.hive.ql.hooks.WriteEntity; import org.apache.hadoop.hive.ql.metadata.Hive; @@ -31,6 +33,8 @@ import org.apache.hadoop.hive.ql.plan.HiveOperation; * Context information provided by Hive to implementations of * HiveSemanticAnalyzerHook. */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface HiveSemanticAnalyzerHookContext extends Configurable{ /** * @return the Hive db instance; hook implementations can use this for http://git-wip-us.apache.org/repos/asf/hive/blob/1c1ad5e7/service/src/java/org/apache/hive/service/cli/session/HiveSessionHook.java ---------------------------------------------------------------------- diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionHook.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionHook.java index 06388cc..5a7b634 100644 --- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionHook.java +++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionHook.java @@ -18,6 +18,8 @@ package org.apache.hive.service.cli.session; +import org.apache.hadoop.hive.common.classification.InterfaceAudience; +import org.apache.hadoop.hive.common.classification.InterfaceStability; import org.apache.hadoop.hive.ql.hooks.Hook; import org.apache.hive.service.cli.HiveSQLException; @@ -27,6 +29,8 @@ import org.apache.hive.service.cli.HiveSQLException; * when session manager starts a new session * */ +@InterfaceAudience.Public +@InterfaceStability.Stable public interface HiveSessionHook extends Hook { /**