# HG changeset patch # Parent 3fcd9740a449a1882f83c84e52f8f133b9ea3124 8141338: Move jdk.internal.dynalink package to jdk.dynalink diff --git a/make/BuildNashorn.gmk b/make/BuildNashorn.gmk --- a/make/BuildNashorn.gmk +++ b/make/BuildNashorn.gmk @@ -33,7 +33,7 @@ include SetupJavaCompilers.gmk JDK_CLASSES := $(call PathList, $(strip $(addprefix $(JDK_OUTPUTDIR)/modules/, \ - java.base java.logging java.scripting))) + java.base java.logging java.scripting jdk.dynalink))) NASHORN_JAR := $(IMAGES_OUTPUTDIR)/nashorn.jar NASHORN_VERSION := $(JDK_VERSION) diff --git a/make/build.xml b/make/build.xml --- a/make/build.xml +++ b/make/build.xml @@ -52,6 +52,14 @@ + + + + @@ -155,7 +163,7 @@ - + @@ -244,6 +252,7 @@ + @@ -263,6 +272,18 @@ + + + + + + + + + + @@ -321,14 +342,20 @@ - + + + + + - + + + @@ -432,6 +459,8 @@ + + @@ -774,6 +803,20 @@ + + + + + + + + + + + + + + diff --git a/make/nbproject/project.xml b/make/nbproject/project.xml --- a/make/nbproject/project.xml +++ b/make/nbproject/project.xml @@ -50,6 +50,10 @@ ../src/jdk.scripting.nashorn/share/classes + + ../src/jdk.scripting.nashorn.shell/share/classes + + java ../test/src @@ -74,8 +78,14 @@ UTF-8 - - ../src/jdk.scripting.nashorn.shell/share/classes + + java + ../src/jdk.dynalink/share/classes + UTF-8 + + + + ../src/jdk.dynalink/share/classes @@ -153,6 +163,10 @@ ../src/jdk.scripting.nashorn.shell/share/classes + + + ../src/jdk.dynalink/share/classes + build.xml @@ -189,6 +203,10 @@ ../src/jdk.scripting.nashorn.shell/share/classes 1.8 + + ../src/jdk.dynalink/share/classes + 1.8 + diff --git a/make/project.properties b/make/project.properties --- a/make/project.properties +++ b/make/project.properties @@ -85,6 +85,7 @@ # jars refererred file.reference.testng.jar=${test.lib}${file.separator}testng.jar +file.reference.asmtools.jar=${test.lib}${file.separator}asmtools-60.jar # Set testng verbose level # From TestNG docs: "the verbosity level (0 to 10 where 10 is most detailed) @@ -269,10 +270,12 @@ ${nashorn.internal.tests.jar}${path.separator}\ ${nashorn.api.tests.jar} +dynalink.module.src.dir=src/jdk.dynalink/share/classes nashorn.module.src.dir=src/jdk.scripting.nashorn/share/classes nashorn.shell.module.src.dir=src/jdk.scripting.nashorn.shell/share/classes -src.dir=${nashorn.module.src.dir}${path.separator}\ +src.dir=${dynalink.module.src.dir}${path.separator}\ + ${nashorn.module.src.dir}${path.separator}\ ${nashorn.shell.module.src.dir}${path.separator}\ ${jdk.jline.src.dir} diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CallSiteDescriptor.java b/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CallSiteDescriptor.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CallSiteDescriptor.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles.Lookup; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/ClassMap.java b/src/jdk.dynalink/share/classes/jdk/dynalink/ClassMap.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/ClassMap.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/ClassMap.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/ClassMap.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/ClassMap.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.ref.Reference; import java.lang.ref.SoftReference; @@ -92,8 +92,8 @@ import java.util.WeakHashMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.internal.InternalTypeUtilities; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.internal.InternalTypeUtilities; /** * A dual map that can either strongly or weakly reference a given class depending on whether the class is visible from diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CompositeOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/CompositeOperation.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CompositeOperation.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/CompositeOperation.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/CompositeOperation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/CompositeOperation.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.util.Arrays; import java.util.Objects; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java @@ -81,22 +81,22 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.invoke.MutableCallSite; import java.util.Objects; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardedInvocationTransformer; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.Lookup; -import jdk.internal.dynalink.linker.support.SimpleLinkRequest; -import jdk.internal.dynalink.support.ChainedCallSite; -import jdk.internal.dynalink.support.SimpleRelinkableCallSite; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardedInvocationTransformer; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.Lookup; +import jdk.dynalink.linker.support.SimpleLinkRequest; +import jdk.dynalink.support.ChainedCallSite; +import jdk.dynalink.support.SimpleRelinkableCallSite; /** * The linker for {@link RelinkableCallSite} objects. A dynamic linker is a main diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinkerFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinkerFactory.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/DynamicLinkerFactory.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; @@ -101,21 +101,21 @@ import java.util.ServiceLoader; import java.util.Set; import java.util.function.Supplier; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardedInvocationTransformer; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.GuardingDynamicLinkerExporter; -import jdk.internal.dynalink.linker.GuardingTypeConverterFactory; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.MethodHandleTransformer; -import jdk.internal.dynalink.linker.MethodTypeConversionStrategy; -import jdk.internal.dynalink.linker.support.CompositeGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.DefaultInternalObjectFilter; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardedInvocationTransformer; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.GuardingDynamicLinkerExporter; +import jdk.dynalink.linker.GuardingTypeConverterFactory; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.MethodHandleTransformer; +import jdk.dynalink.linker.MethodTypeConversionStrategy; +import jdk.dynalink.linker.support.CompositeGuardingDynamicLinker; +import jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.DefaultInternalObjectFilter; +import jdk.dynalink.linker.support.TypeUtilities; /** * A factory class for creating {@link DynamicLinker} objects. Dynamic linkers diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/LinkerServicesImpl.java b/src/jdk.dynalink/share/classes/jdk/dynalink/LinkerServicesImpl.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/LinkerServicesImpl.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/LinkerServicesImpl.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/LinkerServicesImpl.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/LinkerServicesImpl.java @@ -81,17 +81,17 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.linker.ConversionComparator.Comparison; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.MethodHandleTransformer; +import jdk.dynalink.linker.ConversionComparator.Comparison; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.MethodHandleTransformer; /** * Default implementation of the {@link LinkerServices} interface. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NamedOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NamedOperation.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NamedOperation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.util.Objects; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NoSuchDynamicMethodException.java b/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NoSuchDynamicMethodException.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/NoSuchDynamicMethodException.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java @@ -81,9 +81,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.GuardingDynamicLinker; /** * Thrown at the invocation if the call site can not be linked by any available {@link GuardingDynamicLinker}. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/Operation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/Operation.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/Operation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; /** * An object that describes a dynamic operation. Dynalink defines a set of diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/RelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/RelinkableCallSite.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/RelinkableCallSite.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java @@ -81,13 +81,13 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.CallSite; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.support.ChainedCallSite; -import jdk.internal.dynalink.support.SimpleRelinkableCallSite; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.support.ChainedCallSite; +import jdk.dynalink.support.SimpleRelinkableCallSite; /** * Interface for call sites managed by a {@link DynamicLinker}. Users of diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/StandardOperation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/StandardOperation.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/StandardOperation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; /** * Defines the standard dynamic operations. Getter and setter operations defined @@ -127,7 +127,7 @@ */ SET_ELEMENT, /** - * Get the length of an array of size of a collection. Call sites with + * Get the length of an array or size of a collection. Call sites with * this operation should have a signature of (receiver)→value, * with all parameters and return type being of any type (either primitive * or reference). diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/TypeConverterFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/TypeConverterFactory.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/TypeConverterFactory.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/TypeConverterFactory.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/TypeConverterFactory.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/TypeConverterFactory.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink; +package jdk.dynalink; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -94,14 +94,14 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.linker.ConversionComparator; -import jdk.internal.dynalink.linker.ConversionComparator.Comparison; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingTypeConverterFactory; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.MethodTypeConversionStrategy; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.linker.ConversionComparator; +import jdk.dynalink.linker.ConversionComparator.Comparison; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingTypeConverterFactory; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.MethodTypeConversionStrategy; +import jdk.dynalink.linker.support.TypeUtilities; /** * A factory for type converters. This class is the main implementation behind the diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AbstractJavaLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AbstractJavaLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AbstractJavaLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -98,19 +98,19 @@ import java.util.List; import java.util.Map; import java.util.Set; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.CompositeOperation; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.GuardedInvocationComponent.ValidationType; -import jdk.internal.dynalink.internal.InternalTypeUtilities; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.Guards; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.CompositeOperation; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.GuardedInvocationComponent.ValidationType; +import jdk.dynalink.internal.InternalTypeUtilities; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.Guards; +import jdk.dynalink.linker.support.Lookup; import sun.reflect.CallerSensitive; /** diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AccessibleMembersLookup.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AccessibleMembersLookup.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AccessibleMembersLookup.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/AccessibleMembersLookup.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/AccessibleMembersLookup.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AccessibleMembersLookup.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.reflect.Method; import java.lang.reflect.Modifier; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ApplicableOverloadedMethods.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ApplicableOverloadedMethods.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ApplicableOverloadedMethods.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/ApplicableOverloadedMethods.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ApplicableOverloadedMethods.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ApplicableOverloadedMethods.java @@ -81,12 +81,12 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodType; import java.util.LinkedList; import java.util.List; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.support.TypeUtilities; /** * Represents overloaded methods applicable to a specific call site signature. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanIntrospector.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanIntrospector.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanIntrospector.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanIntrospector.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanIntrospector.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanIntrospector.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.util.Collections; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeanLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -90,16 +90,16 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.GuardedInvocationComponent.ValidationType; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Guards; -import jdk.internal.dynalink.linker.support.Lookup; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.GuardedInvocationComponent.ValidationType; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Guards; +import jdk.dynalink.linker.support.Lookup; +import jdk.dynalink.linker.support.TypeUtilities; /** * A class that provides linking capabilities for a single POJO class. Normally not used directly, but managed by diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeansLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeansLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/BeansLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java @@ -81,18 +81,18 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandles.Lookup; import java.util.Collections; import java.util.Set; -import jdk.internal.dynalink.DynamicLinkerFactory; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; /** * A linker for ordinary Java objects. Normally used as the ultimate fallback diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/CallerSensitiveDynamicMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/CallerSensitiveDynamicMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CallerSensitiveDynamicMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/CallerSensitiveDynamicMethod.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -94,9 +94,9 @@ import java.security.AccessControlContext; import java.security.AccessController; import java.security.PrivilegedAction; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.linker.support.Lookup; /** * A dynamic method bound to exactly one Java method or constructor that is caller sensitive. Since the target method is diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CheckRestrictedPackage.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/CheckRestrictedPackage.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CheckRestrictedPackage.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/CheckRestrictedPackage.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/CheckRestrictedPackage.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/CheckRestrictedPackage.java @@ -81,13 +81,13 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.reflect.Modifier; import java.security.AccessControlContext; import java.security.AccessController; import java.security.PrivilegedAction; -import jdk.internal.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.internal.AccessControlContextFactory; /** * A utility class to check whether a given class is in a package with restricted access e.g. "sun.*" etc. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java @@ -81,13 +81,13 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.beans.GuardedInvocationComponent.ValidationType; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.beans.GuardedInvocationComponent.ValidationType; +import jdk.dynalink.linker.support.Lookup; /** * A linker for java.lang.Class objects. Provides a synthetic property "static" that allows access to static fields and diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassString.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassString.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassString.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassString.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/ClassString.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassString.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; @@ -90,10 +90,10 @@ import java.security.PrivilegedAction; import java.util.LinkedList; import java.util.List; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.internal.InternalTypeUtilities; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.internal.InternalTypeUtilities; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.TypeUtilities; /** * Represents a sequence of {@link Class} objects, useful for representing method signatures. Provides value diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethod.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.LinkerServices; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.LinkerServices; /** * Represents a single dynamic method. A "dynamic" method can be bound to a single Java method, or can be bound to all diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethodLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethodLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethodLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethodLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/DynamicMethodLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethodLinker.java @@ -81,19 +81,19 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Guards; /** * Simple linker that implements the {@link StandardOperation#CALL} operation diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/FacetIntrospector.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/FacetIntrospector.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/FacetIntrospector.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/FacetIntrospector.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/FacetIntrospector.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/FacetIntrospector.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.reflect.Field; @@ -92,7 +92,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.linker.support.Lookup; /** * Base for classes that expose class field and method information to an {@link AbstractJavaLinker}. There are diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/GuardedInvocationComponent.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/GuardedInvocationComponent.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/GuardedInvocationComponent.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/GuardedInvocationComponent.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/GuardedInvocationComponent.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/GuardedInvocationComponent.java @@ -81,10 +81,10 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardedInvocation; /** * Represents one component for a GuardedInvocation of a potentially composite operation of an diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/MaximallySpecific.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MaximallySpecific.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/MaximallySpecific.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/MaximallySpecific.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/MaximallySpecific.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/MaximallySpecific.java @@ -81,16 +81,16 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import jdk.internal.dynalink.linker.ConversionComparator.Comparison; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.ConversionComparator.Comparison; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.TypeUtilities; /** * Utility class that encapsulates the algorithm for choosing the maximally specific methods. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedDynamicMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; @@ -97,11 +97,11 @@ import java.util.List; import java.util.Map; import java.util.Set; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.beans.ApplicableOverloadedMethods.ApplicabilityTest; -import jdk.internal.dynalink.internal.AccessControlContextFactory; -import jdk.internal.dynalink.internal.InternalTypeUtilities; -import jdk.internal.dynalink.linker.LinkerServices; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.beans.ApplicableOverloadedMethods.ApplicabilityTest; +import jdk.dynalink.internal.AccessControlContextFactory; +import jdk.dynalink.internal.InternalTypeUtilities; +import jdk.dynalink.linker.LinkerServices; /** * Represents a group of {@link SingleDynamicMethod} objects that represents all overloads of a particular name (or all diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/OverloadedMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedMethod.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -91,9 +91,9 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import jdk.internal.dynalink.internal.InternalTypeUtilities; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.internal.InternalTypeUtilities; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.Lookup; /** * Represents a subset of overloaded methods for a certain method name on a certain class. It can be either a fixarg or diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SimpleDynamicMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/SimpleDynamicMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SimpleDynamicMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/SimpleDynamicMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SimpleDynamicMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/SimpleDynamicMethod.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.CallSiteDescriptor; +import jdk.dynalink.CallSiteDescriptor; /** * A dynamic method bound to exactly one Java method or constructor that is not caller sensitive. Since its target is diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SingleDynamicMethod.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/SingleDynamicMethod.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SingleDynamicMethod.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/SingleDynamicMethod.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/SingleDynamicMethod.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/SingleDynamicMethod.java @@ -81,17 +81,17 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.reflect.Array; import java.util.StringTokenizer; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.Guards; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.Guards; +import jdk.dynalink.linker.support.Lookup; /** * Base class for dynamic methods that dispatch to a single target Java method or constructor. Handles adaptation of the diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClass.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClass.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClass.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.io.Serializable; import java.util.Objects; -import jdk.internal.dynalink.StandardOperation; +import jdk.dynalink.StandardOperation; /** * Object that allows access to the static members of a class (its static diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassIntrospector.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassIntrospector.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassIntrospector.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassIntrospector.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassIntrospector.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassIntrospector.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/StaticClassLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassLinker.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -89,15 +89,15 @@ import java.lang.reflect.Array; import java.util.Arrays; import java.util.Set; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.GuardedInvocationComponent.ValidationType; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.GuardedInvocationComponent.ValidationType; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Lookup; /** * Provides a linker for the {@link StaticClass} objects. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/messages.properties b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/messages.properties rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/messages.properties rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/messages.properties diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/package-info.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/beans/package-info.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java @@ -86,4 +86,4 @@ * @since 1.9 */ @jdk.Exported -package jdk.internal.dynalink.beans; +package jdk.dynalink.beans; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/AccessControlContextFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/internal/AccessControlContextFactory.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/AccessControlContextFactory.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/internal/AccessControlContextFactory.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/AccessControlContextFactory.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/internal/AccessControlContextFactory.java @@ -23,7 +23,7 @@ * questions. */ -package jdk.internal.dynalink.internal; +package jdk.dynalink.internal; import java.security.AccessControlContext; import java.security.Permission; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/InternalTypeUtilities.java b/src/jdk.dynalink/share/classes/jdk/dynalink/internal/InternalTypeUtilities.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/InternalTypeUtilities.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/internal/InternalTypeUtilities.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/internal/InternalTypeUtilities.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/internal/InternalTypeUtilities.java @@ -22,14 +22,14 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -package jdk.internal.dynalink.internal; +package jdk.dynalink.internal; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.support.TypeUtilities; /** * Various static utility methods for testing type relationships; internal to Dynalink. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/ConversionComparator.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/ConversionComparator.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/ConversionComparator.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; /** diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocation.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocation.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocation.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; @@ -90,8 +90,8 @@ import java.util.List; import java.util.Objects; import java.util.function.Supplier; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.support.Guards; /** * Represents a conditionally valid method handle. Usually produced as a return diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocationTransformer.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocationTransformer.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardedInvocationTransformer.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java @@ -81,9 +81,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.DynamicLinkerFactory; /** * Interface for objects that are used to transform one guarded invocation into diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java @@ -81,12 +81,12 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; import java.util.List; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.DynamicLinkerFactory; /** * The base interface for language-specific dynamic linkers. Such linkers diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinkerExporter.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinkerExporter.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingDynamicLinkerExporter.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java @@ -23,13 +23,13 @@ * questions. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.security.Permission; import java.util.List; import java.util.ServiceLoader; import java.util.function.Supplier; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.DynamicLinkerFactory; /** * A class acting as a supplier of guarding dynamic linkers that can be @@ -37,7 +37,7 @@ * to export their own linkers should subclass this class and implement the * {@link #get()} method to return a list of exported linkers and declare the * subclass in - * {@code /META-INF/services/jdk.internal.dynalink.linker.GuardingDynamicLinkerExporter} + * {@code /META-INF/services/jdk.dynalink.linker.GuardingDynamicLinkerExporter} * resource of their distribution (typically, JAR file) so that dynamic linker * factories can discover them using the {@link ServiceLoader} mechanism. Note * that instantiating this class is tied to a security check for the diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingTypeConverterFactory.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingTypeConverterFactory.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/GuardingTypeConverterFactory.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java @@ -81,13 +81,13 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandles; import java.util.function.Supplier; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.linker.support.TypeUtilities; /** * Optional interface that can be implemented by {@link GuardingDynamicLinker} diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkRequest.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkRequest.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkRequest.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; /** * Represents a request to link a particular invocation at a particular call diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkerServices.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkerServices.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/LinkerServices.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java @@ -81,15 +81,15 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.DynamicLinkerFactory; -import jdk.internal.dynalink.linker.ConversionComparator.Comparison; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.linker.ConversionComparator.Comparison; +import jdk.dynalink.linker.support.TypeUtilities; /** * Interface for services provided to {@link GuardingDynamicLinker} instances by diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodHandleTransformer.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodHandleTransformer.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodHandleTransformer.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java @@ -81,10 +81,10 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.DynamicLinkerFactory; /** * A generic interface describing operations that transform method handles. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodTypeConversionStrategy.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodTypeConversionStrategy.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/MethodTypeConversionStrategy.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.DynamicLinkerFactory; +import jdk.dynalink.DynamicLinkerFactory; /** * Interface for objects representing a strategy for converting a method handle diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/TypeBasedGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/TypeBasedGuardingDynamicLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/TypeBasedGuardingDynamicLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java @@ -81,9 +81,9 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; -import jdk.internal.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker; /** * A guarding dynamic linker that can determine whether it can link the call site solely based on the type of the first diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/package-info.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/package-info.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java @@ -86,32 +86,32 @@ * Contains interfaces and classes needed by language runtimes to implement * their own language-specific object models and type conversions. The main * entry point is the - * {@link jdk.internal.dynalink.linker.GuardingDynamicLinker} interface. It needs to be + * {@link jdk.dynalink.linker.GuardingDynamicLinker} interface. It needs to be * implemented in order to provide linking for the runtime's own object model. * A language runtime can have more than one guarding dynamic linker * implementation. When a runtime is configuring Dynalink for itself, it will * normally set these guarding linkers as the prioritized linkers in its - * {@link jdk.internal.dynalink.DynamicLinkerFactory} (and maybe some of them as fallback + * {@link jdk.dynalink.DynamicLinkerFactory} (and maybe some of them as fallback * linkers, for e.g. handling "method not found" and similar errors in a * language-specific manner if no other linker managed to handle the operation.) *

