GraalVM is the way to go for Javascript and other language support
because Nashhorn is removed in Java 15.
While <optional>true</optional> or <scope>provided</scope>, the project
does not sip it nor do depending on Jena libraries inherit through
dependency management.
The build does not require them for java8 or java11.
(You can remove the dependencies and it still builds).
At Java15, that should be a problem but our JDK15 (targetting Java8
bytecode) works. I don't know how that happens.
The jena-arq POM does causes graalVM to be pulled in to build.
It seems to me that the intention is that GraalVM is like the JDK - it
just "is" on the platform (more like <scope>provided</scope>). But that
isn't how things work - what ever I'd tried for "provided", graalvm is
downloaded into my local maven repo.
Is this a case for <scope>system</scope>?
Andy
org.graalvm.js --
The graalvm.js libraries are licensed under the Universal Permissive
License 1.0, which is a category-A license.
https://github.com/graalvm/graaljs
https://github.com/graalvm/graaljs/blob/master/LICENSE
org.ow2.asm:asm --
3-clause BSD-style license - redistributions must include the copyright,
T&Cs, and the disclaimer. This would go into a NOTICE for any binaries
which redistribute it (and not in the source repo).
Work to do if we ship it (at the moment, Jena has GraalVM optional and
it is not shipped by a combined binary)
https://gitlab.ow2.org/asm/asm/-/blob/master/LICENSE.txt
com.ibm.icu:icu4j --
com.ibm.icu licensing is long but all the part look OK. ICU4J License
with a need to pass notices.
https://github.com/unicode-org/icu/blob/master/icu4j/main/shared/licenses/LICENSE
org.graalvm.regex --
org.graalvm.truffle --
org.graalvm.sdk --
GPLv2+CPE
While <optional>true</optional> or <scope>provided</scope>, so depending
in Jena libraries does not require GraalVM, the issue is that the build
uses these.
However, the build does not require them for java8 or java11. (You can
remove the dependencies and it still builds).
It seems to me that the intention is that GraalVMis like the JDK - it
just "is" on the platform (more like <scope>provided</scope>).
dependency:tree extract from jena-arq
[INFO] +- org.graalvm.js:js:jar:20.2.0:compile (optional)
[INFO] | +- org.graalvm.regex:regex:jar:20.2.0:compile (optional)
[INFO] | +- org.graalvm.truffle:truffle-api:jar:20.2.0:compile (optional)
[INFO] | +- org.graalvm.sdk:graal-sdk:jar:20.2.0:compile (optional)
[INFO] | +- org.ow2.asm:asm:jar:7.1:compile (optional)
[INFO] | +- org.ow2.asm:asm-tree:jar:7.1:compile (optional)
[INFO] | +- org.ow2.asm:asm-analysis:jar:7.1:compile (optional)
[INFO] | +- org.ow2.asm:asm-commons:jar:7.1:compile (optional)
[INFO] | +- org.ow2.asm:asm-util:jar:7.1:compile (optional)
[INFO] | \- com.ibm.icu:icu4j:jar:67.1:compile (optional)
[INFO] +- org.graalvm.js:js-scriptengine:jar:20.2.0:compile (optional)