jump to navigation

Restlet 2.0 M3 released May 27, 2009

Posted by Jerome Louvel in RDF, Restlet, Restlet Releases, XML.
trackback

We have just released Restlet 2.0 M3, replacing Restlet 1.2 M2 as our current “testing” release (following Debian terminology). We have also updated our “stable” branch with a 1.1.5 release.

Looking at the amount of new features that we added so far since Restlet 1.1 (with some more coming), the amount of refactoring and reorganization done on the Restlet API (including the core Resource API), on extension packages and with the growing number of special Restlet editions (Java SE/EE, Google Web Toolkit, Google App Engine and Android), it seemed appropriate to rename the Restlet 1.2 branch into Restlet 2.0.

Restlet

Here is a summary of the main changes :

  • New org.restlet.ext.xml extension including XML related classes previously in the core Restlet API. This ensures that the core Restlet API stays as consistent as possible across all editions. In this case, those features weren’t available in Android.
  • Improved the org.restlet.ext.rdf extension with Turtle and N-Triples support in addition to RDF/XML and n3 formats.
  • FreeMarker templates can now be loaded via the Context’s client dispatcher and relatively to a base URI.
  • Added an org.restlet.ext.xstream extension providing transparent serialization between Java objects and XML or JSON.
  • Added an ObjectRepresentation class to the GWT edition and to the org.restlet.ext.gwt server extension. This allows transparent serialization of Java objects leveraging GWT-RPC serialization mechanism, but using your REST APIs.
  • Greatly improved the support for the recently added ConverterService.
  • Improved the ClientResource with support for annotated interfaces via the creation of dynamic proxies. It now also automatically follows redirections when possible.
  • Refactored the services to facilitate the addition of new ones by users in their applications.
  • Added AppendableRepresentation for dynamic generation of StringRepresentation instances.

Direct contributors

  • Arjohn Kampman
  • Bruno Harbulot
  • David Bordoley
  • David Fogel
  • Davide Angelocola
  • Didier Girard
  • Eric Hough
  • Jean-Yves Cronier
  • Lars Heuer
  • Marcelo Ochoa
  • Michael Berman
  • Mikhail Spirydonau
  • Paul Davis
  • Rémi Dewitte
  • Ronny Kwon
  • Simon Reinhardt
  • Tal Liron
  • Thom Nelson
  • Tim Peierls

Thanks to all others who helped us in various ways!

Additonal resources

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

Download links:
http://www.restlet.org/downloads/2.0/restlet-2.0m3.zip
http://www.restlet.org/downloads/2.0/restlet-2.0m3.exe

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)

Advertisements

Comments»

1. iqbalyusuf - June 5, 2009

Trying to use new org.restlet.gae.jar from Restlet version restlet-2.0m3 zip archive and getting the following error when trying to run local Jetty server. Sorry I don’t know if this is the place to post it.

Jun 4, 2009 9:46:40 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: EXCEPTION
java.lang.ClassNotFoundException: org.restlet.util.ServerServlet
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:142)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.mortbay.util.Loader.loadClass(Loader.java:91)
at org.mortbay.util.Loader.loadClass(Loader.java:71)
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:73)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.jetty.Server.doStart(Server.java:217)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:147)
at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:115)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:205)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:136)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
at com.google.appengine.tools.development.DevAppServerMain.(DevAppServerMain.java:90)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:84)
Jun 4, 2009 9:46:40 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: failed RestletServlet
javax.servlet.UnavailableException: org.restlet.util.ServerServlet
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.jetty.Server.doStart(Server.java:217)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:147)
at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:115)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:205)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:136)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
at com.google.appengine.tools.development.DevAppServerMain.(DevAppServerMain.java:90)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:84)
Jun 4, 2009 9:46:40 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: Failed startup of context com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@6025e7{/,C:\Users\iyusuf\workspace\google\gisdcl\war}
javax.servlet.UnavailableException: org.restlet.util.ServerServlet
at org.mortbay.jetty.servlet.Holder.doStart(Holder.java:79)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:233)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.jetty.Server.doStart(Server.java:217)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:147)
at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:115)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:205)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:136)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
at com.google.appengine.tools.development.DevAppServerMain.(DevAppServerMain.java:90)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:84)
The server is running at http://localhost:8080/

Jerome Louvel - June 5, 2009

Hello,

This class has been relocated to its regular “org.restlet.ext.servlet.ServerServlet” name. Just adjust your web.xml file.

Best regards,
Jerome

2. Denys - June 10, 2009

And what about DomRepresentation? This class doesn’t exist anymore, am I right?

Jerome Louvel - June 10, 2009

Hi Denys,

It has been moved in the new “org.restlet.ext.xml” extension.

Best regards,
Jerome

3. Restlet 2.0 M4 released « Noelios Technologies - August 6, 2009

[…] 6, 2009 Posted by Jerome Louvel in Restlet, Restlet Releases. trackback 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 […]


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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s