Hi all,
The new release is almost there, only the documentation needs to be updated.
I've uploaded a new snapshot at:
http://www.restlet.org/downloads/current.zip
If you have some spare time, please test it for any show stopper. Here is a
summary of the main changes:
- support for URI templates in Routers/PatternScorer (see updated tutorial,
part 11)
- support for Velocity templates (in addition to existing FreeMarker
templates)
- support for JSON representation (input and output modes)
- support for Amazon Web Services authentication scheme
- separated portable Restlet Extensions from NRE Extensions
- added new Application services (DecoderService, ConverterService,
TunnelService, ...)
Best regards,
Jerome Louvel
---
[Bugs fixed]
- Fixed bug causing the ServerServlet to create an extra HTTP server
connector if one is available on the classpath. Reported by Sean Landis.
- Fixed bug in StatusFilter, method dohandle() renamed to doHandle().
- Removed getStatusCode() and getReasonPhrase() methods in ServletCall
hiding the actual value set. Reported by Sean Landis.
- Fixed bug preventing the restart of a Jetty 6 connector. Added
RestartTestCase. Reported by Piyush Purang.
- Fixed bug in AWS authentication algorithm if no AMZ_* header present.
Reported by Mikkel Jensen.
- Patched Simple connector to not return a "Content-length" header when
size is 0.
- Bug bug in the Simple connector causing a "Transfer-Encoding: chunked"
header to be returned even if no entity was present. May be the cause of
problems with the Safari browser.
- Fixed issue with StringRepresentation wrongly computing its length in
certain cases. Reported by Richard G.
[API breaking changes]
- Moved Atom, FreeMarker and FileUpload extensions to
org.restlet.ext.atom/freemarker/fileupload packages.
- Moved implementation-independent classes from NRE into org.restlet
packages.
- Renamed LogService."loggerName" and "format" properties to add the
"access" prefix. Added "contextLoggerName" property.
- Moved Resource and Representation to new org.restlet.resource package.
- Moved *Service classes to new org.restlet.service package.
- Renamed RedirectRestlet into org.restlet.Redirector.
- Renamed ExtractFilter into org.restlet.Extractor.
- Renamed TunnelFilter into org.restlet.Tunnel.
- Moved StringTemplate data model to org.restlet.util.Model. Removed
ReadableModel and WritableModel.
- Replace Representation.toString() by getValue() to prevent unwanted
consumption of the content. Reported by Vincent Lari.
Note that getValue() throws IOException instead of eating them as to
older toString() implementation.
- Refactored TunnelFilter into a TunnelService enabled by default.
- Also refactored and renamed LocalService into MetadataService used by the
TunnelService and local client connectors.
- Refactored VirtualClient interface into a Dispatcher class. Renamed
Context.getClient() into getDispatcher().
[Other changes]
- Reorganized Javadocs into three parts: Restlet API, Restlet Extensions,
Noelios Restlet Engine.
- Added JSON library as an external plugin project. See http://www.json.org
- Added org.restlet.ext.json extension to manipulate JSON representations.
- Added MediaType.APPLICATION_JSON and added entry for "*.json" in common
extensions.
- Now adds the mandatory "Date" header to all responses.
- Added modifiable "identifier" and "secret" properties to
ChallengeResponse, in addition to the raw "credentials" property.
- Added support for Amazon Web Services authentication scheme for HTTP
client requests. Added ChallengeScheme.HTTP_AWS constant and
a sample example at com.noelios.restlet.example.misc.AwsTest. Suggested
by Mikkel Jensen.
- StatusService now has its "overwrite" property set to "false" by default.
- Now the StatusService (and associated StatusFilter classes) also catch
unhandled Errors. Suggested by Vincent Lari.
- Added createStatusFilter and createLogFilter to NRE's ApplicationHelper
and ContainerHelper to allow overriding. Reported by Vincent Lari.
- Added workaround for AWS authentication caused by HttpUrlConnection in
JDK < 1.6 causing sending of "application/x-www-form-urlencoded" content
type.
- The SPI mechanism now uses the classloader of the Factory's class.
get/setClassLoader() methods also added. Suggested by Kabe.
- Made package org.restlet.spi visible like other JDK's SPI packages
- Implemented support for multiple choices in org.restlet.Handler. Added a
"negotiateContent" property to disable automatic content negotiation.
- Added "decoderService" to Application to auto-decompress incoming
entities.
- Implemented support for multiple choices (300 status) in
org.restlet.Handler.
- Added a "negotiateContent" property to disable automatic content
negotiation.
- Refactored DirectoryResource: removed unused handle*() methods and
duplicate "negotiationEnabled" property.
- Added Reference.encode() and decode() methods, easier to use than raw
URLDecoder/URLEncoder classes.
- Renamed StringTemplate.process() into format() to make place for a
parse() method.
- The create*() methods in ApplicationHelper simply require an instance of
Filter as result parameter.
- Clarified description for 304 status code.
- Added @Override annotation to all example source code. Suggested by
Piyush Purang.
- Added a constructor to ObjectRepresentation taking a serialized object
representation. getObject() will return the deserialized object.
- Added callback methods beforeSend() and afterSend() to ConnectorService
in order to allow custom actions like transaction closing.
Suggested by Diggory Briercliffe for integration with Seam.
- Renamed tutorial examples to
com.noelios.restlet.example.tutorial.Part**.java
- Updated Java Service Wrapper to version 3.2.3.
- Added support for Velocity templates in addition to FreeMarker templates.
See org.restlet.ext.velocity package.
- Merged NRE's ClapReference, JarReference and FileReference into a single
org.restlet.data.LocalReference.
- Merged org.restlet.spi into org.restlet.util (only Factory and Helper
were remaining).
- Added Protocol.JAR constant.
- Renamed NRE's LogFileHandler and LogFormatter to AccessLogFileHandler and
AccessLogFormatter (use for WWW access logs).
- Moved "indexName" property from Directory to MetadataService (remove the
previous "indexNames" list).
- Added "converterService" to Application to converts between
Representations and higher-level Objects (like JDOM documents, etc.).
Suggested by Chris Winters.
- Added support for URI templates to facilitate the routing of dynamic
URIs.
- Reworked tutorial part 11 to illustrate usage of URI templates.