...
Code Block |
---|
jar uf <jar_file_location> module-info.class |
Nashorn
Java 8
...
GraalVM
GraalVM is a full virtual machine in its own right, a component of which is the Graal Script Engine, which can be dropped into existing Java Virtual Machine installations to enable it to be used in place of Nashorn. By not bundling the script runtime we (a) reduce memory footprint of our app, by deploying Graal ScriptEngine into Jira or your Java Runtime, it is then available for other apps to use, (b) we do this to not exclude other 3rd party apps from making use of the script engine as incompatibilities will arise if apps include script engines.
Below are the steps to download and install Graal:
Download from https://www.graalvm.org/downloads/ (eg the GraalVM Community 20.1.0 version), the archive that is appropriate for your OS, eg (Java8) graalvm-ce-java8-linux-amd64-20.1.0.tar.gz
Unzip the archive and enter the folder created (graalvm-ce-java8-20.1.0), assuming $JAVA_HOME points to your JDK installation:
Code Block |
---|
export DEST=$JAVA_HOME/lib/ext
cp ./jre/languages/js/graaljs.jar $DEST
cp ./jre/languages/js/icu4j.jar $DEST
cp ./jre/lib/truffle/truffle-api.jar $DEST
cp ./jre/lib/boot/graal-sdk.jar $DEST
cp ./jre/lib/boot/graaljs-scriptengine.jar $DEST |
Directory $JAVA_HOME/jre/lib/ext should then look like:
...
Java 11 / Java 17
Nashorn
Download the Relevant files which can be downloaded by using the following:
...
/ Java 11
Both Java 8 and Java 11 come with Nashorn, an engine supporting ECMAScript-262 5.1 standard. That the Jira installer ships with, and which is recommended cross platform ships with an ECMAScript implementation, so no additional configuration is strictly necessary to script JEMH Field Processors, Project Mappings, and future script-capable areas.
Java 17
Download the Relevant files which can be downloaded by using the following:
Code Block |
---|
wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.4/nashorn-core-15.4.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm/7.3.1/asm-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/7.3.1/asm-commons-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/7.3.1/asm-tree-7.3.1.jar wget https://repo1.maven.org/maven2/org/openjdkow2/nashornasm/nashornasm-coreutil/157.3.41/nashornasm-coreutil-157.3.41.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/7.3.1/asm-analysis-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/7.3.1/asm-commons-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/7.3.1/asm-tree-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/7.3.1/asm-util-7.3.1.jar wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/7.3.1/asm-analysis-7.3.1.jar |
Place downloaded files into $JAVA_HOME/jmods
and then run the following script to create a new Java Runtime Environment with all of the Java Modules (including the newly added modules):
Code Block |
---|
jlink --module-path $JAVA_HOME/jmods/ --add-modules ALL-MODULE-PATH --output jre |
Update $JAVA_HOME to point to the new JRE location.
...
Place downloaded files into $JAVA_HOME/jmods
and then run the following script to create a new Java Runtime Environment with all of the Java Modules (including the newly added modules):
Code Block |
---|
jlink --module-path $JAVA_HOME/jmods/ --add-modules ALL-MODULE-PATH --output jre |
Update $JAVA_HOME to point to the new JRE location.
GraalVM
GraalVM is a full virtual machine in its own right, a component of which is the Graal Script Engine, which can be dropped into existing Java Virtual Machine installations to enable it to be used in place of Nashorn. By not bundling the script runtime we (a) reduce memory footprint of our app, by deploying Graal ScriptEngine into Jira or your Java Runtime, it is then available for other apps to use, (b) we do this to not exclude other 3rd party apps from making use of the script engine as incompatibilities will arise if apps include script engines.
Java 8
Below are the steps to download and install Graal on Java 8:
Download from https://www.graalvm.org/downloads/ (eg the GraalVM Community 20.1.0 version), the archive that is appropriate for your OS, eg (Java8) graalvm-ce-java8-linux-amd64-20.1.0.tar.gz
Unzip the archive and enter the folder created (graalvm-ce-java8-20.1.0) and run the following, assuming $JAVA_HOME points to your JDK installation:
Code Block |
---|
export DEST=$JAVA_HOME/lib/ext
cp ./jre/languages/js/graaljs.jar $DEST
cp ./jre/languages/js/icu4j.jar $DEST
cp ./jre/lib/truffle/truffle-api.jar $DEST
cp ./jre/lib/boot/graal-sdk.jar $DEST
cp ./jre/lib/boot/graaljs-scriptengine.jar $DEST |
Directory $JAVA_HOME/jre/lib/ext should then look like:
...
Java 11 / Java 17
Download the Relevant files which can be downloaded by using the following:
...
System Administrators can make additional scripting languages available by adding their respective JSR-223 compliant JAR file into <jira_installation_directory>/lib folder. Once done, the Extensions screen of JEMH should show the language as being installed:
...
Nashorn
Java 8 / Java 11
Both Java 8 and Java 11 come with Nashorn, an engine supporting ECMAScript-262 5.1 standard. That the Jira installer ships with, and which is recommended cross platform ships with an ECMAScript implementation, so no additional configuration is strictly necessary to script JEMH Field Processors, Project Mappings, and future script-capable areas.
Java 17
Nashorn is not included within Java 17 and requires the download of the Nashorn jar file and it relevant Dependencies.
...
Download the relevant Groovy files by running the following commands within a Linux Terminal:
Code Block wget https://repo1.maven.org/maven2/org/codehaus/groovy/groovy/3.0.14/groovy-3.0.14.jar wget https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-xml/3.0.14/groovy-xml-3.0.14.jar wget https://repo1.maven.org/maven2/org/codehaus/groovy/groovy-jsr223/3.0.14/groovy-jsr223-3.0.14.jar
Copy these downloaded files into your <jira_install_directory>/lib folder
Graal
Java 8
Graal is not included within Java or Jira and this means that the relevant Graal files will need to be downloaded and placed within Jira.
...