akka.annotation.InternalStableApi Maven / Gradle / Ivy
/*
* Copyright (C) 2017-2020 Lightbend Inc.
*/
package akka.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Marks APIs that are considered internal to Akka and should not be accessed by user code but that
* are used across Akka project boundaries and therefore shouldn't be changed without considering
* possible usage outside of the Akka core modules.
*
* If a method/class annotated with this annotation is part of a public API and has the Scala
* {@code private[akka]} access restriction, which leads to a public method from Java, there should
* be a javadoc/scaladoc comment where the first line MUST include {@code INTERNAL API} in order to
* be easily identifiable from generated documentation. Additional information may be put on the
* same line as the INTERNAL API comment in order to clarify further.
*/
@Documented
@Retention(RetentionPolicy.CLASS) // to be accessible by MiMa
@Target({
ElementType.METHOD,
ElementType.CONSTRUCTOR,
ElementType.FIELD,
ElementType.TYPE,
ElementType.PACKAGE
})
public @interface InternalStableApi {}