Restlet Framework 2.1 RC5 and 2.0.14 released May 23, 2012
Posted by Jerome Louvel in Build, Restlet Releases.add a comment
Since the last blog post related to releases in February, we have pushed a couple of new versions, including 2.1 RC5 and 2.0.14 today. It’s time to recap a little about the changes they bring and other important news…
Enhancements
Versions 2.1 RC4 and RC5 contain minor enhancements including:
- Support for URI templates on the client-side
- Improved internal HTTP connector (chunked encoding and SSL)
- Added syntactic sugar on Resource, ClientResource and ServerResource
- getAttribute(name), getQueryValue(name), getMatrixValue(name) and equivalent setters
- accept(…) for easier content negotiation
- setProxyChallengeRequest(..), setProxyChallengeResponse(…)
- Added CertificateAuthenticator to SSL extension
Bug fixed
In addition, version 2.0.14 fixes 16 issues on the stable branch including:
- Security issue in the XML extension related to XML entities
- OutputRepresentation issue with binary data causing early end of file
- User agent name detection for Firefox on Windows
- Content negotiation, multiple cookies and interface introspection issues with JAX-RS extension
Also, versions 2.1 RC4 and RC5 contain 22 bug fixes.
“Restlet in Action” in pre-production
We have continued working hard on our book, benefiting from a great technical proofing work done by Tim Peierls and on the constant feed-back of readers in the book forum. The manuscript is now complete, with all chapters and appendices available in early access. We have also refined the first six chapters and led them into the pre-production stage.
We recently made significant enhancements to the security chapter (n°5) to add more complete and reusable sample code and to better connect it with surrounding chapters, listening to the feed-back of several readers. We still have a busy work schedule for the summer, but should be able to put our hands on the printed version around September or soon after!
Development of version 2.2
After migrating our code base to GitHub, we have done the same for our issues tracker, adding cross-references for existing issues. If you need to report bugs or enhancements requests, please only use GitHub from now on. We have also started using their wiki area as a replacement for our developers wiki currently using Daisy and will complete the migration of the next few months. Next steps are the migration of the mailing list to Google Groups and StackOverflow.
We have also complete the upgrade to Java 6 which will be the minimum requirement as Java 5 has been phased out, which allowed us to remove some dependencies and libraries. We have also clarified the build process, now relying solely on Ant to generate the editions and build them. Building from Eclipse is also simplified, not requiring PDE/OSGi anymore.
JavaScript editions
Finally, we have bootstrapped the development of two new JavaScript-based editions of the Restlet Framework, one for web browsers based solely on AJAX, and the other targeting Node.js. Of course, we are following the same semantics as the Restlet API for Java-based editions, but relying on code style and patterns specific to JavaScript development.
Currently, only the client-side of the API is available, including support for most common HTTP headers, and we will progressively complete the features scope, including the server-side aspects on Node.js. We are looking for alpha testers and contributors at this stage to help us bring RESTful web APIs and JavaScript together in a high-level and productive way.
Recent contributors
- Alessandro Pacifici
- Anca Luca
- Andrei Pozolotin
- Andy Dennie
- Arjohn Kampman
- Bjorn Roche
- Bruno Harbulot
- Fabio Mancinelli
- Gabriel Pulido
- Grzegorz Godlewski
- Jean-Baptiste Dusseaut
- John Logsdon
- Laszlo Hordos
- Marc Knaup
- Martin Svensson
- Michael Henderson
- Nicholas Waltham
- Shaun Elliott
- Thomas Mortagne
- Tim Peierls
- Vincent Massol
Thanks to all others who helped us in various ways.
Additional resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
Download links:
http://www.restlet.org/downloads/
Restlet Framework 2.1 RC3 and 2.0.11 February 25, 2012
Posted by Jerome Louvel in Restlet Releases, Uncategorized.2 comments
Since the last release related post in October, we have released 2.1 RC2, 2.0.11 and more recently 2.1 RC3. It’s time to recap a little about the changes they bring and other important news…
Migration to GitHub
After thinking about it for a while, active voices in Restlet community such as Andrei Pozolotin, Bryan Hunt and Xavier Bourguignon, convinced us to move our code repository to the highly popular GitHub platform.
This wasn’t an easy change as we had to import our large SVN code base, including doing proper branch and tag mapping from one system to another, and updating our build process.
Next steps will be the migration of tickets to GitHub and of the mailing list to Google Groups and StackOverflow.
Like some explorers have already done, feel free to use the Pull Request feature and enter new tickets in GitHub, as well as to ask Restlet-tagged questions in StackOverflow moving forward.
By the time we release version 2.1.0, we will hopefully be running our open source project on a state-of-the-art infrastructure!
Apache License 2.0
In addition to the other licensing options you can already choose from, including LGPL 2.1/3.0, CDDL 1.0 and EPL 1.0, we have recently added a new popular option: the Apache License 2.0.
See Restlet legal page and the license.txt file in latest Restlet distributions. One nice consequence is that this will make the usage of Restlet in Apache Foundation projects easier.
This new option also confirms a deep commitment to our open source roots at a moment where we rename our company to Restlet (SAS) and are about to launch new products on top of the Restlet Framework as explained in this other blog post: The road ahead, from Noelios to Restlet.
Bug fixed
In addition, version 2.0.11 fixes 5 issues on the stable branch including:
- MediaType.includes side effect
- OData client performance
- GWT support of HTTP BASIC authentication
- Conversion issues with annotated interfaces
Also, version 2.1 RC 3 contains 7 bug fixes including:
- JAX-RS introspection of parent classes
- Made usage of raw HTTP credentials easier
Minor changes
In addition, version 2.1 RC 3 contain minor enhancements summarized below:
- Added Restlet API syntaxic sugar
- Added ByteArrayRepresentation
- Updated Jettison to version 1.3
- Updated XStream to version 1.4.1
Recent contributors
- Alex Milowski
- Arjohn Kampman
- Bill Claypool
- Bryan Hunt
- Dejan Lozanovic
- Jean-Baptiste Dusseaut
- Jerome Idylle
- John Logdson
- Klaus-Peter Schlotter
- Koen Maes
- Kristoffer Gronowski
- Nikhil Purushe
- Shaun Elliott
- Try Lam
Thanks to all others who helped us in various ways.
Additional resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
Download links:
http://www.restlet.org/downloads/
The road ahead, from Noelios to Restlet February 25, 2012
Posted by Jerome Louvel in Ecosystem, Restlet General, Uncategorized.3 comments
An exciting landscape
The past few months have been intense for our company as we worked behind the scenes to prepare the next stages of our development. Thanks to the continuous adoption of REST principles, the web API market is quickly maturing and offering us new opportunities.
A few days ago, the ProgrammableWeb directory announced that the bar of 5 000 registered APIs had been reached, with an astounding growth rate.
Our current goal is to expand our activities on top of the open source Restlet Framework in order to better address the needs of this API market.
Launching APISpark.com soon!
More concretely, we have been building APISpark since 2010 as an innovative PaaS product offering an all-in-one platform for web APIs, from creation to hosting, using a simple web browser.
Of course, APISpark extensively leverages the Restlet Framework but aims at radically simplifying the web API experience for both developers, managers, owners and users.
We are launching the private beta in the coming weeks and are looking for a additional testers and pilot projects. To join us in this new and exciting adventure, just sign up on the http://apispark.com web site!
Restlet is our new company name
As we wanted to focus all the company on our open source roots, by both leveraging and strengthening the “Restlet” brand, we have changed our company name from Noelios Technologies (SARL) to just Restlet (SAS).
This change has no effect on the open source project which will continue to operate as before from the http://www.restlet.org web site. The company web site will be available in parallel at http://www.restlet.com.
As big changes don’t come alone, we have updated our visual identity and relocated to new headquarters at ESSEC Ventures, inside the beautiful CNIT building in La Défense, near Paris.
Finally, Alexis Menard, an ESSEC student in Entrepreneurship has joined our team to help us on business development aspects for a 6 months internship. Welcome Alexis!
The road ahead
Beside launching APISpark, we will keep enhancing the Restlet Framework and even expanding it into a comprehensive Restlet Platform over the coming years, including new blocks such as :
- Restlet Studio, an Eclipse-based IDE for either model-driven or Java-driven Restlet applications development
- Restlet Forge, an open source build forge letting developers reuse the best of our internal build tools (multi-edition, multi-distribution, etc.)
- Restlet Apps, an open source set of highly reusable and extensible Restlet applications for common needs (RESTful search engine, etc.)
- Restlet Cloud, an online hosting service to easily deploy your Restlet applications, from Restlet Forge, from Restlet Studio or from APISpark

