<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<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">
				<img src="https://wiki.eclipse.org/images/b/b8/Logo128x37.png" alt="ECF Logo"/>
				<font class="indextop style">eclipse communication framework</font>
						
						
						<br>
				<br> <font class="indexsub">an eclipse runtime project</font> <br>
				<br> <font class="indextop style2">New and Noteworthy</font><br>
					3.7.0 Release <br> <br>
				<br> Return to <a href="downloads.php">ECF download page</a><br>
					<br>
				<br> <a href="NewAndNoteworthy_3.6.1.html">New and
						Noteworthy for 3.6.1/Kepler</a><br> <a
					href="NewAndNoteworthy_3.6.0.html">New and Noteworthy for 3.6.0</a><br>
					<br>
				<br></td>
				<td width="31%">
					<div align="center">
						<img src="images/Idea.jpg" width="120" height="86" hspace="50"
							align="middle" alt="Idea Icon">
					</div>
				</td>
			</tr>
		</tbody>
	</table>

	<hr>

	<table>
		<tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>Servlet API for Remote Services</b>
				</p>
			</td>
			<td valign="top" width="85%">
				<p>There is a new API in the new plugin <b>org.eclipse.ecf.remoteservice.servlet</b>.  This API
				supports the creation of OSGi remote service providers that are implemented via a Servlet along
				with some implementation of the OSGi HttpService (e.g. Jetty, Tomcat, etc).  An example of
				using this new API for creating an OSGi Remote Service provider based upon a simple http/REST protocol
				is available in the following bundles: <br>
				
				<b><a href="http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/examples/bundles/com.mycorp.examples.timeservice.provider.rest.common">com.mycorp.examples.timeservice.provider.rest.common</a></b>
				<br>
				<b><a href="http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/examples/bundles/com.mycorp.examples.timeservice.provider.rest.host">com.mycorp.examples.timeservice.provider.rest.host</a></b>
				<br>
				<b><a href="http://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer">com.mycorp.examples.timeservice.provider.rest.consumer</a></b>
				<br>
				</td>
		</tr>
		<tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>OSGi Remote Services Robustness Improvements</b>
				</p>
			</td>
			<td valign="top" width="85%">
				<p>
					There were several significant robustness improvements to the OSGi Remote Services/Remote Service Admin
					implementation.  For example, see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=414448">bug 414448</a>.
			</td>
		</tr>
		<tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>Article with New Example OSGi Remote Services</b>
				</p>
			</td>
			<td valign="top" width="85%">

				<p>An <a
						href="http://www.eclipse.org/community/eclipse_newsletter/2013/july/article3.php">article</a> about ECF's implementation of the OSGi Remote Services (and Remote Service Admin)
				specification provides some new example remote services along with explanation of how they
				work with the OSGi standards.
				</p> <br>
			</td>
		</tr>
		<tr>
			<td valign="top" align="left" width="15%">
				<p align="left">
					<b>Support for Version 5 of OSGi Remote Services/Remote Service Admin Standards</b>
				</p>
			</td>
			<td valign="top" width="85%">
				<p> As part of the 3.7.0 release ECF has successfully tested both our Remote Services (chapter 100) and our Remote Service Admin (chapter 122)
				implementations against the OSGi R5 Compatibility Test (CT) suite.
                </p>
    <br>
			</td> 
  </tr> 
    <tr> 
    <td valign="top" align="left" width="15%"> 
        <p align="left"> 
	<b>Apache HttpComponents version 4.2 for ECF Filetransfer</b> 
        </p> 
    </td> 
    <td valign="top" width="85%"> 
    
    <p>ECF's file transfer API implementation is now provided by <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=414591">Apache HttpComponents version 4.2</a>.  With the prior
    Kepler/ECF 3.6.1 release, HttpComponents version 3.1 was used.
    </p>
	<br>
    </td> 
  </tr> 
    <tr> 
    <td valign="top" align="left" width="15%"> 
        <p align="left"> 
	<b>Standalone Zookeeper Discovery Server</b> 
        </p> 
    </td> 
    <td valign="top" width="85%"> 
    
    <p>A standalone discovery server using the Apache Zookeeper discovery protocol was created.  This server
    can be used for WAN discovery of remote services or as a standalone Zookeeper server run from the command line 
    as an Eclipse product.   The source code is available <a href="https://github.com/ECF/ZooServer">here</a>. See
    the README.md file for instructions on building and running this server.
	</p>
	<br>
	<br>
    </td> 
  </tr>  
</table> 
 
</body> 
</html> 
