jump to navigation

Restlet Framework 2.1 M6 and 2.0.9 released August 20, 2011

Posted by Jerome Louvel in GWT, NIO, OData, Restlet Releases.
add a comment

We are still on track for the 2.1 RC1 release in September, but so many enhancements and bug fixes were added since 2.1 M5 that we thought it would be useful to many users to have this intermediary milestone.

Bug fixed

First, the 2.0.9 version fixes 10 issues on the stable branch including:

  • Inappropriate warning message about child contexts
  • IO flushing issue that could create troubles with writer based representations such as JsonRepresentation
  • Conversion of representations to instances of primitive type using the default converter
  • Handling of binary data in OData extension
  • Default converter took precedence over specialized converters when converting incoming representations
  • Lack of warning message when an unexpected error happen during the invocation of an asynchronous callback

Those fixes are of course also available in the new 2.1 release.

Major changes

In addition, version 2.1 Milestone 6 contains several major enhancements and new features summarized below.

  • Improved Restlet annotation value syntax to support alternate variants using ‘|’ and combination of several metadata for a single variant using ‘+’ separator. Also, all metadata are now supported, not just media types. In addition, support for URI query constraints was added to allow annotations such as @Get(“form:json?light”) or @Get(“?level=2”), working on both client and server side
  • Added org.restlet.ext.html extension supporting writing HTML forms in either URL encoded format or multipart form data, with the same FormDataSet class. Parsing of multipart form data isn’t supported yet.
  • Added CookieAuthenticator in the org.restlet.ext.crypto extension to provide customizable and secure authentication via cookies, in a way that is as compatible as possible with HTTP challenge based authentication
  • Added ConnegService providing a way to control the content negotiation behavior at the application level. It offers two modes: strict and flexible (default) but additional algorithms can be implemented.
  • Added org.restlet.ext.emf extension supporting the conversion between EMF generated beans and XML or XMI representations. It can also automatically write simple HTML representations for navigating your web API.
  • Added HTTPS server connector based on the internal non-blocking NIO connector. Co-developed with NetDev.
  • Many minor enhancement to the Restlet API for conveniency purpose such as a new Representation.append(Appendable) method.

API breaking change

When retrieving or updating the raw headers in the Request or Response attributes, the type should now be Series<Header> instead of Series<Parameter>


Recent contributors

  • Bryan Hunt
  • Cyril Lakech
  • David Bordoley
  • David Hamilton
  • Glenn Bruns
  • Jean-Pascal Boignard
  • Jeroen Goubert
  • John Logdson
  • Konstantin Pelykh
  • Martin Svensson
  • Nikhil Purushe
  • Ray Waldin
  • Remi Dewitte
  • Scott S. McCoy
  • Tim Peierls
  • Thomas Eskenazi

Thanks to all others who helped us in various ways for this milestone.

Additional resources

Changes log:

Download links:

Maven repositories:


Restlet Framework 2.1 M3 and 2.0.6 released March 31, 2011

Posted by Jerome Louvel in NIO, Restlet, Restlet Releases, SDC, SIP.
1 comment so far

Past months have been very intense for Noelios in a positive way and we are pleased to release those two new versions today. Our long running effort to develop our own non-blocking NIO connector into Restlet core, comparable in performance to Jetty/Netty/Grizzly but simpler and directly aligned to HTTP/SIP transport semantics is starting to give great results.

First, the 2.0.6 version fixes a couple of issues on the stable branch. In addition, version 2.1 Milestone 3 contains several major enhancements and new features summarized below.

Main changes

  • Support for GWT 2.2 has been added, but due to breaking changes inside GWT core API, we couldn’t maintain compatibility with previous versions of GWT. If you can’t upgrade your GWT version, you can still rely on the 2.0 branch of Restlet.
  • Stabilized the built-in SIP and HTTP client and server connectors based on our non-blocking NIO core layer, refactoring the previous design and fixing many bugs. This should solve most issues related to blocked connections and infinite loops that were encountered. See this blog post for an official announce.
  • Added a new SDC extension providing a client connector for the Google Secure Data Connector protocol compatible with the official SDC agent. This allows usage of this feature during development phases as well as for deployment to private clouds and other public clouds such as Amazon EC2 and Microsoft Azure. See this blog post for an official announce.
  • Improved ClientResource class by adding several properties
    • requestEntityBuffering, responseEntityBuffering properties to make transient entities reusable (retry attempts, chunk encoding issues with GAE, response entity reuse)
    • maxRedirects property to prevent infinite redirects, in addition to the existing infinite loop detection.
  • Added an easy to listener mechanism that facilitates the support of asynchronous representation consumption. We tested this feature successfully by consuming live feeds from CouchDB.
  • Updated several dependencies including Jetty to version 7.3.0 and Jackson to version 1.7.1

