Skip to content

Commit 13814aa

Browse files
committed
HIVE-17743: Add InterfaceAudience and InterfaceStability annotations for Thrift generated APIs ADDENDUM: add missing files
1 parent f69fcce commit 13814aa

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
package org.apache.hadoop.hive.common.classification;
19+
20+
import java.lang.annotation.Documented;
21+
22+
/**
23+
* Annotation to inform users of a package, class or method's intended audience.
24+
*/
25+
public class InterfaceAudience {
26+
/**
27+
* Intended for use by any project or application.
28+
*/
29+
@Documented public @interface Public {};
30+
31+
/**
32+
* Intended only for the project(s) specified in the annotation
33+
*/
34+
@Documented public @interface LimitedPrivate {
35+
String[] value();
36+
};
37+
38+
/**
39+
* Intended for use only within Hive itself.
40+
*/
41+
@Documented public @interface Private {};
42+
43+
private InterfaceAudience() {} // Audience can't exist on its own
44+
}
45+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
package org.apache.hadoop.hive.common.classification;
19+
20+
import java.lang.annotation.Documented;
21+
22+
/**
23+
* Annotation to inform users of how much to rely on a particular package,
24+
* class or method not changing over time.
25+
*/
26+
public class InterfaceStability {
27+
/**
28+
* Can evolve while retaining compatibility for minor release boundaries.;
29+
* can break compatibility only at major release (ie. at m.0).
30+
*/
31+
@Documented
32+
public @interface Stable {};
33+
34+
/**
35+
* Evolving, but can break compatibility at minor release (i.e. m.x)
36+
*/
37+
@Documented
38+
public @interface Evolving {};
39+
40+
/**
41+
* No guarantee is provided as to reliability or stability across any
42+
* level of release granularity.
43+
*/
44+
@Documented
45+
public @interface Unstable {};
46+
}

0 commit comments

Comments
 (0)