Hi all,

The next release has been delayed several times already, sorry for that.
This time I'm confident to release this week, probably on Friday, unless
unexpected bugs occur over the week. As it contains numerous changes, any
effort to test the latest snapshot is very welcome. 

Beware that significant changes were done to the API. Check the changes log,
the updated examples and the Javadocs in the distribution. The code is
stable and all known bugs are fixed. Support for the Servlet adapter has
been upgraded to work with Applications.

I've copied below the full changes log. The snapshot is available at:
http://www.restlet.org/downloads/current.zip

Best regards,
Jerome Louvel

---
1.0 beta 19 (2006-10-17)

[Bugs fixed]
 - Fixed issue with error status preventing the setting of response headers
with Servlet containers like Tomcat. Report and solution by Evan DiBiase.
 - Completed support for content streaming in the HTTP client connector
extension. Issue reported by Mikkel Jensen.
 - Fixed bug in ParameterList.getFirstValue(String, boolean) ignoring the
"ignoreCase" parameter.
 - Fixed issue with ServerServlet preventing the returning of an output
representation with an error status code. Reported by Sean Landis.
 - Fixed incomplete plugin descriptors for some extensions.
 - Added workaround for JDK's bug #6472250 when using the fixed length mode
with the HTTP client.
 
[API breaking changes]
 - Renamed Representation.isContentAvailable() to isAvailable() and
isContentTransient() to isTransient().
 - Merged Client and GenericClient into a single Client class.
 - Moved com.noelios.restlet.connector into hidden
com.noelios.restlet.impl.connector package.
 - Moved internal utilities from com.noelios.restlet.util into hidden
com.noelios.restlet.impl.util package.
 - Moved com.noelios.restlet.spi into hidden com.noelios.restlet.impl
package.
 - Moved org.restlet.component.ContainerContext to
com.noelios.restlet.impl.component.ContainerContext.
 - Renamed Server."next" property into "target". "Next" was assuming that a
previous Restlet existed, which is false for Server connectors.
 - Moved com.noelios.restlet.util.WrapperMap into org.restlet.util.
 - Removed Restlet.compareTo() method. No apparent usage.
 - Renamed Reference.getProtocol() into getSchemeProtocol().
 - Scorer now derives from Filter to improve factorization.
 - Renamed Handler into Finder. Note: Handler is still used, but for a new
purpose!
 - Renamed DirectoryHandler* classes into DirectoryFinder*.
 - Added Context.getClient() returning a generic ClientInterface.
 - Removed get/post/put/delete methods on Context as getClient() is
preferred.
 - Added a post() method on Resource returning an instance of the new
org.restlet.data.Result class as well as put() and delete().
 - Renamed Chainer.findNext(Call) into getNext(Call). Chainer is now
abstract.
 - Scorer is now abstract to force implementation of the score() method.
 - Renamed "name" property into "agent" for ClientData and ServerData.
 - Added "name" (for domain name) and "port" properties to ServerData,
matching HTTP's "Host" header.
 - Refactored HttpCall and related classes to better handle and preserve the
"Host" header information.
 - Renamed CallModel variable "clientName" into "client.agent" and
"serverName" into "server.agent", also
   "serverAddress" into "server.address" and "clientAddress" into
"client.address".
 - Removed Context.getClient(protocol) method, now Context directly
implements ClientInterface.
 - Replaced com.noelios.restlet.HostRouter by a portable
org.restlet.component.VirtualHost class. See updated tutorial to know how to
migrate.
 - Moved com.noelios.restlet.PatternScorer to
com.noelios.restlet.impl.PatternScorer as this is related to the API
implementation.
 - Refactored and completed the Application class to act as a portable
component, deployable on any Restlet engine and 
   any (virtual) host without any change.
 - Moved "root" property from Component to Application.
 - Added new org.restlet.component.VirtualHost class, as a Router subclass
to target applications or handlers.
 - Split org.restlet.Call into org.restlet.Request and org.restlet.Response
to solve overweight issue. Suggested by Piyush Purang.
   Also added a parent Message class following the HTTP semantics. Merged
"input" and "output" properties into a single "entity" property on Message.
 - Merged AbstractResource and Resource into a single Resource class.
 - Merged AbstractRepresentation and Representation into a single
Representation class.
 - Removed the "com.noelios.restlet.builder" package as the new Application
feature broke this approach and makes it less useful. 
   We may reintroduce a refactored version in a later release.
 - Moved LogFilter and StatusFilter to com.noelios.restlet.impl.
 - Moved ClientList and ServerList to org.restlet.util 
 - Moved ScorerList to org.restlet.util and changed it to an interface.
 - Renamed ClientData and ServerData to ClientInfo and ServerInfo to be less
ambiguous about the type of data.
   Also renamed "Response.server" property to "serverInfo" and
"Response.client" property to "clientInfo".
 - Moved EmptyValue to org.restlet.util.
 - Renamed ConditionData to Conditions.
 - ServerServlet now only works with applications as target. Review updated
