<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ECF New and Noteworthy</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">

</head>

<body bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%">
  <tbody>
    <tr>
      <td width="69%" class="bannertext">
        <font class="indextop style">eclipse communication framework</font>
        <br><br>
        <font class="indexsub">an eclipse technology subproject</font>
        <br><br>
        <font class="indextop style2">New and Noteworthy</font><br>0.8.8 Stable Release</font>
        <br><br><br>
        Return to <a href="downloads.php">ECF download page</a></br>
        Return to <a href="comm_resources.php">ECF communication resources page</a>
        <br><br>
        <a href="NewAndNoteworthy_0.4.0.html">New and Noteworthy for 0.4.0</a><br>
        <a href="NewAndNoteworthy_0.5.2.html">New and Noteworthy for 0.5.2</a><br>
        <a href="NewAndNoteworthy_0.5.4.html">New and Noteworthy for 0.5.4</a><br>
        <a href="NewAndNoteworthy_0.6.0.html">New and Noteworthy for 0.6.0</a><br>
        <a href="NewAndNoteworthy_0.6.2.html">New and Noteworthy for 0.6.2</a><br>
        <a href="NewAndNoteworthy_0.7.0.html">New and Noteworthy for 0.7.0</a><br>
        <a href="NewAndNoteworthy_0.7.5.html">New and Noteworthy for 0.7.5</a><br>
        <a href="NewAndNoteworthy_0.7.6.html">New and Noteworthy for 0.7.6</a><br>
        <a href="NewAndNoteworthy_0.8.0.html">New and Noteworthy for 0.8.0</a><br>
        <a href="NewAndNoteworthy_0.8.1.html">New and Noteworthy for 0.8.1</a><br>
        <a href="NewAndNoteworthy_0.8.2.html">New and Noteworthy for 0.8.2</a><br>
        <a href="NewAndNoteworthy_0.8.4.html">New and Noteworthy for 0.8.4</a><br>
        <a href="NewAndNoteworthy_0.8.5.html">New and Noteworthy for 0.8.5</a><br>
        <a href="NewAndNoteworthy_0.8.6.html">New and Noteworthy for 0.8.6</a><br>
        <a href="NewAndNoteworthy_0.8.7.html">New and Noteworthy for 0.8.7</a><br>
        <a href="NewAndNoteworthy_0.8.9.html">New and Noteworthy for 0.8.9</a>
      </td>
      <td width="31%">
        <div align="center">
          <img src="../images/Idea.jpg" width="120" height="86" hspace="50" align="middle">
        </div>
      </td>
    </tr>
  </tbody>
</table>

<table>

  <TR> <!----------------------------------------------------->
    <TD colSpan=2> <HR> </TD>
  </TR>
  <TR><TD colSpan=2><H2>IRC Provider</H2></TD>

  <TR>
    <TD vAlign=top align=left width="30%">
        <P align=left>
	<B>IRC Provider Approved for Distribution under EPL</B>
        </P>
    </TD>
    <TD vAlign=top width="70%">
      <p><br></p>
      <P>The IRC provider source code now available via the ECF eclipse.org CVS repository.  Previously, this code was not available because it the library
      upon which it depends was not approved by Eclipse Foundation Legal.  The library has now been approved
       (see <a href="ip_log.html">ECF IP log</a>.  See <a href="downloads.php">here</a> for instructions on how to 
      get CVS access to the this IRC provider (plugin <b>org.eclipse.ecf.provider.irc</b>).  Note that the IRC provider is not yet part of
      the build, so to get/use the IRC provider without building yourself see the <a href="http://ecf1.osuosl.org">ECF Extras site here</a></p>
     </TD>
  </TR>

  <TR> <!----------------------------------------------------->
    <TD colSpan=2> <HR> </TD>
  </TR>
  <TR><TD colSpan=2><H2>Google Summer of Code Projects</H2></TD>

  <TR>
    <TD vAlign=top align=left width="30%">
    </TD>
    <TD vAlign=top width="70%">
      <p><br></p>
      <P>Great progress on the three <a href="http://wiki.eclipse.org/index.php/ECF_SOC_Projects">ECF-related Google Summer of Code projects</a>.  Please 
      take some time to try read about, download/build, try out, report bugs, and/or comment on these projects:  
      <ul><li><a href="http://wiki.eclipse.org/index.php/RT_Shared_Editing" title="RT Shared Editing">Mustafa Isik: Real-time Shared Editing</a></li>
      <li> <a href="http://wiki.eclipse.org/index.php/Shared_Code_Plugin" title="Shared Code Plugin">Marcelo Mayworm: Shared Code Plugin</a></li>
      <li><a href="http://wiki.eclipse.org/index.php/ECF_BitTorrent_Provider" title="ECF BitTorrent Provider">Remy Chi Jian Suen: ECF BitTorrent Provider</a>
</li>
      </ul></p>
     </TD>
  </TR>

</table>


</body>
</html>