Just added a set of programs in "sandbox/rony/dbus" that allows ooRexx Linux users to take advantage
of DBus (very much like ooRexx Windows users can take advantage of OLE).
After having tested it thoroughly, among other things by a comprehensive set of ooRexx testunits
developed in the context of a Bachelor theses may years ago, I have always intended to suggest
adding it to the Linux version of ooRexx but got distracted and then into "out of view, out of
mind" mode somehow.
To see what it is and what it allows for ooRexx programmers in a Linux world,
you may want to skim over:
* RexxLA Symposium presentation:
<https://www.rexxla.org/presentations/2016/201608-dbusoorexx.pdf>
* D-Bus for ooRexx introductory article:
<https://wi.wu.ac.at/rgf/rexx/orx22/201112-DBus4ooRexx-article.pdf>
* D-Bus for ooRexx test units (Bachelor thesis):
<https://wi.wu.ac.at/rgf/diplomarbeiten/#bakk_201505>
The D-Bus support gets loaded by calling or requiring the "dbus.cls" ooRexx package, which is
closely intertwined with the native ooRexx dbus library.
As the D-Bus encoding is defined to be UTF-8, "dbus.cls" needs to include routines to encode text as
UTF-8. In the case that BSF4ooRexx can be dynamically required these routines would take advantage
of BSF4ooRexx which exploit directly Java's encoding and decoding services, otherwise the encoding
to UTF-8 uses a routine that got posted by Mike and there will be no decoding from UTF-8 applied.
Ad "sandbox/dbus" directories:
* "sandbox/dbus/dbusoorexx": D-Bus for ooRexx, all files, including pre-built
libraries such that
the install script could be used to install the support for testing
purposes; alternatively
change the environment (PATH, LD_LIBRARY_PATH) temporarily
* "sandbox/dbus/testunits": Sebastion Margiol's comprehensive dbusoorexx
testunits instrumentatign
the ooRexx testing framework
---
Here the "sandbox/dbus/dbusoorexx/readme.txt" file:
"dbusoorexx" Package
====================
This ooRexx package enables ooRexx scripts to take full advantage of DBus as
clients, but also as servers (providing DBus services to any DBus client). It
needs at ooRexx version 4.2.0 or higher.
For an introduction to DBus and "dbusoorexx" scripts see the supplied PDF
article "dbusoorexx-introduction.pdf". Also look for the keywords "DBus" or
"D-Bus" on<http://wi.wu.ac.at/rgf/diplomarbeiten/>.
files in the "dbusoorexx" package:
dbusoorexx/dbus.cls ... DBus ooRexx package
dbusoorexx/dbusdoc.css ... CSS for dbusdoc.rex output
dbusoorexx/dbusdoc.rex ... creates on-the-fly HTML
documentation of DBus services
dbusoorexx/dbusListObjectPaths.rex ... lists DBus object paths of
a DBus service, if any
dbusoorexx/dbusoorexx-introduction.pdf ... introduction to
dbusoorexx
dbusoorexx/readme.txt ... this document
dbusoorexx/rgf_util2.rex ... optional ooRexx utility
package, cf.
<http://wi.wu.ac.at/rgf/rexx/orx20/>
------------------------------------------------------------------------
dbusoorexx/examples/demoHelloClient.rex ... ooRexx DBus client
using
any one of the ooRexx
DBus
services below
Demonstrating different coding styles for ooRexx DBus
services:
dbusoorexx/examples/demoHelloService1.rex ... ooRexx DBus service
dbusoorexx/examples/demoHelloService2.rex ... ooRexx DBus service
dbusoorexx/examples/demoHelloService3.rex ... ooRexx DBus service
dbusoorexx/examples/demoHelloService3.xml ... Introspection data
dbusoorexx/examples/demoHelloService4.rex ... ooRexx DBus service
dbusoorexx/examples/helloWorld.rex ... uses a DBus Notification
service
dbusoorexx/examples/margiolKate.rex ... interacts with the Kate
editor
dbusoorexx/examples/margiolVLC.rex ... interacts with the VLC
media player
dbusoorexx/examples/signalListener.rex ... listens to and dumps
DBus signals
------------------------------------------------------------------------
dbusoorexx/install/install_dbusoorexx.rex ... installation ooRexx
script
dbusoorexx/install/linux/install.sh ... installs "dbusoorexx"
dbusoorexx/install/linux/reinstall.sh ... reinstalls "dbusoorexx"
dbusoorexx/install/linux/uninstall.sh ... uninstalls "dbusoorexx"
dbusoorexx/install/macosx/install.sh ... installs "dbusoorexx"
dbusoorexx/install/macosx/reinstall.sh ... reinstalls "dbusoorexx"
dbusoorexx/install/macosx/uninstall.sh ... uninstalls "dbusoorexx"
dbusoorexx\install\windows\install.cmd ... installs "dbusoorexx"
dbusoorexx\install\windows\reinstall.cmd ... reinstalls "dbusoorexx"
dbusoorexx\install\windows\uninstall.cmd ... uninstalls "dbusoorexx"
dbusoorexx\install\windows\kickoff.rex ... elevates install script
dbusoorexx\install\windows\Elevate32.exe ... 32-Bit elevate utility
dbusoorexx\install\windows\Elevate64.exe ... 64-Bit elevate utility
------------------------------------------------------------------------
dbusoorexx/install/libs/dbusoorexx-32.dll ... 32-Bit Windows DLL
dbusoorexx/install/libs/dbusoorexx-64.dll ... 32-Bit Windows DLL
dbusoorexx/install/libs/libdbusoorexx.dylib ... MacOSX fat library
dbusoorexx/install/libs/libdbusoorexx32.so ... 32-Bit Linux library
dbusoorexx/install/libs/libdbusoorexx64.so ... 64-Bit Linux library
------------------------------------------------------------------------
If there are any questions or problems, please use either the newsgroup
<news:comp.lang.rexx> or one of the e-mail lists of the BSF4ooRexx project
at<http://sourceforge.net/projects/bsf4oorexx/>.
Rony G. Flatscher (author), Vienna, Austria, April 2015
=============================== Installation ===============================
- Linux installation
====================
- change into the directory "dbusoorexx/install/linux" and run
"install.sh";
this will copy the "dbusoorexx" package to "/opt/dbusoorexx" and link
the
executables to "/usr/bin" and the appropriate library to "/usr/lib"
- to deinstall run "/opt/dbusoorexx/install/linux/uninstall.sh"
- MacOSX installation
=====================
- change into the directory "dbusoorexx/install/macosx" and run
"install.sh";
this will copy the "dbusoorexx" package to "/opt/dbusoorexx" and link
the
executables to "/usr/bin" and the appropriate library to "/usr/lib"
- to deinstall run "/opt/dbusoorexx/install/macosx/uninstall.sh"
- Please note: on MacOSX DBus is not installed by default; you can get and
install DBus for MacOSX e.g. from the macport project at
<http://www.macports.org/> or see the Wikipedia article
<http://en.wikipedia.org/wiki/MacPorts>
- Windows installation
======================
- change into the directory "dbusoorexx\install\windows" and run
"install.cmd"; this will copy the "dbusoorexx" package to the Windows
%ProgramFile% or %ProgramFile(x86)", depending on the bitness of the
installed ooRexx interpreter; the executable DLL and Rexx scripts are
copied to %REXX_HOME% such that you can use immediately "dbbusoorexx"
- to deinstall find "dbusoorexx" on "%ProgramFile%" or
"%ProgramFile(x86)" and
run "dbusoorexx\install\windows\uninstall.cmd"
- Please note! On Windows DBus is not installed by default; you can
download
an experimental and untested version built from the original sources
from
freedesktop.org from<http://wi.wu.ac.at/rgf/rexx/orx22/work/>; please
study the "readme.txt" file there
=============================== URLs ===============================
- dbusoorexx Download
Page:<http://sourceforge.net/projects/bsf4oorexx/files/GA/sandbox/dbusoorexx/>
-
- dbusoorexx Source
Code:<https://sourceforge.net/p/bsf4oorexx/code/HEAD/tree/sandbox/rgf/misc/dbusoorexx/>
- Official D-Bus Homepage:<http://www.freedesktop.org/wiki/Software/dbus/>
- Wikipedia on D-Bus:<http://en.wikipedia.org/wiki/D-Bus>
- ooRexx Homepage:<http://www.ooRexx.org>
- Rexx Language Association (RexxLA) Homepage:<http://www.RexxLA.org>
- Information about "rgf_util2.rex":<http://wi.wu.ac.at/rgf/rexx/orx20/>
- BSF4ooRexx Homepage:<http://sourceforge.net/projects/bsf4oorexx/>
- DBus for Windows:<http://wi.wu.ac.at/rgf/rexx/orx22/work/>
- MacPorts Homepage:<http://www.MacPorts.org/>
- Wikipedia on macports:<http://en.wikipedia.org/wiki/MacPorts>
---
Also interested in any feedback from Linux ooRexx users!
---rony
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel