Skip to content

Instantly share code, notes, and snippets.

@polarnik
Last active October 5, 2020 10:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save polarnik/766fef2e242c1e649ebaec644cce362b to your computer and use it in GitHub Desktop.
Save polarnik/766fef2e242c1e649ebaec644cce362b to your computer and use it in GitHub Desktop.
JMeter Script Engine Check compilable
import java.util.*;
import javax.script.*;
ScriptEngineManager mgr = new ScriptEngineManager();
List<ScriptEngineFactory> factories = mgr.getEngineFactories();
String [] javaProps = ["java.runtime.name", "java.runtime.version",
"java.specification.name", "java.specification.vendor", "java.specification.version",
"java.vendor", "java.vendor.url", "java.version", "java.version.date", "java.vm.name"];
String str = '\n\n'
javaProps.each {
str += '\n' + String.format("$it == %s", System.getProperty("$it"));
}
for (ScriptEngineFactory factory : factories) {
str += '\n\nScriptEngineFactory Info';
String engName = factory.getEngineName();
String engVersion = factory.getEngineVersion();
String langName = factory.getLanguageName();
String langVersion = factory.getLanguageVersion();
String langExtension = factory.getExtensions();
String compilable = Compilable.class.isAssignableFrom(factory.getScriptEngine().getClass()) ?
"compilable" : "not compilable";
str += "\n\tScript Engine: $engName ($engVersion) - [$compilable]"
str += "\n\tLanguage: $langName ($langVersion) - $langExtension"
List<String> engNames = factory.getNames();
for(String name : engNames) {
str += "\n\t\tEngine Alias: $name"
}
}
SampleResult.setResponseMessage(str)
@polarnik
Copy link
Author

polarnik commented Oct 5, 2020

java.runtime.name == OpenJDK Runtime Environment
java.runtime.version == 1.8.0_265-8u265-b01-0ubuntu2~18.04-b01
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 1.8
java.vendor == Private Build
java.vendor.url == http://java.oracle.com/
java.version == 1.8.0_265
java.version.date == null
java.vm.name == OpenJDK 64-Bit Server VM

ScriptEngineFactory Info
  Script Engine: JEXL Engine (3.0) - [compilable]
  Language: JEXL (3.0) - [jexl, jexl2, jexl3]
    Engine Alias: JEXL
    Engine Alias: Jexl
    Engine Alias: jexl
    Engine Alias: JEXL2
    Engine Alias: Jexl2
    Engine Alias: jexl2
    Engine Alias: JEXL3
    Engine Alias: Jexl3
    Engine Alias: jexl3

ScriptEngineFactory Info
  Script Engine: BeanShell Engine (1.0) - [compilable]
  Language: BeanShell (2.0b6) - [bsh, java]
    Engine Alias: beanshell
    Engine Alias: bsh
    Engine Alias: java

ScriptEngineFactory Info
  Script Engine: Oracle Nashorn (1.8.0_265) - [compilable]
  Language: ECMAScript (ECMA - 262 Edition 5.1) - [js]
    Engine Alias: nashorn
    Engine Alias: Nashorn
    Engine Alias: js
    Engine Alias: JS
    Engine Alias: JavaScript
    Engine Alias: javascript
    Engine Alias: ECMAScript
    Engine Alias: ecmascript

ScriptEngineFactory Info
  Script Engine: Groovy Scripting Engine (2.0) - [compilable]
  Language: Groovy (2.4.15) - [groovy]
    Engine Alias: groovy
    Engine Alias: Groovy

ScriptEngineFactory Info
  Script Engine: JEXL Engine (2.0) - [compilable]
  Language: JEXL (2.0) - [jexl, jexl2]
    Engine Alias: JEXL
    Engine Alias: Jexl
    Engine Alias: jexl
    Engine Alias: JEXL2
    Engine Alias: Jexl2
    Engine Alias: jexl2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment