With the release of Restlet 2.0 M6, we are getting close to a feature freeze. This will happen with the next release, Restlet 2.0 RC1, due for the end of the year. In addition, we are also continuing the support of Restlet 1.1 with the release of version 1.1.7, fixing 11 bugs and adding the EPL 1.0 licensing option.
With less than two months since Restlet 2.0 milestone 5, it’s encouraging to see how much work has been accomplished and the number of contributions that we received. As usual, let’s review the main changes.
- The Apache HTTP Client extension has been updated from 3.1 to 4.0 version. Note that some parameters have been changed, so be sure to verify your configuration. In addition, it is now possible to specify a different proxy server to use for each Restlet connector.
- The Resource API has been stabilized and enhanced. The Restlet annotations now support “|” and “:” separators to express alternative variants and both input and output variants.
- The Security API has been trimmed down and refactored based on experience in the field. The classes relying on the javax.security.auth package have been moved to a new JAAS extension; and the digest related ones relying on the javax.crypto package moved to a new Crypto extension along with Amazon S3, Azure client HTTP authentication.
- The support for HTTP DIGEST has been vastly improved, especially on the client-side, with proper mapping of its properties to AuthenticationInfo (new), ChallengeMessage (new), ChallengeRequest and ChallengeResponse classes.
- Additional standard HTTP headers are now fully supported by the Restlet API : “Age”, “Authentication-Info”, “Date”, “If-Range”, “Retry-After”, “Warning”, and the frequently asked “Cache-Control” header! For a detailled mapping of those headers to the Restlet API, please consult this page of the user guide.
- The edition for GWT has been stabilized and heavily improved to be closer to the other Restlet editions. For example, the ClientResource class is now available, JSON and XML extensions have been added. The base package has been reverted to “org.restlet.gwt” due to issues with GWT projects combining client-side and server-side usage of Restlet. The remaining task for 2.0 RC is to support annotated interfaces to achieve the same level of productivity than GWT-RPC, in a RESTful way. We will leverage GWT deferred binding for this purpose.
- The edition for Android has been improved, with the port of the Crypto, Apache HTTP Client, JAAS, JSON, Net extension (without FTP client).
- The Servlet extension has been improved to support multiple declarations of the ServerServlet in the same Servlet application.
- The Jetty extension has been updated to leverage the recent Jetty 7.0 version now hosted at Eclipse.
- A new Netty extension has been contributed by Gabriel Ciuloaica, leveraging the new NIO framework from JBoss.
- The Restlet logging, based on JULI (java.util.logging), now has an extension mechanism allowing an efficient redirection to alternate mechanisms like log4j as explained in the wiki. A new SLF4J extension has been added to facilitate the replacement of Restlet’s default logger facade.
- The OAuth extension has been moved to the Restlet Incubator as it would require too much work to get aligned with the new Restlet security and resource APIs in version 2.0. Note that this is temporary and we definitely want to reintroduce this feature in Restlet 2.1.
- Some dependencies have been updated: GWT 1.7.1, Apache Commons Logging 1.1.1 and Simple Framework 4.1.5.
- About 24 bugs have been fixed, including the regression with the deprecated “createRoot” method leading to broken routing in 2.0 M5. Several annoying issues with OSGi and Spring have especially been fixed.
- Adam Harrison
- Arjohn Kampman
- Ben Vesco
- Bob Resendes
- Bruno Harbulot
- Bryan Hunt
- Carlos Alexandre Moscoso
- Carsten Lohmann
- David Fogel
- Dustin Jenkins
- Emily Toop
- Fabian Mandelbaum
- Gabriel Ciuloaica
- Georges-Etienne Legendre
- Guido Schmidt
- Kelly McLaughlin
- Kevin Pauli
- Patrick Logan
- Paul Austin
- Rickard Oberg
- Simon Guest
- Stefan Maassen
- Tal Liron
- Thierry Templier
- Warren Janssens
Thanks to all others who helped us in various ways!