java.lang.Object
jdk.dynalink.linker.GuardingDynamicLinkerExporter
- All Implemented Interfaces:
Supplier<List<GuardingDynamicLinker>>
public abstract class GuardingDynamicLinkerExporter extends Object implements Supplier<List<GuardingDynamicLinker>>
A class acting as a supplier of guarding dynamic linkers that can be
automatically loaded by other language runtimes. Language runtimes wishing
to export their own linkers should subclass this class and implement the
Supplier.get()
method to return a list of exported linkers and declare the
subclass in
/META-INF/services/jdk.dynalink.linker.GuardingDynamicLinkerExporter
resource of their distribution (typically, JAR file) so that dynamic linker
factories can discover them using the ServiceLoader
mechanism. Note
that instantiating this class is tied to a security check for the
RuntimePermission("dynalink.exportLinkersAutomatically")
when a
security manager is present, to ensure that only trusted runtimes can
automatically export their linkers into other runtimes.-
Field Summary
Fields Modifier and Type Field Description static String
AUTOLOAD_PERMISSION_NAME
The name of the runtime permission for creating instances of this class. -
Constructor Summary
Constructors Modifier Constructor Description protected
GuardingDynamicLinkerExporter()
Creates a new linker exporter. -
Method Summary
-
Field Details
-
AUTOLOAD_PERMISSION_NAME
The name of the runtime permission for creating instances of this class. Granting this permission to a language runtime allows it to export its linkers for automatic loading into other language runtimes.- See Also:
- Constant Field Values
-
-
Constructor Details
-
GuardingDynamicLinkerExporter
protected GuardingDynamicLinkerExporter()Creates a new linker exporter. If there is a security manager installed checks for theRuntimePermission("dynalink.exportLinkersAutomatically")
runtime permission. This ensures only language runtimes granted this permission will be allowed to export their linkers for automatic loading.- Throws:
SecurityException
- if the necessary runtime permission is not granted.
-