Bean Scripting Framework (BSF) is a set of Java classes which provides scripting
language support within Java applications, and access to Java
objects and methods from 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.
There are now two different versions of Apache BSF. These have different APIs.
The original version of BSF is represented by the BSF 2.x releases (current version 2.4),
and uses an API which was originally developed at IBM.
The new version of Apache BSF is represent by the 3.x release (current version 3.0)
The 3.x version uses the API defined as part of JSR-223 (javax.script),
which is included in Java 1.6 onwards.
However BSF 3.0 will run on Java 1.4+, allowing access to JSR-223 scripting
for Java 1.4 and Java 1.5.
Apache BSF 3.0 is also useful for Java 1.6 as it contains a command-line utility for
testing JSR-223 scripts, and it also contains a set of factory implementations for many
languages.