Skip to content

Commit eb8254e

Browse files
Merge pull request #1905 from benjchristensen/lifecycle-annotations
Beta & Experimental Annotations
2 parents 702a8d3 + 04c0698 commit eb8254e

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package rx.annotations;
2+
3+
/*
4+
* Copyright (C) 2010 The Guava Authors
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* 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+
* Originally from https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/annotations/Beta.java
19+
*/
20+
21+
import java.lang.annotation.Documented;
22+
import java.lang.annotation.ElementType;
23+
import java.lang.annotation.Retention;
24+
import java.lang.annotation.RetentionPolicy;
25+
import java.lang.annotation.Target;
26+
27+
/**
28+
* Signifies that a public API (public class, method or field) is subject to
29+
* incompatible changes, or even removal, in a future release. An API bearing
30+
* this annotation is exempt from any compatibility guarantees made by its
31+
* containing library. Note that the presence of this annotation implies nothing
32+
* about the quality or performance of the API in question, only the fact that
33+
* it is not "API-frozen."
34+
*
35+
* <p>It is generally safe for <i>applications</i> to depend on beta APIs, at
36+
* the cost of some extra work during upgrades. However it is generally
37+
* inadvisable for <i>libraries</i> (which get included on users' CLASSPATHs,
38+
* outside the library developers' control) to do so.
39+
*
40+
**/
41+
@Retention(RetentionPolicy.CLASS)
42+
@Target({
43+
ElementType.ANNOTATION_TYPE,
44+
ElementType.CONSTRUCTOR,
45+
ElementType.FIELD,
46+
ElementType.METHOD,
47+
ElementType.TYPE })
48+
@Documented
49+
@Beta
50+
public @interface Beta {
51+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package rx.annotations;
2+
3+
/*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*
16+
* Inspired from https://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/annotations/Beta.java
17+
*/
18+
19+
import java.lang.annotation.Documented;
20+
import java.lang.annotation.ElementType;
21+
import java.lang.annotation.Retention;
22+
import java.lang.annotation.RetentionPolicy;
23+
import java.lang.annotation.Target;
24+
25+
/**
26+
* Signifies that a public API (public class, method or field) is will almost certainly
27+
* be changed or removed in a future release. An API bearing this annotation should not
28+
* be used or relied upon in production code. APIs exposed with this annotation exist
29+
* to allow broad testing and feedback on experimental features.
30+
**/
31+
@Retention(RetentionPolicy.CLASS)
32+
@Target({
33+
ElementType.ANNOTATION_TYPE,
34+
ElementType.CONSTRUCTOR,
35+
ElementType.FIELD,
36+
ElementType.METHOD,
37+
ElementType.TYPE })
38+
@Documented
39+
@Experimental
40+
public @interface Experimental {
41+
}

0 commit comments

Comments
 (0)