Repository: hive Updated Branches: refs/heads/master f69fcce10 -> 13814aa42
HIVE-17743: Add InterfaceAudience and InterfaceStability annotations for Thrift generated APIs ADDENDUM: add missing files Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/13814aa4 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/13814aa4 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/13814aa4 Branch: refs/heads/master Commit: 13814aa427956172e6d6a32f18f9d0cceece6140 Parents: f69fcce Author: Zoltan Haindrich <k...@rxd.hu> Authored: Thu Oct 26 12:57:45 2017 +0200 Committer: Zoltan Haindrich <k...@rxd.hu> Committed: Thu Oct 26 13:05:49 2017 +0200 ---------------------------------------------------------------------- .../classification/InterfaceAudience.java | 45 +++++++++++++++++++ .../classification/InterfaceStability.java | 46 ++++++++++++++++++++ 2 files changed, 91 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/13814aa4/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceAudience.java ---------------------------------------------------------------------- diff --git a/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceAudience.java b/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceAudience.java new file mode 100644 index 0000000..1334ed6 --- /dev/null +++ b/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceAudience.java @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.common.classification; + +import java.lang.annotation.Documented; + +/** + * Annotation to inform users of a package, class or method's intended audience. + */ +public class InterfaceAudience { + /** + * Intended for use by any project or application. + */ + @Documented public @interface Public {}; + + /** + * Intended only for the project(s) specified in the annotation + */ + @Documented public @interface LimitedPrivate { + String[] value(); + }; + + /** + * Intended for use only within Hive itself. + */ + @Documented public @interface Private {}; + + private InterfaceAudience() {} // Audience can't exist on its own +} + http://git-wip-us.apache.org/repos/asf/hive/blob/13814aa4/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceStability.java ---------------------------------------------------------------------- diff --git a/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceStability.java b/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceStability.java new file mode 100644 index 0000000..2a12806 --- /dev/null +++ b/classification/src/java/org/apache/hadoop/hive/common/classification/InterfaceStability.java @@ -0,0 +1,46 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.hadoop.hive.common.classification; + +import java.lang.annotation.Documented; + +/** + * Annotation to inform users of how much to rely on a particular package, + * class or method not changing over time. + */ +public class InterfaceStability { + /** + * Can evolve while retaining compatibility for minor release boundaries.; + * can break compatibility only at major release (ie. at m.0). + */ + @Documented + public @interface Stable {}; + + /** + * Evolving, but can break compatibility at minor release (i.e. m.x) + */ + @Documented + public @interface Evolving {}; + + /** + * No guarantee is provided as to reliability or stability across any + * level of release granularity. + */ + @Documented + public @interface Unstable {}; +}