From 176606d0cb9117ca9080261f898cd57339fa5a85 Mon Sep 17 00:00:00 2001
From: Athijegannathan Sundararajan
Date: Tue, 9 Jan 2024 04:36:30 +0000
Subject: [PATCH] 8310995: missing @since tags in 36 jdk.dynalink classes
Reviewed-by: jlaskey, iris, attila
---
.../share/classes/jdk/dynalink/CallSiteDescriptor.java | 1 +
src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java | 1 +
.../share/classes/jdk/dynalink/DynamicLinkerFactory.java | 1 +
src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java | 1 +
src/jdk.dynalink/share/classes/jdk/dynalink/Namespace.java | 1 +
.../share/classes/jdk/dynalink/NamespaceOperation.java | 1 +
.../classes/jdk/dynalink/NoSuchDynamicMethodException.java | 1 +
src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java | 1 +
.../share/classes/jdk/dynalink/RelinkableCallSite.java | 1 +
.../share/classes/jdk/dynalink/SecureLookupSupplier.java | 1 +
.../share/classes/jdk/dynalink/StandardNamespace.java | 1 +
.../share/classes/jdk/dynalink/StandardOperation.java | 1 +
.../share/classes/jdk/dynalink/beans/BeansLinker.java | 1 +
.../classes/jdk/dynalink/beans/MissingMemberHandlerFactory.java | 1 +
.../share/classes/jdk/dynalink/beans/StaticClass.java | 1 +
.../share/classes/jdk/dynalink/linker/ConversionComparator.java | 2 ++
.../share/classes/jdk/dynalink/linker/GuardedInvocation.java | 1 +
.../jdk/dynalink/linker/GuardedInvocationTransformer.java | 1 +
.../classes/jdk/dynalink/linker/GuardingDynamicLinker.java | 1 +
.../jdk/dynalink/linker/GuardingDynamicLinkerExporter.java | 1 +
.../jdk/dynalink/linker/GuardingTypeConverterFactory.java | 1 +
.../share/classes/jdk/dynalink/linker/LinkRequest.java | 1 +
.../share/classes/jdk/dynalink/linker/LinkerServices.java | 1 +
.../classes/jdk/dynalink/linker/MethodHandleTransformer.java | 1 +
.../jdk/dynalink/linker/MethodTypeConversionStrategy.java | 1 +
.../jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java | 1 +
.../dynalink/linker/support/CompositeGuardingDynamicLinker.java | 1 +
.../linker/support/CompositeTypeBasedGuardingDynamicLinker.java | 1 +
.../dynalink/linker/support/DefaultInternalObjectFilter.java | 1 +
.../share/classes/jdk/dynalink/linker/support/Guards.java | 1 +
.../share/classes/jdk/dynalink/linker/support/Lookup.java | 1 +
.../classes/jdk/dynalink/linker/support/SimpleLinkRequest.java | 1 +
.../classes/jdk/dynalink/linker/support/TypeUtilities.java | 1 +
src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java | 1 +
.../jdk/dynalink/support/AbstractRelinkableCallSite.java | 1 +
.../share/classes/jdk/dynalink/support/ChainedCallSite.java | 1 +
.../classes/jdk/dynalink/support/SimpleRelinkableCallSite.java | 1 +
37 files changed, 38 insertions(+)
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java b/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java
index e1e49f22b4c..e47625fb497 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java
@@ -88,6 +88,7 @@ import java.util.function.Supplier;
* the {@code MethodHandles.Lookup} object it carries. This lookup should be used
* to find method handles to set as targets of the call site described by this
* descriptor.
+ * @since 9
*/
public class CallSiteDescriptor extends SecureLookupSupplier {
private final Operation operation;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java
index eb7de0aba75..23f4f7a8122 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java
@@ -141,6 +141,7 @@ import jdk.dynalink.support.SimpleRelinkableCallSite;
* in the above example the {@code parseOperation} method is left unimplemented.
*
*
+ * @since 9
*/
public final class DynamicLinker {
private static final String CLASS_NAME = DynamicLinker.class.getName();
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java
index a34cff5ba12..ed211008566 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java
@@ -105,6 +105,7 @@ import jdk.dynalink.linker.support.TypeUtilities;
* {@link #setClassLoader(ClassLoader) automatically discovered} ones, and
* finally the ones configured with {@link #setFallbackLinkers(List)}; this last
* category usually includes {@link BeansLinker}.
+ * @since 9
*/
public final class DynamicLinkerFactory {
@SuppressWarnings("removal")
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java
index 7563e3946ad..5fe3e96f43e 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java
@@ -106,6 +106,7 @@ import java.util.Objects;
* usually containing the textual representation of the source expression that retrieved the
* callee, e.g. {@code StandardOperation.CALL.named("window.open")}.
*
+ * @since 9
*/
public final class NamedOperation implements Operation {
private final Operation baseOperation;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/Namespace.java b/src/jdk.dynalink/share/classes/jdk/dynalink/Namespace.java
index 69b68d25ffc..8f5e7ede7f6 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/Namespace.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/Namespace.java
@@ -66,6 +66,7 @@ package jdk.dynalink;
* set of standard namespaces with the {@link StandardNamespace} enum. Operations
* that need to specify a namespace they operate on can be expressed using
* {@link NamespaceOperation}.
+ * @since 9
*/
public interface Namespace {
}
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/NamespaceOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/NamespaceOperation.java
index 322767de364..0e047849c2c 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/NamespaceOperation.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/NamespaceOperation.java
@@ -134,6 +134,7 @@ import java.util.Objects;
* StandardNamespace.PROPERTY)
* .named("empty");
*
+ * @since 9
*/
public final class NamespaceOperation implements Operation {
private final Operation baseOperation;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java b/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java
index bf20c23b738..8842c32c1be 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java
@@ -64,6 +64,7 @@ import jdk.dynalink.linker.GuardingDynamicLinker;
/**
* Thrown at the invocation if the call site can not be linked by any available {@link GuardingDynamicLinker}.
+ * @since 9
*/
public class NoSuchDynamicMethodException extends RuntimeException {
private static final long serialVersionUID = 1L;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java
index ba22e32c54f..ef0acbc3b57 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java
@@ -74,6 +74,7 @@ package jdk.dynalink;
* {@code GET:PROPERTY|ELEMENT}), and finally we will refer to named operations
* by separating the base operation and the name with the colon character (e.g.
* {@code GET:PROPERTY|ELEMENT:color}).
+ * @since 9
*/
public interface Operation {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java
index 5f74edd700c..e14cfdfebd3 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java
@@ -76,6 +76,7 @@ import jdk.dynalink.support.SimpleRelinkableCallSite;
* method handles. A relinkable call site will be managed by a
* {@link DynamicLinker} object after being associated with it using its
* {@link DynamicLinker#link(RelinkableCallSite)} method.
+ * @since 9
*/
public interface RelinkableCallSite {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/SecureLookupSupplier.java b/src/jdk.dynalink/share/classes/jdk/dynalink/SecureLookupSupplier.java
index 73ee39b9002..5ec1f2737fb 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/SecureLookupSupplier.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/SecureLookupSupplier.java
@@ -32,6 +32,7 @@ import java.util.Objects;
/**
* Provides security-checked access to a {@code MethodHandles.Lookup} object.
* See {@link #getLookup()} for details.
+ * @since 9
*/
public class SecureLookupSupplier {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/StandardNamespace.java b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardNamespace.java
index 55b9acee703..b4c33250d38 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/StandardNamespace.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardNamespace.java
@@ -62,6 +62,7 @@ package jdk.dynalink;
/**
* An enumeration of standard namespaces defined by Dynalink.
+ * @since 9
*/
public enum StandardNamespace implements Namespace {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java
index e58bf4e78bf..176a87acd36 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java
@@ -67,6 +67,7 @@ package jdk.dynalink;
* disappears from their type signature.
* {@link NamedOperation} can also be used to decorate {@link #CALL} and {@link #NEW} operations with a
* diagnostic name, and as such it does not affect their type signature.
+ * @since 9
*/
public enum StandardOperation implements Operation {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java
index 386f386216c..ca09923292a 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java
@@ -135,6 +135,7 @@ import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker;
* property and method names on classes and class instances, as well as access
* to per-class linkers using the {@link #getLinkerForClass(Class)}
* method.
+ * @since 9
*/
public class BeansLinker implements GuardingDynamicLinker {
private static final ClassValue linkers = new ClassValue<>() {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MissingMemberHandlerFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MissingMemberHandlerFactory.java
index 1fe50b916d9..c1e2f7eb71d 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MissingMemberHandlerFactory.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MissingMemberHandlerFactory.java
@@ -67,6 +67,7 @@ import jdk.dynalink.linker.LinkerServices;
* exception itself, as the linkage for the missing member is often conditional.
*
* @see BeansLinker#BeansLinker(MissingMemberHandlerFactory)
+ * @since 9
*/
@FunctionalInterface
public interface MissingMemberHandlerFactory {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java
index 62bb74cb29e..ebd6c7e55e2 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java
@@ -102,6 +102,7 @@ import jdk.dynalink.StandardOperation;
* constructor. You might want to expose a mechanism in your language for
* selecting a constructor with an explicit signature through
* {@link BeansLinker#getConstructorMethod(Class, String)}.
+ * @since 9
*/
public final class StaticClass implements Serializable {
private static final ClassValue staticClasses = new ClassValue<>() {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java
index 6c0dd438bbb..267752b0a23 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java
@@ -70,10 +70,12 @@ package jdk.dynalink.linker;
* specific method with unrelated signatures. In these cases, language runtimes
* can be asked to resolve the ambiguity by expressing preferences for one
* conversion over the other.
+ * @since 9
*/
public interface ConversionComparator {
/**
* Enumeration of possible outcomes of comparing one conversion to another.
+ * @since 9
*/
enum Comparison {
/** The conversions cannot be compared. **/
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java
index 1a1e23981c5..174e63bff26 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java
@@ -86,6 +86,7 @@ import jdk.dynalink.linker.support.Guards;
* throw an exception of the designated type. The guard, the switch points, and
* the exception type are all optional (a guarded invocation having none of them
* is unconditionally valid).
+ * @since 9
*/
public class GuardedInvocation {
private final MethodHandle invocation;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java
index 6c775022362..fa4f0cd4545 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java
@@ -67,6 +67,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* another one. Typical usage is for implementing
* {@link DynamicLinkerFactory#setPrelinkTransformer(GuardedInvocationTransformer)
* pre-link transformers}.
+ * @since 9
*/
@FunctionalInterface
public interface GuardedInvocationTransformer {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java
index c604712ae43..e94cb7b9128 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java
@@ -87,6 +87,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* Languages can export linkers to other language runtimes for
* {@link DynamicLinkerFactory#setClassLoader(ClassLoader) automatic discovery}
* using a {@link GuardingDynamicLinkerExporter}.
+ * @since 9
*/
public interface GuardingDynamicLinker {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java
index 03be07cf459..cd670a8fdbe 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java
@@ -45,6 +45,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* security manager is present, to ensure that only trusted runtimes can
* automatically export their linkers into other runtimes.
* @see DynamicLinkerFactory#setClassLoader(ClassLoader)
+ * @since 9
*/
public abstract class GuardingDynamicLinkerExporter implements Supplier> {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java
index 981a39059af..bbd327d5bbe 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java
@@ -75,6 +75,7 @@ import jdk.dynalink.linker.support.TypeUtilities;
* these conversions, will cause more ambiguity for {@link BeansLinker} in
* selecting the correct overload when trying to link to an overloaded Java
* method.
+ * @since 9
*/
public interface GuardingTypeConverterFactory {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java
index 209c1920a3f..1feeed03d15 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java
@@ -69,6 +69,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* site. Instances of these requests will be constructed and passed to all
* {@link GuardingDynamicLinker} objects managed by the {@link DynamicLinker}
* that is trying to link the call site.
+ * @since 9
*/
public interface LinkRequest {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java
index e66babebf33..5a028205676 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java
@@ -73,6 +73,7 @@ import jdk.dynalink.linker.support.TypeUtilities;
/**
* Interface for services provided to {@link GuardingDynamicLinker} instances by
* the {@link DynamicLinker} that owns them.
+ * @since 9
*/
public interface LinkerServices {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java
index 2af6294c517..e9ccd30ffed 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java
@@ -68,6 +68,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* Typical usage is for implementing
* {@link DynamicLinkerFactory#setInternalObjectsFilter(MethodHandleTransformer)
* internal objects filters}.
+ * @since 9
*/
@FunctionalInterface
public interface MethodHandleTransformer {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java
index b830e375c12..394f81858ff 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java
@@ -70,6 +70,7 @@ import jdk.dynalink.DynamicLinkerFactory;
* of
* {@link DynamicLinkerFactory#setAutoConversionStrategy(MethodTypeConversionStrategy)
* method invocation conversions}.
+ * @since 9
*/
@FunctionalInterface
public interface MethodTypeConversionStrategy {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java
index 53c1a66e862..1565cfee552 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java
@@ -68,6 +68,7 @@ import jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker;
* linkers will fall into this category, as they recognize their native objects as Java objects of classes implementing
* a specific language-native interface or superclass. The linker mechanism can optimize the dispatch for these linkers,
* see {@link CompositeTypeBasedGuardingDynamicLinker}.
+ * @since 9
*/
public interface TypeBasedGuardingDynamicLinker extends GuardingDynamicLinker {
/**
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java
index 8ae1f4754cf..c226a9c0b17 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java
@@ -72,6 +72,7 @@ import jdk.dynalink.linker.LinkerServices;
* A {@link GuardingDynamicLinker} that delegates sequentially to a list of
* other guarding dynamic linkers in its
* {@link #getGuardedInvocation(LinkRequest, LinkerServices)}.
+ * @since 9
*/
public class CompositeGuardingDynamicLinker implements GuardingDynamicLinker {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java
index 184cc8e0ab8..a0805ff57d6 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java
@@ -77,6 +77,7 @@ import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker;
* returning true are then bound to the class, and next time a receiver of same
* type is encountered, the linking is delegated to those linkers only, speeding
* up dispatch.
+ * @since 9
*/
public class CompositeTypeBasedGuardingDynamicLinker implements TypeBasedGuardingDynamicLinker {
// Using a separate static class instance so there's no strong reference from the class value back to the composite
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java
index 9929eeb7e50..7a43f7ebbc0 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java
@@ -80,6 +80,7 @@ import jdk.dynalink.linker.MethodHandleTransformer;
* the parameter filter as being a wrapping method for exposing internal runtime
* objects wrapped into an adapter with some public interface, and the return
* value filter as being its inverse unwrapping method.
+ * @since 9
*/
public class DefaultInternalObjectFilter implements MethodHandleTransformer {
private static final MethodHandle FILTER_VARARGS = new Lookup(MethodHandles.lookup()).findStatic(
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java
index 9a456df5ebe..7b0fd0e156b 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java
@@ -72,6 +72,7 @@ import jdk.dynalink.linker.LinkerServices;
* Utility methods for creating typical guards for
* {@link MethodHandles#guardWithTest(MethodHandle, MethodHandle, MethodHandle)}
* and for adjusting their method types.
+ * @since 9
*/
public final class Guards {
private static final Logger LOG = Logger
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java
index ecf66e7d458..25792f0108b 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java
@@ -72,6 +72,7 @@ import java.lang.reflect.Method;
* checked exceptions. It is useful in those cases when you're looking up
* methods within your own codebase (therefore it is an error if they are not
* present).
+ * @since 9
*/
public final class Lookup {
private final MethodHandles.Lookup lookup;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java
index d8cfd8a9d9c..7a00b9fe3ea 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java
@@ -66,6 +66,7 @@ import jdk.dynalink.linker.LinkRequest;
/**
* Default simple implementation of {@link LinkRequest}.
+ * @since 9
*/
public class SimpleLinkRequest implements LinkRequest {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java
index f5ee9e09093..2a3d667d49a 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java
@@ -70,6 +70,7 @@ import jdk.dynalink.linker.MethodTypeConversionStrategy;
/**
* Various static utility methods for working with Java types.
+ * @since 9
*/
public final class TypeUtilities {
private TypeUtilities() {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java
index 03c7b9603f6..1218885ae9a 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java
@@ -60,5 +60,6 @@
/**
* Contains interfaces and classes that are used to link an {@code invokedynamic} call site.
+ * @since 9
*/
package jdk.dynalink;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java
index dbcf3ffd021..84ecfa1db38 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java
@@ -75,6 +75,7 @@ import jdk.dynalink.linker.GuardedInvocation;
* {@link #relink(GuardedInvocation, MethodHandle)} and
* {@link #resetAndRelink(GuardedInvocation, MethodHandle)}
* methods.
+ * @since 9
*/
public abstract class AbstractRelinkableCallSite extends MutableCallSite implements RelinkableCallSite {
private final CallSiteDescriptor descriptor;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java
index a026512242a..2f75b53fc3d 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java
@@ -84,6 +84,7 @@ import jdk.dynalink.linker.support.Lookup;
* Race conditions in linking are resolved by throwing away the
* {@link GuardedInvocation} produced on the losing thread without incorporating
* it into the chain, so it can lead to repeated linking for the same arguments.
+ * @since 9
*/
public class ChainedCallSite extends AbstractRelinkableCallSite {
private static final MethodHandle PRUNE_CATCHES;
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java
index 06f50b4ff80..022d6088d01 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java
@@ -71,6 +71,7 @@ import jdk.dynalink.linker.GuardedInvocation;
* If the guard of that single invocation fails, or it has an invalidated
* switch point, or its invalidating exception triggered, then the call site
* will throw it away and ask its associated {@link DynamicLinker} to relink it.
+ * @since 9
*/
public class SimpleRelinkableCallSite extends AbstractRelinkableCallSite {
/**