For additional details, you can read chapter 11 of the “Restlet in Action” book, which is finally entering into the pre-production phase.
Seven years after Restlet launch as an open source framework, we are still excited about the potential of REST and committed to our original mission of helping you realize your web ideas… thanks to RESTful web APIs!
Restlet improves OSGi support: new edition and update site November 9, 2011
Posted by Jerome Louvel in Eclipse, Equinox, OSGi, Restlet, Restlet General.6 comments
While OSGi has been for a long time an important deployment environment for Restlet developers, including an innovative project lead by NASA JPL, we have seen a surge of interest in the recent years.
The rise of REST, the addition of an Eclipse Public License option to Restlet and an increased effort from Restlet community is starting to bring new fruits!
Edition for OSGi Environments
Since version 1.1, Restlet has always tried to be friendly to OSGi developers by ensuring that each Restlet module distributed as a JAR file was also a valid OSGi bundle, including correct manifest information.
We also ensured that dependent libraries were distributed as bundles as part of the various Restlet editions and distributions (Zip and Windows installer).
In practice, OSGi development isn’t supported on platforms such as Android, GAE and GWT, leaving the developer free to choose from either the Java SE or Java EE editions of Restlet, as both contain different extensions usable in OSGi such as the Servlet and Jetty extensions.
Progressively, we realized that a new edition of Restlet dedicated to OSGi environments such as Equinox and Felix was necessary to clarify the situation and make space for more OSGi specific features.
Using our automated Restlet Forge, we were able to deliver this new edition, including dedicated Javadocs and distributions as illustrated above.
Eclipse Update Site
In addition, we worked hard on providing a new distribution channel specific to this OSGi edition : an Eclipse Update Site supporting easy installation and automated update right from Eclipse.
Note that this is only recommended if you intended to develop OSGi applications leveraging Restlet, not applications for other target environments such as Java EE or GAE. In the later cases, you should either manually copy the JAR files in your Eclipse project or rely on our Maven repository using a tool such as m2eclipse.
In order to use the Eclipse update site, you should simply use this URL: http://p2.restlet.org/2.1/

