<?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="bodewig@apache.org">Stefan Bodewig</author>
    <author email="chuck@topsail.org">Chuck Murcko</author>
    <title>Related Projects</title>
  </properties>

  <body>

    <section name="Related Projects (Alphabetical Order)">

      <p>Nothing listed here is directly supported by the BSF
      developers. If you encounter any problems with them, please use
      the contact information. Failing that, a query to the bsf-users
      mailing list may help.</p>

      <subsection name="BeanShell (Interpretative Java)">
        <p>
        &quot;BeanShell is a small, free, embeddable, Java source interpreter
        with object scripting language features, written in Java. BeanShell
        executes standard Java statements and expressions, in addition to
        obvious scripting commands and syntax. BeanShell supports scripted
        objects as simple method closures like those in Perl and
        JavaScript(tm).&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.beanshell.org/">http://www.beanshell.org/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://www.beanshell.org/contact.html">project mailing lists</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Dual Licensed: <a href="http://www.opensource.org/licenses/sunpublic.php">Sun Public License</a> /
                                          <a href="http://www.opensource.org/licenses/lgpl-license.php">Gnu Lesser Public License</a></td>
          </tr>
        </table>
      </subsection>


      <subsection name="Groovy">
        <p>
        &quot;Groovy is a powerful scripting language for the JVM which compiles down to Java bytecode and implements
        various high level features for Java developers such as dynamic typing, powerful closures for neat object navigation,
        native syntax for Maps and Lists, operator overloading, new extended JDK methods, AOP hooks and auto-boxing.
        Groovy also features a markup language for working with structured data (XML, DOM, SAX, Ant tasks, Swing etc).
        &quot;
        </p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.3 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://groovy.codehaus.org/">http://groovy.codehaus.org/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://groovy.codehaus.org/mail-lists.html">Mailing lists</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/bsd-license.php">BSD</a> (Apache-like) License</td>
          </tr>
        </table>
      </subsection>


      <subsection name="Groovy Monkey">
        <p>
        &quot;<a href="http://groovy.codehaus.org/Groovy+Monkey">Groovy Monkey</a> is a
        dynamic scripting tool for the Eclipse Platform/RCP that enables you to
        automate tasks, explore the Eclipse API and engage in rapid prototyping.
        Groovy Monkey makes use of the BSF framework to allow users to write scripts
        in Beanshell, Groovy or the Ruby language.  If you have ever wanted to be
        able to quickly experiment with or write simple automation tasks for the
        Eclipse environment, this is the tool for you.
        &quot;
        </p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.3 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://groovy.codehaus.org/Groovy+Monkey">http://groovy.codehaus.org/Groovy+Monkey</a></td>
          </tr>
    
        </table>
      </subsection>


      <subsection name="Jacl (Tcl)">
        <p>
        &quot;Jacl, which stands for Java Command Language, is a Java implementation
        of TCL 8.x.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Jacl 1.2.6, with BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://tcl.activestate.com/software/java/">http://tcl.activestate.com/software/java/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href ="http://tcljava.sourceforge.net/docs/website/mail.html">Tcl/Java Mailing Lists</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Sun, ORO, and UCB licenses (see source)</td>
          </tr>
        </table>
      </subsection>


      <subsection name="JEXL">
        <p>
        &quot;Java Expression Language (JEXL) is an expression language engine which
        can be embedded in applications and frameworks.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Commons JEXL 1.1, with BSF version TBD (Not yet released)</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://commons.apache.org/jexl/">http://commons.apache.org/jexl/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href ="http://commons.apache.org/jexl/mail-lists.html">Commons Mailing Lists</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/apache2.0.php">Apache v2.0</a></td>
          </tr>
        </table>
      </subsection>


      <subsection name="JavaScript/Rhino (JavaScript in Java)">
        <p>
        &quot;JavaScript/Rhino is an open-source implementation of JavaScript written
        entirely in Java. It is typically embedded into Java applications
        to provide scripting to end users.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>
                    Rhino with BSF 2.4 and above,
                    <br/>
                    early versions of Rhino (up to and including version 1.5.3) with BSF 2.3
             </td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.mozilla.org/rhino/">http://www.mozilla.org/rhino/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://www.mozilla.org/rhino/help.html">Rhino Contact Page</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/mozilla1.1.php">Mozilla Public License, version 1.1</a></td>
          </tr>
        </table>
      </subsection>



      <subsection name="JLog (PROLOG in Java)">
        <p>
          &quot;Prolog is a logic-oriented language based on predicate calculus. While it is not
		  really a scripting language, there is a range of problems that are much easier to
		  express in it than in Java, and for these cases a Prolog BSF engine comes in handy.
		  It is also useful for adding a GUI to Prolog programs.
		  The underlying Prolog interpreter is JLog, which can be run as an applet, an application
		  or embedded through an API, and can be found at <a href="http://sf.net/projects/jlogic/">http://sf.net/projects/jlogic/</a>.&quot;
        </p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.3 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.ulfdittmer.com/jlog/">http://www.ulfdittmer.com/jlog/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:udittmer@yahoo.com">Ulf Dittmer</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/gpl-license.php">GPL</a> (same as JLog itself)</td>
          </tr>
        </table>
      </subsection>


      <subsection name="JRuby (Ruby in Java)">
        <p>
        &quot;JRuby is a pure Java implementation of the Ruby interpreter,
        being developed by Jan Arne Petersen and others.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://jruby.sourceforge.net/">http://jruby.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:jpeterson@uni-bonn.de">Jan Arne Petersen</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>dual <a href="http://www.opensource.org/licenses/gpl-license.php">GPL</a>/<a href="http://www.opensource.org/licenses/lgpl-license.php">LGPL</a></td>
          </tr>
        </table>
      </subsection>


      <subsection name="JudoScript">
        <p>
        &quot;Judoscript is a 3GL-and-4GL; it retains 3GL's powerful
        programmability, and extends its reach into many of today's popular
        applications areas with 4GL approach (figuratively, &quot;WYSIWYG
        programming&quot;), making their uses easy, effective and elegant.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.judoscript.com/">http://www.judoscript.com/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:judoscript@hotmail.com">James Huang</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/lgpl-license.php">LGPL</a></td>
          </tr>
        </table>
      </subsection>


      <subsection name="Jython (Python in Java)">
        <p>
        &quot;Jython is an implementation of the high-level, dynamic,
        object-oriented language Python written in 100% Pure Java, and
        seamlessly integrated with the Java platform. It thus allows you
        to run Python on any Java platform.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Jython 2.1, with BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www.jython.org/">http://www.jython.org/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href ="http://sourceforge.net/mail/?group_id=12867">Jython Mailing lists</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>Jython Software License</td>
          </tr>
        </table>
      </subsection>

      <subsection name="NetRexx (Rexx-like Java)">
        <p>
        &quot;NetRexx is a <i>human-oriented</i> programming language which makes
        writing and using Java classes quicker and easier than writing in
        Java.&quot;
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>NetRexx 2.0.2, with BSF 2.2 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://www2.hursley.ibm.com/netrexx/">http://www2.hursley.ibm.com/netrexx/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://www-306.ibm.com/software/awdtools/netrexx/mailinglist.html">NetRexx 2 mailing list</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td>IBM License Agreement for IBM Employee-Written Software</td>
          </tr>
        </table>
      </subsection>

      <subsection name="ObjectRexx/Rexx">
        <p>
        &quot;Open Object Rexx (ooRexx, <a  href="http://www.ooRexx.org">http://www.ooRexx.org</a>) is a free
        and opensource language, which was originally developed by IBM, and made available for opensourcing and further
        developing it.
        <br></br>

        The non-profit SIG  Rexx Language Association (<a href="http://www.RexxLA.org">http://www.RexxLA.org</a>)
        received the source code from IBM at the end of 2004 and released an opensource version
        to the community in the spring of 2005.

        <br></br><a href="http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/">The BSF engine for Rexx (BSF4Rexx) </a> comes with an ooRexx wrapper
        program (BSF.CLS) which camouflages Java as ooRexx, easying programming
        considerably (e.g. no need for type information/casting).&quot;
        </p>

        <table>
                  <tr>
                          <th>Relates to:</th>
                          <td><em>ooRexx</em></td>
                  </tr>

                  <tr>
                    <th>Compatibility:</th>
                    <td>BSF 2.3 and above</td>
                  </tr>

                  <tr>
                    <th>Contact:</th>
                    <td><a href="mailto:president@rexxla.org">President of RexxLA</a></td>
                  </tr>

                  <tr>
                    <th>URL:</th>
                     <td><a href="http://www.ooRexx.org">http://www.ooRexx.org</a></td>
                  </tr>

                  <tr>
                    <th>License:</th>
                    <td><a href="http://www.opensource.org/licenses/cpl1.0.php">IBM's opensource license CPL v 1.0</a> (hence you can bundle this freely with commercial software as well)
                    </td>
                  </tr>

                  <tr/><tr/><tr/>

                  <tr>
                          <th>Relates to:</th>
                          <td><em>BSF4Rexx</em></td>
                  </tr>

                  <tr>
                    <th>Compatibility:</th>
                    <td>BSF 2.3 and above</td>
                  </tr>

                  <tr>
                    <th>URL:</th>
                     <td><a href="http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/">http://wi.wu-wien.ac.at/rgf/rexx/bsf4rexx/current/</a> (temporary home)</td>
                  </tr>

                  <tr>
                    <th>URL:</th>
                     <td><a href="http://bsf4rexx.sourceforge.net/">http://bsf4rexx.sourceforge.net (starting at the end of April 2006)</a>  (planned home)</td>
                  </tr>

                  <tr>
                    <th>Contact:</th>
                    <td><a href="mailto:ronyf@apache.org">Rony G. Flatscher</a></td>
                  </tr>

                    <tr>
                      <th>License:</th>
                      <td><a href="http://www.opensource.org/licenses/apache2.0.php">Apache v2.0</a>  (hence you can bundle this freely with commercial software as well)
                      </td>
                  </tr>

        </table>
      </subsection>


      <subsection name="ObjectScript">
        <p>
          &quot;ObjectScript is a general purpose object-oriented programming language. It is designed to
          be simple to learn, easy to use, yet still powerful, combining the convenience of an
          interactive interpreter with many of the features of Java, plus operator overloading,
          regular expressions, closures, XML-RPC support, etc.  And a behind the scenes compiler
          compiles script code to JVM bytecode for faster execution.&quot;
        </p>
        <table>
          <tr>
            <th>Compatibility:</th>
            <td>BSF 2.3 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://objectscript.sourceforge.net/">http://objectscript.sourceforge.net/</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="mailto:rob@ti.com">Rob Clark</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/lgpl-license.php">LGPL</a></td>
          </tr>
        </table>
      </subsection>


      <subsection name="Xalan/XSLT">
        <p>
        &quot;Xalan-Java is an XSLT processor for transforming XML documents into
        HTML, text, or other XML document types. It implements the W3C
        Recommendations for XSL Transformations (XSLT) and the XML Path
        Language (XPath). It can be used from the command line, in an applet
        or a servlet, or as a module in other program.
        </p>

        <p><em>Hint:</em>
            Starting with Sun's Java 1.4SE a W3C compliant set of classes for XSLT is part
            of the runtime environment.&quot;, <em>however</em>, with other versions of
            Java or newer versions of Xalan distributions you <em>may</em> need to explicitly extract the
            archive
            <em><code>xalan.jar</code></em> and put it into the <code>CLASSPATH</code>
            environment variable or alternatively, copy it into the Java <em><code>endorsed</code></em> or
            <em><code>ext</code></em>ension directory of your
            Java distribution (usually in <code>$(JAVA_JRE_HOME)/jre/lib/{endorsed|ext}</code>). The download
            site of Xalan (Java version) is at: <a href="http://xml.apache.org/xalan-j/downloads.html">http://xml.apache.org/xalan-j/downloads.html</a>
            <br></br>
            (You can determine quite easily whether you need to do that: just try to run the <code>xslt</code> sample
            of the BSF distribution. If you encounter the error <code> 'Could not compile stylesheet'</code>, then
            you need to explicitly supply the <code>xalan.jar</code> from the Xalan distribution.)
        </p>

        <table>
          <tr>
            <th>Compatibility:</th>
            <td>Xalan 2.2 and above (XSLT), with BSF 2.3 and above</td>
          </tr>
          <tr>
            <th>URL:</th>
            <td><a href="http://xml.apache.org/xalan-j/index.html">http://xml.apache.org/xalan-j/index.html</a></td>
          </tr>
          <tr>
            <th>Contact:</th>
            <td><a href="http://xml.apache.org/overview.html">Apache XML Project "Get Involved" page</a></td>
          </tr>
          <tr>
            <th>License:</th>
            <td><a href="http://www.opensource.org/licenses/apache2.0.php">Apache v2.0</a></td>
          </tr>
        </table>
      </subsection>


    </section>

  </body>
</document>

