NetRexx Examples (Running ooRexx Scripts from NetRexx/Java)

Hint: if you wish to look at the ooRexx code with syntax highlighting, then you can use the free and open-source editor "[g]vim", which is available for practically all platforms and can be downloaded from its homepage at http://www.vim.org/.
. <directory> (List of this directory)
Display all of this directory's files and directories.
.. <directory> (List of parent directory)
Display all of the parent directory's files and directories.
nutshell_01_eval.nrx
A Java demonstration program to show, how to setup and evaluate (invoke, cf. ScriptEngine.eval()) the Rexx program nutshell_01.rex, initially without an argument, then retrieving the compiled (tokenized) Rexx script and re-evaluate it, this time supplying arguments from Java to it.
To run the Java program enter the following command into a command line window:
java nutshell_01_eval
nutshell_02_invoke.nrx
A Java demonstration program to show, how to setup and evaluate (invoke) the Rexx program nutshell_02.rex, fetching the ooRexx object it returns on the Java side and then use the javax.script.Invocable methods to send the Rexx object messages from Java (using Invocable.invokeMethod(...)), including arguments. In addition invoking ooRexx public routines from Java (using Invocable.invokeFunction(...)) gets demonstrated.
For demonstration purposes the same method javax.script.Invocable methods get excercised that the ooRexx jsr223-implementation implemented into the compiled (tokenized) Rexx script support.
To run the Java program enter the following command into a command line window:
java nutshell_02_invoke
nutshell_03_interface.nrx
A Java demonstration program to show, how to setup and evaluate (invoke) the Rexx program nutshell_03.rex, fetching the ooRexx object it returns on the Java side and then use the javax.script.Invocable methods to use the public routines or the methods of the returned Rexx object to implement Java interfaces. This Java program uses for that purposes the Invocable.getInterface(...) method.
For demonstration purposes the same method javax.script.Invocable methods get excercised that the ooRexx jsr223-implementation implemented into the compiled (tokenized) Rexx script support. To run the Java program enter the following command into a command line window:
java nutshell_03_interface

Hint: the external BSF function BSFCreateRexxProxy(rexxObject, [slot], javaInterface...) allows an easier and much more powerful creation of Java proxy objects, where the ooRexx methods implement the Java interface methods. In this case one can declare to Java that multiple Java interfaces are implemented and it is possible to define a Rexx slot-argument, that will get supplied each time a Rexx method gets invoked as a result of the Java interface method being run on the Java side.

nutshell_04_eval.nrx
A NetRexx demonstration program to show, how to setup and evaluate (invoke) the Rexx programs, use the ScriptContext to define the values the Rexx programs should use and executes three Rexx programs demonstrating the different possibilities to fetch the values:
To run the NetRexx program enter the following command into a command line window:
java nutshell_04_eval
nrxRunScript.nrx
A simple Java utility to learn about the available script engines, their properties, test them, but also to allow running any script using the appropriate Java script engine.
To run the Java program enter the following command into a command line window:
java nrxRunScript
lists all available Java script engines
java nrxRunScript -h
help: lists how this utility can be invoked
java nrxRunScript -i
information: lists all available Java script engines and shows their properties
java nrxRunScript -t
test: lists all available Java script engines and creates with the help of their factories "hello"-statements that get executed by the engines
java nrxRunScript filename [argument...]
executes the script stored in filename loading the Java script engine with the help of the javax.script.ScriptEngineManager, using the extension in the filename. If one or more blank delimited argument... were supplied, they will be submitted to the script via the ARGV entry in the ScriptContext. The ooRexx RexxScriptEngine will use this array object to create the appropriate arguments for the Rexx script.
java nrxRunScript -e engine filename [argument...]
executes the script stored in filename using the Java script engine supplied after the -e switch named engine with the help of the javax.script.ScriptEngineManager. If one or more blank delimited argument... were supplied, they will be submitted to the script via the ARGV entry in the ScriptContext. The ooRexx RexxScriptEngine will use this array object to create the appropriate arguments for the Rexx script.


Rony G. Flatscher, 2015-06-08, Wien/Vienna, Austria, Europe