More detailed instructions about using this update site are available on this page.
Restlet integration with ECF
In addition, thanks to the work of Scott Lewis, the Eclipse Communications Framework lead, an integration of Restlet with ECF is now available.
This integration supports the OSGi Remote Services specification by adding REST/HTTP bindings based on Restlet and leveraging the Restlet extension for OSGi introduced below.
For additional details, you can read his blog posts #1 and #2. Scott was also very helpful by providing regular feed-back on all others aspect of this blog post.
Upcoming Restlet extension
Finally, based on work initiated via a Google Summer of Code project in 2010, a Restlet extension for OSGi is entering in the Restlet Incubator with the goal to become part of the 2.2 version of the framework.
The extension facilitates the development of very dynamic Restlet applications, supporting for example the live addition of resources and virtual hosts.
This org.restlet.ext.osgi extension is lead by Bryan Hunt and has received significant contributions from Wolfgang Werner.
Conclusion
Step after step, Restlet support for OSGi and the Eclipse ecosystem is growing and we will continue to work in this direction, with plans to add visual tooling for Restlet in Eclipse and to provide more integration with OSGi standard services such as the log service. As always, stay tuned!
Restlet Framework 2.1 RC1 and 2.0.10 released October 7, 2011
Posted by Jerome Louvel in GAE, RDF, Restlet Releases, Security.add a comment
Here is the first Release Candidate of 2.1 which freezes the features scope and the public Restlet API. It also marks the beginning of a stabilization and optimization phase.
In order to reach 2.1.0 early next year, we want to fix as many issues reported in our tracked as possible and welcome any help on this front, especially reproducible test cases and patches.
We will also complete the Restlet in Action book, which has already 10 chapters out of 11 written and most appendices ready as well. Manning should be sending a MEAP update emails very soon now, taking into account great feed-back from readers and technical reviewers.
In the coming weeks, we will also start working on version 2.2, but we will come back on this exciting topic in another blog post !
Bug fixed
First, the 2.0.10 version fixes 11 issues on the stable branch including:
- HTTP DIGEST signature issues when targeting several URIs
- Web form empty issue on the GAE edition
- RDF writing issue with XML and n3 formats
Major changes
In addition, version 2.1 RC 1 contains several major enhancements and new features summarized below.
- Added ChallengeScheme.HTTP_AWS_QUERY constant to Crypto extension with client-side support for Amazon Web Services special authentication scheme (using URI query parameters)
- Better handling of special URI characters when encoding and decoding to workaround JDK’s URLEncoder/Decoder limitations
- Added syntactic sugar to the RDF extension
- Added ClientResource#addQueryParameter and addSegment methods
- Added ClientInfo#certificates and cipherSuite properties
- Added Authenticator#multiAuthenticating to better control optional authenticators and prevent several authentications if not necessary.
- Updated all Apache libraries to recent versions
- Updated Jackson to version 1.9.0
- Updated FreeMarker to version 2.3.18 (security fix!)
Recent contributors
- Alex Milowski
- Arjohn Kampman
- Avi FlaxBjorn Roche
- Bryan Hunt
- Cyril Lakech
- George Calm
- Henry Story
- Matt Stromske
- Raif S. Naffah
- Sebastien Schneider
- Steve Ferris
- Warren Janssens
Thanks to all others who helped us in various ways for this milestone.
Additional resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
Download links:
http://www.restlet.org/downloads/
Maven repositories:
http://maven.restlet.org
Can the rise of SPDY threaten HTTP? October 6, 2011
Posted by Jerome Louvel in General, REST, Restlet, Restlet General.6 comments
Introduction
The announce of Amazon’s Kindle Fire tablet last week was not yet another tablet launch in this already crowded market. This tablet came with a new way of browsing the Web using limited mobile devices, leveraging the power of the cloud in term of network connectivity, processing power and storage capabilities.
The most exciting part of Kindle Fire isn’t its hardware but its Silk browser and the cloud browsing infrastructure it leverages to achieve what they call split browsing.
This radical change in the way we might browse the mobile Web tomorrow, is the result of combining the traditional caching Web proxies used in large organizations to save their bandwidth, with the capabilities of Amazon cloud infrastructure.
The goal is to provide a faster browsing experience by adjusting web content (such as scaling down images) to the capabilities of the devices and offering better network latency thanks Amazon data centers connectivity and caching capabilities (think about using AWS S3 and CloudFront).
The final radical change that they made and which triggered this blog post, is the usage by the Silk browser of the SPDY protocol created by Google as a potential replacement for HTTP, already supported in the Chrome browser.
Can this become the beginning of the end of HTTP ?
HTTP history so far…
As you know, HyperText Transfer Protocol was early on a key stone in the Web building. It started as notes written by Tim Berners Lee in 1991. After an IETF standardization effort, the first standard HTTP/1.0 version (RFC 1945) was published by Tim Berners Lee, Roy T. Fielding and Henrik Frystyk in 1996.
With the exponential growth of the Web, it became quickly urgent to improve this protocol and address scalability, performance and interoperability issues observed in the field.
This led to the definition of HTTP/1.1 (RFC 2616), and the formalization of REST, the architecture style of the Web, with major contributions made by Roy T. Fielding.

