jump to navigation

Restlet 2.0 M4 released August 6, 2009

Posted by Jerome Louvel in Restlet, Restlet Releases.

After Restlet 1.2 M2 and 2.0 M3 releases that introduced major API changes for resources and security, we wanted to focus this new milestone on stability and on the automated support of Restlet editions.

Here is a summary of the main changes :

  • The packaging has been reworked to provide separate distributions for each edition that we support: Java SE, Java EE (with Servlet support), Google Web Toolkit, Google App Engine and Android. In addition, the porting of the main source code base to each edition is now fully automated, ensuring a constant synchronization in term of features and bug fixes. All extensions and API features aren’t (or can’t be) supported in all editions, but the API is consistent. As a side effect, the “org.restlet.gwt” package has been moved to the regular “org.restlet” one.
  • The ConverterService has been improved to automatically serialize POJOs into XML, JSON and other serialization formats such as regular Java serialization or long term bean persistence. We leverage XStream for automatic XML/JSON marshalling and unmarshalling. Note that the JAX-RS extension now also relies on this improved conversion service!
  • Content negotiation was rewritten to support all possible dimensions such as media type, language, character set or encoding.
  • A new FTP client connector was added in the “org.restlet.ext.net” extension, based on the JDK’s URLConnection class. It is limited and only support GET methods.
  • The RDF extension was improved with a new RdfClientResource class facilitating the navigation in the Web of Data.
  • A new ROME extension was added to support several versions of RSS and Atom syndication feeds formats. This extension is complementary with the existing Atom extension which is fully based on Restlet API.
  • Character sets support was enhanced, fixing an issue with Macintosh and adding new constants in the CharacterSet class for all common ones defined by IANA. Also, the default language used for representation is now dynamically retrieved based on the JVM setting instead of English/US.
  • Added client and server RIAP connectors that use a protected singleton unique in the JVM.
  • The org.restlet.Uniform abstract class has been refactored into an interface with a single handle(Request, Response) method. Its logic has been moved to the org.restlet.Client class. This allows us to leverage it for asynchronous calls, as we already do in the GWT edition.
  • The org.restlet.routing package has been enhanced with new Validator and Extractor filters containing logic found in the new deprecated Route class, replaced with a more specific TemplateRoute class. Those changes should be transparent for most applications using the Router class to attach Restlets and resources using URI templates.


Direct contributors

  • Alexander Horn
  • Andrew Moore
  • Arjohn Kampman
  • Aron Roberts
  • Avi Flax
  • Bob Resendes
  • Bruce Cooper
  • Bruno Harbulot
  • David Fogel
  • Dustin N. Jenkins
  • Evgeny Shepelyuk
  • Florian Georg
  • Frank Hellwig
  • Gabriel Ciuloaica
  • Joe Nellis
  • John Logsdon
  • John Wismar
  • Jonathan Hall
  • Martin Krasser
  • Matt J. Watson
  • Maxence Bernard
  • Niall Gallagher
  • Nicolas Janicaud
  • Nirav Shah
  • Olivier Monaco
  • Remi Dewitte
  • Schley Andrew Kutz
  • Serge Ilyn
  • Simon Reinhardt
  • Stuart MacKay
  • Sylvain Pajaud
  • Thomas Cozien

Thanks to all others who helped us in various ways!

Additonal 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)



1. Jim Alateras - August 7, 2009

Gr8 work on rolling out these incremental enhancements.

2. manav - August 21, 2009

can’t find the GAE dedicated jar…org.restlet.gae.jar in M4.

3. Jerome Louvel - August 21, 2009

Hi Manav,

There is now a dedicated edition (or distribution if you prefer) for GAE. Here is the direct download link: http://www.restlet.org/downloads/2.0/restlet-gae-2.0m4.zip


manav CHAUHAN - August 21, 2009

Had to pass “-Dfile.encoding=UTF-8 ” as VM argument to get it running…this is on MAC.

Jerome Louvel - August 22, 2009

That’s a good workaround for Mac indeed. This issue was also quickly fixed in recent 2.0 snapshots.

4. manav CHAUHAN - August 25, 2009

Thanks for the reply and fix.

Also having trouble with content negotiation based on URI (debatable, but a common practice now).

both need to go to same resource , trying to accomplish this with jax-rs @PATH annotation.

My Regex @PATH(tweets.( (json) | (xml) ) )

My regex gets base64 encoded, and cannot find the resource. Would you consider supporting more regex escape characters in org.restlet.ext.jaxrs.internal.util.PathRegExp class

5. jon hanson - September 6, 2009


If a developer wants to use Restlet with both GWT and GAE then which edition should one use?


Jerome Louvel - September 16, 2009

Hi Jon,

He should use both the GWT and the GAE editions of Restlet 2.0 M4, in separate projects.

Best regards,

jon hanson - September 16, 2009

“in separate projects.”

Not sure I understand that. What I meant is if I want to develop a (single) web app project which uses both GWT and GAE, then which edition of Restlet should i use?


6. Jerome Louvel - September 29, 2009


I mean that you should download both editions separately. I should be possible to then use Restlet GWT JARs on the client-side of your project and Restlet GAE JARs on the server-side.

If you have troubles with this set-up, you can try to use two separate projects, one for client-side and another for server-side.


jon hanson - September 29, 2009

Ok, that’s what i figured.


7. Restlet 2.0 M5 now available « Noelios Technologies - November 17, 2009

[…] Restlet 2.0 roadmap! Our main focus was stability and refactoring after the major goals achieved in Restlet 2.0 M4, for example with the automated editions support and some deep API […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s