Bean Scripting Framework (BSF) is a set of Java classes which provides
scripting language support within Java applications. It also provides
access to Java objects and methods from supported scripting languages.
BSF allows one to write JSPs in languages other than Java while providing
access to the Java class library. In addition, BSF permits any Java
application to be implemented in part (or dynamically extended) by a
language that is embedded within it. This is achieved by providing an API
that permits calling scripting language engines from within Java, as well
as an object registry that exposes Java objects to these scripting language
engines.

BSF supports several scripting languages currently:

    * Javascript (using Rhino ECMAScript, from the Mozilla project)
    * Python (using either Jython or JPython)
    * Tcl (using Jacl)
    * NetRexx (an extension of the IBM REXX scripting language in Java)
    * XSLT Stylesheets (as a component of Apache XML project's Xalan and Xerces)

In addition, the following languages are supported with their own BSF engines:

    * Java (using BeanShell, from the BeanShell project)
    * JRuby
    * JudoScript

Information on where to obtain scripting languages for use with BSF
is available on the Related Projects page at the BSF web site

http://jakarta.apache.org/bsf/index.html