The version 1.1 of HTTP is now used by the vast majority of web sites, web APIs and web clients today, but there are still questions regarding the interpretation of its now aging and monolithic specification.
In 2007, an IETF working group was launch to revise HTTP/1.1 and address those issues, but without actually changing the protocol.
Refactoring with HTTP/1.1 bis
This HTTP/1.1 bis initiative led by Mark Nottingham and involving Julian Resche, Roy Fielding, Yves Lafon and a few others is now well advanced and we can hope this work to be complete soon, maybe next year. This rewrite of RFC 2616 splits the specification in 7 parts as illustrated below.

Parts of the HTTP 1.1 bis specifications
At the bottom, we find the Messaging part which deals with the HTTP connections management, raw message syntax and HTTP(S) URI schemes.
The layers above describe the semantics of HTTP and the major features offered such as caching, authentication, conditional requests and ranged requests. Those layers are exactly what the Restlet API exposes using Java as detailed in this mapping table.
The timing is perfect because pressure to bypass the limitations, real or perceived, of HTTP/1.1 is increasing.
The rise of alternatives
To overcome limitations of HTTP, especially for near real-time client updates, techniques such as Comet have emerged, pushing HTTP into its limits.
WebSocket
To overcome those limits, the HTML 5 WG has initiated a new WebSocket protocol that allows bidirectional exchanges between a browser and a server, only using HTTP for the initial handshake.

