For 2011-08-17 (a test whether commiting has become possible as well):

	- incorporate all RFEs for BSF 2.4

	- possibly create a JSR-223-adapter for BSF 2.4 (there are engines for BSF 2.4 for which no JSR-223 engines exist; in addition it may buy time for deployments that have a mix of BSF 2.4 and JSR-223)


-------------------------- cut here (from 2006) ------------------------------
For 2006-09-25 the TODO list would consist at least from the following items:

        - add new BSF engines for BSF 2.4

        - create a new BSF 3.0 which complies to JSR-223 (which is part of Java 6),
          some features being

          - BSF 3.0 will be available as FOSS for earlier version of Java

          - BSF 3.0 may get an internal adapter for employing the numerous BSF 2.4
            engines transparently

          - ...


Rony G. Flatscher, 2006-09-25



------------------------------ cut here (from 2003) -----------------------------
The following TODO list stems from 2003 and has not been updated anymore and
has partially been obsoleted:

TODO list for BSF 2.3.0-1:

    use a discovery mechanism like JAXP in place of Languages.properties

    break out messages for both runtime and debugging into properties files

    work out a better procedure for obtaining language jarfiles
    Maven/Ibiblio and replacement of CVS with Subversion are possibilities

    improve doc generation and distribution

    provide/incorporate patches for Jasper 4.0.x, 4.1.x, and 5.x.

TODO list for BSF 2.4.0:

    work on improving BSF global scope, e.g.:
        public Boolean variableExists()
        public Object getVariableValue()
        public void setVariableValue()
        ...

TODO list for BSF 3.0.0:

    address debug support for multiple languages (JSR-045?)
------------------------------ cut here (from 2003) -----------------------------



