jump to navigation

Restlet Framework 2.0.0 released ! July 19, 2010

Posted by Jerome Louvel in Restlet Releases.
trackback

Year after year, the Restlet open source project has been growing and maturing, both technically and through its lively community of users and contributors.

Today, we are proud to announce the general availability of version 2.0 of the Restlet Framework, representing about 2 years of work since version 1.1! This is truly a major release, equivalent to the initial effort that took us from the project launch to the 1.0.0 release.

What’s new ?

Restlet editions

After targeting standalone Java SE virtual machines and Java EE web containers in version 1.0, we introduced a manual port to GWT in version 1.1. During the development of version 2.0, we jumped on two new bandwagons launched by Google:

  • Android for web connected smartphones and tablets
  • GAE for cloud computing hosted applications

As each port required a lot of manual maintenance, we developed a special Restlet forge including a fully automated port mechanism that allows us to work on a single code base while taking into account the specificities of each target environment.

As a result, the framework is now available in five consistent editions covering the most popular Java-based platforms.

Package restructuring

While maintaining an easy migration path from version 1.1, we took the opportunity of this major release to reorganize Restlet extensions, moving “com.noelios.restlet.ext” packages into “org.restlet.ext” ones, merging the “com.noelios.restlet.jar” into a single core “org.restlet.jar” including both the Restlet API and the core engine.

Enhanced Restlet API

We completed our support for HTTP headers, mapping almost all standard ones to the Restlet API as illustrated in this mapping table and also introduced a higher level way to develop Restlet resources that works equally well on both client and server side.

Those new ServerResource and ClientResource classes support the traditional class-oriented approach previously used in Restlet and added on top of it using custom Java annotations, providing the benefits of the JAX-RS API (that we keep supporting as a Restlet extension) but with much less annotations (just 5 currently) and a rich and extensible Java API as a solid foundation.

As a result, you can use representation beans that can get automatically serialized to and from XML, JSON, GWT object, Java object formats thanks to extensions such as Jackson, XStream, JiBX or JAXB.

We also added a brand new security API that supports HTTP centric authentication and authorization in simple yet extensible way, for example with extensions for the JAAS, jSSLutils and javax.crypto APIs.

OData extension

A new extension for OData technology was added, thanks to a collaboration with Microsoft Interop teams. It provides a high-level client API based on the ClientResource class that lets you access remote OData services, typically hosted in an ASP.NET servers or on the Windows Azure cloud computing platform.

The extension contains both a code generator for the representation beans and a runtime layer. Advanced features such as projections, blobs, server-side paging, row counts, customizable feeds or version headers are supported.

RDF extension

We also want to make Restlet a great framework for building applications for the Semantic Web. The relationship between REST and RDF is perfect : the core concept of resources and their representations with REST and the expression of meaningful links between them with RDF.

This new extension contains a full RDF API, leveraging the Restlet API, and capable of processing RDF documents either in a DOM-like way or in a SAX-like way. It is also capable of writing large RDF documents is a SAX-like way. We currently support two serialization formats: RDF/XML, RDF/n3, Turtle and N-Triples. Finally, a RdfClientResource class facilitates the hypermedia navigation in the Web of Data.

Other changes

It is impossible to be exhaustive in such a post, but we have collected all major changes in our new user guide. For those interested in a more exhaustive list, there is always the changes log.

“Restlet in Action” book

Last year we have started writing a book on the Restlet Framework for Manning. It will contain 12 chapters covering all major aspects of Restlet applications development and RESTful web APIs design based on our home-grown ROA/D methodology.

Today, we released chapter 6 on documenting and versionning web APIs, as well as chapter 7 on Restlet security contributed by Bruno Harbulot. To celebrate version 2.0.0 release, Manning is offering to Restlet users a time limited 35% discount with the “rest35au” code. Happy reading!

What’s next

Today is a time to step back and thank our community of users and contributors, all readers providing feed-back on the book in the authors’ forum or during the external review and of course to our growing list of customers at Noelios Technologies, the commercial entity backing the open source project, making this open source project economically sustainable.

After nearly 5 years after the project launch, the road ahead has never been as exciting. REST is finally recognized as the best way to design web applications and distributed architectures in general.

We have already prepared a roadmap for version 2.1 which will add incremental features such as better hypermedia support, enhanced converter service, a pure JavaScript edition, production-ready internal HTTP connectors based on non blocking NIO, support for VoIP via SIP and an even better user documentation.

Your feedback, funding and continuous support will make a difference.

Best regards,