Recent contributors

  • Andreas Taube
  • Carolyn Duby
  • Charlie Mason
  • Henry Story
  • Guido Schmidt
  • John Logsdon
  • Kristoffer Gronowski
  • Leandro Oliveira
  • Olivier Miel
  • Phil Dunks
  • Sebastien Gaide

Thanks to all others who helped us in various ways for this third milestone.

Additional resources

Changes log:

Download links:


Maven repositories:

Restlet Framework 2.1 M1 released November 7, 2010

Posted by Jerome Louvel in NIO, Restlet Releases.

This month we are celebrating 5 years of Restlet open source development! Version 0.9 beta was the first public release made on November 2005.

Five years later, we still feel on the right path : leveraging REST to fully embrace the Web as the new development platform. We are still in the middle of the journey, with an exciting road ahead including the cloud computing, the rise of the mobile web and the upcoming HTML 5 standard.

Updated version tags

Today, we released the first milestone of version 2.1, our new “testing” version, as well as version 2.0.3 which is becoming our new “stable” version recommended for production. As a consequence, the 1.1 branch is still available for download here but has  been archived.

We now encourage all developers to migrate to the latest greatest 2.0 branch for new deployments (see these instructions first). For new development projects, we encourage the usage of version 2.1 M1 which benefits from the stability of branch 2.0 for most parts, and adds new exciting features.

Main changes

  • All features deprecated in version 2.0 were completely removed, reducing the framework footprint
  • Brand new internal HTTP connector (client and server) based on non-blocking NIO with initial performance close to extension connectors based on Apache HTTP Client 4.0 and Eclipse Jetty 7.1. This connector has already been significantly tested under load, with large entities and is fully configurable
  • Removed the Grizzly and Netty extensions considered as experimental in version 2.0 to focus on our lighter NIO connector
  • Representation class can now notify a listener of asynchronous content availability (ready to be read) or delivery (ready to be written). This has been tested to asynchronously receive CouchDB notifications
  • Added support for GWT 2.1. Support for GWT 2.0 has been removed due to changes in GWT internal APIs, but is still supported in the 2.0 branch


Here is a summary of the planned features and tasks for version 2.1.0 which is scheduled for 2011 Q2:

  • Finish the writing of the Restlet in Action book published by Manning
  • Add a SIP connector extension based on the new NIO internal connector, providing a modern VoIP foundation for convergent web applications
  • Enhance the ConverterService to support direct conversion between representations, from beans to representations and between beans
  • Add a ConnegService to configure HTTP content negotiation and allow its customization. One use case is the negotiation between web representations of a resource based on agent type such as desktop browser and mobile browser
  • Better integration with Eclipse ecosystem, with support for model-driven REST via extensions for EMF, ATL and Acceleo
  • Migration from Tigris to JIRA Studio for SVN hosting, issue tracker, code search, code review, continuous build, etc.

For more information on this roadmap, you can check this wiki page for content details and this main site page for schedule details.

Recent contributors

  • Alex Milowski
  • Alexander Kampmann
  • Alois Cochard
  • Avi Flax
  • Brian Cabana
  • Bruno Harbulot
  • Christophe Vanfleteren
  • Daniel Zhelyazkov
  • Darin Jackson
  • David Fogel
  • Doug Smalley
  • Dustin Jenkins
  • Evan Wang
  • Fabian Mandelbaum
  • Giovani Pieri
  • Jean-Luc Geering
  • John Logdson
  • Laurent Rustuel
  • M. Maksin
  • Marc Portier
  • Michael Terrington
  • Nicolas Rinaudo
  • Olivier Miel
  • Olivier Monaco
  • Rob Kooper
  • Tal Liron
  • Tim Peierls
  • William Pietri

