Hi Andreas,
On 07.07.2012 17:36, Andreas Säger wrote:
> Am 06.07.2012 16:26, Rony G. Flatscher (Apache) wrote:
>> In addtion, the very important AOO scripting framework is totally Java based.
>
> Why can I run all non-Java macros on a machine with no Java?
>
not sure, what you are after.
AFAIK, originally there was "StarBasic" implemented as the scripting language
for OpenOffice (later
renamed to "OpenOffice.org Basic") and part of it.
Then, later, Python got added as a scripting language, by implementing a Python
UNO binding.
That was it for quite some time as it is everything else but a trivial task to
create the
infrastructure to add a new scripting language to OpenOffice from scratch for
programmers who might
have no working knowledge about the UNO framework.
Then later (2004?, 2005?), a Java scripting framework got added to OpenOffice.
This Java scripting framework allowed in the first place to finally add
JavaScript (Rhino, a very
popular Java implemenation of JavaScript) as a scripting language to OpenOffice.
In addtion BeanShell ("interpreted Java") was added as an additional scripting
languages to
OpenOffice as well taking advantage of the new Java scripting framework.
Because there has been a Java scripting framework for OpenOffice it has become
a feasible job to add
any scripting language to OpenOffice for which a Java implementation existed,
without the need of an
intimate knowledge of the UNO framework. A feasible example of adding scripting
languages to
OpenOffice via the Java scripting framework would be all the Apache BSF
scripting languages (cf.
<http://commons.apache.org/bsf/>). Starting with Java 1.6 the "javax.script"
package got introduced
into Java which could be used to add new scripting languages to OpenOffice as
well, using the
existing Java scripting framework.
The interesting thing here is, that one can use the Java scripting framework
for OpenOffice also for
scripting languages, that are implemented in C++, believe it or not!
This may sound strange, but in effect, this is simpler than starting from
scratch to create some UNO
binding for a new scripting language for programmers who have no intimate
knowledge of the UNO
framework and its implementations. An example for such a possibility is the
oxt-package that adds
the opensource and "human centric" scripting language ooRexx (cf.
<http://www.ooRexx.org>) to
OpenOffice using Java as the bridge (there is an ooRexx package, that has
extensive Java support via
JNI for ooRexx, camouflaging all of Java as the dynamically typed, caseless
programming language
ooRexx, and does so successfully and fast, cf.
<http://sourceforge.net/projects/bsf4oorexx/>, the
oxt-package is part of the distribution and gets automatically installed with
BSF4ooRexx, if
OpenOffice is installed on the machine).
---
Two years ago, there was a presentation of an OpenOffice introspection tool
implemented in ooRexx,
which can be used interactively or via all the OpenOffice scripting languages
via the dispatch
interface, which is able to create great overviews of the UNO objects (and/or
UNO classes) you have
in hand, including links that lead to the OpenOffice API documentation on the
Internet. Here is a
link to a brief tutorial which might be interesting for OpenOffice developers,
hence giving links to
the slides, the brief tutorial on how to use it from OpenOffice.org Basic,
Java, JavaScript, ooRexx,
and Python:
* slides:
o
<http://wi.wu.ac.at/rgf/rexx/misc/OOoCon/2010_Budapest/UNO%5fAPI%5fInfo%2dOOoCon%2d20100902%2epdf>
* tutorial/readme:
o
<http://wi.wu.ac.at/rgf/rexx/misc/OOoCon/2010_Budapest/read%2dme%2dUNO%5fAPI%5finfo%2ehtml%2epdf>
* result of introspecting an UNO writer object on-the-fly, one level only,
yielding 11 pages of
documentation:
o
<http://wi.wu.ac.at/rgf/rexx/misc/OOoCon/2010_Budapest/UNO%5fAPI%5fINFO%2dcom%2esun%2estar%2edocument%2eOfficeDocument%2bcom%2e%2e%2e%2d2010%2d08%2d29T23%5f11%5f12%2e592000%2epdf>
* result of introspecting an UNO writer object on-the-fly, two levels,
yielding 55 (!) pages of
documentation:
o
<http://wi.wu.ac.at/rgf/rexx/misc/OOoCon/2010_Budapest/UNO%5fAPI%5fINFO%2dcom%2esun%2estar%2edocument%2eOfficeDocument%2bcom%2e%2e%2e%2d2010%2d08%2d29T23%5f11%5f27%2e749000%2epdf>
As you (hopefully) see, having a Java based scripting framework is a boon for
OpenOffice. It
allows/enables programmers to rather quickly make a scripting language
available to OpenOffice
taking advantage of the Java scripting framework.
---rony