1 /*
2 * Copyright 2016 The Netty Project
3 *
4 * The Netty Project licenses this file to you under the Apache License,
5 * version 2.0 (the "License"); you may not use this file except in compliance
6 * with the License. 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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16 package io.netty.util.internal;
17
18 import java.lang.annotation.Documented;
19 import java.lang.annotation.ElementType;
20 import java.lang.annotation.Retention;
21 import java.lang.annotation.RetentionPolicy;
22 import java.lang.annotation.Target;
23
24 /**
25 * Indicates a public API that can change at any time (even in minor/bugfix releases).
26 *
27 * Usage guidelines:
28 *
29 * <ol>
30 * <li>Is not needed for things located in *.internal.* packages</li>
31 * <li>Only public acessible classes/interfaces must be annotated</li>
32 * <li>If this annotation is not present the API is considered stable and so no backward compatibility can be
33 * broken in a non-major release!</li>
34 * </ol>
35 */
36 @Retention(RetentionPolicy.SOURCE)
37 @Target({
38 ElementType.ANNOTATION_TYPE,
39 ElementType.CONSTRUCTOR,
40 ElementType.FIELD,
41 ElementType.METHOD,
42 ElementType.PACKAGE,
43 ElementType.TYPE
44 })
45 @Documented
46 public @interface UnstableApi {
47 }