From: <or...@us...> - 2014-07-04 13:42:10
|
Revision: 218 http://sourceforge.net/p/bsf4oorexx/code/218 Author: orexx Date: 2014-07-04 13:42:06 +0000 (Fri, 04 Jul 2014) Log Message: ----------- 20140704 New examples, updated index.html files. Modified Paths: -------------- trunk/samples/Java/JavaRunRexx_05.class trunk/samples/Java/JavaRunRexx_05.java trunk/samples/Java/index.html trunk/samples/NetRexx/index.html trunk/samples/NetRexx/nrxRunRexx_05.class trunk/samples/NetRexx/nrxRunRexx_05.nrx trunk/samples/index.html Added Paths: ----------- trunk/samples/Java/JavaRunRexx_06.class trunk/samples/Java/JavaRunRexx_06.java trunk/samples/NetRexx/nrxRunRexx_06.class trunk/samples/NetRexx/nrxRunRexx_06.nrx Modified: trunk/samples/Java/JavaRunRexx_05.class =================================================================== (Binary files differ) Modified: trunk/samples/Java/JavaRunRexx_05.java =================================================================== --- trunk/samples/Java/JavaRunRexx_05.java 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/Java/JavaRunRexx_05.java 2014-07-04 13:42:06 UTC (rev 218) @@ -1,6 +1,6 @@ /* Author: Rony G. Flatscher - Date: 2014-07-01 + Date: 2014-07-04 Purpose: Demonstrate how to setup a .host directory in Rexx from Java, which then receives Java objects for use in Rexx programs; in addition demonstrates turning all .host directory entries to environment symbols by merely putting @@ -65,35 +65,12 @@ "say ' (ooRexx) Java version queried from Rexx:' pp(.host~from.java.system.class~getProperty('java.version')); " + "::requires 'BSF.CLS' ;" ; // get access to BSF4ooRexx support - Vector vArgs = new java.util.Vector(); // Vector for arguments to be passed to Rexx - // vArgs.addElement(new Object()); + Vector vArgs = new Vector(); // Vector for arguments to be passed to Rexx vArgs.addElement(new java.util.GregorianCalendar()); vArgs.addElement(null); rexxEngine.apply ("InvokeFromJavaRunRexx_05.java-02", 0, 0, rexxCode, null, vArgs); - - System.out.println("--- 3 (Java): put all '.HOST' entries to '.LOCAL' thereby turning them into environment symbols ..."); - rexxCode="use arg val1, val2, val3 ;" + - "say ' (ooRexx) val1='pp(val1) 'val2='pp(val2) 'val3='pp(val3) 'arg()='pp(arg()) ;" + - ".local~putAll(.host) ;" + // put all .host direcotry entries to .local - "::requires 'BSF.CLS' ;" ; // get access to BSF4ooRexx support - rexxEngine.apply ("InvokeFromJavaRunRexx_05.java-03", 0, 0, rexxCode, null, null); - - - System.out.println("--- 4 (Java): now use the environment symbols of the '.HOST' entries ..."); - - rexxCode="use arg val1, val2, val3 ;" + - "say ' (ooRexx) val1='pp(val1) 'val2='pp(val2) 'val3='pp(val3) 'arg()='pp(arg()) ;" + - "say ' (ooRexx) .from.java :' pp(.from.java ) ;" + - "say ' (ooRexx) .from.java.system.class :' pp(.from.java.system.class) ;" + - "say ' (ooRexx) .from.java.version.string :' pp(.from.java.version.string);" + - "say ' (ooRexx) Java version queried from Rexx:' pp(.from.java.system.class~getProperty('java.version')); " + - ".host~rexx.hey='Greetings from ooRexx to Java at:' .DateTime~new '!' ;" + - "::requires 'BSF.CLS' ;" ; // get access to BSF4ooRexx support - - rexxEngine.apply ("InvokeFromJavaRunRexx_05.java-04", 0, 0, rexxCode, null, vArgs); - - System.out.println("--- 5 (Java): access '.HOST' entry 'REXX.HEY' ..."); + System.out.println("--- 3 (Java): access '.HOST' entry 'REXX.HEY' ..."); System.out.println(" (Java) rexxDotHost.sendMessage0(\"rexx.hey\"): ["+ rexxDotHost.sendMessage0("rexx.hey")+"]"); System.out.println(" (Java) rexxDotHost.sendMessage1(\"entry\", \"rexx.hey\"): ["+ Added: trunk/samples/Java/JavaRunRexx_06.class =================================================================== (Binary files differ) Index: trunk/samples/Java/JavaRunRexx_06.class =================================================================== --- trunk/samples/Java/JavaRunRexx_06.class 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/Java/JavaRunRexx_06.class 2014-07-04 13:42:06 UTC (rev 218) Property changes on: trunk/samples/Java/JavaRunRexx_06.class ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/x-java-applet \ No newline at end of property Added: trunk/samples/Java/JavaRunRexx_06.java =================================================================== --- trunk/samples/Java/JavaRunRexx_06.java (rev 0) +++ trunk/samples/Java/JavaRunRexx_06.java 2014-07-04 13:42:06 UTC (rev 218) @@ -0,0 +1,98 @@ +/* + Author: Rony G. Flatscher + Date: 2014-07-04 + Purpose: Demonstrate how to run Rexx programs one after the other, using the + package (public routines, public classes) for the next Rexx invocation; + this allows one to run Rexx programs and aggregate all public routines + and public classes + + Changed: --- + + Needs: ooRexx 4.0, BSF4ooRexx + + License: + + ------------------------ Apache Version 2.0 license ------------------------- + Copyright (C) 2014 Rony G. Flatscher + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ----------------------------------------------------------------------------- +*/ + +import org.apache.bsf.BSFException; +import org.apache.bsf.BSFManager; +import org.apache.bsf.BSFEngine; + +import java.util.Vector; +import org.rexxla.bsf.engines.rexx.RexxProxy; + +public class JavaRunRexx_06 +{ + public static void main (String args[]) throws BSFException + { + BSFManager mgr =new BSFManager(); // create an instance of BSFManager + BSFEngine rexxEngine=mgr.loadScriptingEngine("rexx"); // load the Rexx engine + + // create a Rexx routine (not using any other context) + String createRoutine ="return .routine~new(arg(1),arg(2))"; + // create a Rexx routine, using context of third argument + String createRoutineWithContext="return .routine~new(arg(1),arg(2),arg(3))"; + + // require BSF.CLS, which will cause an entry in .local named BSF, controlling argument conversion between Java and Rexx + System.out.println("--- 1 (Java): require BSF.CLS and keep routine in order to be able to access its package ..."); + String rexxCode="::requires BSF.CLS -- get and activate the Java support\n"; + + Vector vArgs=new Vector(); + vArgs.addElement("rexxPackage1"); // routine/package name + vArgs.addElement(rexxCode); // Rexx code + RexxProxy rp1 = (RexxProxy) rexxEngine.apply ("JavaRunRexx_Test_2-01", 0, 0, createRoutine, null, vArgs); + rp1.sendMessage0("call"); // call (execute) the Rexx routine + + + System.out.println("--- 2 (Java): define and run Rexx package2 which defines a public method 'test()'..."); + // Rexx code to run + rexxCode= "parse source fn ;\n" + + "say pp(fn) ;\n" + + "say pp(fn) 'test():' pp(test()) -- pp() is defined in BSF.CLS ;\n" + + "::routine test public ;\n" + + " return 'from routine test() at' .DateTime~new ;" ; + + Vector vArgs1=new Vector(); + vArgs1.addElement("rexxPackage2"); // routine/package name + vArgs1.addElement(rexxCode); // Rexx code + vArgs1.addElement(rp1); // context to use + RexxProxy rp2 = (RexxProxy) rexxEngine.apply ("JavaRunRexx_Test_2-02", 0, 0, createRoutineWithContext, null, vArgs1); + rp2.sendMessage0("call"); // call (execute) the Rexx routine + + + System.out.println("--- 3a (Java): run Rexx code with NO arguments that uses public method 'test()' defined for prior run..."); + // create a Rexx routine + rexxCode= "parse source fn ;\n" + + "say pp(fn) 'received' arg() 'argument(s)' ;\n" + + "say pp(fn) 'test():' pp(test()) -- pp() is defined in BSF.CLS ;\n" ; + Vector vArgs2=new Vector(); + vArgs2.addElement("rexxPackage3"); // routine/package name + vArgs2.addElement(rexxCode); // Rexx code for routine object + vArgs2.addElement(rp2); // context to use + RexxProxy rp3 = (RexxProxy) rexxEngine.apply ("JavaRunRexx_Test-2_03", 0, 0, createRoutineWithContext, null, vArgs2); + rp3.sendMessage0("call"); // call (execute) the Rexx routine + + System.out.println("--- 3b (Java): run Rexx code WITH arguments that uses public method 'test()' defined for prior run..."); + // reuse routine/package + rp3.sendMessage2("call", "argument from Java", new Object()); // call (execute) the Rexx routine with arguments + + mgr.terminate(); // make sure that the Rexx interpreter instance gets terminated! + } +} + + Property changes on: trunk/samples/Java/JavaRunRexx_06.java ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: trunk/samples/Java/index.html =================================================================== --- trunk/samples/Java/index.html 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/Java/index.html 2014-07-04 13:42:06 UTC (rev 218) @@ -27,6 +27,7 @@ <dt><a href="JavaRunRexx_01.java">JavaRunRexx_01.java</a> <dd>Demonstrate how to invoke an ooRexx program and supply it a Java object to interact with. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_01.nrx">nrxRunRexx_01.nrx</a>.] <dt><a href="JavaRunRexx_02.java">JavaRunRexx_02.java</a> <dd>Demonstrate how to invoke an ooRexx program and supply it @@ -35,25 +36,40 @@ instance, such that the next ooRexx script that gets executed already has full access to the public classes and routines of the <code>BSF.CLS</code> ooRexx package. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_02.nrx">nrxRunRexx_02.nrx</a>.] <dt><a href="JavaRunRexx_03.java">JavaRunRexx_03.java</a> <dd>Demonstrate how to interact with a Rexx object from Java. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_03.nrx">nrxRunRexx_03.nrx</a>.] <dt><a href="JavaRunRexx_04.java">JavaRunRexx_04.java</a> <dd>Demonstrate how to fetch and interact with a Rexx condition object from Java. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_04.nrx">nrxRunRexx_04.nrx</a>.] <dt><a href="JavaRunRexx_05.java">JavaRunRexx_05.java</a> <dd>Demonstrate how to setup a <code>.host</code> directory in Rexx from Java, which then - receives Java objects for use in Rexx programs; in addition demonstrates turning all - <code>.host</code> directory entries to environment symbols by merely putting its - entries into <code>.local</code>; finally, a value is saved in <code>.host</code> by Rexx - under the index <code>rexx.hey</code> that upon return is fetched from Java. + receives Java objects for use in Rexx programs; in addition a value is saved in + <code>.host</code> by Rexx under the index <code>REXX.HEY</code> that upon return + is fetched from Java. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_05.nrx">nrxRunRexx_05.nrx</a>.] + <dt><a href="JavaRunRexx_06.java">JavaRunRexx_06.java</a> + <dd>Demonstrate how to use the <em>context</em> of a Rexx routine for another + Rexx routine. The first routine requires <code>BSF.CLS</code> which adds + public routines and public classes which then are made available to Rexx + routines that get created and executed later via Java. Then another + Rexx routines gets defined to use the first package, and in addition + defines a public routine named <code>test</code>. + Finally, the last Rexx routine demonstrates getting access to the package + of the second routine which makes its public routine named <code>test</code> + accessible. In addition the last routine is called twice, once without + Java supplied arguments, once with Java supplied arguments. + [NetRexx version: <a href="../NetRexx/nrxRunRexx_06.nrx">nrxRunRexx_06.nrx</a>.] </dl> <p> <hr> <p style="font-size: 80%;"> -Rony G. Flatscher, 2010-08-23, Wien/Vienna, Austria, Europe +Rony G. Flatscher, 2010-08-23, 2014-07-04, Wien/Vienna, Austria, Europe </body> Modified: trunk/samples/NetRexx/index.html =================================================================== --- trunk/samples/NetRexx/index.html 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/NetRexx/index.html 2014-07-04 13:42:06 UTC (rev 218) @@ -23,30 +23,44 @@ <dt><a href="nrxRunRexx_01.nrx">nrxRunRexx_01.nrx</a> <dd>Defines and runs a Rexx program. The compiled Java class is stored in "nrxRunRexx_01.class". + [Java version: <a href="../Java/JavaRunRexx_01.java">JavaRunRexx_01.java</a>.] <dt><a href="nrxRunRexx_02.nrx">nrxRunRexx_02.nrx</a> <dd>Preloads the Rexx interpreter, defines and runs a Rexx program. The compiled Java class is stored in "nrxRunRexx_02.class". + [Java version: <a href="../Java/JavaRunRexx_02.java">JavaRunRexx_02.java</a>.] <dt><a href="nrxRunRexx_03.nrx">nrxRunRexx_03.nrx</a> <dd>Defines and runs a Rexx program, that returns an ooRexx directory, which then is used from NetRexx (Java). The compiled Java class is stored in "nrxRunRexx_03.class". + [Java version: <a href="../Java/JavaRunRexx_03.java">JavaRunRexx_03.java</a>.] <dt><a href="nrxRunRexx_04.nrx">nrxRunRexx_04.nrx</a> <dd>Defines and runs a Rexx program, that contains a syntax error, which then is intercepted and inspected by NetRexx (Java). The compiled Java class is stored in "nrxRunRexx_04.class". + [Java version: <a href="../Java/JavaRunRexx_04.java">JavaRunRexx_04.java</a>.] <dt><a href="nrxRunRexx_05.nrx">nrxRunRexx_05.nrx</a> - <dd>Demonstrate how to setup a <code>.host</code> directory in Rexx from - NetRexx (Java), which then receives NetRexx (Java) objects for use in - Rexx programs; in addition demonstrates turning all <code>.host</code> - directory entries to environment symbols by merely putting its entries - into <code>.local</code>; finally, a value is saved in <code>.host</code> - by Rexx under the index <code>rexx.hey</code> that upon return is - fetched from NetRexx (Java). + <dd>Demonstrate how to setup a <code>.host</code> directory in Rexx from NetRexx + (Java), which then receives Java objects for use in Rexx programs; in addition + a value is saved in <code>.host</code> by Rexx under the index <code>REXX.HEY</code> + that upon return is fetched from NetRexx (Java). + [Java version: <a href="../Java/JavaRunRexx_05.java">JavaRunRexx_05.java</a>.] + <dt><a href="nrxRunRexx_06.nrx">nrxRunRexx_06.nrx</a> + <dd>Demonstrate how to use the <em>context</em> of a Rexx routine for another + Rexx routine. The first routine requires <code>BSF.CLS</code> which adds + public routines and public classes which then are made available to Rexx + routines that get created and executed later via NetRexx (Java). + Then another Rexx routines gets defined to use the first package, and in addition + defines a public routine named <code>test</code>. + Finally, the last Rexx routine demonstrates getting access to the package + of the second routine which makes its public routine named <code>test</code> + accessible. In addition the last routine is called twice, once without + NetRexx (Java) supplied arguments, once with NetRexx (Java) supplied arguments. + [Java version: <a href="../Java/JavaRunRexx_06.java">JavaRunRexx_06.java</a>.] <dt><a href="rgf_01_runRexx.nrx">rgf_01_runRexx.nrx</a> <dd>Shows the output of <code>parse source</code> and <code>parse version</code> from @@ -75,6 +89,6 @@ <p> <hr> <p style="font-size: 80%;"> -Rony G. Flatscher, 2011-01-15, 2014-07-02, Wien/Vienna, Austria, Europe +Rony G. Flatscher, 2011-01-15, 2014-07-04, Wien/Vienna, Austria, Europe </body> Modified: trunk/samples/NetRexx/nrxRunRexx_05.class =================================================================== (Binary files differ) Modified: trunk/samples/NetRexx/nrxRunRexx_05.nrx =================================================================== --- trunk/samples/NetRexx/nrxRunRexx_05.nrx 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/NetRexx/nrxRunRexx_05.nrx 2014-07-04 13:42:06 UTC (rev 218) @@ -1,11 +1,3 @@ -/* -import java.util.Vector; -import org.apache.bsf.BSFException; -import org.apache.bsf.BSFManager; -import org.apache.bsf.BSFEngine; -import org.rexxla.bsf.engines.rexx.RexxProxy; -*/ - import org.rexxla.bsf.engines.rexx. parse source . . src @@ -39,33 +31,9 @@ vArgs.addElement(null) rexxEngine.apply(src"-02", 0, 0, rexxCode, null, vArgs) +say "--- 3 (NetRexx): access '.HOST' entry 'REXX.HEY' ..." +say " (NetRexx) rexxDotHost.sendMessage0(\"rexx.hey\"): [" || rexxDotHost.sendMessage0("rexx.hey")"]" +say " (NetRexx) rexxDotHost.sendMessage1(\"entry\", \"rexx.hey\"): [" || rexxDotHost.sendMessage1("entry", "rexx.hey")"]" -say "--- 3 (NetRexx): put all '.HOST' entries to '.LOCAL' thereby turning them into environment symbols ..." -rexxCode="use arg val1, val2, val3 ;" - - "say ' (ooRexx) val1='pp(val1) 'val2='pp(val2) 'val3='pp(val3) 'arg()='pp(arg()) ;" - - ".local~putAll(.host) ;" - -- put all .host direcotry entries to .local - "::requires 'BSF.CLS' ;" -- get access to BSF4ooRexx support -rexxEngine.apply(src"-03", 0, 0, rexxCode, null, null) - - -say "--- 4 (NetRexx): now use the environment symbols of the '.HOST' entries ..." - -rexxCode="use arg val1, val2, val3 ;" - - "say ' (ooRexx) val1='pp(val1) 'val2='pp(val2) 'val3='pp(val3) 'arg()='pp(arg()) ;" - - "say ' (ooRexx) .from.netrexx :' pp(.from.netrexx ) ;" - - "say ' (ooRexx) .from.netrexx.system.class :' pp(.from.netrexx.system.class) ;" - - "say ' (ooRexx) .from.netrexx.version.string :' pp(.from.netrexx.version.string);" - - "say ' (ooRexx) Java version queried from Rexx :' pp(.from.netrexx.system.class~getProperty('java.version')); " - - ".host~rexx.hey='Greetings from ooRexx to NetRexx at:' .DateTime~new '!' ;" - - "::requires 'BSF.CLS' ;" -- get access to BSF4ooRexx support - -rexxEngine.apply(src"-04", 0, 0, rexxCode, null, vArgs) - -say "--- 5 (NetRexx): access '.HOST' entry 'REXX.HEY' ..." -say " (NetRexx) rexxDotHost.sendMessage0(\"rexx.hey\"): [" || - - rexxDotHost.sendMessage0("rexx.hey")"]" -say " (NetRexx) rexxDotHost.sendMessage1(\"entry\", \"rexx.hey\"): [" || - - rexxDotHost.sendMessage1("entry", "rexx.hey")"]" - mgr.terminate() -- make sure that the Rexx interpreter instance gets terminated! Added: trunk/samples/NetRexx/nrxRunRexx_06.class =================================================================== (Binary files differ) Index: trunk/samples/NetRexx/nrxRunRexx_06.class =================================================================== --- trunk/samples/NetRexx/nrxRunRexx_06.class 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/NetRexx/nrxRunRexx_06.class 2014-07-04 13:42:06 UTC (rev 218) Property changes on: trunk/samples/NetRexx/nrxRunRexx_06.class ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/x-java-applet \ No newline at end of property Added: trunk/samples/NetRexx/nrxRunRexx_06.nrx =================================================================== --- trunk/samples/NetRexx/nrxRunRexx_06.nrx (rev 0) +++ trunk/samples/NetRexx/nrxRunRexx_06.nrx 2014-07-04 13:42:06 UTC (rev 218) @@ -0,0 +1,55 @@ +import org.rexxla.bsf.engines.rexx. + +mgr=org.apache.bsf.BSFManager() +rexxEngine=mgr.loadScriptingEngine("rexx") + + -- create a Rexx routine (not using any other context) +createRoutine ="return .routine~new(arg(1),arg(2))" + -- create a Rexx routine, using context of third argument +createRoutineWithContext="return .routine~new(arg(1),arg(2),arg(3))" + + -- require BSF.CLS, which will cause an entry in .local named BSF, controlling argument conversion between Java and Rexx +say "--- 1 (NetRexx): require BSF.CLS and keep routine in order to be able to access its package ..." +rexxCode="::requires BSF.CLS -- get and activate the Java support\n"; + +vArgs=Vector() +vArgs.addElement("rexxPackage1") -- routine/package name +vArgs.addElement(rexxCode) -- Rexx code +rp1 = RexxProxy rexxEngine.apply("nrxRunRexx_06-01", 0, 0, createRoutine, null, vArgs) +rp1.sendMessage0("call") -- call (execute) the Rexx routine + + +say "--- 2 (NetRexx): define and run Rexx package2 which defines a public method 'test()'..." + -- Rexx code to run +rexxCode= "parse source fn ;\n" - + "say pp(fn) ;\n" - + "say pp(fn) 'test():' pp(test()) -- pp() is defined in BSF.CLS ;\n" - + "::routine test public ;\n" - + " return 'from routine test() at' .DateTime~new ;" + +vArgs1=Vector() +vArgs1.addElement("rexxPackage2") -- routine/package name +vArgs1.addElement(rexxCode) -- Rexx code +vArgs1.addElement(rp1) -- context to use +rp2 = RexxProxy rexxEngine.apply("nrxRunRexx_06-02", 0, 0, createRoutineWithContext, null, vArgs1) +rp2.sendMessage0("call") -- call (execute) the Rexx routine + + +say "--- 3a (NetRexx): run Rexx code with NO arguments that uses public method 'test()' defined for prior run..." + -- create a Rexx routine +rexxCode= "parse source fn ;\n" - + "say pp(fn) 'received' arg() 'argument(s)' ;\n" - + "say pp(fn) 'test():' pp(test()) -- pp() is defined in BSF.CLS ;\n" +vArgs2=Vector() +vArgs2.addElement("rexxPackage3") -- routine/package name +vArgs2.addElement(rexxCode) -- Rexx code for routine object +vArgs2.addElement(rp2) -- context to use +rp3 = RexxProxy rexxEngine.apply("nrxRunRexx_06-03", 0, 0, createRoutineWithContext, null, vArgs2) +rp3.sendMessage0("call") -- call (execute) the Rexx routine + +say "--- 3b (NetRexx): run Rexx code WITH arguments that uses public method 'test()' defined for prior run..." + -- reuse routine/package +rp3.sendMessage2("call", "argument from Java", Object()) -- call (execute) the Rexx routine with arguments + +mgr.terminate() -- make sure that the Rexx interpreter instance gets terminated! + Property changes on: trunk/samples/NetRexx/nrxRunRexx_06.nrx ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: trunk/samples/index.html =================================================================== --- trunk/samples/index.html 2014-07-03 09:44:53 UTC (rev 217) +++ trunk/samples/index.html 2014-07-04 13:42:06 UTC (rev 218) @@ -113,6 +113,12 @@ <dt><a href="list_charsets.rxj">list_charsets.rxj</a> <dd>List available character set names with their aliases. + <dt><em><a href="NetRexx/index.html">NetRexx <directory></a></em> + <dd>NetRexx programs that demonstrate how one can invoke ooRexx from NetRexx and how easy this is. + There are examples that interact with ooRexx objects from NetRexx, including ooRexx condition + objects. + + <dt><em><a href="OOo/index.html">OOo <directory></a></em> <dd>Examples for driving <a href="http://www.OpenOffice.org">OpenOffice.org</a> applications. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |