diff --git a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceAudience.java b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceAudience.java
index dac0e6f34..934c0896a 100644
--- a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceAudience.java
+++ b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceAudience.java
@@ -46,7 +46,7 @@
@InterfaceAudience.Public
@InterfaceStability.Evolving
-public class InterfaceAudience {
+public final class InterfaceAudience {
/**
* Intended for use by any project or application.
*/
@@ -61,6 +61,10 @@ public class InterfaceAudience {
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface LimitedPrivate {
+ /**
+ * The list of projects with access.
+ * @return project names
+ */
String[] value();
}
@@ -71,5 +75,6 @@ public class InterfaceAudience {
@Retention(RetentionPolicy.RUNTIME)
public @interface Private { }
- private InterfaceAudience() { } // Audience can't exist on its own
+ /** Audience can't exist on its own. */
+ private InterfaceAudience() { }
}
diff --git a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceStability.java b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceStability.java
index af7549ff2..418c245c1 100644
--- a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceStability.java
+++ b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/InterfaceStability.java
@@ -21,25 +21,29 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
-import org.apache.yetus.audience.InterfaceAudience.LimitedPrivate;
-import org.apache.yetus.audience.InterfaceAudience.Private;
-import org.apache.yetus.audience.InterfaceAudience.Public;
-
/**
* Annotation to inform users of how much to rely on a particular package,
* class or method not changing over time. Currently the stability can be
* {@link Stable}, {@link Evolving} or {@link Unstable}.
*
- *
All classes that are annotated with {@link Public} or
- * {@link LimitedPrivate} must have InterfaceStability annotation.
- *
Classes that are {@link Private} are to be considered unstable unless
- * a different InterfaceStability annotation states otherwise.
- *
Incompatible changes must not be made to classes marked as stable.
+ *
All classes that are annotated with
+ * {@link InterfaceAudience.Public} or
+ * {@link InterfaceAudience.LimitedPrivate} must have InterfaceStability
+ * annotation.
+ *
Classes that are {@link InterfaceAudience.Private} are to be
+ * considered unstable unless a different InterfaceStability annotation
+ * states otherwise.
+ *
Incompatible changes must not be made to classes marked as
+ * stable.
*
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class InterfaceStability {
+ /** Default constructor. */
+ public InterfaceStability() {
+ }
+
/**
* Can evolve while retaining compatibility for minor release boundaries.
* can break compatibility only at major release (ie. at m.0).
diff --git a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/tools/ExcludePrivateAnnotationsStandardDoclet.java b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/tools/ExcludePrivateAnnotationsStandardDoclet.java
index f64599967..1b25286d8 100644
--- a/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/tools/ExcludePrivateAnnotationsStandardDoclet.java
+++ b/audience-annotations-component/audience-annotations/src/main/java/org/apache/yetus/audience/tools/ExcludePrivateAnnotationsStandardDoclet.java
@@ -25,7 +25,6 @@
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
-import java.util.TreeSet;
/**
* A {@link jdk.javadoc.doclet.Doclet}
@@ -33,26 +32,65 @@
* {@link org.apache.yetus.audience.InterfaceAudience.Private} or
* {@link org.apache.yetus.audience.InterfaceAudience.LimitedPrivate}.
* It delegates to the Standard Doclet, and takes the same options.
+ * Subclasses may override {@link #getName()}, {@link #getSupportedOptions()},
+ * and {@link #run(DocletEnvironment)} to customize behavior.
*/
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class ExcludePrivateAnnotationsStandardDoclet extends StandardDoclet {
- protected DocletEnvironmentProcessor processor = new DocletEnvironmentProcessor();
+ /** Default constructor. */
+ public ExcludePrivateAnnotationsStandardDoclet() {
+ super();
+ }
+
+ /** The doclet environment processor. */
+ // CHECKSTYLE:OFF VisibilityModifier - protected for subclass API compatibility
+ protected DocletEnvironmentProcessor processor =
+ new DocletEnvironmentProcessor();
+ // CHECKSTYLE:ON VisibilityModifier
+
+ /**
+ * Returns the processor used to filter the doclet environment.
+ * @return the doclet environment processor
+ */
+ protected DocletEnvironmentProcessor getProcessor() {
+ return processor;
+ }
+ /**
+ * {@inheritDoc}
+ * Returns the name of this doclet.
+ * Subclasses should override to return a distinct name.
+ * @return doclet name
+ */
@Override
public String getName() {
return "ExcludePrivateAnnotationsStandard";
}
+ /**
+ * {@inheritDoc}
+ * Returns the supported options, including stability filter options.
+ * Subclasses may override to add or remove options.
+ * @return set of supported options
+ */
@Override
public Set