diff --git a/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java b/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java index 064e4e1fd92..6d63ae24f85 100644 --- a/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java +++ b/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java @@ -57,6 +57,11 @@ public @interface PreviewFeature { */ public Feature feature(); + /** + * A reflective preview API may be used without causing a compilation error + * when preview features are disabled (JLS {@jls 1.5.1}), but still causes + * a preview warning. + */ public boolean reflective() default false; /** @@ -71,7 +76,14 @@ public @interface PreviewFeature { @JEP(number=538, title="PEM Encodings of Cryptographic Objects", status="Third Preview") PEM_API, - LANGUAGE_MODEL, + /** + * Indicates a preview API exists to allow access to the environment + * where all preview features of the current Java SE release are enabled. + * Such an API is usually {@link #reflective()} and never intended to + * become permanent. This "feature" does not have a JEP and its APIs + * are not displayed in the "Preview API" page in Javadoc output. + */ + PREVIEW_SUPPORT, /** * A key for testing. */ diff --git a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitorPreview.java index c4257b2e6f1..70a78527b2d 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitorPreview.java @@ -51,7 +51,7 @@ import javax.annotation.processing.ProcessingEnvironment; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public abstract class AbstractAnnotationValueVisitorPreview extends AbstractAnnotationValueVisitor14 { /** diff --git a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitorPreview.java index 96651948d45..df2135e2f84 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitorPreview.java @@ -54,7 +54,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public abstract class AbstractElementVisitorPreview extends AbstractElementVisitor14 { /** * Constructor for concrete subclasses to call. diff --git a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitorPreview.java index 2bac66f862d..c0981dfb811 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitorPreview.java @@ -54,7 +54,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public abstract class AbstractTypeVisitorPreview extends AbstractTypeVisitor14 { /** * Constructor for concrete subclasses to call. diff --git a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorPreview.java index bca2a26ef29..e4e913c60ab 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitorPreview.java @@ -68,7 +68,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class ElementKindVisitorPreview extends ElementKindVisitor14 { /** * Constructor for concrete subclasses; uses {@code null} for the diff --git a/src/java.compiler/share/classes/javax/lang/model/util/ElementScannerPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/ElementScannerPreview.java index 35ab7b49ec4..e6595b1d2d9 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScannerPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScannerPreview.java @@ -82,7 +82,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class ElementScannerPreview extends ElementScanner14 { /** * Constructor for concrete subclasses; uses {@code null} for the diff --git a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitorPreview.java index b43226caea1..aa48e6c50d4 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitorPreview.java @@ -59,7 +59,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class SimpleAnnotationValueVisitorPreview extends SimpleAnnotationValueVisitor14 { /** * Constructor for concrete subclasses; uses {@code null} for the diff --git a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitorPreview.java index 3d58fb3b040..ab9462f03e7 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitorPreview.java @@ -62,7 +62,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class SimpleElementVisitorPreview extends SimpleElementVisitor14 { /** * Constructor for concrete subclasses; uses {@code null} for the diff --git a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitorPreview.java index 5b0db838fbb..816bf85aefe 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitorPreview.java @@ -63,7 +63,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class SimpleTypeVisitorPreview extends SimpleTypeVisitor14 { /** * Constructor for concrete subclasses; uses {@code null} for the diff --git a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitorPreview.java b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitorPreview.java index b23a27cd113..01691bd92ef 100644 --- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitorPreview.java +++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitorPreview.java @@ -67,7 +67,7 @@ import static javax.lang.model.SourceVersion.*; * @since 23 */ @SupportedSourceVersion(RELEASE_28) -@PreviewFeature(feature=PreviewFeature.Feature.LANGUAGE_MODEL, reflective=true) +@PreviewFeature(feature=PreviewFeature.Feature.PREVIEW_SUPPORT, reflective=true) public class TypeKindVisitorPreview extends TypeKindVisitor14 { /** * Constructor for concrete subclasses to call; uses {@code null} diff --git a/test/langtools/jdk/javadoc/doclet/testPreview/api/preview/NoPreview.java b/test/langtools/jdk/javadoc/doclet/testPreview/api/preview/NoPreview.java index b4ff5f0da00..0cae5744f62 100644 --- a/test/langtools/jdk/javadoc/doclet/testPreview/api/preview/NoPreview.java +++ b/test/langtools/jdk/javadoc/doclet/testPreview/api/preview/NoPreview.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2022, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -36,6 +36,6 @@ public class NoPreview { public static class T {} // Preview support feature without JEP should not be listed - @PreviewFeature(feature=Feature.LANGUAGE_MODEL) + @PreviewFeature(feature=Feature.PREVIEW_SUPPORT) public void supportMethod() {} }