This protocol has been taken over at IETF in a bidirectional or server-initiated HTTP working group but it is unlikely at this point that this protocol will attempt to respect REST constraints (see this blog post).
Server-Sent Events
This is really the signal that those shortcomings of HTTP need to be addressed in a better way. One simple yet promising alternative is the W3C”s led Server-Sent Event specifications which cleanly leverage HTTP and JavaScript by proposing a special event-oriented media type.
The problem with all those techniques and new protocols is that they require your browser to open and maintain several HTTP connections to the same remote server, increasing the scalability issues.
Even if usage of non-blocking IO can help deal with those issues (as supported by the Restlet Framework), this makes things more complex than they should be, at least from a network TCP/IP point of view.
SPDY
This is were the SPDY protocol offers an innovative solution by multiplexing several HTTP streams over a single connections. Those streams can go in both directions and be initiated by either the client or the server side.
In addition, SPDY proposes an alternative messaging layer to HTTP/1.1 but intents to stay compatible with all other HTTP layers above as described by HTTP/1.1 bis!

As illustrated in the previous figure, it is even possible to emulate the WebSocket’s JavaScript API on top of SPDY as available using a special option in the Chrome browser.
Conclusion
Better than a threat, SPDY design qualities and its growing support and usage by key players such as Google and Amazon is probably more a chance HTTP to see a version 2.0 defined and getting enough interest to succeed.
This new version could replace the existing messaging part of HTTP/1.1 by a fully multiplexed and compact alternative based on SPDY (see Wikipedia page) and other alternatives such as Roy T. Fielding’s own Waka or HTTP-MPLEX.

