blob: 708e3436390f36d5b5015686c85a6f85d8063c98 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<document>
<properties>
<author email="chuck@topsail.org">Chuck Murcko</author>
<author email="victor.j.orlikowski@alumni.duke.edu">Victor Orlikowski</author>
<author email="rony@apache.org">Rony G. Flatscher</author>
<title>Bean Scripting Framework</title>
</properties>
<body>
<section name="Bean Scripting Framework">
<p>
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.
</p>
<p>
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.
</p>
</section>
<section name="Supported Languages - 2.x">
<p>
BSF 2.x supports several scripting languages currently:
<ul>
<li>
<a href="http://www.mozilla.org/rhino/">Javascript (using Rhino ECMAScript, from the Mozilla project)</a>
</li>
<li>
<a href="http://www-306.ibm.com/software/awdtools/netrexx/">NetRexx</a> (an extension of the IBM REXX scripting language in Java)
</li>
<li>
<a href="http://commons.apache.org/jexl/">Commons JEXL</a>
</li>
<li>
<a href="http://jython.sourceforge.net/">Python (using Jython) </a>
</li>
<li>
<a href="http://tcljava.sourceforge.net/">Tcl (using Jacl)</a>
</li>
<li>
<a href="http://xalan.apache.org">XSLT Stylesheets (as a component of Apache XML project's Xalan and Xerces)</a>
</li>
</ul>
</p>
<p> In addition, the following languages are supported with their own BSF engines:
<ul>
<li>
Java (using <a href="http://www.beanshell.org/">BeanShell</a>, from the BeanShell project)
</li>
<li>
<a href="http://groovy.codehaus.org/">Groovy</a>
</li>
<li>
<a href="http://groovy.codehaus.org/Groovy+Monkey">Groovy Monkey</a>
</li>
<li>
<a href="http://www.ulfdittmer.com/jlog/index.html">JLog</a> (<a href="http://jlogic.sourceforge.net/">PROLOG implemented in Java</a>)
</li>
<li>
<a href="http://jruby.codehaus.org/">JRuby</a>
</li>
<li>
<a href="http://www.judoscript.com">JudoScript</a>
</li>
<li>
<a href="http://objectscript.sourceforge.net/">ObjectScript</a>
</li>
<li>
<a href="http://www.oorexx.org/">ooRexx (Open Object Rexx)</a>, using
<a href="http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/">BSF4Rexx</a>.
</li>
</ul>
</p>
<p>
Information on where to obtain scripting languages for use with BSF is
available on the <a href="projects.html">Related Projects</a> page.
</p>
</section>
<section name="Documentation (2.x)">
<p>
You can view the <a href="manual.html">documentation for BSF 2.4</a>.
</p>
<p>
Documentation and examples are included in the source and binary distributions.
</p>
</section>
<section name="Documentation (3.x)">
<p>
The following references describe the standard API (javax.script) which is implemented by BSF 3.0:
<ul>
<li><a href="http://jcp.org/aboutJava/communityprocess/final/jsr223/index.html">JSR-000223 Scripting for the Java Platform</a> - specification (PDF)</li>
<li><a href="http://java.sun.com/javase/6/docs/api/javax/script/package-summary.html">Javadoc for javax.script classes</a> in Java 1.6</li>
<li><a href="http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/">Scripting for the Java platform (Sun technical article)</a></li>
</ul>
Documentation on BSF 3.0 utilities and engines TBA.
</p>
<p>
Documentation and examples are included in the source and binary distributions.
</p>
</section>
<section name="Latest Release">
<p>
You can download the latest release:
</p>
<ul>
<li>
<a href="http://jakarta.apache.org/site/downloads/downloads_bsf.cgi">
Download the binary release
</a>
</li>
<li>
<a href="http://jakarta.apache.org/site/downloads/downloads_bsf.cgi">
Download the source release
</a>
</li>
</ul>
</section>
<section name="Get Involved">
<ul>
<li><a href="http://jakarta.apache.org/getinvolved/getinvolvedindex.html">Get Involved</a></li>
<li><a href="http://jakarta.apache.org/getinvolved/mail.html">Join Mailing Lists</a></li>
<li><a href="http://marc.theaimsgroup.com/?l=bsf-dev&amp;r=1&amp;w=2">Search the Dev Mailing List</a>
</li>
<li><a href="http://marc.theaimsgroup.com/?l=bsf-user&amp;r=1&amp;w=2">Search the User Mailing List</a>
</li>
</ul>
</section>
</body>
</document>