Javadocs before upgrading.
 - GuardFilter now logs messages via the context's logger. Changed
constructor.
 - Moved all remaining classes of org.restlet.component and
org.restlet.connector into org.restlet for simplification purpose. Suggested
by Piyush Purang.
 - Added Holder filter to hold an attached handler and apply call logging
and status setting.
 - Refactored hierarchy : Restlet, Chainer, Connector and Component directly
derive from base Handler class.
 - Extended usage of contexts.
 - Removed WrapperRestlet class, replaced by a wrapping constructor on
Restlet.
 - Renamed "input" and "output" to "entity" or "request" or "response" in
all properties name for CompressFilter, DecompressFilter, 
   ExtractFilter, HttpClientCall, HttpServerCall, Result
 - Moved ClientInterface to org.restlet.util.
 - Replaced WrapperCall by wrapper constructors on Message, Request and
Response.
 - Replaced WrapperRepresentation by wrapper constructors on Resource and
Representation.
 
[Other changes] 
 - Updated Jetty 6 extension to 6.0.1 release and Jetty 5 extension to
5.1.11 release.
 - Added Resource.setVariants() and setIdentifiers() methods. Can be easier
than doing a getVariants().clear() then a getVariants().addAll(newList). 
   Suggested by Chris Winters.
 - org.restlet.ReferenceList now derives from WrapperList<Reference> to
factorize code and to clarify (in Javadocs) which extra methods are
provided.
 - Improved Javadocs for the org.restlet.Handler class to explain what is
the default behavior of each handle*() method. 
 - Refactored all HTTP client and server classes to work with the new call
converter mechanism.
 - Renamed AbstractHttpServer to HttpServer, AbstractHttpServerCall to
HttpServerCall and AbstractHttpClientCall to HttpClientCall.
 - Merged HttpCall interface and DefaultHttpCall class into single HttpCall
class.
 - Added com.noelios.restlet.connector.HttpServerConverter as the base call
converter (from HTTP calls to uniform REST calls).
 - Refactored the HttpUrlConnection-based HTTP client to extract a generic
HttpClientConverter and added a base HttpClient class.
 - Added support of HTTP headers in high-level calls. The headers are
available in Request|Response.getAttributes().get("org.restlet.http.
   headers") as an instance of ParameterList. Additional headers can also be
added by setting a "org.restlet.http.headers" 
   attribute in Request or Response. Note that only non-standard HTTP
headers are allowed to be added to prevent conflicts with the connector's
behavior.
 - Added sample application illustrating the access raw HTTP headers. Used
suggestion from John D. Mitchell.
 - Added static valueOf() methods to ChallengeScheme, CharacterSet,
Encoding, Language, MediaType, Method, Protocol and Status. 
   Sometimes renamed existing create() method. Suggested by Piyush Purang.
 - Clarified the Javadocs of root classes in org.restlet.
 - Added more constructors to Chainer, Context, Filter and Finder.
 - Added a Message.setEntity(String, MediaType) method facilitating the
setting of string-based entities.
 - Fully updated the FAQ.
 - Updated pictures in the tutorial to reflect the latest API changes
(Application, hierarchy changes, etc.).
 - Form handling code don't throw IO exceptions anymore for
Call.getInputAsForm() and Reference.getQueryAsForm(). Issue reported by
Piyush Purang.
 - Added modification support (PUT and DELETE) to DirectoryFinder. Suggested
by Don Dwoske and John D. Mitchell. 
   Implementation contributed by Thierry Boileau.
 - Added "protocol" property on Call.
 - Added FTP constant to Protocol.
 - Improved detection of default ports in Reference.toString() static
methods. Added new toString() variant.
 - HTTP client connectors now set the "Host" header manually when proper
information is found via Call.getServer()."name" and "port".
 - Refactored the parsing/construction of the target resource reference to
handle both relative and absolute URIs.
 - Improved robustness of Reference when handling relative URIs.
 - Added a "javadoc-hide" property to "build.properties" to hide the
Javadocs of implementation packages (true by default).
 - Added shortcut attach/detach methods to Router, equivalent to
getScorers().add()/removeAll().
 - Method Filter.getNext(Call) is now final to prevent overriding. If
needed, use Chainer as base class.
 - Added ScorerList.removeAll(UniformInterface) method to remove all scorers
pointing to a given handler.
 - Added Protocol.ALL constant as a protocol wildcard.
 - Added "hosts" and "localHost" properties to Container.
 - Added support "Allow" HTTP headers. New allow*() methods added on
Resource and support for setting the 405 status in the Finder (ex-Handler)
class.
   The list of allowed methods is then set to the Response (ex-Call) object.
Subclasses of Finder can customize the list of allowed methods.
   Suggested by AJ Barnes and Lars Heuer.
 - Updated tutorial examples to leverage application concept.
 - Refactored all usages of the JDK's loggers in order to reuse the
Context's logger, allowing separation of messages for each application.

Reply via email to