BSF4ooRexx (
https://sourceforge.net/projects/bsf4oorexx/)
is an external ooRexx function package that allows Rexx
programmers to use all of Java. Java will be camouflaged as
ooRexx such that Java classes and Java objects appear to be
ooRexx classes and ooRexx objects.
As the Java runtime environment (JRE) includes all functionality
a modern system needs (GUI, JDBC/RDBMS, SSL, XML, ...), ooRexx
programmers can benefit immediately without needing any other
external Rexx function package anymore. :)
Best, as Java is cross-platform, the ooRexx programs developed
e.g. on Windows will execute unchanged on Linux or MacOSX and
vice versa!
---
New features, changes:
- Installation: a lot of effort went into updating the
installers for Windows, now using elevation on Windows
Vista, Windows 7 and Windows 8.x in 32- and 64-bit (still
using "runas" on Windows XP). In addition the MacOSX
installer got updated and should now accept non-Apple Java
installations.
- Codepage translations (for non-English users of ooRexx),
and exploiting Unicode:
- cf. BSF.CLS' public routines string2utf8(string),
utf8toString(string), utf8stringAsJSO(string),
JSOasUtf8String(jso),
- cf. the new methods of the class BSF ending in the
string "JSO" (Java string object, return the reference to
the Java string object or NetRexx object instead of
transparently creating a Rexx string); being able to
retrieve the Java String object references allows Rexx
programmers to take advantage of all Java Unicode related
methods
- see "samples\demoJSO.rxj"
- The two BSF4ooRexx jars got folded into a single jar (Java
archive, a zip file) in order to ease deployment (e.g. for
custom deployment scenarios).
- BSFAttachToTID() and BSFDetach() got deprecated (not
needed anymore): these two external Rexx functions were
needed to allow Rexx threads to attach to the correct Java
peer. The logic for attaching to Java has changed, such that
attaching and detaching is carried out automagically. Also,
the new logic causes a slight speed improvement (was fast
enough already).
- In order to allow Rexx programs employing these two
external Rexx functions to continue to execute, these two
functions still exist and merely return .true when
invoked.
- For those who are interested more in this subject: it is
possible, thanks to the versatility of ooRexx, to create
multiple Rexx interpreter instances from Java, either on
the same or on multiple Java threads. ooRexx programs
executing in the different Rexx interpreter instances
could also employ ooRexx multithreading, such that a real
vivid ;) system realizes, in which different Java threads
and Rexx threads may interact with each other. Prior to
this release the ooRexx programmer had to explicitly
denote the thread which a new Rexx thread needs to attach
to, which is a little bit cumbersome.
- New ability to subclass an existing Java class, overriding
Java methods with ooRexx methods, cf. "samples/clock.rxj" (a
simple GUI clock).
- Little sample/utilitiy that renders the most important
information about ooRexx, BSF4ooRexx and Java in a HTML file
that gets immediately displayed in a browser, cf.
"samples/info2html.rxj".
- Little sample that demonstrate how to use ooRexx instead
of Java for implementing functions for the new Java 8 lambda
support, cf. "samples/demo-j8-lambda.rxj".
- Updated/new version of "ooRexxTry.rxj" that can be started
via the BSF4ooRexx menu, representing a platform independent
"poor man's GUI IDE" .
- All changes can be studied in the text files
"changesBSF4ooRexx.txt" and "changesOOo.txt".
This package can be downloaded from
<https://sourceforge.net/projects/bsf4oorexx/files/GA/BSF4ooRexx-450.20140914-GA/>,
the zip-archive contains the installer for Windows and Linux
(after unzipping go to "bsf4oorexx/install/windows" or
"bsf4oorexx/install/linux" and run the "install" scripts), the
MacOSX versions are available in 32- and 64-bit (recommended)
and include the release version of ooRexx 4.2.0.
NetRexx/Java-programmers: please note, there are two JavaDoc
archives that document the interfaces between NetRexx/Java and
ooRexx, including the abilities for NetRexx/Java to interact
with and send ooRexx messages to Rexx objects!
If there are any problems with this release (no known bugs),
then please report them that you might encounter at
<https://sourceforge.net/p/bsf4oorexx/bugs/?source=navbar>!
For help, discussions, please use the BSF4ooRexx mailing lists
(either the developer or the support list, links to these
mailing lists can be found at
<https://sourceforge.net/p/bsf4oorexx/mailman/?source=navbar>).
---rony