256 * that implements the usual Java semantics for all of the above operations and
257 * can link any Java object that no other language-specific linker has managed
258 * to link. This way, all language runtimes have built-in interoperability with
259 * ordinary Java objects. See {@link jdk.dynalink.beans.BeansLinker} for details
260 * on how it links the various operations.
261 * <h2>Cross-language interoperability</h2>
262 * A {@code DynamicLinkerFactory} can be configured with a
263 * {@link jdk.dynalink.DynamicLinkerFactory#setClassLoader(ClassLoader) class
264 * loader}. It will try to instantiate all
265 * {@link jdk.dynalink.linker.GuardingDynamicLinkerExporter} classes visible to
266 * that class loader and compose the linkers they provide into the
267 * {@code DynamicLinker} it creates. This allows for interoperability between
268 * languages: if you have two language runtimes A and B deployed in your JVM and
269 * they export their linkers through the above mechanism, language runtime A
270 * will have a language-specific linker instance from B and vice versa inside
271 * their {@code DynamicLinker} objects. This means that if an object from
272 * language runtime B gets passed to code from language runtime A, the linker
273 * from B will get a chance to link the call site in A when it encounters the
274 * object from B.
275 */
276 @jdk.Exported
277 package jdk.dynalink;
|
256 * that implements the usual Java semantics for all of the above operations and
257 * can link any Java object that no other language-specific linker has managed
258 * to link. This way, all language runtimes have built-in interoperability with
259 * ordinary Java objects. See {@link jdk.dynalink.beans.BeansLinker} for details
260 * on how it links the various operations.
261 * <h2>Cross-language interoperability</h2>
262 * A {@code DynamicLinkerFactory} can be configured with a
263 * {@link jdk.dynalink.DynamicLinkerFactory#setClassLoader(ClassLoader) class
264 * loader}. It will try to instantiate all
265 * {@link jdk.dynalink.linker.GuardingDynamicLinkerExporter} classes visible to
266 * that class loader and compose the linkers they provide into the
267 * {@code DynamicLinker} it creates. This allows for interoperability between
268 * languages: if you have two language runtimes A and B deployed in your JVM and
269 * they export their linkers through the above mechanism, language runtime A
270 * will have a language-specific linker instance from B and vice versa inside
271 * their {@code DynamicLinker} objects. This means that if an object from
272 * language runtime B gets passed to code from language runtime A, the linker
273 * from B will get a chance to link the call site in A when it encounters the
274 * object from B.
275 */
276 package jdk.dynalink;
|