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 == 11.0.6+10-LTS
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 11
java.vendor == BellSoft
java.vendor.url == https://bell-sw.com/
java.version == 11.0.6
java.version.date == 2020-01-15
java.vm.name == OpenJDK 64-Bit Server VM

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: Groovy Scripting Engine (2.0) - [compilable]
	Language: Groovy (2.4.16) - [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

ScriptEngineFactory Info
	Script Engine: Oracle Nashorn (11.0.6) - [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

@instaHipsta282
Copy link

java.runtime.name == OpenJDK Runtime Environment
java.runtime.version == 11.0.8+10-post-Ubuntu-0ubuntu118.04.1
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 11
java.vendor == Ubuntu
java.vendor.url == https://ubuntu.com/
java.version == 11.0.8
java.version.date == 2020-07-14
java.vm.name == OpenJDK 64-Bit Server VM

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: 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

ScriptEngineFactory Info
	Script Engine: Oracle Nashorn (11.0.8) - [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

@polarnik
Copy link
Author

polarnik commented Oct 5, 2020

via https://www.jdoodle.com/execute-groovy-online/

java.runtime.name == OpenJDK Runtime Environment
java.runtime.version == 1.8.0_181-google-v7-250128219-250128219
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 1.8
java.vendor == Google Inc.
java.vendor.url == 
java.version == 1.8.0_181-google-v7
java.version.date == null
java.vm.name == OpenJDK 64-Bit Server VM

ScriptEngineFactory Info
	Script Engine: Oracle Nashorn (1.8.0_181) - [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.5.7) - [groovy]
		Engine Alias: groovy
		Engine Alias: Groovy

@polarnik
Copy link
Author

polarnik commented Oct 5, 2020

via https://www.jdoodle.com/execute-groovy-online/

java.runtime.name == OpenJDK Runtime Environment
java.runtime.version == 1.7.0_99-b00
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 1.7
java.vendor == Oracle Corporation
java.vendor.url == http://java.oracle.com/
java.version == 1.7.0_99
java.version.date == null
java.vm.name == OpenJDK 64-Bit Server VM

ScriptEngineFactory Info
	Script Engine: Rhino (Rhino 1.7.6 2015 04 27) - [compilable]
	Language: ECMAScript (1.7.6) - [js]
		Engine Alias: js
		Engine Alias: rhino
		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.6) - [groovy]
		Engine Alias: groovy
		Engine Alias: Groovy

@polarnik
Copy link
Author

polarnik commented Oct 5, 2020

via https://www.jdoodle.com/execute-groovy-online/

java.runtime.name == Java(TM) SE Runtime Environment
java.runtime.version == 9.0.1+11
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 9
java.vendor == Oracle Corporation
java.vendor.url == http://java.oracle.com/
java.version == 9.0.1
java.version.date == null
java.vm.name == Java HotSpot(TM) 64-Bit Server VM

ScriptEngineFactory Info
	Script Engine: Oracle Nashorn (9.0.1) - [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.12) - [groovy]
		Engine Alias: groovy
		Engine Alias: Groovy

@polarnik
Copy link
Author

polarnik commented Oct 5, 2020

via https://www.jdoodle.com/execute-groovy-online/

java.runtime.name == Java(TM) SE Runtime Environment
java.runtime.version == 10.0.1+10
java.specification.name == Java Platform API Specification
java.specification.vendor == Oracle Corporation
java.specification.version == 10
java.vendor == Oracle Corporation
java.vendor.url == http://java.oracle.com/
java.version == 10.0.1
java.version.date == 2018-04-17
java.vm.name == Java HotSpot(TM) 64-Bit Server VM

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: Oracle Nashorn (10.0.1) - [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

@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