-------------------------------------- 2006-02-15 ---------------------------------- - RexxAndJava.java: fixed a Java bug (not allowing invoking public methods of objects of non-public classes via reflection; e.g. Enumeration inner classes) -------------------------------------- 2006-02-07 ---------------------------------- - RexxAndJava.java: fixed a bug in the new method lookup code (caused an eternal loop, if method not found) - "setupBSF4Rexx.rex" on Linux: created shell script "installBSF4Rexx.sh" now blindly adds the invocation of 'setEnvironment4BSF4Rexx.sh' to the bash resource config file (~/.bashrc), decorating the entry with a self-explanatory comment; you need to remove the entry by hand from '/.bashrc' (if you have code that was able to remove the entry upon running 'uninstallBSF4Rexx.sh' and want to share it, please send it) -------------------------------------- 2006-02-05 ---------------------------------- - RexxAndJava.java: - now invoking methods without BSF, added logic to refer to java.lang.Class methods from class objects; rigidly allows access to methods with modifier 'public' only (for security reasons) logic: - find methods having sought for name, check whether Rexx args can be coerced to the needed parameter types - if a class object and method was not found: use Class' class object to find method, and if found use original object to invoke method for - org.oorexx.misc.RgfFilter: - added 'public' keyword to class to allow access to its members/methods -------------------------------------- 2006-02-03 ---------------------------------- - BSF.CLS: - added routine 'bsf.wrapStaticFields' which returns an instance of "JavaStaticFields.Directory" (a subclass of the Object Rexx directory class), which allows easy access to the static fields of the given Java class/interface by merely sending the name of the static field as a message or using the AT method to access them - added entry "VERSION" in .BSF4REXX (returns "142.20060203", ie. version 1.43 as of "2006-02-03" - BSF core (BSF framework itself): - fixed a bug in generating event adapters dynamically; - added code to deal with OpenOffice.org EventListeners (they do not carry the information that java.util.EventListener is implemented, breaking standard reflection BSF uses), so now OOo event listeners can be employed as well -------------------------------------- 2006-01-28 ---------------------------------- - BSF4Rexx.cc: now creates a Java exception, if a Rexx execution error occurs; the Java exception gets the Rexx error messages, which allows Java programs to retrieve the full Rexx error text and parse e.g. the line number in which the Rexx error occurred - BSF4Rexx.cc: Java string arguments for invocating Rexx programs are now converted to native strings using the (Java's) current codepage setting - org.rexxla.bsf.RexxDispatcher.java: removed last traces of (older) IBM BSF, fixed an error in argument passing, explicitly showing the Rexx error text supplied with a raised Java exception by BSF4Rexx -------------------------------------- 2006-01-22 ---------------------------------- - BSF4Rexx.cc: fixed conversion from Java strings to local (single-character) strings, now umlauts etc. are converted using the codepage setting of the thread -------------------------------------- 2006-01-17 ---------------------------------- - org.apache.bsf.BSFManager: added getVersion(), returning the version number of BSF as a string formatted as "abb.yyyymmdd", where "a" is the major version number, "bb" the minor versions number, "yyyy" the four digit year, "mm" the two digit month, and "dd" the two digit day -------------------------------------- 2006-01-05 ---------------------------------- - BSF4Rexx.cc: fixed startup behavior for JVMs, now takes all Rexx startup arguments verbatimly (e.g. "-Djava.class.path=" some dirs); if no java.class.path is given in the startup values, then the value of the environment variable CLASSPATH is used, if available at all - BSF.CLS: fixed bsf.import -------------------------------------- 2006-01-05 ---------------------------------- - Changed in all BSF-Java, BSF4Rexx-Java and Rexx programs invocations of "Class.forName(name)" to "Thread.currentThread().getContextClassLoader().loadClass(name)" - RexxAndJava.java: added subfunction "loadClass", preregisters now "java.lang.Thread" in the BSF registry - BSF.CLS: added new class method and routine "bsf.loadClass", using that instead of the suboptimal "Class.forName()" -------------------------------------- 2006-01-02 - 2006-01-05 --------------------- - Added "setupBSF4.rex" to ease installing BSF4Rexx for users who have no working knowledge about Java whatsoever. The program creates three scripts: - bsf4rexx.sh (Linux) or bf4rexx.cmd (Windows): allows running BSF4Rexx scripts without installing BSF4Rexx as a Java extension; argument: name of Rexx file to execute and additionally, optional arguments for the Rexx program - installBSF4Rexx.sh (Linux) or installBSF4Rexx.cmd (Windows): installs BSF4Rexx as a Java extension; this will allow its usage from anyone and from any program; invoking Rexx programs will be possible via "rexxj.sh" (Linux) or "rexxj.cmd" (Windows) - uninstallBSF4Rexx.sh (Linux) or uninstallBSF4Rexx.cmd (Windows): these scripts allow removing BSF4Rexx as a Java extension from the system "setupBSF4.rex" allows for two optional arguments to be supplied: - fully-qualified path to the Java executable - fully-qualified path to a directory into which the Rexx-supporting scripts as well as the generated scripts should be copied to - Added "setupOOo.rex" to create a script which sets the environment variable CLASSPATH to point to the OpenOffice.org/StarOffice Java archives. By doing so, one can fully script OpenOffice.org via BSF4Rexx. - Added "setupJava.rex" to create the needed links to Java in /usr/bin and /usr/lib on some Unix systems - Added additional ooRexx support modules to the distribution to ease interaction with OpenOffice.org considerably. - Added the datergf-Java classes to ease date manipulation and formatting. -------------------------------------- 2005-07-30 ---------------------------------- - Restructured distribution archives to make it easier on users - Adapted "readmeBSF4Rexx.txt" to reflect new distribution archives - Re-built OS2-, Linux- and Windows-DLLs -------------------------------------- 2005-07-30 ---------------------------------- - RexxAndJava.java: added pp() for formatting debug messages - BSF.CLS: fixed a bug in the creation of Java arrays: now pre-registered names (entries in .bsf4rexx) and any other Java class object proxy can be used to indicate component type for the Java array -------------------------------------- 2005-07-09 ---------------------------------- - BSF.CLS: added public routines for easing access to frequently needed functionality: - bsf.lookupBean(beanName) - bsf.unregisterBean(beanName) - bsf.pollEventText([timeout]) - bsf.postEventText(text) - bsf.getStaticValue(className, fieldName) - bsf.getStaticValueStrict(className, fieldName) alias: bsf.getConstant(className, fieldName) -------------------------------------- 2005-07-07 ---------------------------------- - RexxAndJava.java: fixed a bug in converting {b|B}oolean values - BSF.CLS: renamed 'bsf.checkResult' to 'bsf.wrap' -------------------------------------- 2005-06-18 ---------------------------------- - RexxAndJava.java: added "new" and "newStrict" as synonyms for "registerBean" and "registerBeanStrict"; fixed a bug (not checking for interfaces in class String); corrected SGML comments, such that FireFox will display or entries in the table of subfunctions in the javadocs -------------------------------------- 2005-06-11 ---------------------------------- - BSF.CLS: now class object proxies allow for BSF-instance messages like "bsf.getFieldValue" - Apache BSF: downloaded original Apache code, applied bug-fixes and changes and commited those with the Jakarta-BSF distribution at svn.apache.org; double-checked and had it reviewed with another Jakarta-BSF developer - RexxAndJava.java: now handles case of interface classes for accessing static field values transparently (as if it was a normal Java class) -------------------------------------- 2005-06-07 ---------------------------------- - BSF-packages: fixed 'EngineUtils.java' bug in IBM's and Apache's BSF-package - RexxAndJava.java: made error (exception) messages from invoked Java methods easier ledgible to non-Java programmers (no Java stack-trace, instead exception message only shown) - BSF.CLS: renamed BSF.BOX() to BOX() and BSF.UNBOX() to UNBOX() to make coding easier -------------------------------------- 2005-06-05 ---------------------------------- changes of 2005-06-05, 2005-06-06 version, --rgf - BSF.CLS: renamed all BSF-pass-through class methods to start with "BSF."; this way it is always clear that the BSF4Rexx interfaces are addressed BSF-class methods: name changes ------------------------------- createArray --> bsf.createArray exit --> bsf.exit getStaticValue --> bsf.getStaticValue getStaticValueStrict --> bsf.getStaticValueStrict import --> bsf.import lookupBean --> bsf.lookupBean pollEventText --> bsf.pollEventText postEventText --> bsf.postEventText setRexxNullString --> bsf.setRexxNullString sleep --> bsf.sleep wrapArray --> bsf.wrapArray wrapEnumeration --> bsf.wrapEnumeration - BSF.CLS: BSF-class method "bsf.import": change in the order of arguments! ---------------------------------------------------------------- Arguments got switched, "RexxName" argument is now optional: import(RexxName, JavaFullClassName) was changed to: bsf.import(JavaFullClassName [, RexxName]) If "RexxName" is not given, then the Java class name is used as the ooRexx class name for storing it in .local; if "RexxName" is .nil, then no entry in .local will be created - BSF.CLS: all imported Java classes can be instantiated with "newStrict()", which allows indicating the datatype in front of every argument, if necessary - BSF.CLS: sending messages to the BSF Java class object proxy now behaves the same as sending ooRexx messages to BSF Java object proxies: the (static) methods are resolved and dispatched; hence no need to instantiate a Java class just to get at its static methods (or static fields for that matter) - The "test" and "sample" Rexx programs have been updated accordingly. -------------------------------------- 2005-06-05 ---------------------------------- starting with 2005-06-05, brief infos about changes are recorded in here, ---rgf