If you think this is just a wishful dream and that things so fundamental to the Web can’t change … then read this blog post from Mark Nottingham about SPDY (ex-FLIP) written back in 2009 and talking about a potential HTTP/2.0.
For sure, we are going to experiment with SPDY in next 2.2 version of the Restlet Framework and explore the future of HTTP!
Update 1: Mozilla – Firefox 11 is adding support for SPDY, the ball is rolling!
Update 2: ReadWriteWeb – Is Microsoft challenging Google on HTTP 2.0 with WebSocket?
Update 3: Jean Paoli (Microsoft) – Speed and Mobility: An Approach for HTTP 2.0 to Make Mobile Apps and the Web Faster
Update 4: Mark Nottingham (Yahoo!) – What’s next for HTTP?
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:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
Download links:
http://www.restlet.org/downloads/
Maven repositories:
http://maven.restlet.org
Restlet Framework 2.1 M5 and 2.0.8 released June 21, 2011
Posted by Jerome Louvel in Restlet Releases.Tags: NIO, OAuth, OpenID
add a comment
Today was an exciting day for Restlet. First Manning has published a new version of the “Restlet in Action” book in MEAP, including a new chapter covering cloud computing usage of the framework, leaving only two chapters to write (plus some refactoring based on reviews) in order to complete this effort. In addition, we have just released two new versions of the framework!
Bug fixed
First, the 2.0.8 version fixes a couple of issues on the stable branch including:
- Annoying regression with JAXB due to improper TreeMap usage
- Fixed regression introduced in 2.0.7 with WriterRepresentation, OutputRepresentation and subclasses when sending long entities (1024 and longer)
- Fixed Range issue when handling large files
- Fixed support for Content-Disposition header with HTTP server connectors
Those fixes are of course also available in the new 2.1 release.
Major changes
In addition, version 2.1 Milestone 5 contains several major enhancements and new features summarized below.
- New “org.restlet.ext.oauth” extension added providing comprehensive support for OAuth 2.0 (draft 10) co-developped with Ericsson Labs. For additional details you can read the extension page in the user guide as well as the specifications page.
- New “org.restlet.ext.openid” extension added providing initial support for OpenID 2.0 contributed by Ericsson Labs. For additional details you can read the extension page in the user guide as well as the specifications page.
- Greatly stabilized the internal NIO based HTTP client and server connectors, now passing all our test cases. We are still fighting a couple of issues related to NIO reselection and HTTP pipelining and will complete HTTPS support for 2.1 RC1.
- Moved all SSL logic within Restlet core into org.restlet.ext.ssl extension, adding a new dependency for some HTTP connectors.
- Fixed compatbility issues with GWT 2.3.
- Updated Jetty to version 7.4.2.
Recent contributors
- Aaron Summers
- John Logsdon
- Julien Landuré
- Kristoffer Gronowski
- Martin Svensson
- Tim Peierls
- Tom Moore
Thanks to all others who helped us in various ways for this last milestone before 2.1 RC1.
Additional resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
Download links:
http://www.restlet.org/downloads/
Maven repositories:
http://maven.restlet.org
Restlet Framework 2.1 M4 and 2.0.7 released April 27, 2011
Posted by Jerome Louvel in GAE, Restlet Releases, SDC, Security.add a comment
In order to adress several pressing issues, we are releasing those new versions one month after the previous release cycle. The good news is that we had time to add a couple of nice features to the 2.1 development branch!
Bug fixed
First, the 2.0.7 version fixes a couple of issues on the stable branch including:
- Dormant threads in some IO operations due to excessive thread pool instantiation (via TaskService). Now a single temporary thread is used when an existing TaskService can’t be found.
- Broken Amazon S3 authentication due to new AWS domain naming strategy
- Cookies management interference when using the Apache HTTP client extension
- Performance issue with JAXB serialization when used by the JAX-RS extension
- Equality testing between Role instances wasn’t properly done (object identity testing)
Those fixes are of course also available in the new 2.1 release.
Major changes
In addition, version 2.1 Milestone 4 contains several major enhancements and new features summarized below.
- The ClientResource#entityBuffering property now buffers non transient representations of unknown size. This change was necessary to fully prevent HTTP chunking when talking to a GAE backend (which forbids chunk encoding).
- Refactoring of the SSL support to reduce the “org.restlet.jar” size by moving all SSL logic to the “org.restlet.ext.ssl” extension. Now other HTTP extensions including Jetty, Simple and Apache HTTP Client need to add this dependency. The SSL extension also includes an experimental HTTPS client that will be stabilized and completed with a HTTPS server in next milestone.
- The simplified logging format (one line per log entry) used by default in the Java SE edition has now been disabled from the Java EE edition by default as it could interfer with logging behavior of some containers such as Tomcat
- Throwing ResourceExceptions in ServerResource subclasses now properly preserves the given status code back to the client
- The SDC protocol support added in 2.1 M3 via the “org.restlet.ext.sdc” extension is now available in the GAE edition via the “org.restlet.ext.net” extension, with the same syntax for better code portability between cloud platforms (Protocol.SDC and ChallengeScheme.SDC constants also added)
- New “org.restlet.ext.gae” extension added to the GAE edition that supports authentication and enrolement based on the GAE users service
- ClientResource now respects any change to the default client preferences when using dynamic proxies (via wrap() for example), such as change in preferred media types.
Recent contributors
- Avi Flax
- Bo Xing
- Christoph Dietze
- John Logsdon
- Julien Landuré
- Kristoffer Gronowski
- Martin Svensson
- Matt Kennedy
- Michael Guiral
- Rhett Sutphin
- Tal Liron
- Tim Peierls
Thanks to all others who helped us in various ways for this fourth milestone.
Additional resources
Changes log:
http://www.restlet.org/documentation/2.0/jse/changes
http://www.restlet.org/documentation/2.1/jse/changes
http://www.restlet.org/downloads/
Maven repositories:
http://maven.restlet.org
Leveraging SDC beyond Google cloud with Restlet March 31, 2011
Posted by Jerome Louvel in Restlet, Restlet General, SDC.3 comments
Introduction
When Google announced Secure Data Connector in 2009, it was welcomed with interest as it addressed people concerns regarding public cloud security and especially integration with their private information system.
SDC solves this cloud integration dilemma without requiring to open new ports on your firewall by establishing a reverse web proxy, called SDC Agent, that connects to an SDC Tunnel Server located in Google cloud infrastructure. Once established, the secure tunnel can be used in the opposite direction, from the Google cloud to your secure intranet by Google Sites, Google App Engine applications and Google Docs spreadsheets.
Missing features
While Google SDC is great if you fully live in the Google Apps ecosystem, it comes with several limitations:
- SDC Agent is available as an open source project, but not the SDC Tunnel Server part
- Google App Engine SDK doesn’t provide a way to test SDC locally without deploying your application
- Can’t be used with other cloud platforms such as Amazon EC2 and Microsoft Azure
- You can’t easily port a GAE application using SDC to another platform, private cloud or public cloud
As one of the Restlet Framework goals is to ensure a maximum portability across various Java based platforms such as GAE, GWT, Android and Java SE/EE those SDC challenges were compelling.
Restlet SDC connector
At the end of 2010, RunMyProcess, a long time Restlet user offering a cloud workflow solution as a cloud computing service, offered us to co-develop a Restlet SDC connector that would emulate Google SDC Tunnel Server and expose it like an HTTP client connector.
Thanks to the SDC Agent being available as open source, we could dive inside the implementation and understand the SDC protocol design which heavily relies on Google Protocol Buffer to implement a multiplexing tunnel (frames going both ways without constraint) over a TLS socket.
In the picture above, we illustrated how the Google SDC Agent software can be configured to connect to Restlet SDC Tunnel Server in the same way that you would do it for your Google Apps domain.
All the missing features are now supported by this Restlet extension which has just been released with version 2.1 M3 today! Thanks to RunMyProcess for co-developing this feature with Noelios Technologies.
You can find more technical details about this new feature in Restlet User Guide including sample usage code. Improvements are planned for a future release in order to increase the scalability of the connector by leveraging non blocking NIO/SSL connections or allowing load-balancing between a set of SDC Agent within the same intranet.
Update: RunMyProcess has now officially announced the support for this feature, see also press release










