Skip navigation links
org.netbeans.libs.graalsdk 1.25

GraalVM SDK API
Stable

See: Description

GraalVM SDK API 
Package Description
org.netbeans.libs.graalsdk
Polyglot scripting tutorial.

Bridge that plugs GraalVM languages into Scripting.createManager() to obtain enhanced version of ScriptEngineManager. Please see the scripting tutorial to read about many interesting use-cases.

What is New (see all changes)?

Use Cases

Create ScriptEngineManager
To access GraalVM languages use To create new instance script engine manager ready for the NetBeans execution environment use Scripting class offers static createManager() method that should be used whenever one needs an instance of ScriptEngineManager inside of NetBeans based application. Many client oriented use-cases are covered in the scripting tutorial.
Re-export of GraalVM languages
This module re-exports all found GraalVM languages under GraalVM:lang name and makes them accessible via NetBeans Scripting API.
Use Graal SDK directly
This module re-exports org.graalvm.polyglot APIs. Use them to obtain access to the GraalVM directly, if you only want to work with them and generic Scripting wrapper isn't enough.

Exported Interfaces

This table lists all of the module exported APIs with defined stability classifications. It is generated based on answers to questions about the architecture of the module. Read them all...
Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
org.graalvm.polyglot.wrapperExportedStable

This module re-exports all found GraalVM languages under GraalVM:lang name and makes them accessible via NetBeans Scripting API.

org.graalvm.polyglotExportedThird party

This module re-exports org.graalvm.polyglot APIs. Use them to obtain access to the GraalVM directly, if you only want to work with them and generic Scripting wrapper isn't enough.

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?
GraalVM:EngineExportedStable

When this module is used (on GraalVM or without) it automatically exports all available languages (obtained via org.graalvm.polyglot.Engine) as ScriptEngine instances. These dynamically created engines use GraalVM: prefix (GraalVM:js, GraalVM:python) in their name.

allowAllAccessExportedStable

By default all the GraalVM engines (named GraalVM:something) run in a very restricted, secure sandbox. See GraalSDK for details. That means the languages cannot access local files, ports, etc. Some languages (like >FastR implementation of the R language) need such access. In such case one has to allow such access. This can be done by
var eng = Scripting.createManager().getEngineByMimeType("application/x-r");
eng.getContext().setAttribute("allowAllAccess", true, ScriptContext.GLOBAL_SCOPE)
        

Implementation Details

Where are the sources for the module?

The sources for the module are in the Apache Git repositories or in the GitHub repositories.

What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?

XXX no answer for deploy-dependencies

Read more about the implementation in the answers to architecture questions.

Skip navigation links
org.netbeans.libs.graalsdk 1.25