Thanks to all others who helped us in various ways for this first milestone, especially NetDev for funding a part of the new NIO connector and helping with testing and challenging use cases !

Additional resources

Changes log:

Download links:

Maven repositories:
http://maven.restlet.org is updated on the 1st and 15th of each month
http://maven.noelios.com is updated daily with new artifacts (access reserved to subscribers)

Restlet 1.1 M3 released April 1, 2008

Posted by Jerome Louvel in JSR 311, NIO, Oracle, Restlet Releases.

It’s just over a month since 1.1 M2 and we have again made tremendous
progress towards our final release.

Main changes:

  • Licensing scheme changed to CDDL 1.0 or LGPL 2.1 or LGPL 3.0
  • New JAX-RS extension implementing the draft JSR-311
  • New OAuth extension as a pluggable authentication scheme
  • New XDB extension providing integration with Oracle embedded JVM
  • SSL support much improved with access to new attributes
  • XmlRepresentation refactored to support SAX and DOM sources
  • Major TransformRepresentation refactoring (config, reuse, SAX)
  • Reference class now enforces the usage of valid URI characters
  • Grizzly HTTP server now support chunked encoding of responses


Updated dependencies:

  • Spring to version 2.5.2
  • db4o to version 7.2 (adds transparent update)
  • JavaMail to version 1.4.1
  • JAF to version 1.1.1

Direct contributors:

  • Adam Rosien (OAuth)
  • Avi Flax
  • Bruno Harbulot
  • Chuck Mortimore
  • Dan Diephouse
  • Jeroen Goubert
  • Joe Nellis
  • Kevin Conaway
  • Marc Portier
  • Marcelo Ochoa (XDB)
  • Paul J. Lucas
  • Peter Neubauer
  • Rhett Sutphin
  • Rob Heittman
  • Stephan Koops (JAX-RS)
  • Steve Loughran
  • Yuri de Wit

Changes log:

Download links:

Maven repositories:
http://maven.restlet.org is updated on the 1st and 15th of each month
http://maven.noelios.com is updated daily with new artifacts

Restlet 1.1 M2 released February 29, 2008

Posted by Jerome Louvel in NIO, Restlet Releases.

After two months of intense work we are finally releasing our next milestone. In addition to the numerous bug fixes and API enhancements, we would like to underline the following features:

  • Addition of a HTTP server based on the Grizzly NIO framework. This connector is the first to provide end-to-end NIO support, for example with direct transfer from file to socket for static files.
  • Support for HTTP DIGEST authentication (client and server side) and refactoring of engine to support pluggable authentication.
  • Addition of new Spring NRE extension providing even more integration possibilities with the Servlets and Restlets at the same time. The existing Spring API extension has also been extended and improved based on users feed-back and contributions.
  • Addition of JiBX extension, providing an efficient and flexible alternative to JAXB for XML to Object serialization.
  • Configuration of a Component based on a XML document is now directly supported.
  • Update of the Atom extension to conform to the latest APP specifications. The extension currently allows to retrieve an APP Service Document and Atom Feeds.
  • Sorting of directory indexes is now based on the Alpha-numerical algorithm based on David Koelle’s original idea.
  • Refactoring and enhancement of the WADL extension to support more use cases and nested resources are now supported.

We have also updated several dependencies:

  • Spring to version 2.5
  • db4o to version 7.0
  • FreeMarker to version 2.3.12
  • Grizzly to version 1.7.2

Thanks also to the direct contributors:

  • Alex Milowski
  • Avi Flax
  • Davide Angelocola
  • Derek Chiles
  • Evgeny K. Shepelyuk
  • Florian Schwarz
  • Garriot Zhang
  • Iestyn Evans
  • Jason Terhune
  • Kevin Conaway
  • Marc Portier
  • Michael Makunas
  • Paul J. Lucas
  • Ray Waldin
  • Rhett Sutphin
  • Rob Heittman
  • Sean Landis
  • Simon Olofsson
  • Stephan Koops
  • Tim Peierls
  • Todd Nguyen
  • William Pietri

Changes log:

Download links:

Maven repositories:
http://maven.restlet.org (open) will be updated on 02/01
http://maven.noelios.com (restricted) has the new artifacts