Restlet 1.1 M3 released April 1, 2008Posted by Jerome Louvel in JSR 311, NIO, Oracle, Restlet Releases.
It’s just over a month since 1.1 M2 and we have again made tremendous
progress towards our final release.
- Licensing scheme changed to CDDL 1.0 or LGPL 2.1 or LGPL 3.0
- New JAX-RS extension implementing the draft JSR-311
- New OAuth extension as a pluggable authentication scheme
- New XDB extension providing integration with Oracle embedded JVM
- SSL support much improved with access to new attributes
- XmlRepresentation refactored to support SAX and DOM sources
- Major TransformRepresentation refactoring (config, reuse, SAX)
- Reference class now enforces the usage of valid URI characters
- Grizzly HTTP server now support chunked encoding of responses
- Spring to version 2.5.2
- db4o to version 7.2 (adds transparent update)
- JavaMail to version 1.4.1
- JAF to version 1.1.1
- Adam Rosien (OAuth)
- Avi Flax
- Bruno Harbulot
- Chuck Mortimore
- Dan Diephouse
- Jeroen Goubert
- Joe Nellis
- Kevin Conaway
- Marc Portier
- Marcelo Ochoa (XDB)
- Paul J. Lucas
- Peter Neubauer
- Rhett Sutphin
- Rob Heittman
- Stephan Koops (JAX-RS)
- Steve Loughran
- Yuri de Wit
Restlet API and JSR-311 API April 25, 2007Posted by Jerome Louvel in JSR 311, Restlet General.
He also draws a flattering parallel between Restlet and Hibernate projects, especially in the light of the JSR-311 effort to standardize a high-level, annotation-centric API for RESTful Web Services.
As an active member of the expert group for this JSR, I would like to mention that the Restlet API is only one source of inspiration but not a proposal. The initial API proposition was actually made by Sun, based on its SWDP prototype. There were also previous annotation-based initiatives made by third parties.
Actually, as underlined in this previous post, both APIs will end-up being complementary rather than competitors. To clarify the scopes of those various efforts, I have drawn some illustrations based on two axis:
- the level of abstraction regarding the REST/HTTP semantics, from raw HTTP headers to high-level representation negotiation.
- the processing flow abstraction, from the raw network socket to the JSR-311 resources context.
Here is the expected positioning of the JSR-311 as implemented over the Servlet AP. Note that the gap between the Servlet API and the JSR-311 will have to be filled by an adapter:
Now, here is the expected positioning of the JSR-311 API as implemented over the Restlet API:
Finally, we also plan to submit a Restlet API 2.0 to the JCP, probably in 2008. The best parallel is between the Restlet API and the Servlet API that we clearly aim to replace in the long term, as an API giving full control on the container and its connectors, fully leveraging NIO API and asynchronous request processing, while providing full support for all REST/HTTP semantics from the ground up. The API also has a unique ability to support client-side applications, without requiring direct usage of APIs such as JDK’s HttpURLConnection or Apache HTTP Client.
[Update 2] Marc Hadley, JSR-311 spec lead, has blogged about the Restlet implementation of JAX-RS.
JSR 311 approved for development February 28, 2007Posted by Jerome Louvel in Java, JSR 311, Restlet General.
add a comment
As reported by Eduardo Pelegri-Llopart, the JSR 311 was approved by the JCP Executive Committee for development. The results of the vote are also available here. Following a request from Apache, the name of the JSR is now “Java API for RESTful Web Services”.
You can check a comprehensive list of posts following the initial announce on my updated blog post. There is a clear interest from the community for such an API. Some voiced concerns about the JCP process, others about the idea of starting with a higher level API before providing a solid lower level API as a foundation. Some don’t want annotations to abstract the supposed complexity of HTTP when others are afraid that the API won’t be simple enough.
In general, people seem to be positive and supportive of the initiative. The expert group now has an important task in its hands. I hope we will be able to work as closely as possible with the rest of the community to gain a constant feed-back and produce a great and widely accepted API!
New JSR to define a high-level REST API for Java February 14, 2007Posted by Jerome Louvel in Java, JSR 311, Restlet General.
As the Java community is increasingly using REST to develop their Web applications, Sun Microsystems is proposing to specify a high-level REST API for Java. If accepted for development by the JCP Executive Comitee, this JSR#311 will formalize as a set of Java 5 annotations to facilitate the exposition of Java objects as REST resources.
These annotations will provide a high-level REST API that will be supported by lower-level APIs.
The JSR expert group will be led by Marc Hadley and Paul Sandoz from Sun. Marc is the author of WADL (Web Application Description Language), a RESTful alternative to WSDL. As the lead of the Restlet project, I was invited to be part of the initial expert group for this JSR. I am looking forward to work with other experts and with anyone interested to see a better support for REST in Java.
There is one related effort named JRA (Java REST Annotations) that I am aware of. That will be one source of inspiration. Personnally, I’m hoping it will promote a deeper mapping to REST, covering the following requirements:
- Doesn”t impose any constraint on resource URIs structure.
- Support dynamic URIs based on the URI Template draft.
- Support all HTTP methods as well as extensions like in WebDAV.
- Support all media types and not just XML.
- Support multiple representations of the same resource.
- Fully embrace the resource-oriented design paradigm.
[Update 1] Another related effort I would like to mention is Sommer, led by Henry Story, which provides a mapping (via annotations) between Java objects and RDF graphs. RDF means Resource Description Framework and is the core specification of the Semantic Web. It formally describes resources (in the REST sense), their URIs and their relationships.
[Update 2] A related thread was started in the REST discussion list.
[Update 3] More links about the announce:
- The Aquarium (Sun)
- Alexis Moussine-Pouchkine (Sun), follow-up
- Henry Story (Sun)
- Dave Johnson (Sun)
- Elliotte Rusty Harold
- Marc Hadley (Sun, spec lead)
- Stefan Tilkov: 1 (InfoQ) and 2 (blog)
- Pete Lacey
- Dan Diephouse (XFire, CFX)
- Brian McCallister (Apache, Ning)
- Frank Sommers (Artima)
- Alex Blewitt (EclipseZone)
- Steve Loughran (NetKernel)
- Tim Bray (Sun)
- Rafael Ferreira (Sun)
- Lars Trieloff
- Paul Sandoz (Sun, spec lead)
- Seth Ladd (Ruby, RoR, Semantic Web)
- Andrew Newman (JRDF, annotations)
- David Megginson (SAX, XML)
- Panic From Fuzzy
- Dejan Bosanac (O’Reilly OnJava)
- Dan Creswell
- Scott Mark
- The Cave
- David Illsley (IBM), follow-up
- Khanderao (Oracle)
[Update 4] Interesting insights from Andrew S. Townley (anterior to JSR announcement)