<?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 date="2002-11-12" email="chuck@topsail.org">Chuck Murcko</author>
    <author date="2006-09-16">Rony G. Flatscher</author>
    <author date="2007-11-09">Ant Elder</author>

    <title>BSF News</title>
  </properties>

<body>
  <section name="BSF 3.0 Beta 2">
    <h3>November, 9, 2007 - BSF 3.0 Beta2 Release Available</h3>
    <p>
     The second beta release of BSF 3.0 is now available for
     <a href="http://jakarta.apache.org/site/downloads/downloads_bsf.cgi">
     download</a>. If you have any feedback on this release, feel free to
     join the discussion on the bsf-dev and bsf-user mailing lists.
    </p>
  </section>

  <section name="BSF 3.0 Beta 1">
    <h3>April, 16, 2007 - BSF 3.0 Beta1 Release Available</h3>
    <p>
     The first beta release of BSF 3.0 is now available for
     <a href="http://jakarta.apache.org/site/downloads/downloads_bsf.cgi">
     download</a>. If you have any feedback on this release, feel free to
     join the discussion on the bsf-dev and bsf-user mailing lists.
    </p>
  </section>

  <section name="BSF 2.4.0">
    <h3>October, 06, 2006 - BSF 2.4.0 Available</h3>
    <p>
     The release of BSF 2.4 from Apache Jakarta is now available for
     <a href="http://jakarta.apache.org/site/downloads/downloads_bsf.cgi">
     download</a>. If you have any feedback on this release, feel free to
     join the discussion on the bsf-dev and bsf-user mailing lists.
    </p>
  </section>

<!--
  <section name="BSF 2.3">
    <h3>November 12, 2002 - BSF 2.3.0 Available</h3>
    <p>
     The first development version of BSF 2.3 from Apache Jakarta is
     now available for
     <a href="http://jakarta.apache.org/builds/jakarta-bsf/dev/v2.3.0/">
     download</a>. If you have any feedback on this release, feel free to
     join the discussion on the bsf-dev and bsf-user mailing lists.
    </p>
  </section>
-->

  <section name="Interested?">
    <p>
     If you want to participate in developing BSF, join the
     <a href="http://jakarta.apache.org/site/mail.html">
     bsf-dev mailing list</a> and contribute your ideas.
    </p>
  </section>

</body>
</document>
