<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!-- Content Stylesheet for Site -->

        
<!-- start the processing -->
    <html>
    <!-- GENERATED FILE, DO NOT EDIT, EDIT THE XML FILE IN xdocs INSTEAD! -->
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

                      <meta name="author" value="Chuck Murcko">
  <meta name="email" value="chuck@topsail.org">
                <meta name="author" value="Rony G. Flatscher">
  <meta name="email" value="$au.getAttributeValue("email")">
      
      <title>Jakarta BSF - BSF News</title>
    </head>

    <body bgcolor="#ffffff" text="#000000" link="#525D76">
      <table border="0" width="100%" cellspacing="0">
        <!-- TOP IMAGE -->
        <tr>
                <td align="left">
    <a href="http://jakarta.apache.org"><img src="images/jakarta-logo.gif" border="0"/></a>
    </td>
    <td align="right">
              <a href="http://jakarta.apache.org/bsf/"><img src="./images/bsf_logo.jpg" alt="Jakarta BSF" border="0"/></a>
        </td>
          </tr>
      </table>
      <table border="0" width="100%" cellspacing="4">
        <tr><td colspan="2">
          <hr noshade="" size="1"/>
        </td></tr>

        <tr>
          <!-- LEFT SIDE NAVIGATION -->
          <td valign="top" nowrap="true">
                <p><strong>BSF Essentials</strong></p>
    <ul>
          <li>      <a href="./index.html">Front Page</a>
  </li>
          <li>      <a href="./bsfnews.html">News</a>
  </li>
          <li>      <a href="./manual.html">Documentation</a>
  </li>
          <li>      <a href="./projects.html">Related Projects</a>
  </li>
          <li>      <a href="./resources.html">Resources</a>
  </li>
          <li>      <a href="./faq.html">BSF FAQ</a>
  </li>
          <li>      <a href="./problems.html">Having Problems?</a>
  </li>
        </ul>
      <p><strong>Download</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/binindex.html">Binaries</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/sourceindex.html">Source Code</a>
  </li>
        </ul>
      <p><strong>Jakarta</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/news.html">News & Status</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/mission.html">Mission</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/guidelines.html">Guidelines Notes</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/faqs.html">FAQs</a>
  </li>
        </ul>
      <p><strong>Get Involved</strong></p>
    <ul>
          <li>      <a href="http://jakarta.apache.org/site/getinvolved.html">Overview</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/cvsindex.html">Source Repositories</a>
  </li>
          <li>      <a href="http://www.faqs.org/rfcs/rfc1855.html">Netiquette</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/mail.html">Mailing Lists</a>
  </li>
          <li>      <a href="http://jakarta.apache.org/site/library.html">Reference Library</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=BSF">Bug Database</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=BSF&bug_severity=Enhancement">Enhancement Requests</a>
  </li>
          <li>      <a href="http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=&emailtype1=substring&emailassigned_to1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=BSF&short_desc=%5BPATCH%5D&short_desc_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&bug_file_loc=&bug_file_loc_type=allwordssubstr&keywords=&keywords_type=anywords&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Reuse+same+sort+as+last+time">Patch Queue</a>
  </li>
        </ul>
            </td>
          <td align="left" valign="top">
        <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#525D76">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="BSF 2.4.0"><strong>BSF 2.4.0</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <h3>Octomber, 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/builds/jakarta-bsf/dev/v2.4.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>
                    </blockquote>
    </td></tr>
  </table>
        <table border="0" cellspacing="0" cellpadding="2" width="100%">
    <tr><td bgcolor="#525D76">
      <font color="#ffffff" face="arial,helvetica,sanserif">
        <a name="Interested?"><strong>Interested?</strong></a>
      </font>
    </td></tr>
    <tr><td>
      <blockquote>
                        <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>
                    </blockquote>
    </td></tr>
  </table>
              </td>
        </tr>

        <!-- FOOTER -->
        <tr><td colspan="2">
          <hr noshade="" size="1"/>
        </td></tr>
        <tr><td colspan="2">
          <div align="center"><font color="#525D76" size="-1"><em>
          Copyright &#169; 2002-2006, Apache Software Foundation
          </em></font></div>
        </td></tr>
      </table>
    </body>
  </html>
<!-- end the processing -->