Jérôme Louvel – Founder and Technical lead
ThierryBoileau – Core developer and Community manager

Contributors since 2.0 RC4

  • Aleskandr Shekhter
  • Alex Milowski
  • Alexander J. Perez Tchernov
  • Alistair Dutton
  • Bruno Harbulot
  • Christopher Gokey
  • David Fogel
  • Dustin Jenkins
  • Eric Hough
  • Felix Leipold
  • Giovani Pieri
  • Greg Hengeli
  • Guillaume Maillard
  • Guillermo Vega
  • Iestyn Evans
  • Jeroen Goubert
  • Kristoffer Gronowski
  • Louis Huh
  • Martin Svensson
  • Rickard Oberg
  • Sriram Chavali
  • Tim Kuntz
  • Tim Peierls
  • TK Kocheran
  • Valdis Rigdon
  • Vassilis Touloumtzoglou

Thanks to all others who helped us in various ways during the 2.0 development!


The development of this version was funded in part by the Hauts-de-Seine department based on Noelios Technologies participation to a collaborative HD3D2 R&D project. We are grateful for their support which will also help us develop the next 2.1 version.

Additional resources

Changes log:
http://www.restlet.org/documentation/2.0/jse/changes

Download links:
http://www.restlet.org/downloads/testing

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)

Updates

Comments»

1. Matt Kennedy - July 20, 2010

Congratulations and thank you for the best web development framework around.

2. Don Santillan - July 21, 2010

Sweet!

Is there a maven repository available for this release?

Jerome Louvel - July 21, 2010

Thanks for the feed-back. Artifacts are not yet available for the public maven.restlet.org repository, only for the private maven.noelios.com available to paying subscribers. See details here: http://www.restlet.org/downloads/maven

3. Avi Flax - July 21, 2010

Congratulations! Looking forward to deploying something to production on 2.0! (Shortly after 2.0.1 is released!)

4. Jerome Louvel - July 22, 2010

Thanks Matt and Avi! We appreciate your continuous support. Avi, I’m also looking forward to stabilizing the 2.0 branch like we did for 1.1 and also start working on incremental enhancements for 2.1.

5. Matthias Treydte - July 22, 2010

I just wanted to say thanks, it’s always been enjoyable to work with restlet. I’ll have a look what’s hot and fresh in 2.0 right now. 🙂

6. Jim Haddon - July 23, 2010

I have noticed there are some benchmark comparisons for Restlet 1.0 and 1.1. Will there be any for 2.0 so that a educated decision can be made on which components are best suited for a particular environment, and which connectors perform best.

7. Jerome Louvel - July 24, 2010

Hi Jim,

We won’t have time for 2.0 but this is a goal for 2.1 as we will also work hard on improving the scalability and throughput of our internal HTTP.

For now there are some recommendations on choosing the best connector on this page:
http://wiki.restlet.org/docs_2.0/13-restlet/27-restlet/325-restlet/37-restlet.html

Best regards,
Jerome

8. Guy - July 27, 2010

Will you add entity code generation for the Android oData extension?

Jerome Louvel - July 28, 2010

Hi Guy,

The OData Generator class isn’t included in the OData extension JAR for the Android edition for size purpose as it isn’t needed at runtime. However, you should be able to use this class from another edition (Java SE or Java EE) and run the result on top of the OData extension for Android.

Cheers,
Jerome

9. This Week in #REST – Volume 24 (Aug 23 2010 – Sep 5 2010) « This week in REST - September 6, 2010

[…] Restlet Framework 2.0.0 – The popular Restlet framework has reached version 2.0.0. […]

10. Reddy - November 1, 2010

Hi Jerome,

Do have any plan to move 2.0 code to stable near soon?

Thanks,
Reddy

Jerome Louvel - November 1, 2010

Hi Reddy,

Yes, this is due this week with the upcoming release of version 2.0.2.

Best regards,
Jerome

11. Don - November 28, 2011

I’m lost, can’t find the forum for restlet. I’ve spent the whole day looking for a solution but still unsuccessful. Can’t get a response back to the client. The method handler (server resource) was able to get the request and process properly (set Representation as Entity in Response) but still, no response is received by the client. Please help, very desperate now.

Don - November 28, 2011

I’m using this by the way:

org.restlet.jee
org.restlet
2.0.7

org.restlet.jee
org.restlet.ext.xml
2.0.7

12. Jerome Louvel - November 29, 2011

Hi Don,

Here is the page with details to get help:
http://www.restlet.org/community/lists

Best regards,
Jerome


Leave a comment