* A language runtime that wishes to make at least some of its linkers available * to other language runtimes for interoperability will need to declare the * class names of those linkers in - * {@code /META-INF/services/jdk.internal.dynalink.linker.GuardingDynamicLinker} file in + * {@code /META-INF/services/jdk.dynalink.linker.GuardingDynamicLinker} file in * its distribution (typically, JAR file). *

* Most language runtimes will be able to implement their own linking logic by - * implementing {@link jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker} - * instead of {@link jdk.internal.dynalink.linker.GuardingDynamicLinker}; it allows for + * implementing {@link jdk.dynalink.linker.TypeBasedGuardingDynamicLinker} + * instead of {@link jdk.dynalink.linker.GuardingDynamicLinker}; it allows for * faster type-based linking dispatch. *

* Language runtimes that allow type conversions other than those provided by * Java will need to have their guarding dynamic linker (or linkers) also - * implement the {@link jdk.internal.dynalink.linker.GuardingTypeConverterFactory} + * implement the {@link jdk.dynalink.linker.GuardingTypeConverterFactory} * interface to provide the logic for these conversions. *

* @since 1.9 */ @jdk.Exported -package jdk.internal.dynalink.linker; +package jdk.dynalink.linker; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeGuardingDynamicLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeGuardingDynamicLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java @@ -81,15 +81,15 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.util.LinkedList; import java.util.List; import java.util.Objects; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; /** * A {@link GuardingDynamicLinker} that delegates sequentially to a list of diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java @@ -81,17 +81,17 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Objects; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; /** * A composite type-based guarding dynamic linker. When a receiver of a not yet diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/DefaultInternalObjectFilter.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/DefaultInternalObjectFilter.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/DefaultInternalObjectFilter.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/DefaultInternalObjectFilter.java @@ -81,13 +81,13 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.DynamicLinkerFactory; -import jdk.internal.dynalink.linker.MethodHandleTransformer; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.linker.MethodHandleTransformer; /** * Default implementation for a diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Guards.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Guards.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Guards.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Guards.java @@ -81,15 +81,15 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.util.logging.Level; import java.util.logging.Logger; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.linker.LinkerServices; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.linker.LinkerServices; /** * Utility methods for creating typical guards for @@ -98,7 +98,7 @@ */ public final class Guards { private static final Logger LOG = Logger - .getLogger(Guards.class.getName(), "jdk.internal.dynalink.support.messages"); + .getLogger(Guards.class.getName(), "jdk.dynalink.support.messages"); private Guards() { } diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Lookup.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Lookup.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/Lookup.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/Lookup.java @@ -81,7 +81,7 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/SimpleLinkRequest.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/SimpleLinkRequest.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/SimpleLinkRequest.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/SimpleLinkRequest.java @@ -81,11 +81,11 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.util.Objects; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.LinkRequest; /** * Default simple implementation of {@link LinkRequest}. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/TypeUtilities.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/TypeUtilities.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/TypeUtilities.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/TypeUtilities.java @@ -81,15 +81,15 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.IdentityHashMap; import java.util.Map; -import jdk.internal.dynalink.DynamicLinkerFactory; -import jdk.internal.dynalink.linker.MethodTypeConversionStrategy; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.linker.MethodTypeConversionStrategy; /** * Various static utility methods for working with Java types. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/package-info.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/linker/support/package-info.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/package-info.java @@ -90,4 +90,4 @@ * @since 1.9 */ @jdk.Exported -package jdk.internal.dynalink.linker.support; +package jdk.dynalink.linker.support; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/package-info.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/package-info.java @@ -83,7 +83,7 @@ /** *

- * Dynalink is a library for dynamic linking high-level operations on objects. + * Dynalink is a library for dynamic linking of high-level operations on objects. * These operations include "read a property", * "write a property", "invoke a function" and so on. Dynalink is primarily * useful for implementing programming languages where at least some expressions @@ -136,8 +136,8 @@ * method. A minimalist bootstrap method with Dynalink could look like this: *

  * import java.lang.invoke.*;
- * import jdk.internal.dynalink.*;
- * import jdk.internal.dynalink.support.*;
+ * import jdk.dynalink.*;
+ * import jdk.dynalink.support.*;
  *
  * class MyLanguageRuntime {
  *     private static final DynamicLinker dynamicLinker = new DynamicLinkerFactory().createLinker();
@@ -155,23 +155,23 @@
  * 
* There are several objects of significance in the above code snippet: *
    - *
  • {@link jdk.internal.dynalink.DynamicLinker} is the main object in Dynalink, it + *
  • {@link jdk.dynalink.DynamicLinker} is the main object in Dynalink, it * coordinates the linking of call sites to method handles that implement the * operations named in them. It is configured and created using a - * {@link jdk.internal.dynalink.DynamicLinkerFactory}.
  • + * {@link jdk.dynalink.DynamicLinkerFactory}. *
  • When the bootstrap method is invoked, it needs to create a * {@link java.lang.invoke.CallSite} object. In Dynalink, these call sites need - * to additionally implement the {@link jdk.internal.dynalink.RelinkableCallSite} + * to additionally implement the {@link jdk.dynalink.RelinkableCallSite} * interface. "Relinkable" here alludes to the fact that if the call site * encounters objects of different types at run time, its target will be changed * to a method handle that can perform the operation on the newly encountered - * type. {@link jdk.internal.dynalink.support.SimpleRelinkableCallSite} and - * {@link jdk.internal.dynalink.support.ChainedCallSite} (not used in the above example) + * type. {@link jdk.dynalink.support.SimpleRelinkableCallSite} and + * {@link jdk.dynalink.support.ChainedCallSite} (not used in the above example) * are two implementations already provided by the library.
  • - *
  • Dynalink uses {@link jdk.internal.dynalink.CallSiteDescriptor} objects to + *
  • Dynalink uses {@link jdk.dynalink.CallSiteDescriptor} objects to * preserve the parameters to the bootstrap method: the lookup and the method type, * as it will need them whenever it needs to relink a call site.
  • - *
  • Dynalink uses {@link jdk.internal.dynalink.Operation} objects to express + *
  • Dynalink uses {@link jdk.dynalink.Operation} objects to express * dynamic operations. It does not prescribe how would you encode the operations * in your call site, though. That is why in the above example the * {@code parseOperation} function is left empty, and you would be expected to @@ -214,7 +214,7 @@ * The {@code SimpleRelinkableCallSite} we used above only remembers the linkage * for the last encountered type (it implements what is known as a monomorphic * inline cache). Another already provided implementation, - * {@link jdk.internal.dynalink.support.ChainedCallSite} will remember linkages for + * {@link jdk.dynalink.support.ChainedCallSite} will remember linkages for * several different types (it is a polymorphic inline cache) and is * probably a better choice in serious applications. *

    Dynalink and bytecode creation

    @@ -229,11 +229,11 @@ * (e.g. a typical representation would be some node objects in a syntax tree). *

    Available operations

    * Dynalink defines several standard operations in its - * {@link jdk.internal.dynalink.StandardOperation} class. The linker for Java + * {@link jdk.dynalink.StandardOperation} class. The linker for Java * objects can link all of these operations, and you are encouraged to at * minimum support and use these operations in your language too. To associate * a fixed name with an operation, you can use - * {@link jdk.internal.dynalink.NamedOperation} as in the above example where + * {@link jdk.dynalink.NamedOperation} as in the above example where * {@code StandardOperation.GET_PROPERTY} was combined with the name * {@code "color"} in a {@code NamedOperation} to form a property getter for the * property named "color". @@ -242,12 +242,12 @@ * properties, elements, and methods, and a source language construct might * address two or three of them. Dynalink supports specifying composite * operations for this purpose using the - * {@link jdk.internal.dynalink.CompositeOperation} class. + * {@link jdk.dynalink.CompositeOperation} class. *

    Language-specific linkers

    * Languages that define their own object model different than the JVM * class-based model and/or use their own type conversions will need to create - * their own language-specific linkers. See the {@link jdk.internal.dynalink.linker} - * package and specifically the {@link jdk.internal.dynalink.linker.GuardingDynamicLinker} + * their own language-specific linkers. See the {@link jdk.dynalink.linker} + * package and specifically the {@link jdk.dynalink.linker.GuardingDynamicLinker} * interface to get started. *

    Dynalink and Java objects

    * The {@code DynamicLinker} objects created by {@code DynamicLinkerFactory} by @@ -256,13 +256,13 @@ * that implements the usual Java semantics for all of the above operations and * can link any Java object that no other language-specific linker has managed * to link. This way, all language runtimes have built-in interoperability with - * ordinary Java objects. See {@link jdk.internal.dynalink.beans.BeansLinker} for details + * ordinary Java objects. See {@link jdk.dynalink.beans.BeansLinker} for details * on how it links the various operations. *

    Cross-language interoperability

    * A {@code DynamicLinkerFactory} can be configured with a - * {@link jdk.internal.dynalink.DynamicLinkerFactory#setClassLoader(ClassLoader) class + * {@link jdk.dynalink.DynamicLinkerFactory#setClassLoader(ClassLoader) class * loader}. It will try to instantiate all - * {@link jdk.internal.dynalink.linker.GuardingDynamicLinkerExporter} classes visible to + * {@link jdk.dynalink.linker.GuardingDynamicLinkerExporter} classes visible to * that class loader and compose the linkers they provide into the * {@code DynamicLinker} it creates. This allows for interoperability between * languages: if you have two language runtimes A and B deployed in your JVM and @@ -274,4 +274,4 @@ * object from B. */ @jdk.Exported -package jdk.internal.dynalink; +package jdk.dynalink; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/AbstractRelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/AbstractRelinkableCallSite.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/AbstractRelinkableCallSite.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/AbstractRelinkableCallSite.java @@ -81,14 +81,14 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.support; +package jdk.dynalink.support; import java.lang.invoke.CallSite; import java.lang.invoke.MethodHandle; import java.lang.invoke.MutableCallSite; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.RelinkableCallSite; -import jdk.internal.dynalink.linker.GuardedInvocation; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.RelinkableCallSite; +import jdk.dynalink.linker.GuardedInvocation; /** * A basic implementation of the {@link RelinkableCallSite} as a diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/ChainedCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/ChainedCallSite.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/ChainedCallSite.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/ChainedCallSite.java @@ -81,16 +81,16 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.support; +package jdk.dynalink.support; import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.util.Arrays; import java.util.Iterator; import java.util.LinkedList; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.support.Lookup; /** * A relinkable call site that implements a polymorphic inline caching strategy. diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/SimpleRelinkableCallSite.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/SimpleRelinkableCallSite.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/SimpleRelinkableCallSite.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/SimpleRelinkableCallSite.java @@ -81,12 +81,12 @@ ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jdk.internal.dynalink.support; +package jdk.dynalink.support; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.linker.GuardedInvocation; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.linker.GuardedInvocation; /** * A relinkable call site that implements monomorphic inline caching strategy, diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/messages.properties b/src/jdk.dynalink/share/classes/jdk/dynalink/support/messages.properties rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/messages.properties rename to src/jdk.dynalink/share/classes/jdk/dynalink/support/messages.properties diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/package-info.java b/src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java rename from src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/package-info.java rename to src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/internal/dynalink/support/package-info.java +++ b/src/jdk.dynalink/share/classes/jdk/dynalink/support/package-info.java @@ -88,4 +88,4 @@ * @since 1.9 */ @jdk.Exported -package jdk.internal.dynalink.support; +package jdk.dynalink.support; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptUtils.java @@ -26,8 +26,8 @@ package jdk.nashorn.api.scripting; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.LinkerServices; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.LinkerServices; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.ScriptFunction; import jdk.nashorn.internal.runtime.ScriptObject; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/ArrayBufferView.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/ArrayBufferView.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/ArrayBufferView.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/ArrayBufferView.java @@ -30,9 +30,9 @@ import static jdk.nashorn.internal.runtime.UnwarrantedOptimismException.INVALID_PROGRAM_POINT; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Getter; import jdk.nashorn.internal.objects.annotations.ScriptClass; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java @@ -47,10 +47,10 @@ import java.util.concurrent.ConcurrentHashMap; import javax.script.ScriptContext; import javax.script.ScriptEngine; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.api.scripting.ClassFilter; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.internal.lookup.Lookup; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeArray.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeArray.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeArray.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeArray.java @@ -42,9 +42,9 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.Callable; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeBoolean.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeBoolean.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeBoolean.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeBoolean.java @@ -31,8 +31,8 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; import jdk.nashorn.internal.objects.annotations.Function; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeFunction.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeFunction.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeFunction.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeFunction.java @@ -33,7 +33,7 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.util.List; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.linker.support.Lookup; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJSAdapter.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJSAdapter.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJSAdapter.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJSAdapter.java @@ -36,10 +36,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.lookup.Lookup; import jdk.nashorn.internal.objects.annotations.Constructor; import jdk.nashorn.internal.objects.annotations.ScriptClass; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJava.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJava.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJava.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJava.java @@ -37,9 +37,9 @@ import java.util.List; import java.util.Map; import java.util.Queue; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.support.TypeUtilities; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.internal.objects.annotations.Attribute; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJavaImporter.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJavaImporter.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJavaImporter.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJavaImporter.java @@ -28,10 +28,10 @@ import static jdk.nashorn.internal.runtime.ECMAErrors.typeError; import static jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; import jdk.nashorn.internal.objects.annotations.Function; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeNumber.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeNumber.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeNumber.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeNumber.java @@ -36,8 +36,8 @@ import java.math.RoundingMode; import java.text.NumberFormat; import java.util.Locale; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; import jdk.nashorn.internal.objects.annotations.Function; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeObject.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeObject.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeObject.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeObject.java @@ -39,16 +39,16 @@ import java.util.List; import java.util.Set; import java.util.concurrent.Callable; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.support.SimpleLinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.support.SimpleLinkRequest; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.internal.lookup.Lookup; import jdk.nashorn.internal.objects.annotations.Attribute; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeString.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeString.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeString.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeString.java @@ -41,10 +41,10 @@ import java.util.List; import java.util.Locale; import java.util.Set; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.lookup.MethodHandleFactory.LookupException; import jdk.nashorn.internal.objects.annotations.Attribute; import jdk.nashorn.internal.objects.annotations.Constructor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/annotations/SpecializedFunction.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/annotations/SpecializedFunction.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/annotations/SpecializedFunction.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/annotations/SpecializedFunction.java @@ -30,8 +30,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.runtime.ScriptFunction; import jdk.nashorn.internal.runtime.UnwarrantedOptimismException; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java @@ -3064,7 +3064,7 @@ if (k < stream.last() && start < parserState.position && parserState.position <= Token.descPosition(stream.get(stream.last()))) { // RBRACE is already in the token stream, so fast forward to it for (; k < stream.last(); k++) { - long nextToken = stream.get(k + 1); + final long nextToken = stream.get(k + 1); if (Token.descPosition(nextToken) == parserState.position && Token.descType(nextToken) == RBRACE) { token = stream.get(k); type = Token.descType(token); @@ -3480,7 +3480,7 @@ Expression concat = literal; TokenType lastLiteralType; do { - Expression expression = expression(); + final Expression expression = expression(); if (type != TEMPLATE_MIDDLE && type != TEMPLATE_TAIL) { throw error(AbstractParser.message("unterminated.template.expression"), token); } @@ -3511,7 +3511,7 @@ if (hasSubstitutions) { TokenType lastLiteralType; do { - Expression expression = expression(); + final Expression expression = expression(); if (type != TEMPLATE_MIDDLE && type != TEMPLATE_TAIL) { throw error(AbstractParser.message("unterminated.template.expression"), token); } diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/CompiledFunction.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/CompiledFunction.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/CompiledFunction.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/CompiledFunction.java @@ -43,7 +43,7 @@ import java.util.TreeMap; import java.util.function.Supplier; import java.util.logging.Level; -import jdk.internal.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardedInvocation; import jdk.nashorn.internal.codegen.Compiler; import jdk.nashorn.internal.codegen.Compiler.CompilationPhases; import jdk.nashorn.internal.codegen.TypeMap; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Context.java @@ -71,7 +71,7 @@ import java.util.function.Supplier; import java.util.logging.Level; import javax.script.ScriptEngine; -import jdk.internal.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinker; import jdk.internal.org.objectweb.asm.ClassReader; import jdk.internal.org.objectweb.asm.ClassWriter; import jdk.internal.org.objectweb.asm.Opcodes; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/FindProperty.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/FindProperty.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/FindProperty.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/FindProperty.java @@ -29,7 +29,7 @@ import static jdk.nashorn.internal.runtime.UnwarrantedOptimismException.isValid; import java.lang.invoke.MethodHandle; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.codegen.ObjectClassGenerator; import jdk.nashorn.internal.objects.Global; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/GlobalConstants.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/GlobalConstants.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/GlobalConstants.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/GlobalConstants.java @@ -40,10 +40,10 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.logging.Level; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.lookup.Lookup; import jdk.nashorn.internal.lookup.MethodHandleFactory; import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java @@ -35,7 +35,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import jdk.internal.dynalink.beans.StaticClass; +import jdk.dynalink.beans.StaticClass; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.codegen.CompilerConstants.Call; import jdk.nashorn.internal.codegen.types.Type; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/NativeJavaPackage.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/NativeJavaPackage.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/NativeJavaPackage.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/NativeJavaPackage.java @@ -31,12 +31,12 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.lookup.MethodHandleFactory; import jdk.nashorn.internal.lookup.MethodHandleFunctionality; import jdk.nashorn.internal.objects.annotations.Attribute; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/OptimisticReturnFilters.java @@ -32,9 +32,9 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.support.TypeUtilities; import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java @@ -44,10 +44,10 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.atomic.LongAdder; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.codegen.ApplySpecialization; import jdk.nashorn.internal.codegen.Compiler; import jdk.nashorn.internal.codegen.CompilerConstants.Call; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java @@ -66,11 +66,11 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.LongAdder; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.codegen.CompilerConstants.Call; import jdk.nashorn.internal.codegen.ObjectClassGenerator; import jdk.nashorn.internal.codegen.types.Type; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java @@ -45,8 +45,7 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.Objects; - -import jdk.internal.dynalink.beans.StaticClass; +import jdk.dynalink.beans.StaticClass; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.internal.codegen.ApplySpecialization; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SetMethodCreator.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SetMethodCreator.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SetMethodCreator.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SetMethodCreator.java @@ -31,15 +31,15 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.SwitchPoint; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; import jdk.nashorn.internal.runtime.linker.NashornGuards; /** * Instances of this class are quite ephemeral; they only exist for the duration of an invocation of - * {@link ScriptObject#findSetMethod(CallSiteDescriptor, jdk.internal.dynalink.linker.LinkRequest)} and + * {@link ScriptObject#findSetMethod(CallSiteDescriptor, jdk.dynalink.linker.LinkRequest)} and * serve as the actual encapsulation of the algorithm for creating an appropriate property setter method. */ final class SetMethodCreator { diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java @@ -30,11 +30,11 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; /** diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/WithObject.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/WithObject.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/WithObject.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/WithObject.java @@ -32,12 +32,12 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.invoke.SwitchPoint; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.api.scripting.AbstractJSObject; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ArrayData.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ArrayData.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ArrayData.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ArrayData.java @@ -34,9 +34,9 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.codegen.CompilerConstants; import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.objects.Global; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ContinuousArrayData.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ContinuousArrayData.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ContinuousArrayData.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/ContinuousArrayData.java @@ -33,9 +33,9 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.invoke.SwitchPoint; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.lookup.Lookup; import jdk.nashorn.internal.runtime.ScriptObject; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/NumberArrayData.java @@ -32,7 +32,7 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.util.Arrays; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.support.TypeUtilities; /** * Implementation of {@link ArrayData} as soon as a double has been diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/TypedArrayData.java @@ -28,9 +28,9 @@ import static jdk.nashorn.internal.lookup.Lookup.MH; import java.lang.invoke.MethodHandle; import java.nio.Buffer; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.internal.lookup.Lookup; /** diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/Bootstrap.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/Bootstrap.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/Bootstrap.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/Bootstrap.java @@ -34,17 +34,17 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodHandles.Lookup; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.DynamicLinkerFactory; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardedInvocationTransformer; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.MethodTypeConversionStrategy; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardedInvocationTransformer; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.MethodTypeConversionStrategy; +import jdk.dynalink.linker.support.TypeUtilities; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.codegen.CompilerConstants.Call; import jdk.nashorn.internal.lookup.MethodHandleFactory; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundCallableLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundCallableLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundCallableLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BoundCallableLinker.java @@ -29,15 +29,15 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.util.Arrays; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Guards; /** * Links {@link BoundCallable} objects. Passes through to linker services for linking a callable (for either diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BrowserJSObjectLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BrowserJSObjectLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BrowserJSObjectLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BrowserJSObjectLinker.java @@ -34,12 +34,12 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; import jdk.nashorn.internal.lookup.MethodHandleFactory; import jdk.nashorn.internal.lookup.MethodHandleFunctionality; import jdk.nashorn.internal.runtime.JSType; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java @@ -31,12 +31,12 @@ import java.lang.invoke.MethodHandles; import java.util.Map; import javax.script.Bindings; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.lookup.MethodHandleFactory; import jdk.nashorn.internal.lookup.MethodHandleFunctionality; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader.java @@ -34,7 +34,7 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import jdk.internal.dynalink.beans.StaticClass; +import jdk.dynalink.beans.StaticClass; import jdk.nashorn.internal.codegen.DumpBytecode; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.JSType; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterFactory.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterFactory.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterFactory.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaAdapterFactory.java @@ -46,10 +46,10 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.support.SimpleLinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.support.SimpleLinkRequest; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.ECMAException; import jdk.nashorn.internal.runtime.ScriptFunction; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaArgumentConverters.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaArgumentConverters.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaArgumentConverters.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaArgumentConverters.java @@ -34,7 +34,7 @@ import java.lang.invoke.MethodHandles; import java.util.HashMap; import java.util.Map; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.support.TypeUtilities; import jdk.nashorn.internal.runtime.ConsString; import jdk.nashorn.internal.runtime.JSType; import jdk.nashorn.internal.runtime.ScriptObject; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaSuperAdapterLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaSuperAdapterLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaSuperAdapterLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaSuperAdapterLinker.java @@ -31,16 +31,16 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Lookup; import jdk.nashorn.internal.runtime.ScriptRuntime; /** diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/LinkerCallSite.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/LinkerCallSite.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/LinkerCallSite.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/LinkerCallSite.java @@ -44,9 +44,9 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.LongAdder; -import jdk.internal.dynalink.DynamicLinker; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.support.ChainedCallSite; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.support.ChainedCallSite; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.Debug; import jdk.nashorn.internal.runtime.ScriptObject; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBeansLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBeansLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBeansLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBeansLinker.java @@ -32,18 +32,18 @@ import java.lang.invoke.MethodType; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.linker.ConversionComparator.Comparison; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.MethodHandleTransformer; -import jdk.internal.dynalink.linker.support.DefaultInternalObjectFilter; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.linker.ConversionComparator.Comparison; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.MethodHandleTransformer; +import jdk.dynalink.linker.support.DefaultInternalObjectFilter; +import jdk.dynalink.linker.support.Lookup; import jdk.nashorn.api.scripting.ScriptUtils; import jdk.nashorn.internal.runtime.ConsString; import jdk.nashorn.internal.runtime.Context; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java @@ -36,16 +36,16 @@ import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.GuardingTypeConverterFactory; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.GuardingTypeConverterFactory; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.codegen.types.Type; import jdk.nashorn.internal.runtime.JSType; import jdk.nashorn.internal.runtime.ScriptRuntime; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java @@ -39,11 +39,11 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.stream.Stream; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.CompositeOperation; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.Operation; -import jdk.internal.dynalink.StandardOperation; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.CompositeOperation; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; import jdk.nashorn.internal.ir.debug.NashornTextifier; import jdk.nashorn.internal.runtime.AccessControlContextFactory; import jdk.nashorn.internal.runtime.ScriptRuntime; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornGuards.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornGuards.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornGuards.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornGuards.java @@ -30,8 +30,8 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.lang.ref.WeakReference; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.LinkRequest; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.LinkRequest; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.internal.objects.Global; import jdk.nashorn.internal.runtime.Property; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornLinker.java @@ -41,15 +41,15 @@ import java.util.Queue; import java.util.function.Supplier; import javax.script.Bindings; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.linker.ConversionComparator; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingTypeConverterFactory; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Guards; -import jdk.internal.dynalink.linker.support.Lookup; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.linker.ConversionComparator; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingTypeConverterFactory; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Guards; +import jdk.dynalink.linker.support.Lookup; import jdk.nashorn.api.scripting.JSObject; import jdk.nashorn.api.scripting.ScriptObjectMirror; import jdk.nashorn.api.scripting.ScriptUtils; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornPrimitiveLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornPrimitiveLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornPrimitiveLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornPrimitiveLinker.java @@ -30,13 +30,13 @@ import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; import java.util.function.Supplier; -import jdk.internal.dynalink.linker.ConversionComparator; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingTypeConverterFactory; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.TypeUtilities; +import jdk.dynalink.linker.ConversionComparator; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingTypeConverterFactory; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.TypeUtilities; import jdk.nashorn.internal.objects.Global; import jdk.nashorn.internal.runtime.ConsString; import jdk.nashorn.internal.runtime.JSType; @@ -95,7 +95,7 @@ * @param sourceType the source type to convert from * @param targetType1 one candidate target type * @param targetType2 another candidate target type - * @return one of {@link jdk.internal.dynalink.linker.ConversionComparator.Comparison} values signifying which + * @return one of {@link jdk.dynalink.linker.ConversionComparator.Comparison} values signifying which * target type should be favored for conversion. */ @Override diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornStaticClassLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornStaticClassLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornStaticClassLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornStaticClassLinker.java @@ -26,17 +26,17 @@ package jdk.nashorn.internal.runtime.linker; import java.lang.reflect.Modifier; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.NamedOperation; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.beans.BeansLinker; -import jdk.internal.dynalink.beans.StaticClass; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.GuardingDynamicLinker; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.ECMAErrors; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/PrimitiveLookup.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/PrimitiveLookup.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/PrimitiveLookup.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/PrimitiveLookup.java @@ -32,9 +32,9 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.MethodType; import java.lang.invoke.SwitchPoint; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.support.Guards; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.support.Guards; import jdk.nashorn.internal.runtime.Context; import jdk.nashorn.internal.runtime.FindProperty; import jdk.nashorn.internal.runtime.GlobalConstants; diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java --- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java +++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/ReflectionCheckLinker.java @@ -29,12 +29,12 @@ import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; -import jdk.internal.dynalink.CallSiteDescriptor; -import jdk.internal.dynalink.StandardOperation; -import jdk.internal.dynalink.linker.GuardedInvocation; -import jdk.internal.dynalink.linker.LinkRequest; -import jdk.internal.dynalink.linker.LinkerServices; -import jdk.internal.dynalink.linker.TypeBasedGuardingDynamicLinker; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.linker.TypeBasedGuardingDynamicLinker; import jdk.nashorn.api.scripting.ClassFilter; import jdk.nashorn.internal.objects.Global; import jdk.nashorn.internal.runtime.Context; diff --git a/test/script/basic/JDK-8010946-2.js.EXPECTED b/test/script/basic/JDK-8010946-2.js.EXPECTED --- a/test/script/basic/JDK-8010946-2.js.EXPECTED +++ b/test/script/basic/JDK-8010946-2.js.EXPECTED @@ -1,2 +1,2 @@ -[jdk.internal.dynalink.beans.CallerSensitiveDynamicMethod Object java.security.AccessController.doPrivileged(PrivilegedAction)] -[jdk.internal.dynalink.beans.SimpleDynamicMethod String java.lang.String.valueOf(char)] +[jdk.dynalink.beans.CallerSensitiveDynamicMethod Object java.security.AccessController.doPrivileged(PrivilegedAction)] +[jdk.dynalink.beans.SimpleDynamicMethod String java.lang.String.valueOf(char)] diff --git a/test/script/basic/JDK-8026125.js b/test/script/basic/JDK-8026125.js --- a/test/script/basic/JDK-8026125.js +++ b/test/script/basic/JDK-8026125.js @@ -22,7 +22,7 @@ */ /** - * JDK-8026125: Array.prototype.slice.call(Java.type("java.util.HashMap")) throws ClassCastException: jdk.internal.dynalink.beans.StaticClass cannot be cast to jdk.nashorn.internal.runtime.ScriptObject + * JDK-8026125: Array.prototype.slice.call(Java.type("java.util.HashMap")) throws ClassCastException: jdk.dynalink.beans.StaticClass cannot be cast to jdk.nashorn.internal.runtime.ScriptObject * * @test * @run diff --git a/test/script/basic/JDK-8043232.js.EXPECTED b/test/script/basic/JDK-8043232.js.EXPECTED --- a/test/script/basic/JDK-8043232.js.EXPECTED +++ b/test/script/basic/JDK-8043232.js.EXPECTED @@ -1,16 +1,16 @@ bcd -[jdk.internal.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] +[jdk.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] red TypeError: No such Java class: java.lang.NonExistent TypeError: No such Java constructor: Object(String) TypeError: Java constructor signature invalid: Object()xxxxx TypeError: Java constructor signature invalid: Object( TypeError: Java constructor signature invalid: Object) -TypeError: Java method [jdk.internal.dynalink.beans.OverloadedDynamicMethod +TypeError: Java method [jdk.dynalink.beans.OverloadedDynamicMethod String java.lang.System.getProperty(String,String) String java.lang.System.getProperty(String) ] cannot be used as a constructor. -TypeError: Java method [jdk.internal.dynalink.beans.OverloadedDynamicMethod +TypeError: Java method [jdk.dynalink.beans.OverloadedDynamicMethod void java.io.PrintStream.println() void java.io.PrintStream.println(boolean) void java.io.PrintStream.println(char) @@ -22,7 +22,7 @@ void java.io.PrintStream.println(Object) void java.io.PrintStream.println(String) ] cannot be used as a constructor. -TypeError: Constructor [jdk.internal.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] requires "new". +TypeError: Constructor [jdk.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] requires "new". TypeError: No such Java constructor: Runnable() TypeError: No such Java constructor: Runnable(int) java.lang.InstantiationException: java.io.InputStream diff --git a/test/script/basic/JDK-8049242.js.EXPECTED b/test/script/basic/JDK-8049242.js.EXPECTED --- a/test/script/basic/JDK-8049242.js.EXPECTED +++ b/test/script/basic/JDK-8049242.js.EXPECTED @@ -1,10 +1,10 @@ abc -[jdk.internal.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] +[jdk.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] ava TypeError: null is not a function TypeError: null is not a function TypeError: null is not a function -TypeError: Constructor [jdk.internal.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] requires "new". +TypeError: Constructor [jdk.dynalink.beans.SimpleDynamicMethod java.lang.String(char[],int,int)] requires "new". TypeError: null is not a function TypeError: null is not a function java.lang.InstantiationException: java.io.InputStream diff --git a/test/script/basic/JDK-8079470.js.EXPECTED b/test/script/basic/JDK-8079470.js.EXPECTED --- a/test/script/basic/JDK-8079470.js.EXPECTED +++ b/test/script/basic/JDK-8079470.js.EXPECTED @@ -1,2 +1,2 @@ -TypeError: Can not create new object with constructor [jdk.internal.dynalink.beans.SimpleDynamicMethod java.io.File(String,String)] with the passed arguments; they do not match any of its method signatures. -TypeError: Can not create new object with constructor [jdk.internal.dynalink.beans.SimpleDynamicMethod java.awt.Color(int,int,int)] with the passed arguments; they do not match any of its method signatures. +TypeError: Can not create new object with constructor [jdk.dynalink.beans.SimpleDynamicMethod java.io.File(String,String)] with the passed arguments; they do not match any of its method signatures. +TypeError: Can not create new object with constructor [jdk.dynalink.beans.SimpleDynamicMethod java.awt.Color(int,int,int)] with the passed arguments; they do not match any of its method signatures. diff --git a/test/script/basic/JDK-8134939.js b/test/script/basic/JDK-8134939.js --- a/test/script/basic/JDK-8134939.js +++ b/test/script/basic/JDK-8134939.js @@ -31,13 +31,13 @@ var overloadedSetter = new (Java.type("jdk.nashorn.test.models.OverloadedSetter")); Assert.assertEquals(String(overloadedSetter.foo), - "[jdk.internal.dynalink.beans.OverloadedDynamicMethod\n" + + "[jdk.dynalink.beans.OverloadedDynamicMethod\n" + " String jdk.nashorn.test.models.OverloadedSetter.foo(String)\n" + " void jdk.nashorn.test.models.OverloadedSetter.foo(int)\n" + "]"); Assert.assertEquals(String(overloadedSetter.setColor), - "[jdk.internal.dynalink.beans.OverloadedDynamicMethod\n" + + "[jdk.dynalink.beans.OverloadedDynamicMethod\n" + " void jdk.nashorn.test.models.OverloadedSetter.setColor(int)\n" + " void jdk.nashorn.test.models.OverloadedSetter.setColor(String)\n" + "]"); diff --git a/test/script/sandbox/nashorninternals.js b/test/script/sandbox/nashorninternals.js --- a/test/script/sandbox/nashorninternals.js +++ b/test/script/sandbox/nashorninternals.js @@ -63,7 +63,3 @@ checkClass("jdk.nashorn.internal.runtime.regexp.RegExp"); checkClass("jdk.nashorn.internal.scripts.JO"); checkClass("jdk.nashorn.tools.Shell"); -checkClass("jdk.internal.dynalink.CallSiteDescriptor"); -checkClass("jdk.internal.dynalink.beans.StaticClass"); -checkClass("jdk.internal.dynalink.linker.LinkRequest"); -checkClass("jdk.internal.dynalink.support.AbstractRelinkableCallSite"); diff --git a/test/script/trusted/classfilter.js.EXPECTED b/test/script/trusted/classfilter.js.EXPECTED --- a/test/script/trusted/classfilter.js.EXPECTED +++ b/test/script/trusted/classfilter.js.EXPECTED @@ -4,7 +4,7 @@ typeof java.util.Map evalutes to function typeof java.util.HashMap evalutes to function var m = new java.util.HashMap(); m.put('foo', 42); m evalutes to {foo=42} -java.lang.System.out.println evalutes to [jdk.internal.dynalink.beans.OverloadedDynamicMethod +java.lang.System.out.println evalutes to [jdk.dynalink.beans.OverloadedDynamicMethod void java.io.PrintStream.println() void java.io.PrintStream.println(boolean) void java.io.PrintStream.println(char) @@ -16,7 +16,7 @@ void java.io.PrintStream.println(Object) void java.io.PrintStream.println(String) ] -java.lang.System.exit evalutes to [jdk.internal.dynalink.beans.SimpleDynamicMethod void java.lang.System.exit(int)] +java.lang.System.exit evalutes to [jdk.dynalink.beans.SimpleDynamicMethod void java.lang.System.exit(int)] new javax.script.SimpleBindings throws java.lang.RuntimeException: java.lang.ClassNotFoundException: javax.script.SimpleBindings Java.type('javax.script.ScriptContext') throws java.lang.RuntimeException: java.lang.ClassNotFoundException: javax.script.ScriptContext java.lang.Class.forName('javax.script.ScriptContext') throws javax.script.ScriptException: TypeError: Java reflection not supported when class filter is present in at line number 1 diff --git a/test/src/META-INF/services/jdk.dynalink.linker.GuardingDynamicLinkerExporter b/test/src/META-INF/services/jdk.dynalink.linker.GuardingDynamicLinkerExporter new file mode 100644 --- /dev/null +++ b/test/src/META-INF/services/jdk.dynalink.linker.GuardingDynamicLinkerExporter @@ -0,0 +1,2 @@ +jdk.dynalink.test.UntrustedGuardingDynamicLinkerExporter +jdk.dynalink.test.TrustedGuardingDynamicLinkerExporter diff --git a/test/src/jdk/dynalink/beans/test/BeanLinkerTest.java b/test/src/jdk/dynalink/beans/test/BeanLinkerTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/beans/test/BeanLinkerTest.java @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.dynalink.beans.test; + +import java.lang.invoke.CallSite; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.security.AccessControlException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.NoSuchDynamicMethodException; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.StaticClass; +import jdk.dynalink.support.SimpleRelinkableCallSite; +import org.testng.Assert; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +public class BeanLinkerTest { + + private DynamicLinker linker; + private static final MethodHandles.Lookup MY_LOOKUP = MethodHandles.lookup(); + + @SuppressWarnings("unused") + @DataProvider + private static Object[][] flags() { + return new Object[][]{ + {Boolean.FALSE}, + {Boolean.TRUE} + }; + } + + // helpers to create callsite objects + private CallSite createCallSite(final boolean publicLookup, final Operation op, final MethodType mt) { + return linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + publicLookup ? MethodHandles.publicLookup() : MY_LOOKUP, op, mt))); + } + + private CallSite createCallSite(final boolean publicLookup, final Operation op, final Object name, final MethodType mt) { + return createCallSite(publicLookup, new NamedOperation(op, name), mt); + } + + @BeforeTest + public void initLinker() { + final DynamicLinkerFactory factory = new DynamicLinkerFactory(); + this.linker = factory.createLinker(); + } + + @AfterTest + public void afterTest() { + this.linker = null; + } + + @Test(dataProvider = "flags") + public void getPropertyTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(Object.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, mt); + Assert.assertEquals(cs.getTarget().invoke(new Object(), "class"), Object.class); + Assert.assertEquals(cs.getTarget().invoke(new Date(), "class"), Date.class); + } + + @Test(dataProvider = "flags") + public void getPropertyNegativeTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(Object.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, mt); + Assert.assertNull(cs.getTarget().invoke(new Object(), "DOES_NOT_EXIST")); + } + + @Test(dataProvider = "flags") + public void getPropertyTest2(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, "class", mt); + Assert.assertEquals(cs.getTarget().invoke(new Object()), Object.class); + Assert.assertEquals(cs.getTarget().invoke(new Date()), Date.class); + } + + @Test(dataProvider = "flags") + public void getPropertyNegativeTest2(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, "DOES_NOT_EXIST", mt); + + try { + cs.getTarget().invoke(new Object()); + throw new RuntimeException("Expected NoSuchDynamicMethodException"); + } catch (Throwable th) { + Assert.assertTrue(th instanceof NoSuchDynamicMethodException); + } + } + + @Test(dataProvider = "flags") + public void getLengthPropertyTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(int.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, mt); + + Assert.assertEquals((int) cs.getTarget().invoke(new int[10], "length"), 10); + Assert.assertEquals((int) cs.getTarget().invoke(new String[33], "length"), 33); + } + + @Test(dataProvider = "flags") + public void getlengthTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(int.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_LENGTH, mt); + + final int[] arr = {23, 42}; + Assert.assertEquals((int) cs.getTarget().invoke((Object) arr), 2); + Assert.assertEquals((int) cs.getTarget().invoke(Collections.EMPTY_LIST), 0); + + final List list = new ArrayList<>(); + list.add("hello"); + list.add("world"); + list.add("dynalink"); + Assert.assertEquals((int) cs.getTarget().invoke(list), 3); + list.add("nashorn"); + Assert.assertEquals((int) cs.getTarget().invoke(list), 4); + list.clear(); + Assert.assertEquals((int) cs.getTarget().invoke(list), 0); + } + + @Test(dataProvider = "flags") + public void getElementTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(int.class, Object.class, int.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_ELEMENT, mt); + + final int[] arr = {23, 42}; + Assert.assertEquals((int) cs.getTarget().invoke(arr, 0), 23); + Assert.assertEquals((int) cs.getTarget().invoke(arr, 1), 42); + try { + int x = (int) cs.getTarget().invoke(arr, -1); + throw new RuntimeException("expected ArrayIndexOutOfBoundsException"); + } catch (ArrayIndexOutOfBoundsException ex) { + } + + try { + int x = (int) cs.getTarget().invoke(arr, arr.length); + throw new RuntimeException("expected ArrayIndexOutOfBoundsException"); + } catch (ArrayIndexOutOfBoundsException ex) { + } + + final List list = new ArrayList<>(); + list.add(23); + list.add(430); + list.add(-4354); + Assert.assertEquals((int) cs.getTarget().invoke(list, 0), (int) list.get(0)); + Assert.assertEquals((int) cs.getTarget().invoke(list, 1), (int) list.get(1)); + Assert.assertEquals((int) cs.getTarget().invoke(list, 2), (int) list.get(2)); + try { + int x = (int) cs.getTarget().invoke(list, -1); + throw new RuntimeException("expected IndexOutOfBoundsException"); + } catch (IndexOutOfBoundsException ex) { + } + + try { + int x = (int) cs.getTarget().invoke(list, list.size()); + throw new RuntimeException("expected IndexOutOfBoundsException"); + } catch (IndexOutOfBoundsException ex) { + } + } + + @Test(dataProvider = "flags") + public void setElementTest(final boolean publicLookup) throws Throwable { + final MethodType mt = MethodType.methodType(void.class, Object.class, int.class, int.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.SET_ELEMENT, mt); + + final int[] arr = {23, 42}; + cs.getTarget().invoke(arr, 0, 0); + Assert.assertEquals(arr[0], 0); + cs.getTarget().invoke(arr, 1, -5); + Assert.assertEquals(arr[1], -5); + + try { + cs.getTarget().invoke(arr, -1, 12); + throw new RuntimeException("expected ArrayIndexOutOfBoundsException"); + } catch (ArrayIndexOutOfBoundsException ex) { + } + + try { + cs.getTarget().invoke(arr, arr.length, 20); + throw new RuntimeException("expected ArrayIndexOutOfBoundsException"); + } catch (ArrayIndexOutOfBoundsException ex) { + } + + final List list = new ArrayList<>(); + list.add(23); + list.add(430); + list.add(-4354); + + cs.getTarget().invoke(list, 0, -list.get(0)); + Assert.assertEquals((int) list.get(0), -23); + cs.getTarget().invoke(list, 1, -430); + cs.getTarget().invoke(list, 2, 4354); + try { + cs.getTarget().invoke(list, -1, 343); + throw new RuntimeException("expected IndexOutOfBoundsException"); + } catch (IndexOutOfBoundsException ex) { + } + + try { + cs.getTarget().invoke(list, list.size(), 43543); + throw new RuntimeException("expected IndexOutOfBoundsException"); + } catch (IndexOutOfBoundsException ex) { + } + } + + @Test(dataProvider = "flags") + public void newObjectTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.NEW, mt); + + Object obj = null; + try { + obj = cs.getTarget().invoke(StaticClass.forClass(Date.class)); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertTrue(obj instanceof Date); + } + + @Test(dataProvider = "flags") + public void staticPropertyTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Object.class, Class.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_PROPERTY, "static", mt); + + Object obj = null; + try { + obj = cs.getTarget().invoke(Object.class); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertTrue(obj instanceof StaticClass); + Assert.assertEquals(((StaticClass) obj).getRepresentedClass(), Object.class); + + try { + obj = cs.getTarget().invoke(Date.class); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertTrue(obj instanceof StaticClass); + Assert.assertEquals(((StaticClass) obj).getRepresentedClass(), Date.class); + + try { + obj = cs.getTarget().invoke(Object[].class); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertTrue(obj instanceof StaticClass); + Assert.assertEquals(((StaticClass) obj).getRepresentedClass(), Object[].class); + } + + @Test(dataProvider = "flags") + public void instanceMethodCallTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_METHOD, "getClass", mt); + final MethodType mt2 = MethodType.methodType(Class.class, Object.class, Object.class); + final CallSite cs2 = createCallSite(publicLookup, StandardOperation.CALL, mt2); + + Object method = null; + try { + method = cs.getTarget().invoke(new Date()); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertNotNull(method); + Assert.assertTrue(BeansLinker.isDynamicMethod(method)); + Class clz = null; + try { + clz = (Class) cs2.getTarget().invoke(method, new Date()); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertEquals(clz, Date.class); + } + + @Test(dataProvider = "flags") + public void instanceMethodCallTest2(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Class.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.CALL_METHOD, "getClass", mt); + Class clz = null; + try { + clz = (Class) cs.getTarget().invoke(new Date()); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertEquals(clz, Date.class); + } + + @Test(dataProvider = "flags") + public void staticMethodCallTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Object.class, StaticClass.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.GET_METHOD, "getProperty", mt); + final MethodType mt2 = MethodType.methodType(String.class, Object.class, Object.class, String.class); + final CallSite cs2 = createCallSite(publicLookup, StandardOperation.CALL, mt2); + + Object method = null; + try { + method = cs.getTarget().invoke(StaticClass.forClass(System.class)); + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertNotNull(method); + Assert.assertTrue(BeansLinker.isDynamicMethod(method)); + + String str = null; + try { + str = (String) cs2.getTarget().invoke(method, null, "os.name"); + } catch (Throwable th) { + throw new RuntimeException(th); + } + Assert.assertEquals(str, System.getProperty("os.name")); + } + + @Test(dataProvider = "flags") + public void staticMethodCallTest2(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(String.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.CALL_METHOD, "getProperty", mt); + + String str = null; + try { + str = (String) cs.getTarget().invoke(StaticClass.forClass(System.class), "os.name"); + } catch (Throwable th) { + throw new RuntimeException(th); + } + Assert.assertEquals(str, System.getProperty("os.name")); + } + + // try calling System.getenv and expect security exception + @Test(dataProvider = "flags") + public void systemGetenvTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.CALL_METHOD, "getenv", mt); + + try { + cs.getTarget().invoke(StaticClass.forClass(System.class)); + throw new RuntimeException("should not reach here in any case!"); + } catch (Throwable th) { + Assert.assertTrue(th instanceof SecurityException); + } + } + + // try getting a specific sensitive System property and expect security exception + @Test(dataProvider = "flags") + public void systemGetPropertyTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(String.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.CALL_METHOD, "getProperty", mt); + + try { + cs.getTarget().invoke(StaticClass.forClass(System.class), "java.home"); + throw new RuntimeException("should not reach here in any case!"); + } catch (Throwable th) { + Assert.assertTrue(th instanceof SecurityException); + } + } + + // check a @CallerSensitive API and expect appropriate access check exception + @Test(dataProvider = "flags") + public void systemLoadLibraryTest(final boolean publicLookup) { + final MethodType mt = MethodType.methodType(void.class, Object.class, String.class); + final CallSite cs = createCallSite(publicLookup, StandardOperation.CALL_METHOD, "loadLibrary", mt); + + try { + cs.getTarget().invoke(StaticClass.forClass(System.class), "foo"); + throw new RuntimeException("should not reach here in any case!"); + } catch (Throwable th) { + if (publicLookup) { + Assert.assertTrue(th instanceof IllegalAccessError); + } else { + Assert.assertTrue(th instanceof AccessControlException); + } + } + } +} diff --git a/test/src/jdk/dynalink/beans/test/BeansLinkerTest.java b/test/src/jdk/dynalink/beans/test/BeansLinkerTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/beans/test/BeansLinkerTest.java @@ -0,0 +1,289 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.dynalink.beans.test; + +import static jdk.dynalink.StandardOperation.CALL; +import static jdk.dynalink.StandardOperation.GET_ELEMENT; +import static jdk.dynalink.StandardOperation.GET_METHOD; +import static jdk.dynalink.StandardOperation.GET_PROPERTY; +import static jdk.dynalink.StandardOperation.SET_ELEMENT; +import static jdk.dynalink.StandardOperation.SET_PROPERTY; + +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Consumer; +import java.util.function.Predicate; +import java.util.regex.Pattern; +import java.util.stream.Stream; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.CompositeOperation; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.support.SimpleRelinkableCallSite; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class BeansLinkerTest { + public static class Bean1 { + public final int answer = 42; + + public String getName() { + return "bean1"; + } + + public String someMethod(final String x) { + return x + "-foo"; + } + } + + @Test + public static void testPublicFieldPropertyUnnamedGetter() { + testGetterPermutations(GET_PROPERTY, (op) -> Assert.assertEquals(42, call(op, new Bean1(), "answer"))); + } + + @Test + public static void testPublicFieldPropertyNamedGetter() { + testGetterPermutations(GET_PROPERTY, (op) -> Assert.assertEquals(42, call(named("answer", op), new Bean1()))); + } + + @Test + public static void testGetterPropertyUnnamedGetter() { + testGetterPermutations(GET_PROPERTY, (op) -> Assert.assertEquals("bean1", call(op, new Bean1(), "name"))); + } + + @Test + public static void testGetterPropertyNamedGetter() { + testGetterPermutations(GET_PROPERTY, (op) -> Assert.assertEquals("bean1", call(named("name", op), new Bean1()))); + } + + @Test + public static void testMethodUnnamedGetter() { + testGetterPermutations(GET_METHOD, (op) -> Assert.assertEquals("bar-foo", call(call(op, new Bean1(), "someMethod"), new Bean1(), "bar"))); + } + + @Test + public static void testMethodNamedGetter() { + testGetterPermutations(GET_METHOD, (op) -> Assert.assertEquals("bar-foo", call(call(named("someMethod", op), new Bean1()), new Bean1(), "bar"))); + } + + private static final Map MAP1 = new HashMap<>(); + static { + MAP1.put("foo", "bar"); + } + + @Test + public static void testElementUnnamedGetter() { + testGetterPermutations(GET_ELEMENT, (op) -> Assert.assertEquals("bar", call(op, MAP1, "foo"))); + } + + @Test + public static void testElementNamedGetter() { + testGetterPermutations(GET_ELEMENT, (op) -> Assert.assertEquals("bar", call(named("foo", op), MAP1))); + } + + public static class Bean2 { + public int answer; + private String name; + + public void setName(final String name) { + this.name = name; + } + } + + @Test + public static void testUnnamedFieldSetter() { + testSetterPermutations(SET_PROPERTY, (op) -> { + final Bean2 bean2 = new Bean2(); + call(op, bean2, "answer", 12); + Assert.assertEquals(bean2.answer, 12); + }); + } + + @Test + public static void testNamedFieldSetter() { + testSetterPermutations(SET_PROPERTY, (op) -> { + final Bean2 bean2 = new Bean2(); + call(named("answer", op), bean2, 14); + Assert.assertEquals(bean2.answer, 14); + }); + } + + @Test + public static void testUnnamedPropertySetter() { + testSetterPermutations(SET_PROPERTY, (op) -> { + final Bean2 bean2 = new Bean2(); + call(op, bean2, "name", "boo"); + Assert.assertEquals(bean2.name, "boo"); + }); + } + + @Test + public static void testNamedPropertySetter() { + testSetterPermutations(SET_PROPERTY, (op) -> { + final Bean2 bean2 = new Bean2(); + call(named("name", op), bean2, "blah"); + Assert.assertEquals(bean2.name, "blah"); + }); + } + + private static final Pattern GET_ELEMENT_THEN_PROPERTY_PATTERN = Pattern.compile(".*GET_ELEMENT.*GET_PROPERTY.*"); + + @Test + public static void testUnnamedElementAndPropertyGetter() { + final Map map = new HashMap<>(); + map.put("empty", true); + testGetterPermutations(GET_ELEMENT_THEN_PROPERTY_PATTERN, 4, (op) -> Assert.assertEquals(true, call(op, map, "empty"))); + } + + @Test + public static void testNamedElementAndPropertyGetter() { + final Map map = new HashMap<>(); + map.put("empty", true); + testGetterPermutations(GET_ELEMENT_THEN_PROPERTY_PATTERN, 4, (op) -> Assert.assertEquals(true, call(named("empty", op), map))); + } + + private static final Pattern GET_PROPERTY_THEN_ELEMENT_PATTERN = Pattern.compile(".*GET_PROPERTY.*GET_ELEMENT.*"); + + @Test + public static void testUnnamedPropertyAndElementGetter() { + final Map map = new HashMap<>(); + map.put("empty", true); + testGetterPermutations(GET_PROPERTY_THEN_ELEMENT_PATTERN, 4, (op) -> Assert.assertEquals(false, call(op, map, "empty"))); + } + + @Test + public static void testNamedPropertyAndElementGetter() { + final Map map = new HashMap<>(); + map.put("empty", true); + testGetterPermutations(GET_PROPERTY_THEN_ELEMENT_PATTERN, 4, (op) -> Assert.assertEquals(false, call(named("empty", op), map))); + } + + public static class MapWithProperty extends HashMap { + private String name; + + public void setName(final String name) { + this.name = name; + } + } + + @Test + public static void testUnnamedPropertyAndElementSetter() { + final MapWithProperty map = new MapWithProperty(); + map.put("name", "element"); + + call(ops(SET_PROPERTY, SET_ELEMENT), map, "name", "property"); + Assert.assertEquals("property", map.name); + Assert.assertEquals("element", map.get("name")); + + call(ops(SET_ELEMENT, SET_PROPERTY), map, "name", "element2"); + Assert.assertEquals("property", map.name); + Assert.assertEquals("element2", map.get("name")); + } + + private static Operation[] GETTER_PERMUTATIONS = new Operation[] { + GET_PROPERTY, + GET_METHOD, + GET_ELEMENT, + ops(GET_PROPERTY, GET_ELEMENT), + ops(GET_PROPERTY, GET_METHOD), + ops(GET_ELEMENT, GET_PROPERTY), + ops(GET_ELEMENT, GET_METHOD), + ops(GET_METHOD, GET_PROPERTY), + ops(GET_METHOD, GET_ELEMENT), + ops(GET_PROPERTY, GET_ELEMENT, GET_METHOD), + ops(GET_PROPERTY, GET_METHOD, GET_ELEMENT), + ops(GET_ELEMENT, GET_PROPERTY, GET_METHOD), + ops(GET_ELEMENT, GET_METHOD, GET_PROPERTY), + ops(GET_METHOD, GET_PROPERTY, GET_ELEMENT), + ops(GET_METHOD, GET_ELEMENT, GET_PROPERTY), + }; + + private static Operation[] SETTER_PERMUTATIONS = new Operation[] { + SET_PROPERTY, + SET_ELEMENT, + ops(SET_PROPERTY, SET_ELEMENT), + ops(SET_ELEMENT, SET_PROPERTY) + }; + + private static void testPermutations(final Operation[] ops, final StandardOperation requiredOp, final int expectedCount, final Consumer test) { + testPermutationsWithFilter(ops, (op)->CompositeOperation.contains(op, requiredOp), expectedCount, test); + } + + private static void testPermutations(final Operation[] ops, final Pattern regex, final int expectedCount, final Consumer test) { + testPermutationsWithFilter(ops, (op)->regex.matcher(op.toString()).matches(), expectedCount, test); + } + + private static void testPermutationsWithFilter(final Operation[] ops, final Predicate filter, final int expectedCount, final Consumer test) { + final int[] counter = new int[1]; + Stream.of(ops).filter(filter).forEach((op)-> { counter[0]++; test.accept(op); }); + Assert.assertEquals(counter[0], expectedCount); + } + + private static void testGetterPermutations(final StandardOperation requiredOp, final Consumer test) { + testPermutations(GETTER_PERMUTATIONS, requiredOp, 11, test); + } + + private static void testGetterPermutations(final Pattern regex, final int expectedCount, final Consumer test) { + testPermutations(GETTER_PERMUTATIONS, regex, expectedCount, test); + } + + private static void testSetterPermutations(final StandardOperation requiredOp, final Consumer test) { + testPermutations(SETTER_PERMUTATIONS, requiredOp, 3, test); + } + + private static Object call(final Operation op, final Object... args) { + try { + return new DynamicLinkerFactory().createLinker().link( + new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), op, t(args.length)))) + .dynamicInvoker().invokeWithArguments(args); + } catch (final Error|RuntimeException e) { + throw e; + } catch (final Throwable t) { + throw new RuntimeException(t); + } + } + + private static Object call(final Object... args) { + return call(CALL, args); + } + + private static Operation named(final Object name, final Operation... ops) { + return new NamedOperation(ops(ops), name); + } + + private static Operation ops(final Operation... ops) { + return ops.length == 1 ? ops[0] : new CompositeOperation(ops); + } + + private static MethodType t(final int argCount) { + return MethodType.methodType(Object.class, Collections.nCopies(argCount, Object.class)); + } +} diff --git a/test/src/jdk/dynalink/beans/test/CallerSensitiveTest.java b/test/src/jdk/dynalink/beans/test/CallerSensitiveTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/beans/test/CallerSensitiveTest.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2014, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.beans.test; + +import jdk.dynalink.beans.BeansLinker; +import jdk.nashorn.test.models.ClassLoaderAware; +import org.testng.annotations.Test; + +@SuppressWarnings("javadoc") +public class CallerSensitiveTest { + @Test + public void testCallerSensitive() { + BeansLinker.getLinkerForClass(ClassLoaderAware.class); + } +} diff --git a/test/src/jdk/dynalink/linker/support/test/LookupTest.java b/test/src/jdk/dynalink/linker/support/test/LookupTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/linker/support/test/LookupTest.java @@ -0,0 +1,273 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.linker.support.test; + +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import jdk.dynalink.linker.support.Lookup; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Test; + +// Tests for jdk.dynalink.linker.support.Lookup class. + +public class LookupTest { + private static final MethodHandles.Lookup MY_LOOKUP = MethodHandles.lookup(); + + private static MethodHandles.Lookup getLookup(final boolean publicLookup) { + return publicLookup? MethodHandles.publicLookup() : MY_LOOKUP; + } + + // test constructors, methods used for lookup + @SuppressWarnings("unused") + public LookupTest() {} + + @SuppressWarnings("unused") + private LookupTest(final int unused) {} + + @SuppressWarnings("unused") + private void privateFunc() {} + + @SuppressWarnings("unused") + protected void protectedFunc() {} + + @SuppressWarnings("unused") + private static void privateStaticFunc() {} + + @SuppressWarnings("unused") + private int myIntField = 0; + + @SuppressWarnings("unused") + @DataProvider + private static Object[][] flags() { + return new Object[][]{ + {Boolean.FALSE}, + {Boolean.TRUE} + }; + } + + @Test(dataProvider = "flags") + public void unreflectTest(final boolean publicLookup) throws NoSuchMethodException { + MethodHandle mh = Lookup.unreflect(getLookup(publicLookup), LookupTest.class.getMethod("unreflectTest", Boolean.TYPE)); + Assert.assertNotNull(mh); + } + + @Test + public void unreflectTest2() throws NoSuchMethodException { + MethodHandle mh = Lookup.PUBLIC.unreflect(LookupTest.class.getMethod("unreflectTest", Boolean.TYPE)); + Assert.assertNotNull(mh); + } + + @Test(dataProvider = "flags") + public void unreflectNegativeTest(final boolean publicLookup) throws NoSuchMethodException { + try { + MethodHandle mh = Lookup.unreflect(getLookup(publicLookup), + LookupTest.class.getDeclaredMethod("privateFunc")); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void unreflectNegativeTest2() throws NoSuchMethodException { + try { + Lookup.PUBLIC.unreflect(LookupTest.class.getDeclaredMethod("privateFunc")); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void unreflectConstructorTest(final boolean publicLookup) throws NoSuchMethodException { + MethodHandle mh = Lookup.unreflectConstructor(getLookup(publicLookup), LookupTest.class.getConstructor()); + Assert.assertNotNull(mh); + } + + @Test + public void unreflectConstructorTest2() throws NoSuchMethodException { + MethodHandle mh = Lookup.PUBLIC.unreflectConstructor(LookupTest.class.getConstructor()); + Assert.assertNotNull(mh); + } + + @Test(dataProvider = "flags") + public void unreflectConstructorNegativeTest(final boolean publicLookup) throws NoSuchMethodException { + try { + MethodHandle mh = Lookup.unreflectConstructor(getLookup(publicLookup), + LookupTest.class.getDeclaredConstructor(Integer.TYPE)); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void unreflectConstructorNegativeTest2() throws NoSuchMethodException { + try { + Lookup.PUBLIC.unreflectConstructor( + LookupTest.class.getDeclaredConstructor(Integer.TYPE)); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void findOwnStaticTest(final boolean publicLookup) { + try { + MethodHandle mh = Lookup.findOwnStatic(getLookup(publicLookup), "getLookup", + MethodHandles.Lookup.class, Boolean.TYPE); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void findOwnStaticTest2() { + try { + Lookup.PUBLIC.findStatic(LookupTest.class, "getLookup", + MethodType.methodType(MethodHandles.Lookup.class, Boolean.TYPE)); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void findOwnSepcialTest(final boolean publicLookup) { + try { + MethodHandle mh = Lookup.findOwnSpecial(getLookup(publicLookup), "privateFunc", Void.TYPE); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void findOwnSepcialTest2() { + try { + Lookup.PUBLIC.findOwnSpecial("privateFunc", Void.TYPE); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void findGetterTest(final boolean publicLookup) { + try { + MethodHandle mh = new Lookup(getLookup(publicLookup)).findGetter(LookupTest.class, "myIntField", Integer.TYPE); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void findGetterTest2() { + try { + Lookup.PUBLIC.findGetter(LookupTest.class, "myIntField", Integer.TYPE); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void findVirtualTest(final boolean publicLookup) { + try { + MethodHandle mh = new Lookup(getLookup(publicLookup)).findVirtual(LookupTest.class, "protectedFunc", + MethodType.methodType(Void.TYPE)); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void findVirtualTest2() { + try { + Lookup.PUBLIC.findVirtual(LookupTest.class, "protectedFunc", + MethodType.methodType(Void.TYPE)); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test(dataProvider = "flags") + public void findStaticTest(final boolean publicLookup) { + try { + MethodHandle mh = new Lookup(getLookup(publicLookup)).findStatic(LookupTest.class, "privateStaticFunc", + MethodType.methodType(Void.TYPE)); + if (publicLookup) { + throw new RuntimeException("should have thrown Error"); + } + Assert.assertNotNull(mh); + } catch (Error err) { + Assert.assertTrue(publicLookup); + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } + + @Test + public void findStaticTest2() { + try { + Lookup.PUBLIC.findStatic(LookupTest.class, "privateStaticFunc", + MethodType.methodType(Void.TYPE)); + throw new RuntimeException("should have thrown Error"); + } catch (Error err) { + Assert.assertTrue(err instanceof NoSuchMethodError || err instanceof IllegalAccessError); + } + } +} diff --git a/test/src/jdk/dynalink/support/test/CallSiteTest.java b/test/src/jdk/dynalink/support/test/CallSiteTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/support/test/CallSiteTest.java @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.support.test; + +import java.lang.invoke.CallSite; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.util.ArrayList; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.NamedOperation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardedInvocation; +import jdk.dynalink.support.SimpleRelinkableCallSite; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class CallSiteTest { + @Test + public void testInitialize() { + final DynamicLinkerFactory factory = new DynamicLinkerFactory(); + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final boolean[] initializeCalled = { Boolean.FALSE }; + linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), new NamedOperation(StandardOperation.GET_PROPERTY, "DO_NOT_CARE"), mt)) { + @Override + public void initialize(final MethodHandle relinkAndInvoke) { + initializeCalled[0] = Boolean.TRUE; + super.initialize(relinkAndInvoke); + } + }); + + Assert.assertTrue(initializeCalled[0]); + } + + @Test + public void testRelink() { + final DynamicLinkerFactory factory = new DynamicLinkerFactory(); + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final boolean[] relinkCalled = { Boolean.FALSE }; + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), new NamedOperation(StandardOperation.GET_PROPERTY, "class"), mt)) { + @Override + public void relink(final GuardedInvocation guardedInvocation, final MethodHandle relinkAndInvoke) { + relinkCalled[0] = Boolean.TRUE; + super.relink(guardedInvocation, relinkAndInvoke); + } + }); + + Assert.assertFalse(relinkCalled[0]); + try { + cs.getTarget().invoke(new Object()); + } catch (final Throwable th) {} + + Assert.assertTrue(relinkCalled[0]); + } + + @Test + public void testResetAndRelink() { + final DynamicLinkerFactory factory = new DynamicLinkerFactory(); + factory.setUnstableRelinkThreshold(1); + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class, Object.class); + final boolean[] resetAndRelinkCalled = { Boolean.FALSE }; + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), new NamedOperation(StandardOperation.GET_PROPERTY, "length"), mt)) { + @Override + public void resetAndRelink(final GuardedInvocation guardedInvocation, final MethodHandle relinkAndInvoke) { + resetAndRelinkCalled[0] = Boolean.TRUE; + super.resetAndRelink(guardedInvocation, relinkAndInvoke); + } + }); + + Assert.assertFalse(resetAndRelinkCalled[0]); + try { + cs.getTarget().invoke(new Object[] {}); + } catch (final Throwable th) {} + + Assert.assertFalse(resetAndRelinkCalled[0]); + try { + cs.getTarget().invoke(new ArrayList()); + } catch (final Throwable th) {} + + Assert.assertTrue(resetAndRelinkCalled[0]); + } +} diff --git a/test/src/jdk/dynalink/test/DynamicLinkerFactoryTest.java b/test/src/jdk/dynalink/test/DynamicLinkerFactoryTest.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/test/DynamicLinkerFactoryTest.java @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.dynalink.test; + +import java.lang.invoke.CallSite; +import java.lang.invoke.MethodHandle; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.MethodType; +import java.util.List; +import java.util.ServiceConfigurationError; +import jdk.dynalink.CallSiteDescriptor; +import jdk.dynalink.DynamicLinker; +import jdk.dynalink.DynamicLinkerFactory; +import jdk.dynalink.NoSuchDynamicMethodException; +import jdk.dynalink.Operation; +import jdk.dynalink.StandardOperation; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; +import jdk.dynalink.support.SimpleRelinkableCallSite; +import jdk.dynalink.linker.GuardedInvocation; +import org.testng.Assert; +import org.testng.annotations.Test; + +@SuppressWarnings("javadoc") +public class DynamicLinkerFactoryTest { + + private static DynamicLinkerFactory newDynamicLinkerFactory(final boolean resetClassLoader) { + final DynamicLinkerFactory factory = new DynamicLinkerFactory(); + if (resetClassLoader) { + factory.setClassLoader(null); + } + return factory; + } + + @Test + public void callSiteCreationTest() { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final DynamicLinker linker = factory.createLinker(); + final StandardOperation[] operations = StandardOperation.values(); + final MethodType mt = MethodType.methodType(Object.class, Object.class); + for (final Operation op : operations) { + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), op, mt))); + Assert.assertNotNull(cs); + Assert.assertEquals(cs.type(), mt); + Assert.assertNotNull(cs.getTarget()); + } + } + + @Test + public void fallbackLinkerTest() { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final Operation myOperation = new Operation() { + }; + final boolean[] reachedFallback = { false }; + factory.setFallbackLinkers((GuardingDynamicLinker) (LinkRequest linkRequest, LinkerServices linkerServices) -> { + Assert.assertEquals(linkRequest.getCallSiteDescriptor().getOperation(), myOperation); + reachedFallback[0] = true; + return null; + }); + + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class); + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), myOperation, mt))); + + // linking the call site initially does not invoke the linkers! + Assert.assertFalse(reachedFallback[0]); + try { + cs.getTarget().invoke(); + } catch (NoSuchDynamicMethodException nsdm) { + // we do expect NoSuchDynamicMethod! + // because our dummy fallback linker returns null! + } catch (Throwable th) { + throw new RuntimeException("should not reach here with: " + th); + } + + // check that the control reached fallback linker! + Assert.assertTrue(reachedFallback[0]); + } + + @Test + public void priorityLinkerTest() { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final Operation myOperation = new Operation() { + }; + final boolean[] reachedProrityLinker = { false }; + factory.setPrioritizedLinker((GuardingDynamicLinker) (LinkRequest linkRequest, LinkerServices linkerServices) -> { + Assert.assertEquals(linkRequest.getCallSiteDescriptor().getOperation(), myOperation); + reachedProrityLinker[0] = true; + return null; + }); + + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class); + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), myOperation, mt))); + + // linking the call site initially does not invoke the linkers! + Assert.assertFalse(reachedProrityLinker[0]); + try { + cs.getTarget().invoke(); + } catch (NoSuchDynamicMethodException nsdm) { + // we do expect NoSuchDynamicMethod! + // because our dummy priority linker returns null! + } catch (Throwable th) { + throw new RuntimeException("should not reach here with: " + th); + } + + // check that the control reached fallback linker! + Assert.assertTrue(reachedProrityLinker[0]); + } + + @Test + public void priorityAndFallbackLinkerTest() { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final Operation myOperation = new Operation() { + }; + final int[] linkerReachCounter = { 0 }; + factory.setPrioritizedLinker((GuardingDynamicLinker) (LinkRequest linkRequest, LinkerServices linkerServices) -> { + Assert.assertEquals(linkRequest.getCallSiteDescriptor().getOperation(), myOperation); + linkerReachCounter[0]++; + return null; + }); + factory.setFallbackLinkers((GuardingDynamicLinker) (LinkRequest linkRequest, LinkerServices linkerServices) -> { + Assert.assertEquals(linkRequest.getCallSiteDescriptor().getOperation(), myOperation); + Assert.assertEquals(linkerReachCounter[0], 1); + linkerReachCounter[0]++; + return null; + }); + + final DynamicLinker linker = factory.createLinker(); + final MethodType mt = MethodType.methodType(Object.class); + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), myOperation, mt))); + + // linking the call site initially does not invoke the linkers! + Assert.assertEquals(linkerReachCounter[0], 0); + + try { + cs.getTarget().invoke(); + } catch (NoSuchDynamicMethodException nsdm) { + // we do expect NoSuchDynamicMethod! + } catch (Throwable th) { + throw new RuntimeException("should not reach here with: " + th); + } + + Assert.assertEquals(linkerReachCounter[0], 2); + } + + @Test + public void prelinkTransformerTest() throws Throwable { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final boolean[] reachedPrelinkTransformer = { false }; + + factory.setPrelinkTransformer((GuardedInvocation inv, LinkRequest linkRequest, LinkerServices linkerServices) -> { + reachedPrelinkTransformer[0] = true; + // just identity transformer! + return inv; + }); + + final MethodType mt = MethodType.methodType(Object.class, Object.class, String.class); + final DynamicLinker linker = factory.createLinker(); + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), StandardOperation.GET_PROPERTY, mt))); + Assert.assertFalse(reachedPrelinkTransformer[0]); + Assert.assertEquals(cs.getTarget().invoke(new Object(), "class"), Object.class); + Assert.assertTrue(reachedPrelinkTransformer[0]); + } + + @Test + public void internalObjectsFilterTest() throws Throwable { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(true); + final boolean[] reachedInternalObjectsFilter = { false }; + + factory.setInternalObjectsFilter((MethodHandle mh) -> { + reachedInternalObjectsFilter[0] = true; + return mh; + }); + + final MethodType mt = MethodType.methodType(Object.class, Object.class, String.class); + final DynamicLinker linker = factory.createLinker(); + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), StandardOperation.GET_PROPERTY, mt))); + Assert.assertFalse(reachedInternalObjectsFilter[0]); + Assert.assertEquals(cs.getTarget().invoke(new Object(), "class"), Object.class); + Assert.assertTrue(reachedInternalObjectsFilter[0]); + } + + private static void checkOneAutoLoadingError(final DynamicLinkerFactory factory) { + // expect one error as we have one untrusted linker exporter in META-INF/services + final List autoLoadingErrors = factory.getAutoLoadingErrors(); + // single error ... + Assert.assertFalse(autoLoadingErrors.isEmpty()); + final Throwable cause = autoLoadingErrors.get(0).getCause(); + // .. due to permission check.. + Assert.assertTrue(cause.toString().contains("dynalink.exportLinkersAutomatically")); + } + + @Test + public void autoLoadedLinkerNegativeTest() { + // enable auto loaded linkers + final DynamicLinkerFactory factory = newDynamicLinkerFactory(false); + factory.createLinker(); + checkOneAutoLoadingError(factory); + } + + @Test + public void autoLoadedLinkerTest() { + final DynamicLinkerFactory factory = newDynamicLinkerFactory(false); + final DynamicLinker linker = factory.createLinker(); + + // we should still get one error due to untrusted dynamic linker exporter! + checkOneAutoLoadingError(factory); + + final MethodType mt = MethodType.methodType(Object.class, Object.class); + // create a callsite with TestLinkerOperation + final CallSite cs = linker.link(new SimpleRelinkableCallSite(new CallSiteDescriptor( + MethodHandles.publicLookup(), new TestLinkerOperation(), mt))); + boolean reachedAutoLinker = false; + + + try { + cs.getTarget().invoke(new Object()); + } catch (ReachedAutoLoadedDynamicLinkerException e) { + // TrustedGuardingDynamicLinkerExporter threw exception on TestLinkerOperation as expected! + reachedAutoLinker = true; + } catch (Throwable th) { + throw new RuntimeException(th); + } + + Assert.assertTrue(reachedAutoLinker); + } +} diff --git a/test/src/jdk/dynalink/test/ReachedAutoLoadedDynamicLinkerException.java b/test/src/jdk/dynalink/test/ReachedAutoLoadedDynamicLinkerException.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/test/ReachedAutoLoadedDynamicLinkerException.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.test; + +/** + * Exception used to signal to the test method that the control has reached auto loaded + * dynamic linker. + */ +public final class ReachedAutoLoadedDynamicLinkerException extends RuntimeException { +} \ No newline at end of file diff --git a/test/src/jdk/dynalink/test/TestLinkerOperation.java b/test/src/jdk/dynalink/test/TestLinkerOperation.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/test/TestLinkerOperation.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.test; + +import jdk.dynalink.Operation; + +public final class TestLinkerOperation implements Operation { +} diff --git a/test/src/jdk/dynalink/test/TrustedGuardingDynamicLinkerExporter.java b/test/src/jdk/dynalink/test/TrustedGuardingDynamicLinkerExporter.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/test/TrustedGuardingDynamicLinkerExporter.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.dynalink.test; + +import java.util.ArrayList; +import java.util.List; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.GuardingDynamicLinkerExporter; +import jdk.dynalink.linker.LinkRequest; +import jdk.dynalink.linker.LinkerServices; + +/** + * A trusted linker exporter (build file gives appropriate permission to the jar containing this class!). + */ +public final class TrustedGuardingDynamicLinkerExporter extends GuardingDynamicLinkerExporter { + + @Override + public List get() { + final ArrayList linkers = new ArrayList<>(); + linkers.add((GuardingDynamicLinker) (LinkRequest linkRequest, LinkerServices linkerServices) -> { + // handle only the TestLinkerOperation instances + if (linkRequest.getCallSiteDescriptor().getOperation() instanceof TestLinkerOperation) { + System.out.println("inside " + this.getClass().getName()); + // throw exception to signal to the test method that the control has reached here! + throw new ReachedAutoLoadedDynamicLinkerException(); + } else { + // any other operation! + return null; + } + }); + return linkers; + } +} diff --git a/test/src/jdk/dynalink/test/UntrustedGuardingDynamicLinkerExporter.java b/test/src/jdk/dynalink/test/UntrustedGuardingDynamicLinkerExporter.java new file mode 100644 --- /dev/null +++ b/test/src/jdk/dynalink/test/UntrustedGuardingDynamicLinkerExporter.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2015, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package jdk.dynalink.test; + +import java.util.List; +import jdk.dynalink.linker.GuardingDynamicLinker; +import jdk.dynalink.linker.GuardingDynamicLinkerExporter; + +/** + * Untrusted dummy guarding dynamic linker exporter - used in negative auto linker test + */ +public class UntrustedGuardingDynamicLinkerExporter extends GuardingDynamicLinkerExporter { + @Override + public List get() { + throw new UnsupportedOperationException("Not supported yet."); + } +} diff --git a/test/src/jdk/internal/dynalink/beans/test/CallerSensitiveTest.java b/test/src/jdk/internal/dynalink/beans/test/CallerSensitiveTest.java --- a/test/src/jdk/internal/dynalink/beans/test/CallerSensitiveTest.java +++ b/test/src/jdk/internal/dynalink/beans/test/CallerSensitiveTest.java @@ -25,7 +25,7 @@ package jdk.internal.dynalink.beans.test; -import jdk.internal.dynalink.beans.BeansLinker; +import jdk.dynalink.beans.BeansLinker; import jdk.nashorn.test.models.ClassLoaderAware; import org.testng.annotations.Test; diff --git a/test/src/jdk/nashorn/test/models/InternalRunnableSuperclass.java b/test/src/jdk/nashorn/test/models/InternalRunnableSuperclass.java --- a/test/src/jdk/nashorn/test/models/InternalRunnableSuperclass.java +++ b/test/src/jdk/nashorn/test/models/InternalRunnableSuperclass.java @@ -25,7 +25,7 @@ package jdk.nashorn.test.models; -import jdk.internal.dynalink.beans.StaticClass; +import jdk.dynalink.beans.StaticClass; import jdk.nashorn.internal.test.models.InternalRunnable; /**