===========
Changes log  
===========

- 2.0.15 (2012-08-23)
    - Bug fixed
       - Fixed bug in Reference#getParentRef with relative URIs.
         Reported by Christian Bauer.
       - Fixed closing issue with pipes used by BioUtils.getReader
         and getInputStream methods.
       - Fixed concurrency bug upon application start or strop that could
         cause errors such as "no Restlet defined to process calls. Maybe it
         wasn't properly started" errors (500). Reported by several persons 
         including David Fuchs, Danny Leshem, Yunwu Zhu and Bjorn Roche.
       - Fixed range issue that leads to generate a Response having a 
         Content-length greater than actual content with range request.
       - Fixed potential security issue that allows Javascript injection 
         inside entities of error reponses.
         Reported by Danny Leshem.
       - Fixed potential threading/pipe issues with OutputRepresentation
         and WriterRepresentation classes.
       - Fixed range computation issue.
       - Fixed Turtle BNode parsing (RDF extension).
         Contributed by Christophe Gueret.
       - MemoryRealm now copies the properties from the reference user in the 
         realm to the User object set in Request.clientInfo.
         Reported by Peter Ansell.
       - SecretVerifier now consider two 'null' secrets as not comparable.
       - Fixed client proxy media type preferences, when repeated calls 
         are done, which may lead to a status 413 response.
       - Fixed case sensitivity issue with query parameters in JAX-RS 
         extension. Reported by Mark Kharitonov.
    - Misc
       - Reverted Role equality test to default Java object equality as
         equality based on name could cause issues with MemoryRealm
         mapping if several applications used the same role names.
       - Added log traces in case of error with custom status representation.
       - Improved DateUtils's Javadocs with clear formatting hints.

- 2.0.14 (2012-05-23)
    - Bug fixed
       - Fixed issue with OutputRepresentation retrieved as InputStream
         using its getStream() method when writing negative integers.
         Now properly shift values into the 0-255 ranges, leaving the -1
         value as a clear marker for end of file.
         Reported by Gabriel Pulido.
       - Usage of ranges on representations having unknown size.
         Reported by Bjorn Roche.
       - Fixed missing JSON media type with converter service and the 
         JSON extension.
       - Optimized conversions using the Jackson extension in order to reuse
         configuration (issue #577).
       - Fixed security bug in the XML extension that allows XML external 
         entity attacks. Reported by Nicolas Grégoire, 
         Caleb James DeLisle and Fabio Mancinelli.
 
- 2.0.13 (2012-04-18)
    - Bug fixed
       - Fixed user agent name detection for Firefox 12 on Windows.
         Reported by Tim Peierls.
       - Fixed issue with content negotiation in the JAX-RS when
         multiple Accept preferences were expressed by the client.
         Reported by Vincent Massol, Fabio Mancinelli, Anca Luca.

- 2.0.12 (2012-04-06)
    - Bug fixed
       - Fixed the JAX-RS extension that did not introspect the 
         interfaces and parent classes of resource classes.
         Reported and contributed by Shaun Elliott.
       - Relaxed content type header parsing in case of a trailing
         semicolon. Reported by Jean-Baptiste Dusseaut.
       - Fixed handling of Put requests with Jax-Rs extension without any 
         mime type. Reported by Thomas Mortagne.
       - Fixed NPE when setting last segment on Reference.
         Reported by Laszlo Hordos.
       - Fixed OSGi manifest file for the Jackson library that exposes a 
         private package. Reported by Laszlo Hordos.
       - Fixed parsing of Feed using the Rome extension.
         Reported by Andy Dennie.
       - Allowed multiple cookies set at once for JAX-RS.
         Reported and contributed by Grzegorz Godlewski.
       - Fixed namespaces declaration using SaxRepresentation.
         Reported by Nicholas Waltham.
       - Fixed scoring algorithm of the JaxbConverter, detected when used in 
         conjunction with JacksonConverter.
         Reported by Michael Henderson.
    - Misc
        - Updated FreeMarker library to version 2.3.19.

- 2.0.11 (2012-01-25)
    - Bugs fixed
       - Fixed MediaType.includes(MediaType) which returned true with the
         other type was null. Reported by Try Lam.
       - Improved OData client speed by caching costly reflection calls,
         especially on Android. Contributed by Nikhil Purushe.
       - Fixed conversion bug with asynchronous annotated interfaces
         when a Result parameter is declared. Reported by Bill Claypool.
       - Fixed conversion of request entities by ClientResource using response 
         variants. Reported by Arjohn Kampman.
       - Fix the GWT edition, client requests using HTTP_BASIC authentication 
         scheme did not generate Authorization header.
         Reported by Koen Maes.

- 2.0.10 (2011-10-05)
    - Bugs fixed
       - RDF/XML writing wasn't properly factoring statements from the same
         source reference.
       - SaxRepresentation wasn't writing the wrapped SAX sources. Added
         logic to write(XmlWriter) method. Reported by Raif S. Naffah.
       - Fixed potential NPE in Adapter#getLogger() method.
         Reported by Avi Flax.
       - Removed unused namespaces declaration in RDF/n3 and Turtle writers.
       - Removed extra empty line generated by XmlWriter at the top of docs.
       - Lowered level of log messages in the internal connector when a 
         connection is broken from warning to fine as it could be the result
         of a simple SHIFT+F5 browser reload.
       - Exceptions while writing RDF were not properly traced, leading to
         hard to debug issues.
       - Fixed the DIGEST authentication, when reusing a valid digest 
         ChallengeResponse for a distinct resource. Reported by Steve Ferris.
       - Fixed FreeMarker optional OSGi dependency on Servlet.
         Reported by Warren Janssens.
       - Fixed issue regarding the posting of Web forms to the GAE 
         platform (release 1.5.0 and higher) due to GAE misbehaviour 
         that consumes streams when receiving Web forms.
         Reported by Bjorn Roche.
       - Fixed parsing of form with empty parameters. Now their value is ""
         instead of null. Reported by Arjohn Kampman
    
    
    - 2.0.9 (2011-08-20)
    - Bugs fixed
       - Fixed severe log messages produced by the Component class due to 
         lack of child context usage.
       - Fixed potential IO issue by adding missing calls to flush() 
         methods in Writer and OutputStream. Reported by Jeroen Goubert,
         Konstantin Pelykh.
       - Fixed potential NPE in Velocity's TemplateRepresentation.
         Reported by David Hamilton
       - Fixed bug failing to properly clear the service filters of a
         Component when stopped. Reported by Jean-Pascal Boignard.
       - Fixed parsing issue with invalid HTTP Basic credentials, when
         length of Base 64 value isn't a multiple of 4. 
         Contributed by Ray Waldin.
       - Fixed conversion of representations to instances of primitive 
         type using the default converter.
       - Fixed handling of binary data in OData extension.
         Reported by Nikhil Purushe.
       - Fixed a bug in the default converter that lead the latter to 
         take precedence over specialized converter when converting 
         incoming representations. Reported by Glenn Bruns.
       - Fixed potential NPE in the GWT edition. Reported by Cyril Lakesh.
       - Added warning message when an unexpected error happen during the 
         invocation of an asynchronous callback.

- 2.0.8 (2011-06-21)
    - Bugs fixed
       - AbstractJaxbProvider, JaxbRepresentation and JibxRepresentation 
         used TreeMap which required Comparable implementation and isn't
         synchronized. Replaced with ConcurrentHashMap. 
         Reported by Julien Landure
       - Fixed regression introduced in 2.0.7 with WriterRepresentation, 
         OutputRepresentation and subclasses when sending long entities 
         (1024 and longer). Reported by Tim Peierls.
       - Fixed Range issue when handling large files. Reported by Tom Moore.
       - Fixed potential NPE in FreeMarker ContextTemplateLoader.
       - The Content-Disposition header was never retrieved using external 
         server connectors.
    - Misc

- 2.0.7 (2011-04-27)
    - Bugs fixed
       - Optimized support of JAXB in the JAXRS extension in case
         the org.restlet.ext.jaxb extension is present in the 
         classpath. Reported by Julien Landure.
       - Amazon S3 authentication could fail due to new subdomain 
         names like "s3[a-z0-1\\-]*.amazonaws.com".
       - Fixed bug with the testing of equality of Roles in RoleAuthorizer.
         Reported by Tim Peierls.
       - Fixed issue with dormant threads in some IO operations due to 
         excessive thread pool instantiation (via TaskService). Now a 
         single temporary thread is used when an existing TaskService 
         can't be found.
       - Apache HTTP Client was processing cookies like a browser while
         as a Restlet client connector it shouldn't have done so, like
         for other connector such as the internal client.
         Reported by Kristoffer Gronowski and Martin Svensson
       - Fixed bug with the testing of equality of Roles in RoleAuthorizer.
         Reported by Tim Peierls.
    - Misc
       - Clarified in log trace the need to manually register connector
         helpers on the Android edition.

- 2.0.6 (2011-03-31)
    - Bugs fixed
       - Fixed Redirector when the targer URI is on a distinct domain.
         Reported by Guido Schmidt.
       - Fixed potential issue in ClientResource regarding the actual
         entity being resent in case of error.
    - Misc
       - Clarified default property values of the TunnelService class.
         
- 2.0.5 (2011-02-09)
    - Bugs fixed
       - Fixed bug in virtual host router that was failing if no host 
         URI was set. Now falls back to the host part of the resource URI.
       - Fixed handling of "EDM Single" properties.
         Reported by Andreas Taube.  
       - Fixed ClientResource#put(Object,MediaType) and 
         #post(Object,MediaType) methods of the GWT edition.
         Reported by Charlie Mason.
       - Fixed bug causing first entity byte to be eaten if the connection
         wasn't persisting. Reported by Sebastien Gaide and Olivier Miel. 
       - Fixed potential NPE with conditional requests.
         Reported by Carolyn Duby.
       - Fixed potential race issues in internal HTTP connector under high
         load. Reported by Leandro Oliveira.
       - Fixed bug with AWS S3 authentication due to wrong insertion of
         HTTP headers. Reported by Sebastien Gaide.
       - The GWT proxies generated at compilation time weren't setting 
         their preference for the GWT object serialization format.
       
 
- 2.0.4 (2010-12-24)
    - Bugs fixed
	   - Extension headers on responses were now supported by the
	     JAX-RS extension. Reported by Jim Stabile and fix suggested
	     by Simon Temple.
	   - Invalid log traces for connectors without protocols, such as
	     dispatchers, were removed.
	   - Fixed AccessControlException caused by an unnecessary call to
	     System.getProperties(). Reported by Matthias Reichl.
       - The JAXB extension now has better support for classloader.
         Contributed by Eric Hough.
       - Fixed the writing of the Via header.
         Reported by Guido Schmidt.
       - Fixed annotation processing on XStream deserialization.
         Contributed by Bruno Gieder.
       - Fixed parsing of complex types in the OData extension.
         Reported by Alex Bass.
       - Fixed potential IndexOutOfBoundsException when receiving
         chunked content. Reported by Mark Thornton.
       - Fixed ROME 1.0 JAR to use the latest version.
       - Fixed scoring issues between the Atom and XML extension
         for the Feed and Service classes which extend the 
         SaxRepresentation classes.
       - Fixed converter issues with the ROME extension.
       - Fixed SpringBeanFinder throwing misleading exceptions 
         when resource not found. Contributed by Rhett Sutphin.
       - Fixed double-instantiation of prototype resources in
         SpringBeanRouter. Reported by George Calm and 
         contributed by Rhett Sutphin.
       - Fixed status description lost when throwing ResourceException
         inside the deprecated Resource class.
         Reported by Rhett Sutphin.         
       - Fixed ConnegUtils#getPreferredMetadata algorithm.
         Reported by Rickard Oberg.
       - Fixed lack of "Vary" HTTP header with HEAD calls on the
         ServerResource class.
       - Request with no entity are now detected at connector level when 
         non persistent connections are used without setting the 
         Content-Length header properly either. Reported by David Fogel.       
       - Fixed parsing of Warning header. Reported by John Logsdon.
       - Fixed support of GWT 2.1.

- 2.0.3 (2010-11-07)
    - Bugs fixed
       - Fixed Representation#availableSize computation issue when
         total size is unknown and fixed ranged entity writing.
       - Fixed generation of GWT proxies. Reported by Evan Wang.

- 2.0.2 (2010-11-03)
    - Bugs fixed
       - Fixed bug in Netty HTTPS connector preventing the handling
         of several connections, persistent connections and chunked
         encoding. Reported by Laurent Rustuel.
       - Fixed issue with Netty when an unknown parameter was passed.
       - Fixed content negotiation issues with methods accepting 
         Representation parameters or returning Representation 
         instances. Reported by Dustin Jenkins.
       - Fixed potential thread blocks due to CountDownLatch.await()
         calls. They now properly time out. Suggested by Tim Peierls.
       - Fixed initialization of the ClientInfo#userAgentTemplates 
         static variable. Reported by Michael Terrington.
       - Fixed the Content-length header sent by HEAD responses.
         Reported by Nicolas Rinaudo.
       - Fix bug with automatic redirects by Directory when the URI
         contains query parameters. Reported by William Pietri.
       - Internal HTTP client now uses absolute URIs for proxies 
         requests.
       - Redirector supports relative URIs again. 
         Contributed by Marc Portier.
       - Fixed bug when using the internal client in Sun Applet Viewer.
         Reported by Darin Jackson.
       - Fixed bug when an URI was included in the URI query or 
         fragment.
       - Fixed the deserialization of Java objects when using the 
         internal client or server connectors. The final and empty 
         chunk was not read. Reported by Rob Kooper.
       - Fixed serialization of String parameter in the GWT edition.
         Reported by Brian Cabana.
       - Fixed the usage of Collection as entity in the GWT edition.
         Reported by Evan Wang.
       - Fixed bug in ObjectRepresentation preventing the writing of
         </java> at the end of entities with media type
         "application/x-java-serialized-object+xml". 
         Reported by M. Maksin.
       - Fixed usage of 405 and 415 statuses during content negotiation.
         Reported by Doug Smalley and Avi Flax.
    - Misc
       - Additional errors are now caught and logged in the HTTP 
         servers. Contributed by Marc Portier.
       - Updated Jetty to version 7.1.6. Suggested by Marc Portier.
       - Updated Netty to version 3.2.2.
       - Optimized writing from NIO channels to BIO output streams.
       - Updated Simple to version 4.1.20.
       - Added support of GWT 2.1. The behaviour of the log API 
         introduced in GWT 2.1 may not work as expected according to 
         the GWT documentation.
   
- 2.0.1 (2010-09-08)
    - Bugs fixed
       - When cloning the prototype request, the ClientResource wasn't
         copying the ClientInfo#user property.
       - Fixed the setting of the Request's rootRef attribute when 
         using the RIAP protocol.
         Reported by Tal Liron and Tim Peierls. 
       - Fixed content negotiation issue in the Servlet extension and
         all HTTP connectors except the internal one.  
       - Fixed the deserialization of unavailable entities in the GWT 
         edition.
       - Fixed serialization of String objects in the GWT extension.
       - Allowed to filter serialized types in the GWT client proxies
         generated.
       - Fixed potential entity reading issue with Grizzly HTTP server.
       - Fixed the internal client connector when a connection cannot 
         be found to send a request.
       - Added missing createRequest(Request), createResponse(Request) 
         methods in the ClientResource class.
       - Optional authentication keep request in neutral state: neither
         authenticated neither unauthenticated.
         Reported by Bruno Harbulot.
       - Fixed RangeRepresentation which was incorrectly modifying the
         wrapped representation. Reported by David Fogel.
       - The ServerServlet now wraps the Servlet input and output 
         streams to prevent them from being closed, especially once the
         response has been returned to the container as it could be
         reused and impact another call.
         Suggested by Alois Cochard.
       - Removed Message#finalize() calling release() at GC time which 
         can have side-effects that are hard to isolate, especially in 
         Servlet environments. Reported by Giovani Pieri.
       - Throwables wrapped in ResourceExceptions can now get a custom
         status via the StatusService. Reported by Olivier Miel and
         Olivier Monaco.
       - Fixed potential NPEs in converters such as the JSON extension
         converter. Reported by Alexander Kampmann.
       - Fixed potential conversion issues due to lack of preference 
         setting (Request#clientInfo#acceptedMediaTypes property) on
         the ClientResource based on the available converters. New
         ConverterService#updatePreferences() method was added with
         a similar (optional) method on ConverterHelper.
       - Fixed bug in ConnegUtils#getPreferedMetadata() causing the
         quality level to be ignored. Reported by Daniel Zhelyazkov.
       - Reduce the number of OSGi imported packages for the Jackson
         extension. Suggested by Jean-Luc Geering.
       - Removed the support of FTP protocol of the net client connector.
         Reported by Christophe Vanfleteren.
    - Misc
       - Updated Grizzly library to version 1.9.19.
       - Improved concurrency for TunnelFilter.AcceptReplacer. 
         Contributed by Tim Peierls.
       - Clarified Javadocs of Context#getServerDispatcher().
         Suggested by Alex Milowski.
       - Added missing parsing capability to the ROME extension.
       - Added description of the status in the default error 
         representation. Suggested by Fabian Mandelbaum.

- 2.0.0 (2010-07-19)
    - API changes
      - When an annotated method manually sets the response entity, if 
        this entity is available then it will be preserved and the 
        result of the annotated method ignored. 
        Suggested by David Fogel.
      - Added missing JaasUtils#doAsPriviledged(..) methods.
        Contributed by Bruno Harbulot.
      - Added Encoder#getSupportedEncodings() method to allow 
        customization.
      - Added WadlApplication#createHtmlRepresentation(ApplicationInfo) 
        to allow for customization of HTML representation.
      - WadlApplication#getApplicationInfo and #wadlRepresent methods are 
        now protected instead of public.
      - WadlApplication#title property is now deprecated. Use the common
        Application#name and #description property instead which are now
        used by default.
      - Renamed "htmlConvert.xsl" file into "wadl2html.xslt" in WADL
        extension JAR.
      - Added static ResourceInfo#describe(ResourceInfo, Object, String)
        method in WADL extension to factorize logic.
      - Status service now logs exceptions caughts.
      - Added static Method#sort(List<Method>) method.
      - Renamed WadlServerResource#title into "name" property and added
        "description" property.
      - Added WadlServerResource#createWadlRepresentation(...) and
        createHtmlRepresentation(...) methods.
      - Added RepresentationInfo#reference property to support 
        representation "href" attributes.
      - Added describe(Class<?>, Variant) method on WadlServerResource
        to allow for custom documentation.
      - Added describeAnnotations(MethodInfo, ServerResource) static
        method on MethodInfo.
      - Renamed WadlServerResource#autoDescribed into autoDescribing.
      - The private WadlServerResource#describe(ResourceInfo) method is
        now protected. Also renamed getParametersInfo() method into
        describeParameters(), and isDescribable(Method) into
        canDescribe(Method) for naming consistency. Also added the 
        describe(ApplicationInfo) method to allow updating the parent
        application description, to add global representations for 
        example.
      - The WadlDescribable interface now passes an ApplicationInfo
        instance as parameter to the getRessources() method so the
        global properties can be updated if necessary.
      - Moved ClientResource#toRepresentation(...) and toObject(...) 
        methods up to UniformResource, so that they can be overridden 
        in ServerResource subclasses as well.     
      - Upon garbage collection, if a Restlet instance is still started
        its stop() method is now automatically called for clean-up
        purpose.
      - Request and responses now call their release() method upon
        garbage collection. It releases any associated entity.
      - Increased default value for "maxConnectionsPerHost" parameter
        of the Apache HTTP client extension.
        Suggested by David Fogel.
    - Bugs fixed
      - Thread local variables are now cleared correctly.
        Prevented unloading of WAR files or OSGi bundles
        using Restlet. Reported by Felix Leipold, 
        Dustin Jenkins and Rickard Oberg.
      - Fixed generation of client proxies in the GWT edition, when the
        annotated method declares an entity as a Representation instance.
      - Fixed handling of non ASCII characters in the GWT edition 
        when running in hosted mode.
        Reported by Giovani Pieri.
      - Removed XML header in JSON documents produced by XStream.
        Reported by Louis Huh.
      - Empty representations (with a size of 0) are considered again
        as not available. Reported by David Fogel and Eric Hough.
      - The log service now logs "0" instead of the entity size when this
        entity isn't effectively sent (204 or 304 status).
      - Atom feed and entry readers now set the media type of the inline
        content. Reported by Martin Svensson.
      - Fixed bug in relative references computation.
        Contributed by Tal Liron.
      - Client connectors automatically created by the ClientResource
        are now automatically stopped upon garbage collection to prevent
        dormant threads. Reported by Dustin Jenkins and TK Kocheran.
      - Parameters on Attachments in Component's XML configuration were
        not taken into account. Contributed by Alex Milowski.
      - Fixed bug avoiding the usage of HashMap in annotated interfaces
        in the GWT edition. 
        Reported by Greg Hengeli and  Christopher Gokey.
      - Removed the "default" attribute for the matching mode of 
        attachments in the Component XML configuration.
        Reported by Alex Milowski.
      - Atom feed parser wasn't parsing "summary" elements.
        Reported by Guillermo Vega and fixed by Vassilis Touloumtzoglou.
      - Made JaasUtils.createSubject(ClientInfo) static.
        Reported by Bruno Harbulot.
      - Fixed NPE when requesting via the RIAP protocol.
        Reported by Alex Milowski.
      - Application#outboundRoot wasn't properly taken into account by
        the ClientResource class. Reported by Kristoffer Gronowski.
      - JAX-RS extension wasn't setting new cookies properly.
        Reported by Sriram Chavali.
      - Fixed issue with services which weren't getting their context
        properly set and updated. Reported by Iestyn Evans.
      - Fixed regression in WadlApplication that prevented the retrieval
        of WADL description when OPTIONS was called on "/" or "" URIs.
      - Fixed WADL generation to not add an empty response element when 
        no WADL response info is provided.
      - Fixed Variant#equals(), VariantInfo#equals(), 
        AnnotationInfo#equals().
      - Removed duplicate representations in WADL description and
        representation with abstract media types.
      - ServerResource#updateAllowedMethods() now clears the response
        property before updating it. Caused troubles with the
        WadlApplication discovery logic.
      - Fixed potential NPE in ServerConnection#writeMessage.
        Reported by Tim Kuntz.
      - When selecting an annotated method, if the request has an
        available entity, now the Java methods without an input
        parameter are rejected.
      - ConverterService don't return non concrete media types anymore.
      - Fixed internal connectors in order to ensure that connections 
        are closed when the controller is shutdown.
      - Fixed writing issue with JiBX extension.
        Reported by Aleskandr Shekhter.
      - Fixed character encoding issues in JAX-RS extension.
        Reported by Alistair Dutton and Jeroen Goubert.
      - Fixed GWT's ObjectRepresentation constructors for 
        serialization to not conflict with deserialization
        constructors when a string is passed as parameter.
        Reported by Alexander J. Perez Tchernov.
      - InputRepresentation#getText() now closes the underlying stream.
        Reported by David Fogel.
      - Representation#exhaust() now closes the underlying stream
        used. Reported by David Fogel.
    - Enhancements
      - Improved performance of the Reference#isValid(char) method.
        Suggested by Guillaume Maillard.
      - Added generics support in annotated resources, for example when
        calling ClientResource#wrap. 
        Suggested by Valdis Rigdon who also contributed a unit test
        and solution ideas.
    - Misc
      - Component#main() now accepts related XML configuration file 
        paths. Contributed by Alex Milowski.
      - Updated jSSLutils to version 1.0.5.
      - Clarified Javadocs of the WADL extension.
      - Reduced max threads default value from "255" to "10".
        Suggested by Tim Peierls.
      - Improved precision of variants detection of annotated methods.
        Positive impact on WADL descriptions.
      - WadlApplication is now capable of describing more precisely
        ServerResource subclasses and not just WadlServerResource ones. 
        Request and response representation variants are described.

- 2.0 Release Candidate 4 (2010-06-01)
    - API changes
      - Changed character oriented subclasses of OutputRepresentation
        to extend WriterRepresentation instead for consistent character
        set handling.
      - StringRepresentation now derives from CharacterRepresentation.
      - WriterRepresentation now uses HTTP's default character set when
        no one is provided (ISO 8859-1).
      - Added missing ServerResource#abort() method.
        Reported by Tal Liron.
      - Deprecated the GwtShellServletWrapper as the hosted mode has 
        been removed in GWT 2.0. Reported by Rob Heittman.
      - Fixed design of the Engine class to allow custom subclasses to 
        be registered without systematically creating a new 
        EngineClassLoader. The classLoader and userClassLoader 
        properties are no longer static. A createClassLoader() method
        was added as well as a static getResource(String) : URL one. 
        Reported by Bruno Harbulot.
      - Deprecated WadlResource. Use WadlServerResource instead.        
      - Added get/setRouter methods and deprecated getSpringBeanRouter
        in the SpringBeanFinder class. Reported by Thierry Templier.
      - The status name is now returned to clients for display instead
        of the description, in order to not expose internal information
        by default for security reasons. Reported by Marc Knaup.
      - Added the System property "org.restlet.engine.io.buffer.size"
        that allows to set the buffer size for all instances of the 
        BufferedReader class.
    - Bugs fixed
      - Fixed character encoding issues (XStream, Jackson, JAXB, etc.)
      - Adjusted Jackson configuration as it was automatically closing 
        the target stream/writer, not respecting the 
        Representation#write() contract.
      - XStream detection of annotations was only working for JSON, not
        for XML representations. Reported by George Calm.
      - Conversion of empty entities to Form instances.
        Reported by Jean-Baptiste Dusseaut.
      - Fixed implementation of JaasVerifier to provide the User and 
        Roles principals to the JAAS Subject before login and to retrieve
        the User if no one exist and a principal user classname is 
        provided. Contributed by Bruno Harbulot.
      - Fixed bug preventing MessageBodyReader/Writer implementors 
        from being recognized as providers. 
        Contributed by Martin Krasser.
      - Fixed constructor DigestAuthenticator(Context,String,String)
        to properly take into account the "serverKey" parameter.
        Reported by Yang Xudong.
      - Fixed support of inherited annotated methods by ServerResource. 
        Reported by Kevin Pauli.
      - Fixed potential NPE in HttpBasicHelper.
        Reported by Myriam Leggieri        
      - Fixed potential NPE in SpringBeanFinder#getContext() and
        Reported by Thierry Templier.
      - Fixed HttpClient client connector for the Android extension.
      - Fixed conversion bug with annotated methods returning void.
        Reported by Pierre-Yves Ricau.       
      - Fixed bug in DigesterRepresentation#getText() not working as
        expected. Reported by Bruno Harbulot.
      - Fixed bug in OData extension when parsing complex properties.
        Reported by Roger Heim.
      - Fixed Generator class in OData extension when the service URI 
        is actually to be redirected.
      - Fixed bug causing several starts of the HTTP client connector.
        Reported by Matthew Drooker and Arun Kumar Sharma.
      - Fixed instantiation of BufferedInputStream and 
        BufferedOutputStream using the constructor with size. 
        Reported by Matthew Drooker.
      - Fixed optional Authenticator. Reported by Jean-Philippe Steinmetz.
    - Misc
      - Server connectors now display the port they are listening on
        in their start message.  
      - Optimized by a factor 10, the speed of the getStream() method
        in StringRepresentation, using a ByteArrayInputStream.
      - Improved ServerResource and Finder Javadocs with lifecycle 
        information. Suggested by Alex Milowski.
      - Added links from API packages to user guide (wiki).
        Suggested by Alex Milowski.
      - OData Generator now uses the current directory by default
        if none is provided via arguments.
      
- 2.0 Release Candidate 3 (2010-04-23)
    - API changes
      - Replaced MemoryRealm#findRoles(Set<Group>, User) method by
        findRoles(Set<Group>), findRoles(Group) and findRoles(User)
        to clarify contract. Suggested by Brunon Harbulot.
      - Added proxy configuration to the internal client connector 
        (necessary for the sip connector).
      - Added "ftl" extension to MetadataService for FreeMarker 
        templates.
      - Keeped few MediaType constants for the GWT edition in order 
        to reduce size.
    - Bugs fixed
      - Fixed support of parameters with the MediaType class. The 
        name contains the the main and sub types, plus the parameters.
        Reported by Carsten Lohmann.
      - Fixed generation of GET request sent by the internal 
        connector just after a request with an entity.
      - Moved ServletUtils class introduced in RC2 into the 
        org.restlet.ext.servlet package.
      - Fixed potential NPE with the Extractor.
        Reported by Graham Smith.
      - Fixed parsing of "nc" parameter and fixed potential endless 
        loop in HttpDigestHelper. Reported by Mark Drew.
      - Fixed issues preventing multi-threaded usage of ClientResource
        and dynamic client proxies.
      - Fixed concurrency bug with annotated interfaces causing
        405 errors (method not allowed). Reported by Antonio Fiestas.
      - Fixed regression about the method filtering (ignore case).
        Reported by Jean-Baptiste Dusseaut.
      - Fixed bug in HttpDigestVerifier which didn't create the User
        into the request's ClientInfo property. 
        Reported by Bruno Harbulot.
      - Prevented threads to block when other requests's entities are
        not consummed.
      - Allowed to set entity headers even when conditions are not 
        fulfilled with GET and HEAD request.
        Reported by Leigh Klotz.
      - XStream annotations are now automatically detected.
        Suggested by Dan Simpson.
      - Fixed support of HTTPS by the internal client connector.
      - Fixed support of conditions on non-GET methods.
      - Fixed generation of ChallengeResponse instances for DIGEST
        authentication scheme.
      - Allowed Verifier to indicate that an identifier doesn't exist.
      - Fixed internal connector for Android edition.
    - Enhancements
      - Added support of request#onSent and #onResponse callbacks for 
        the net and httpClient extensions.

- 2.0 Release Candidate 2 (2010-03-30)
    - API changes
      - Left an unspecified key stores 'null' to prevent troubles 
        with HTTP client connectors. Contributed by Bruno Harbulot.
      - Deprecated the getters for the keystore-related attributes in 
        each connector. Lets these values be read from the 
        DefaultSslContextFactory (which is initialized with the same 
        attributes as the individual connectors were using).
        Contributed by Bruno Harbulot.
      - User and Role classes now implement java.security.Principal
        interface. Removed UserPrincipal and RolePrincipal classes
        from the JAAS extension. The JaasUtils#createSubject() now
        also adds the ClientInfo#principals entries. 
        Suggested (in part) by Bruno Harbulot.
      - Added ServletUtils class to the Servlet extension with two
        methods to easily retrieve the Servlet request/response.
    - Bugs fixed
      - Fixed HeaderReader#addValues method.
        Reported by Carsten Lohmann. 
      - Fixed the resolver hash model provided by the Freemarker 
        extension when underlying resolvers return TemplateModel 
        values and allowed access to Freemarker configuration shared 
        variables. Reported by sirthias.
      - Fixed the StringWriter implementation for the GWT edition.
        Reported by Kelly McLaughlin.
      - Fixed potential bug with ATOM mappings (customizable feeds 
        feature). Reported by Thomas Conté.
      - Fixed generation of HTML representations for WADL resources.
        Reported by Carsten Lohmann.
      - Fixed formatting of Date instances for the GWT edition.
        Reported by Kelly McLaughlin.
      - Fixed support of latin1 characters in credentials for 
        the HTTP_BASIC scheme.
      - ResourceException caught by UniformResource where not setting
        the response status properly, always using a 500 status code.
        Reported by Tal Liron.
      - Fixed issues with local conversions using RIAP for example.
        Now, the object converters (default, JAXB, JiBX, XStream, 
        Jackson and GWT) know about to retrieve the wrapped local
        object without serializing/deserializing it.
        Reported by Valdis Rigdon.
      - Fixed support of latin1 characters in writing headers.
      - Internal client connector was always pipelining requests.
      - Fixed support of generic types and arrays for the GWT edition.
      - Fixed handling of Cookies. Reported by Rob Heittman.
      - Fixed potential NPE in DimensionReader class.
        Reported and contributed by Rob Heittman.
      - Fixed parsing of multi valued "www-authenticate" headers.
      - Fixed redirecting the internal server connector to file URIs.
    - Misc
        - Updated Simple framework library to version 4.1.20.
                
- 2.0 Release Candidate 1 (2010-03-15)
    - API changes
        - Added a Router#getMatchingMode(Restlet) method which returns
          the default matching mode for the Router, except for target 
          that are instances of Directory or Router, where the 
          MODE_STARTS_WITH value is returned.
          Reported by Rhett Sutphin and Masaki Sudo.
        - Added Router#detach(Class) method.
          Suggested by Martin Kubincanek.
        - Added conveniency constructors to Atom classes.
        - Added new Relation constants in the Atom extension.
        - MediaType#getParent() now returns the same media type without
          parameters if some parameters are present.
        - Refactored Redirector. Renamed MODE_CLIENT_DISPATCHER into
          MODE_SERVER_OUTBOUND and MODE_SERVER_DISPATCHER into
          MODE_SERVER_INBOUND. Renamed redirectClientDispatcher() into
          outboundServerRedirect(). Renamed redirectServerDispatcher()
          into inboundServerRedirect(). Expose serverRedirect() method
          as protected.
        - Engine's BioUtils#write(InputStream, OutputStream) method was 
          renamed to copy(...).
        - Removed all Client#get/post/put/... methods not present in 
          Restlet 1.1.
        - Refactored XML extensions to share XPath evaluation logic.
          Added XmlRepresentation#getInputSource() abstract method.
        - Removed dependency from JAXB and JiBX extensions to the
          XML extension. JaxbRepresentation and JibxRepresentation 
          aren't extending XmlRepresentation anymore due to the small
          added value.
        - Deprecated JaxbRepresentation#getSaxSource() method and added
          the getJaxbSource() method instead.
        - Deprecated JaxbRepresentation#getInputSource() and 
          JibxRepresentation#getInputSource() methods.
        - Added TransformRepresentation#toSaxSource(),
          transform(Source, Result) and write(Result) methods for 
          easier extension.
        - Added default constructor to SaxRepresentation.
        - Renamed org.restlet.ext.xml.NodeSet into NodeList as it is
          really a List<Node> implementation.
        - Deprecated the XmlRepresentation#evaluate(...) method,
          using the get*(String) methods is easier.
        - Deprecated the XmlRepresentation#putNamespace(...) method.
        - Added an XmlRepresentation#setNamespaces(Map<String, String>) 
          method.
        - CLAP scheme now supports a default authority corresponding to
          the "class" authority for shorter URIs.
        - Added LocalReference#createClapReference(int, Package) and
          createClapReference(Package) static methods to help building
          CLAP URIs.
        - StatusService#getStatus(Throwable, Request, Response) doesn't
          log an error anymore.
        - Added a Transformer#canTransform(Representation) method to
          prevent systematic transformation. Returns true by default.
        - Deprecated JaxbRepresentation#getInputSource() method.
        - Made JaxbRepresentation#getContext() method public.
        - Deprecated JibxRepresentation#encoding property in favor of 
          the parent Variant#characterSet property.
        - Added JacksonRepresentation#setObject(T) method.
        - Renamed JsonRepresentation#indentSize into indentingSize.
        - Deprecated JsonRepresentation#toJson*() method with logic
          similar to equivalent getJson*() ones.
        - Added new constructors for FreeMarker's TemplateRepresentation
          using a default Configuration instance. Also added getter and
          setter for the "template" variable.
        - Renamed Jetty parameter "lowResourceMaxIdleTimeMs" into
          "lowResourcesMaxIdleTimeMs".
        - Added Expectation data class and Request#expectations property
          to support "100-continue" headers to optimize sending of large
          request entities.
        - Renamed Variant#identifier property into "locationRef" to more
          close match HTTP terminology. 
        - Added org.restlet.data.RecipientInfo class and property 
          Message#recipientsInfo, supporting the "Via" HTTP header.
    - Enhancements
        - UniformResource#doCatch now extract the cause exception from
          caught ResourceException instance for easier debugging.
        - The Request#abort() method is now supported by the Simple,
          Grizzly, Netty, Jetty and the internal HTTP server.
          Reported by Nicolas Rinaudo.
        - Response#onSent callback now called by other HTTP server than
          the internal one.
        - Added BioUtils.delete(...) methods to delete files and 
          directories, recursively if needed, while working around
          Windows file locking issues.
        - Moved up the documentation on Resolver data model for Restlet
          calls at the top of Javadocs. Suggested by Tal Liron.
        - SSL session IDs are now provided as an attribute of requests.
          The attribute name is "org.restlet.https.sslSessionId".
          Suggested by Stefan Meissner and contributed by Bruno Harbulot.
        - Added support of projections to the OData extension.
        - Added support of server-paging to the OData extension.
        - Added support of media link resources (blobs) to the OData 
          extension.
        - Added support of row count to the OData extension.
        - Added support of customizable feeds to the OData extension.
        - Added support of generation and parsing of request/response 
          version header to the OData extension.
        - Added support of service operations to the OData extension.
        - Added support of SetLink method to the OData extension.
        - Added support of NTML secured services to the OData extension.
    - Bugs fixed
        - Fixed compilation issue in the ClientResource class for the
          GWT edition. Reported by Laszlo Megyer. 
        - Fixed internal client connector that removes the query part 
          of the target resource reference.
          Reported by Laurent Rustuel.
        - Fixed internal connector that was not setting properly the 
          ServerInfo. Reported by Laurent Rustuel.
        - Fixed regression when tunnelling user agent properties.
          Reported by Fabian Mandelbaum.
        - The 0 value of the "TimeToLive" parameter for the client 
          connectors was badly taken into account when setting the 
          expiration date. Reported by Fabian Mandelbaum.
        - Issue with line breaks that were removed when PUTting 
          a file. Contributed by Daniel Truemper.
        - Precondition check was wrong for 'if-unmodified-since' if
          dates were equals. Reported by Andreas Schneider.
        - Updated MANIFEST.MF files to not declare the "Uses" fields
          for the exported packages. Reported by Bryan Hunt.
        - Fixed MediaType#toString(). Reported by Carsten Lohmann.
        - WadlApplication wasn't exposing the default route of routers.
          Reported by John Wismar.
        - WadlApplication wasn't exposing the default route of routers.
          Reported by John Wismar.
        - Fixed usage of Component configured by XML inside servlet 
          containers. Reported by Zsolt Czinkos.
        - Allowed Redirector to plug to another protocol.
          Reported by Tal Liron.
        - Fixed if-none-match conditions ("*" value).
        - Fixed computation of the ServerResource#rootRef member.
          Reported by Nirav Shah.
        - Fixed bug using annotated interfaces declaring simply a "GET"
          method in GWT client. Reported by Xavier Mehaut.
        - Client HTTP connectors were not automatically resolving 
          relative URI references with a given base URI.
          Reported by Rickard Oberg.
        - Fixed conversion issue when using XstreamRepresentation and
          similar classes in annotated methods' signature.
        - Fixed Reference#decode and encode methods for the GWT edition.
          Reported by Harald Pehl.
        - Fixed potential threading issues on Message/Request/Response
          regarding collections in asynchronous processing mode.
          Based on feed-back from Tim Peierls.
        - Fixed missing parsing of the "Accept-Ranges" header to 
          populate the ServerInfo#isAcceptingRanges() property.
    - Misc
        - Removed Representation#getDigester* methods. There is no 
          reason to favor this way to wrap a Representation.
        - Updated db4o library to version 7.12.132.
        - Updated Grizzly library to version 1.9.18i.
        - Updated Spring framework library to version 3.0.1.
        - Updated GWT library to version 2.0.3.
        - Updated Jackson library to version 1.4.3.
        - Updated Jettison library to version 1.2.
        - Updated Jetty library to version 7.0.1.v20091125.
        - Updated FreeMarker library to version 2.3.16.
        - Updated JiBX library to version 1.2.2.
        - Updated JUnit library to version 4.8.1.
        - Updated Simple framework library to version 4.1.19.
        - Updated SLF4J library to version 1.5.11.
        - Updated Apache Commons Codec library to version 1.4.
        - Updated Apache Commons Collections library to version 3.2.1.
        - Updated Apache Commons DBCP library to version 1.3.
        - Updated Apache Commons Lang library to version 2.5.
        - Updated Apache Commons Pool library to version 1.5.
        - Updated Apache HTTP Client library to version 4.0.1.
        - Updated Apache HTTP MIME library to version 4.0.1.
        - Updated Apache Lucene library to version 2.9.2.
        - Updated Apache Solr library to version 1.4.0.
        - Updated Apache Tika library to version 0.6.
        - Updated Apache Velocity library to version 1.6.3.
                
- 2.0 Milestone 7 (2010-01-29)
    - API changes
        - Added more specific Validator#validatePresence and 
          validateFormat methods.
        - Added Protocol#SIP and SIPS constants.
        - Added Response#abort() and Request#abort() methods.
        - Added Response#commit() and Request#commit(Response) methods
          to support provisional responses and asynchronous replies.
        - Added Response#autoCommitting and committed boolean 
          properties for asynchronous processing of responses.
        - Added Status#isGlobalError() methods for 6xx range 
          (SIP protocol).
        - Removed "onContinue" property on Message introduced in 
          2.0 M6 until real use cases are identified. 
        - Added Protocol#technicalName property to indicate the actual
          name used on the wire, such as "HTTP" for Protocol#HTTPS.
        - Added Request#maxForwards property mapping to the HTTP header
          "Max-Forwards".
        - Renamed Context#verifier and enroler to defaultVerifier and
          defaultEnroler.
        - Added lifecycle support to Realm and Component#realms.
        - Refactored Component with an extensible "services" property
          and added a new ServiceList class for factorization purpose.
        - Moved Response#onReceived to Request#onResponse.
        - Added protocol helpers that registers protocols's methods.
        - Added MediaType.APPLICATION_XMI_XML constant and "xmi" extension
          into MetadataService.
        - Client preferences were not taken into account with annotated
          methods returning beans with multiple variants available.
        - Added new Server(Protocol) constructor.
        - Renamed Application#findRole(String) into getRole(String).
        - Renamed Component#findRealm(String) into getRealm(String).
        - Renamed Extractor#extract*() into extractFrom*().
        - Component#main() now expects a full URI reference instead of
          a local file path for more flexibility (CLAP and HTTP URIs).
        - Removed the Simple, Jetty, Netty extensions from the Java EE
          edition of Restlet.
        - Renamed ServletAdapter#target property into "next".
     - Enhancements
        - Added a new Jackson extension, with transparent conversion
          between JSON representations and objects.
          Suggested by Tal Liron.    
        - Adjusted scoring in DefaultConverter for Form objects and
          in XstreamConverter for objects with unspecified target
          media type.      
        - ServerResource now rejects unconvertible parameters with
          a 415 status.
        - ServerResource now supports empty POST and PUT requests.
        - Added converter of FreeMarker Template objects in the 
          FreeMarker extension.
        - Added converter of Velocity Template objects in the 
          Velocity extension.
        - Added converter of Graph objects in the RDF extension.
        - Added converter of Syndfeed objects in the ROME extension.
        - Added converter for the JiBX extension.
        - Added converter for Message objects to representations in the
          JavaMail extension.
        - Added converter for WebRowSet, JdbcResult, ResultSet objects
          to representations in the JDBC extension.
        - Added support of the Data Services extension in Android.
        - Added Restlet object serialization for the GWT edition, 
          leveraging GWT's deferred binding mechanism and GWT-RPC
          serialization format.
        - Added a context's attribute to requests coming from the 
          Servlet extension: "org.restlet.ext.servlet.offsetPath". 
          Proposed by Carsten Lohmann.
        - Added support for additional marshalling properties to the 
          JAXB extension.
        - Added support of Chrome browser when tunneling with user 
          agent. Suggested by Jonathan Hall.
        - Added support connection timeout for Apache HTTP client.
          Contributed by Sanjay Acharya.
        - Replaced the default HTTP connectors (StreamClientHelper
          and StreamServerHelper) with a new implementation supporting 
          persistent connections, provisional responses (1xx status),
          asynchronous request and response handling (via the 
          Response#commit(), Request#onReceived() and Message#on*() 
          callback methods). Significant feed-back from NetDev and 
          especially John Logdson.
        - Improved routing log by also displaying the next Restlet
          of the selected route in addition to the URI template.
          Suggested by John Logdson.
        - Implemented Request#toString() and Response#toString() to
          display something similar to HTTP request and status lines.
          Suggested by John Logdson.
        - In the default access logs, the identifier of the user
          attempting to authenticate is now logged.
          Suggested by John Logdson.
        - VirtualHost#serverPort is now matched against the request's
          protocol default port if the ServerInfo#port value is 
          unspecified (-1).
        - Dynamic client proxies created from ClientResource#wrap(Class)
          or create(Class) or getChild(Class) or getParent(Class) 
          methods now automatically implement the ClientProxy interface
          and can therefore retrieve the underlying ClientResource
          instance if needed. Based on feed-back from John Logdson.
        - Added support of requests pipelining.
        - Added Service#context property.
        - Added Component(String) constructor for XML configuration.
        - Completed XML configuration XSD scheme to match more of Restlet API.
        - Added LogService#logPropertiesRef to easily read log properties from
          a URI at start time.
        - Added setDefaultAttachment() method to SpringHost and SpringRouter.
        - Updated component configuration parsing logic.
    - Bugs fixed
        - Fixed issue in DomRepresentation with createTransformer()
          method. Fix contributed by Remi Dewitte. 
        - Validator#validate() method was protected instead of public.
          Reported by Ben R. Vesco.
        - Fixed issue in Validator causing an error when a non 
          required attribute is not found. 
          Reported by Laurent Rustuel.
        - Fixed NPE when parsing "Date" header in the GWT edition.
        - Fixed issue with automatic setting of 204 when no entity
          was available and the status was 200. The logic has been
          moved from the HTTP server connectors to the ServerResource.
          Reported by Bruno Harbulot.
        - Relaxed tunneling of user agent string.
          Reported by Erick Fleming and Fabian Mandelbaum.
        - Fixed potential infinite loop when getting the Engine 
          instance.
        - Fixed RepresentationContext#getCharacterEncoding method in 
          the fileupload which did not return the character set.
          Reported by Carsten Lohmann.
        - Fixed potential NPE in engine's LogFilter class.
          Reported by Jeff Ramsdale.
        - Fixed potential BufferOverflowException in 
          NbChannelOutputStream.
          Reported by David Fogel and Iestyn Evans.
        - Fixed internal client connector which didn't refresh entity 
          properties from headers values.
          Reported by Taylor Cowan.
        - Allowed to set the DATE header.
        - Fixed support of chunked response in the Netty connector.
          Reported by Laurent Rustuel.
        - Removed ServletLogger adapter for the GAE edition due to the
          fact that the Logger class cannot be inherited.
          Reported by Cedric Hurst.
    - Misc
        - Updated Simple framework library to version 4.1.17.
        - Deprecated Message#getEntityAs* methods.
        - Updated GWT library to version 2.0.
        - Updated WADL extension according to new WADL specification.
        - Improved thread safety of MapVerifier.
          Reported by Tim Peierls.
        - Updated Apache HTTP Client to version 4.0.1.
        
- 2.0 Milestone 6 (2009-11-20)
    - API changes
        - Renamed ChallengeScheme#HTTP_MS_SHAREDKEY into 
          HTTP_AZURE_SHAREDKEY and HTTP_MS_SHAREDKEY_LITE into 
          HTTP_AZURE_SHAREDKEY_LITE.
        - DataServices.Session#getMetadata() now returns on Object 
          to prevent link to internal class.
        - Upgraded the "org.restlet.ext.httpclient" extension to
          leverage Apache HTTP Client 4.0. WARNING: some parameters 
          were renamed due to API changes.
        - Refactored for simplification the security API introduced 
          in previous Restlet 2.0 milestones. 
           - The Organization class was removed and its "rootGroups" 
             and "users" properties were moved to MemoryRealm.
           - The Permission class was removed as it isn't necessarily
             the best way to enforce fine grained authorization. 
           - The RealmService class was removed and the "realms" 
             property moved to Component.
           - The ClientInfo#subject property was replaced by 
             "user : User", "roles : List<Role>" and "principals" to 
             remove the JAAS dependency.
           - A new JAAS extension was added, where the JaasVerifier, 
             DefaultCallbackHandler, UserPrincipal and RolePrincipal
             classes where moved.
           - Verifier now uses ClientInfo as parameter instead of
             Subject.
           - Added a "name" property to Realm and a findRealm(name)
             to Component.
           - Added JaasUtils class with a createSubject(ClientInfo)
             static method. Suggested by Rickard Oberg.
           - Enroler and Verifier are now interfaces.
             Suggested by Rickard Oberg.
           - Added new Digest#ALGORITHM_HTTP_DIGEST constant for A1 
             field as specified in RFC 2617.
           - Renamed HttpDigestAuthenticator into a more generic 
             DigestAuthenticator.
           - Made the HTTP DIGEST work again on the server-side, via 
             DigestAuthenticator. Issue reported by Carsten Lohmann.
           - Refactored engine's AuthenticatorHelper to facilitate the
             support of alternative server-side schemes such as S3.
        - Renamed RestletSolrQueryRequest to SolrRestletQueryRequest.
        - Renamed RestletSolrParams to SolrRestletParams.
        - Renamed Application#getRole() into findRole().
        - Added "next" property to Server and deprecated "target" for
          more naming consistency with filters.
        - Added conveniency constructors to Server.
        - ResourceException is now a RuntimeException to facilitate its
          usage with dynamic proxies created by ClientResource#create()
          static methods and wrap() methods.
        - UniformResource#doCatch() now logs throwable with different
          levels depending on the type of errors.
        - Added additional methods like post(Object, MediaType) that
          return a Representation to ClientResource.
        - The Router class now has those default values:
           - "defaultMatchingMode" : MODE_EQUALS instead of STARTS_WITH
           - "defaultMatchQuery" : false
           - "routingMode" : FIRST instead of BEST
          Note that for easier configuration, the router detects the
          attachment of Directory instances and automatically uses a 
          MODE_START_WITH mode in this case.
        - Added "org.restlet.ext.crypto" extension including many digest
          related features such as Amazon S3 and Azure client HTTP
          authentication. This removes the dependency from the Restlet
          core to javax.crypto.
        - Improved the Resolver class to expose call attributes as 
          objects instead of string for easier integration with template 
          engines such as FreeMarker.         
        - Moved the OAuth extension to the incubator as it needs to go 
          through a complete redesign with proper documentation.
        - Renamed routing mode constants of Router to follow the 
          MODE_*_MATCH pattern such as MODE_BEST_MATCH instead of BEST.
          Deprecated older values. Suggested by Arjohn Kampman.
        - Added asynchronous support in the Restlet API for all editions.
          New "onContinue" and "onSent" callback properties added to the
          Message class. New "onReceived" callback property added to the
          Response class. Exposed those properties in the ClientResource
          and ServerResource classes. Added asynchronous methods to the
          Client class like the GWT edition already had. 
        - Refactored the GWT edition to be more inline with the other 
          editions. Especially, we ported the ClientResource class.
        - Added ClientInfo#from property corresponding to the "From" HTTP
          header.
        - Added Response#age and #retryAfter properties corresponding to 
          the "Age" and "Retry-After" HTTP headers.
        - Added Message#date property corresponding to the "Date" HTTP 
          header. Suggested by Carlos Alexandre Moscoso.
        - Added org.restlet.data.Warning class and Message#warnings 
          property corresponding to the "Warning" HTTP header.
        - Added HTTP warning status codes to the Status class.
        - Added org.restlet.data.CacheDirective class and 
          Message#cacheDirectives property corresponding to the 
          "Cache-Control" HTTP header.
        - Added support of CacheControl header.
        - Properly exposed HTTP Digest properties in the 
          ChallengeRequest and ChallengeResponse classes. Added a
          parent ChallengeMessage class.
        - Added org.restlet.data.AuthenticationInfo class to support
          preemptive HTTP DIGEST authentication. 
          Initially contributed by Kelly McLaughlin.
        - Added support of the If-Range header.
        - Translated the packages of the gwt edition from 
          org.restlet.* to org.restlet.gwt.*.
    - Bugs fixed
        - Fixed bug when the deprecated method "createRoot" is 
          implemented instead of the "createInboundRoot".
          Reported by Fabian Mandelbaum.
        - ServerResource#getVariants() now returns an empty list
          instead of null when no annotation is present.
          Reported by Tal Liron.
        - Annotated methods returning a String, a StringRepresentation
          or a Reader were only exposing a "text/plain" variant even
          though most other media types are acceptable like JSON, XML.
        - Fixed bug in ServerResource when content negotiation was
          disabled, all non standard methods where invoking the OPTIONS
          method. 
        - Fixed ClientResource to throw ResourceException upon error
          as specified in Javadocs. Reported by Patrick Logan.
        - ClientResource was not checking the "followRedirects"
          property.
        - Fixed bug when sending entities with the GWT edition.
        - Fixed bug when normalizing References with the GWT edition.
          Reported by Guido Schmidt.
        - Fixed OSGi dependency issue with the JAX-RS extension.
          Reported by Stefan Maassen.
        - The rootRef attribute of a request was not set when handled by the 
          Component's internal router.
          Reported by Emily Toop.
        - Fixed bug with conditional methods in ServerResource when no
          variant is available.
        - ServerServlet life cycle is now correctly propagated to the 
          embedded Restlet component and applications.
          Reported by Rickard Oberg.
        - Fixed issue with OSGi bootstrap that failed to register the
          converters. Reported by Adam Harrison.
        - Fixed NPE in ChallengeCallbackHandler when challenge response
          is null. Reported by Georges-Etienne Legendre.
        - Fixed NPE in the dataservices extension due to bad parsing of
          referential constraints.
        - Fixed potential exceptions raised when an XML document is 
          parsed using the default characterset instead of the parsed 
          document's one.
        - Fixed bug that prevents the SimpleWeb server connector to 
          retrieve the values of identical headers in the request.
          Reported by Arjohn Kampman.
        - Fixed update of entities in the dataservices extension, due 
          to the generation of a wrong entity.
          Reported by Simon Guest.
        - Fixed issues with SSL test cases.
          Contributed by Bruno Harbulot.
        - Fixed bug with the setIdent method of class DomRepresentation.
        - Fixed manifest files varying by editions.
          Reported by Thierry Templier.
        - Fixed bug in OSGi activator causing default converters not to
          be registered. Reported by Bryan Hunt.
        - Fixed SpringBeanRouter and SpringBeanFinder to ensure that the 
          context is available in the target resources. 
          Reported by Dustin Jenkins.
        - Fixed ClassCastException in the 
          Series#getValuesArray(String, boolean) method.
          Reported by Arjohn Kampman.
        - Updated SpringFinder Javadocs to mention the need to use
          create() as a lookup-method instead of createResource().
          Reported by Kevin Pauli.
    - Enhancements
        - Improved JAXB converter. Contributed by Sanjay Acharya.
        - Added library jcip-annotations 1.0.
        - ServerSevlet now automatically supports the declaration of 
          several adapters in the same web.xml. Reworked the Javadocs
          to encourage usage of Servlet init parameters instead of
          context parameters.
        - Refactored connector extensions to move implementation 
          classes in "internal" packages hidden from the Javadocs.
        - The default status page and directory listings are now using
          a sans-serif font.
        - Add support for annotations values separated by a ":" and "|"
          characters. Suggested by Bob Resendes.
        - Added Netty extension containing an HTTP server connector 
          based on this NIO client/server framework developed at JBoss.
          Contributed by Gabriel Ciuloaica.
        - Added support for result set paging in JDBC client connector.
          Contributed by Warren Janssens.
        - Restlet#name property now uses toString() as a default value
          and Filter uses this property in its log traces.
        - Improved Context#getLogger() to cover cases where the class's
          canonical name is empty like for anonymous classes.
        - The FreeMarker TemplateFilter is now more flexible with a
          createDataModel(Request, Response) method that can be 
          overridden and a "dataModel" property with getter and setter.
        - Life cycle events are now propagated in all the Restlet 
          routing system (filters, routers, virtual hosts, etc.).
          Suggested by David Fogel
        - Added a LoggerFacade class and a related property on the 
          Engine to allow the replacement of the default JULI logging 
          mechanism. 
        - Added an SLF4J extension with a LoggerFacade for the Restlet 
          Engine providing an optimal bridge to SLF4J.
        - Added HTTP/HTTPS proxy configuration support to the Apache
          HTTP Client 4.0 extension. Contributed by Bruno Harbulot.
        - Added the Net client extension to the Android edition 
          (without the FTP connector though).
        - Response with a 200 (success, ok) status and no content now 
          log a fine trace instead of a warning and automatically 
          change the status to 204 (success, no content).
        - Added support of the Warning header.
        - Added support of the ranges in the GWT edition.
        - Added support of the Authentication-Info header.
        - Added support of "inline" disposition type in the 
          Content-Disposition header. This is based on the value of the
          "downloadable" attribute of the Representation class.
          Proposed by Paul Austin.
        - Added support of automatic redirections by instances of 
          ClientResource for unsafe methods.
    - Misc
        - Added Velocity template in the org.restlet.example project.
          Reported by Ben Vesco.
        - Updated Apache Commons Logging to version 1.1.1.
        - Updated Simple framework library to version 4.1.15.
        - Updated GWT to version 1.7.1.
        - Updated Jetty to version 7.0.0.

- 2.0 Milestone 5 (2009-09-28)
    - API changes
        - Moved Message, Request and Response classes from the
          org.restlet.data to the org.restlet package as they are
          core artifacts of the API used in Uniform interface.
        - Deprecated Redirector.MODE_DISPATCHER to introduce support
          for MODE_CLIENT_DISPATCHER and MODE_SERVER_DISPATCHER.
        - ServerResource#getPreferredVariant() is now protected.
        - Moved Template and Variable classes from "org.restlet.util"
          to "org.restlet.routing" package.
        - Moved Restlet#handle(Request) method to Client class.
        - Added "inboundRoot" and "outboundRoot" properties to 
          Application and deprecated the "root" property and the 
          createRoot() method. The outbound root, is the hook for 
          client-side routing and points by default to the context's 
          client dispatcher, but can be changed by the user to do 
          custom routing/filtering. New createInboundRoot() and 
          createOutboundRoot() methods can be overriden.
        - The ServerResource#getVariants() method now returns a 
          modifiable list of variants instead of a map.
        - Refactored the ServerResource class so that annotated methods
          are invoked through the regular get(), get(Variant), post(),
          post(Variant) methods instead of using a separate call path.
        - ServerResource now has protected getConverterService() and
          getMetadataService() methods.
    - Bugs fixed
        - Added Simple extension to the JEE edition.
          Reported by Dustin Jenkins.
        - Fixed bug detected in the CharacterSet class when running in 
          the MacOS context. Reported by John Logsdon.
        - Removed the TaskService from the GAE edition as we are not
          allowed to create threads. Reported by Olivier Bruchez.
        - Fixed POM dependencies groupId. Reported by Remi Dewitte.
        - Fixed potential bug with RangeInputStream causing 100% CPU 
          utilization with java NIO.
          Reported and contributed by Tal Liron.
        - Router#attachDefault() method now relies on the protected
          createRoute() method. Reported by Rob Heittman.
        - Fixed potential synchronization issues.
        - Fixed concurrency issue with annotated methods that could 
          result in wrong methods invoked. Reported by John Logsdon.
          Isolation of issue by Filip Hanik from the Tomcat team.
        - Improved robustness of internal HTTPS client with trust 
          stores. Suggested by Bruno Harbulot.
        - Fixed bug that would prevent the GWT callback from being
          called if some exception occured.
        - Fixed integration issue with Tomcat due to the GC releasing
          Restlet representations, indirectly closing the underlying
          Tomcat buffer which could have been reused for another 
          request, causing unexpected socket reading issues.
          Initially reported by Denys Hryvastov.
        - Fixed issues preventing SpringFinder and SpringBeanFinder
          from working correctly with ServerResource subclasses.
          Reported by Evgeny Shepelyuk with contributions to the 
          solution by Rhett Sutphin.
        - Fixed bug in CopyOnWriteArrayList emulation class causing
          the Client helper to not being created in compiled mode. 
          Reported by Guido Schmidt.
        - Added NPE check in ServerResource in getAvailableVariants().
          Reported by Bob Resendes.
        - Added NPE check in MapVerifier.getSecret().
          Reported by Carsten Lohmann.
        - Added test to prevent class cast exception in Variant#equals.
          Reported by Patrick Logan.
        - Fixed GAE compilation issue in ByteUtils.getStream() method.
          Contribution by Marcelo Ochoa.
        - Fixed issue with redirections in first resource example.
          Reported by Philippe Mougin.
        - Fixed issues with response.getEntity().getText() in the GWT edition.
          Reported by Guido Schmidt.
     - Enhancements
        - Added support of the "xml:base" attibute when parsing Atom 
          Publishing documents.
        - Updated Grizzly to version 1.9.18b.
        - Updated FileUpload to version 1.2.1.
        - Updated JavaMail to version 1.4.2.
        - Updated JAXB RI to version 2.1.12.
        - Updated JSON library to version from 2009/08/16.
        - Updated Lucene to version 2.4.1.
        - Updated Tika to version 0.4.
        - Updated OAuth library to version from 2009/06/17.
        - Updated Velocity to version 1.6.2.
        - Updated JiBX to version 1.2.1.
        - Updated db4o to version 7.10.96.
        - Updated Jetty to version 7.0 RC6. Upgraded the Jetty
          extension: replaced "headerBufferSize" parameter by
          "requestHeaderSize" and "responseHeaderSize" parameters.
          Removed "lowThreads" parameter no longer available. 
        - Updated the Javadocs of the API to indicate the mapping 
          between properties/classes and HTTP headers.
        - Updated the "Server" HTTP header returned by default to 
          "Restlet-Framework/xxx"
        - The thread pool of Jetty servers can now be configured
          with Spring. Reported by Evgeny Shepelyuk. 
        - Added support for the "xsl" extension in MetadataService.
          Fixed potential NPE. Contributed by Fabian Mandelbaum.
        - Added JAXB converter helper. Contributed by Sanjay Acharya.
        - The ConverterService now passes a preferred variant to the
          selected converter helper when no one is provided by the
          client. Reported by John Logsdon.
        - Added extension "dataservices" which is a client extension 
          of the ADO.NET Data Services technology provided by 
          Microsoft.

- 2.0 Milestone 4 (2009-08-06)
    - Bugs fixed
        - Improved support for the RFC 3339 date format which was 
          limited due to SimpleDateFormat. Added InternetDateFormat.
          Based on a contribution from Frank Hellwig.
        - Fixed bug in date format generated by Atom feeds.
        - The internal HTTP server now shuts down gracefully.
        - Added a "gracefulShutdown" parameter on the Jetty connector.
          Suggested by Arjohn Kampman.       
        - Registration of HTTP and JavaMail clients was missing in the
          GAE edition. Reported by MyloC.
        - XStreamRepresentation didn't register JettisonMappedXmlDriver
          correctly. Necessary for proper deserialization.
          Reported by Gabriel Ciuloaica.
        - Fixed and completed SecretDigestVerifier class.
          Reported by Thomas Cozien.
        - Returned error status when a client sends a request although 
          no client connector supporting this request's protocol is 
          registered. Reported by Avi Flax.
        - Fixed bug in Template class when the pattern is updated.
        - Fixed regression with Directory causing a 405 status to be
          returned for conditional GETs. Reported by Serge Ilyn.
        - Fixed issue with parsing of AWS authentication HTTP headers. 
          Reported by Stuart MacKay.
        - Fixed infinite loop when instantiating a Form with a query 
          in the GWT extension. Reported by Olivier Monaco.
        - Fixed issue with annotated method returning a representation
          and whose metadata where ignored (always returning the
          "octet/stream" media type for example). 
          Reported by Fabian Mandelbaum, David Fogel.
        - Added implementation of the "exhaust" method in 
          DigesterRepresentation class.
        - Added default DomRepresentation constructor.
        - Form now accepts extra "&" characters in query strings.
          Reported by Andrew Moore.
        - Fixed encoding and decoding of LocalReference#normalizePath() 
          and localizePath() methods. Contributed by Bruno Harbulot.
        - Fixed potential NPE in ServerResource and AnnotationUtils. 
          Reported by Schley Andrew Kutz.
        - Fixed OSGi imports for org.restlet.ext.xml.
          Reported by Nicolas Janicaud.
        - Fixed potential NPE in ComponentHelper#checkVirtualHost.
          Reported by Matt J. Watson.
        - Fixed bug in XstreamRepresentation failing to use the DOM
          XML driver. Reported by Florian Georg.
        - Fixed bug in converter helper selection algorithms.
          Reported by John Logsdon.
        - Fixed bug causing subsequent requests to annotated 
          ServerResource subclasses to be forbidden.
          Reported by John Logsdon.
        - Fixed issue with Macintosh character set. Java returns it as
          MACROMAN, while IANA only accepts MAC or MACINTOSH. Added
          translation logic to CharacterSet class. 
          Reported by Bruce Cooper.
        - Fixed bug in ClientResource#options() method not issuing an
          OPTIONS HTTP request. Reported by Bob Resendes.
        - Fixed issues in Xstream converter with primitive types.
        - HTTP response where returning duplicate media type 
          parameters. Reported by Evgeny Shepelyuk.
        - Added Status#isRecoverableError() method.
        - Added "retryOnError", "retryDelay" and "retryAttempts" 
          properties on ClientResource to try to recover from some
          communication errors.
        - ServerResource now rejects unknown entities with a 415 
          status. Suggested by Sylvain Pajaud.
        - Fixed bug with annotated methods returning a representation.
          Metadata were always overridden. Reported by Joe Nellis.
        - The "Location" header must contain an absolute URI.
          Reported by Simon Reinhardt.
     - Enhancements
        - Upgraded Jetty library to version 6.1.18.
        - SpringServerServlet nows gets its component fully configured,
          with a default WAR client and parameters copied.
          Reported by Dustin N. Jenkins.
        - Added Variable.URI_QUERY_PARAM type to match query parameter
          names or values. Suggested by John Wismar.
        - ServerServlet nows copies the ServletContext into a special
          "org.restlet.ext.servlet.ServletContext" attribute of both
          the Component's context and the Application's context.
        - Added logging capabilities to the Router classes via a new
          protected log(Route) method.
        - Directory listings now correctly display a trailing slash for
          directories. Suggested by Aron Roberts.
        - Load only once the accept.properties file used by the 
          TunnelFilter instance.
        - Load only once the agent.properties file used to populate 
          ClientInfo instances.
        - SpringFinder and SpringBeanFinder now support the creation of 
          resources based on ServerResource.
        - SpringRouter and SpringBeanRouter now support the creation of 
          resources based on ServerResource.
        - Refactored content negotiation to take into account all 
          dimensions (language, media type, character set and encoding).
        - Improved metadata handling for local entities (files, zip,
          clap, etc.).  
        - Added Variant#includes() method.
        - Significantly improved converter service implementation. Now
          converter helpers support affinity scoring.
        - HTTPS connectors now reuses the keystore password as the key
          password if no specific one is defined. Supports keystore
          default behavior.
        - Added FTP client connector based on JDK's URLConnection in 
          our existing "org.restlet.ext.net" extension. This connector
          supports login/password setting via ChallengeResponse and the
          new ChallengeScheme.FTP_PLAIN. This connector is only capable 
          to handling GET methods.
        - Added RdfClientResource that can easily navigate the Web of
          data. Can follow linked resources and linked literals.
        - Added support of inline content for link tags.
        - Added getStatus(Throwable, UniformResource) method to 
          StatusService. Suggested by John Logdson.
        - Added doCatch(Throwable) method to UniformResource.
          Suggested by Schley Andrew Kutz.       
        - Added CharacterSet#WINDOWS_1252, MACINTOSH and many
          ISO_8859_* constants.
        - Added new extensions to MetadataService:
           - "ascii" for CharacterSet#US_ASCII)
           - "latin1" for  CharacterSet#ISO_8858_1 
           - "mac" for CharacterSet#MACINTOSH
           - "utf8" for CharacterSet#UTF_8
           - "utf16" for CharacterSet#UTF_16
           - "win" for CharacterSet#WINDOWS_1252
        - Added converter selection traces. Suggested by John Logdson.
        - Communication error from HTTP clients are now logged at the
          FINE level instead of WARNING.
        - The JAX-RS extension now works on Google App Engine.
          Fixes contributed by Martin Krasser.
        - Added doHandle(Restlet next, Request, Response) method on the
          Router class that can be overriden to do some processing that
          is common to any route selected. Suggested by John Logdson.
        - Fixed behaviour of ServerResource. When non existing a 404 
          status should be returned for safe method. 
          Reported by Robert Hyerle.
        - The internal HTTP server now looks up system properties for 
          SSL configuration as a fall-back.
        - The engine now catches all exceptions and even throwables
          (suggested by Marcelo Paternostro) that occur when trying to
          register helpers.
        - UniformResource#doCatch now logs at INFO level all exceptions 
          and errors caught.
        - The JAX-RS extension now leverages the new ConverterService.
          For example you can now leverage the converter of the XStream
          extension for better serialization to JSON than the existing
          JSON provider based on the more limited JSON.org library.
          Reported by Juergen Zimmermann.
        - Added extension based on ROME library to support several 
          versions of syndication feed formats RSS and Atom.
          Contributed by Tal Liron.
        - Fully automated the port of Restlet to each edition (GAE, 
          GWT, Android, JSE and JEE). Using a custom Restlet Forge
          mechanism. Conditional compilation mechanism suggested by
          Philippe Mougin.
    - Breaking changes
        - The default language, defined in MetadataService is now based
          on the JVM's default locale, instead of English/US.
    - API changes
        - Added client and server RIAP connectors.
          Suggested by John Logsdon and Nirav Shah.
        - Added ClientInfo#getPreferredLanguage(), 
          getPreferredMediaType(), etc. methods.
          Suggested by Jonathan Hall.
        - Uniform has been trimmed to a single handle(Request, Response)
          method and converted to an interface. The other methods have
          been moved to the Client class. The handle(Request) method 
          has been moved to the Restlet class.
        - Context#clientDispatcher and serverDispatcher properties are
          now instances of Client instead of Uniform.
        - Removed the UniformGuard and ChallengeGuard classes. We now
          recommend to directly use Authenticator and Authorizer.
        - Added simpler TemplateRoute, Extractor and Validator filters 
          as an alternative to the single Route class.
        - Deprecated Route in favor of parent and lighter TemplateRoute
          class. In Restlet 2.1, we will reintroduce Route as an 
          abstract parent of TemplateRoute.
        - Renamed SecretDigestVerifier into DigestVerifier.
        - Restricted the role of Metadata class to metadata about
          representations for conneg. 
        - Added protected authenticated() and unauthenticated() methods
          on Authenticator.
        - Added protected authorized() and unauthorized() methods
          on Authorizer.
        - Added Authorizer#AUTHENTICATED constant to authorize only 
          authenticated requests.
        - Deprecated Request#setChallengeRequest(). 
          Use getChallengeRequests() instead.
        - Added Metadata#getParent() method.
        - Added Metadata#isCompatible() method.
        - Added Metadata#includes() method.
        - Added better Variant#toString() implementation.
        - Added MetadataService#defaultCharacterSet property.
        - Added Conneg class in the engine to support content 
          negotiation in a more maintenable way, and to support all
          dimensions (character sets, encodings, languages and media
          types). Suggested by Alexander Horn, Maxence Bernard and
          David Fogel.
        - Implemented Variant#equals() method and improved the 
          implementation of isCompatible() method.
        - Moved static methods of LinkReference to Link. Removed the
          LinkReference class.
        - Added ClientResource#getParent() to return the parent 
          resource based on the URI hierarchy.
        - Added org.restlet.util.Couple and Triple generic classes to 
          store two or three related objects. 
          Inspired by Tim Peierls's Relation interface idea.
        - Made Application#getService(Class<T>) public.
          Suggested by Remi Dewitte.
        - Marked Restlet class as abstract.
        - Moved "name", "description", "owner" and "author" properties
          from Application to Restlet.
     - Misc
        - Exceptions thrown in the internal HTTP client are not logged
          with a FINE level instead of a WARNING level.
        - Upgraded Simple to version 4.1.13 which now supports 
          programmatic shutdown. Contributed by Niall Gallagher.
        - Updated GWT to version 1.7.0.
          
- 2.0 Milestone 3 (2009-05-27)
    - Breaking changes
        - Deprecated ServletConverter and added an equivalent 
          ServletAdapter class to prevent confusion with the 
          ConverterService reintroduced in Restlet 1.2. 
        - Moved all XML, DOM, SAX and XSLT related classes from the core 
          Restlet API to a new "org.restlet.ext.xml" package. This was
          need to keep a uniform API with the new Android port.
    - Bugs fixed
        - Fixed bug with a ServerResource when an annotated method does 
          not return a value.
        - Fixed dependency issue in the org.restlet.example.pom. 
          Reported by Marcelo Ochoa.
        - ServerServlet ignores client connectors that are now available.
        - Fixed issue with annotation inheritance. 
          Contributed by Tal Liron.
        - Fixed bug causing Engine to be instantiated several time.
          Reported by David Fogel. 
        - Fixed potential issue in Engine classloading logic which used
          Class.class instead of Engine.class to get the class's 
          classloader. Reported by David Fogel.
        - Fixed conversion issues with edge cases.
        - MediaType#isCompatible() now requires the other mediatype to be
          non null.
        - Fixed issues with conditional method in ServerResource.
          Reported by Tal Liron and David Fogel.
        - Fixed issues with ServerResource used in OSGi environments.
          Reported by David Fogel and fixed by Tim Peierls.
        - Fixed NPE with SpringFinder. Reported by Eric Hough.
        - Fixed potential NPE. Contribution from Remi Dewitte.
        - Fixed issue with the Authenticator class. 
          Reported by Remi Dewitte.
        - SpringServerServlet now don't directly instantiate a 
          ServletContextAdapter. Reported by Mikhail Spirydonau.          
        - Fixed Maven build issue with resource files. 
          Contributed by Remi Dewitte.
        - Fixed potential bug when a serverResource handle several 
          representations with methods that return String objects.
        - Fixed potential bug with WriterRepresentation when character 
          set is not defined.
        - Fixed bug in Finder with ServerResource causing some NPE
          in some cases. Reported by Michael Berman.
        - Fixed some Maven artifact IDs (Atom, XML and FileUpload
          extensions). Reported by Jean-Yves Cronier and Remi Dewitte.
        - Fixed potential NPE in XmlRepresentation with namespaces.
        - Fixed Atom extension for better AtomPub 1.0 compliance.
          Reported by Thom Nelson.
        - Fixed MediaType for proper parsing of parameters.
          Reported by David Bordoley.
    - Enhancements
        - Servlet's UserPrincipal is now transferred into Restlet's
          ClientInfo#subject property. Suggested by Paul Davis.
        - Updated Media type RDF N3 from "text/rdf+n3" to "text/n3". 
          Suggested by Simon Reinhardt.
        - Added support of the parsing and writing of RDF documents 
          expressed in N-Triples notation.
        - Added support of the parsing and writing of RDF documents 
          expressed in Turtle notation.
        - Added an initial port of Restlet to the new Google App Engine.
          Suggested by Didier Girard.
        - Added a ContextTemplateLoader to FreeMarker extension to load
          template based on the client dispatcher and a base URI.
        - Added new extension based on XStream library to automatically
          convert Java objects to/from XML and JSON.
        - Added converter helper to the "org.restlet.ext.json" extension.
          Useful for the ConverterService.
        - Added ObjectRepresentation classes to both the Restlet/GWT
          edition and to the server-side GWT extension. This class can
          (de-)serialize POJOs using the JSON-based encoding used by
          GWT-RPC.
        - Added content-length header (with 0 value), in case the 
          entity is not available when posting or putting since MS 
          Azure requires this header for any request. Reported by 
          Ronny Kwon.
        - Improved implementation of converter plugins (default/internal,
          Atom extension and GWT server-side extension).
        - Added MediaType#APPLICATION_JAVA_OBJECT_XML constant.
        - Added support for automatic conversion between serializable
          JavaBeans and Representations using either binary Java Object
          Serialization or JavaBeans XML encoding.
        - Added conversion support for forms.  
        - Interfaces implemented by server resource classes are now
          introspected for annotations.
        - Added ClientResource#create(...) and wrap() methods to create
          dynamic proxies implementing a given interface. 
        - Added Series#getValuesArray() with a flag to ignore case.
          Suggested by Arjohn Kampman.
        - Added a port of Restlet core to Android 1.5 (mobile OS) and to
          Google AppEngine 1.2.
        - The Net HTTP client connector now supports SSLContextFactories
          Contributed by Bruno Harbulot.
        - Added check for JAXP parsers not supporting XInclude feature.
          Reported by Mikis.
        - Optimized MetadataService#addCommonExtensions() to prevent
          multiple array copies. Reported by David Fogel.
        - XmlRepresentation#getNamespaces() is now protected.
          Suggested by Remi Dewitte.
        - Refactored the class loading code in the engine.
          Suggested by David Fogel.
        - Tag#weak internal field is now final. 
          Suggested by Arjohn Kampman
        - Added provider for JAX-RS based on the new ConverterService.
          This allow pluggable support for converters such as JSON or
          XStream. 
    - API changes
        - RepresentationInfo is now concrete and has more constructors.
          Suggested by Lars Heuer.
        - UniformResource#init() now throws ResourceException and 
          catches it to update the response. Suggested by Lars Heuer.
        - Renamed UniformResource#init() into doInit().
        - Renamed UniformResource#destroy() into release().
        - Added an UniformResource#doRelease() method.
        - ClientResource now overrides finalize() to call the release()
          method.
        - Connector#isAvailable() method added to test the presence
          of the underlying connector helper.
        - Removed Context#setRealm() to prevent potential threading 
          issues. Reported by Tim Peierls.
        - Added new constructors to Representation based on the parent
          RepresentationInfo class. Suggested by Remi Dewitte.
        - Added FileRepresentation#autoDelete property. Contributed by
          Remi Dewitte.
        - Added intercepter methods to ServerServlet needed for the 
          XDB extension. Contributed by Marcelo Ochoa.
        - Added a "form" extension mapping in MetadataService for the
          media type "application/www-form-urlencoded". 
          Suggested by Tal Liron.
        - The class EmptyRepresentation is now public and the static 
          method Representation#createEmpty() has been deprecated.
        - Moved several implementation classes of the Servlet extension
          into an "org.restlet.ext.servlet.internal" package to hide
          them from the public Javadocs as they should rarely be used
          directly by end users.
        - Renamed ServerResource#exists property to "existing".
          Suggested by Lars Heuer.
        - Filter#setNext() now accepts ServerResource subclasses.
          Suggested by Lars Heuer.
        - Added Method#safe and idempotent properties.
        - Added ClientResource#followRedirects property and the related
          implementation code.
        - Deprecated the abstract DigestRepresentation class, replaced 
          by Digester. Added a getDigester method on the Representation 
          class.
        - Deprecated Representation#checkDigest and 
          Representation#computeDigest methods.
        - XML component configuration now supports new ServerResource 
          subclasses.
        - Deprecated the Resource and Guard classes.
        - Added toObject() and toRepresentation() methods on 
          ClientResource.
        - Refactored the services API. Added a "services" property
          on Application to allow users to register new ones. Also,
          add a createInboundFilter() and createOutboundFilter()
          methods to automatically register them when starting the
          application.
        - Added MetadataService#getAllMediaTypes(), getLanguage() and
          getMediaType() and similar methods. Reported by David Fogel 
          and suggested by Remi Dewitte and Tim Peierls.
        - Added AppendableRepresentation for dynamic generation of
          StringRepresentation instances.
    - Miscellaneous
        - Component XML configuration has been moved into an Engine 
          ComponentXmlParser class.
        - Added unit test case for the Alphanum algorithm. 
          Contributed by Davide Angelocola.
        - ServerResource now rethrows exceptions from annotated methods.
          Reported by Tal Liron.
        - Removed the Script extension and Scripturian libraries that 
          will now be managed outside the Restlet project by Tal Liron.
        - Updated GWT library to version 1.6.4.
        - Updated OAuth library to latest version. 
          Suggested by Sean Sullivan.
 
- 1.2 Milestone 2 (2009-04-01)
    - Breaking changes
        - Finder#createTarget() methods are now all protected. The 
          findTarget() method is now public. Suggested by Leigh Klotz.
        - All core representation classes have been moved from the
          "org.restlet.resource" package into a new 
          "org.restlet.representation" package. Make sure to adjust your
          import instructions.
        - The ConnectorService#afterSend() and beforeSend() are now
          always called, even if no entity is written. They are now 
          related to the sending of the message itself.
          Suggested by Paul Davis.
        - The Router.createFinder() method is now public.
        - The Callback abstract class in the GWT module is now an 
          interface. This should have no impact in most cases. Just
          remove any associated @Override annotations.
          Suggested by Scooter Willis.
    - Bugs fixed
        - Fixed typo in the declaration of the 
          o.r.e.Engine#DESCRIPTOR_AUTHENTICATOR. 
          Reported by Remi Dewitte.    
        - Removed all string instantiations of secrets. 
          Contributed by Remi Dewitte.
        - Fixed various OSGi issues. Reported by David Fogel.
        - Fixed missing entries in ChallengeScheme#valueOf.
          Reported by Sean Sullivan.
        - Fixed JAXB pom issue. Reported by Fabio Mancinelli.
        - Added workaround to make sure that the JAX-RS extension
          is registered as an implementation of the JAX-RS API.
          Suggested by David Fogel.
        - Fixed encoding issue with percent characters at the end
          of URI references with the required two digits following.
          Now the percentage sign is encoded and a fine trace is logged.
          Reported by Nels Nelson.
    - Enhancements
        - Added a getItemIterator() on RestletFileUpload to facilitate
          access to parts in streaming mode. Suggested by Paul Austin.
        - The default SAX handler has been implemented to log 
          validation information. Contributed by Raif S. Naffah.
        - DirectoryResource class in engine now has a protected
          getDirectoryContent() method. Suggested by Gordon Mohr.
        - Implemented Text#toString() in the Atom extension.
        - Completed list of registered media types. Suggested by Remi 
          Dewitte.
        - JAX-RS extension now leverages the new security API.
          Contributed by Bruno Dumon.
        - Added setters for helpers in Engine. 
          Suggested by Kevin Conaway.
        - Added the ability to tunnel methods via a specific header.
          Contributed by Fabrice Boileau.
        - Added conversion methods to engine's ByteUtils between byte
          arrays and character arrays. Contributed by Remi Dewitte.
        - Added protected DirectoryResource#getRepresentation() and 
          getClientDispatcher() method to facilitate extension and 
          support of special cases. 
          Original issue reported by Dave Fogel.
        - Added a client connector supporting ZIP and JAR URIs that
          are based on local archive files.
          Contributed by Remi Dewitte.
        - Enhanced JsonRepresentation based on Tal Liron's contributions.
          Now supports indentation configuration and more manipulation
          and conversion methods.
        - Added RDF extension that aims to support the parsing and 
          writing of RDF representations. 
        - Added support of parsing and writing of RDF/XML and RDF/N3
          representations.
    - API changes
        - Added Role class and "roles" property to Application.
        - Fully refactored the security package introduce in 1.2 M1 
          based on community feed-back.
        - Added Realm, MemoryRealm classes and "realms" property to 
          Component.
        - Added "verifier" and "enroler" properties to Context.
        - Reverted represent*() auto-matching support for further 
          discussions. Suggested by Tim Peierls.
        - Added constructors with feed URI in the Feed class of the Atom 
          extension.
        - Added "indent" property to DomRepresentation. Suggested by
          Cliff Binstock.
        - Added support of Shared Key and Shared Key Lite authentication 
          schemes developed by Microsoft. Suggested by Steve Sfartz.
        - WadlApplication now invokes the findTarget() method on Finder 
          instances instead of the createTarget() one. 
          Suggested by Leigh Klotz.
        - Added Delete, Get, Options, Post and Put annotations
          to the org.restlet.resource package. Based on community 
          feed-back and suggestions by Tim Peierls.
        - Added org.restlet.resource.UniformResource and ClientResource
          classes as part of our new Resource API.
        - Added createClientInfo() method on Variant.
        - Added a Message#getEntityAsText() method caching the text
          content to allow several reads along a chain of filters.
        - Added a Server#setTarget() method taking a Resource class as a
          parameter. This is useful for minimalistic examples.
        - TunnelService now accepts query parameter values such as
          "application/xml" and now just registered extension names 
          such as "xml". Suggested by Paul Austin. 
        - Renamed LinkSet to Graph and added support for N3 formulae.
          Graph can be source or target in Link instances.
        - Removed Link.identifier and Graph.identifier properties.
        - Series#getFirstValue() now returns the default value if the
          parameter exists but has a null value. 
          Suggested by Jonathan Hall.
        - Added Context#setClientDispatcher() and 
          Context#setServerDispatcher() methods.
        - Added support for proxy authentication in the Restlet API.
          Added "proxyChallengeResponse" property to Request, added
          "proxyChallengeRequests" to Response. Added support in the
          HTTP parsing and formatting layers.
        - Added a WadlApplication#createFinder() method to facilitate
          customization of behavior with Spring. 
          Suggested by Rhett Sutphin.
        - Added Protocol#ZIP constant.
        - Representation#finalize() method now has a default 
          implementation that calls the release() method.
          Suggested by Remi Dewitte.
        - Updated accept.properties file, removing Firefox 
          customization as version 3.0 has proper 'Accept' header.
        - Added a JaxbRepresentation#setValidationEventHandler method.
        - Added Variant#isCompatible() method.
        - Added an org.restlet.representation.RepresentationInfo class
          that contains the "lastModified" and "tags" properties from
          Representation which is now a subclass. Variant is the super
          class. Useful to check conditions without pulling a full
          representation. Suggested by Lars Heuer. 
        - Added Method.ALL constant. Useful to declare variants common
          to all methods in the new ServerResource class.
        - Added new org.restlet.routing package and moved Filter, 
          Router, Redirector and subclasses to it.
        - Moved Directory, Finder and Handler to org.restlet.resource
          package.
        - Renamed org.restlet.security.Guard to UniformGuard in order to
          move org.restlet.Guard to this security package.
    - Misc
        - Upgraded Simple server to version 4.1.9. 
          Contributed by Niall Gallagher.
        - Fixed Javadocs typos in Router and Resource. 
          Contributed by Raif S. Naffah.
        - Fixed issue with parent contexts in ServerServlets. 
          Contributed by Marcelo Ochoa.
        - Updated OAuth library to latest version. 
          Suggested by Sean Sullivan.
        - Added HttpRequest#getHeaders() and HttpResponse#getHeaders()
          methods. Added HttpRequest#addHeader() and 
          HttpResponse#addHeader() static methods.
          Suggested by Kevin Conaway.
        - Updated licensing information to mention addition of the 
          EPL 1.0 licensing option (Eclipse Public License 1.0).
        - Added Maven support to build Restlet modules.
          Suggested by many. Contributions by Jean-Yves Cronier.

- 1.2 Milestone 1 (2009-01-23)
    - Breaking changes
        - The engine has been moved from "com.noelios.restlet" to
          the "org.restlet.engine" package, simplifying the packaging.
        - All engine extensions have been moved to "org.restlet.ext"
          packages.
        - The com.noelios.restlet.ext.spring extension has been merged
          with org.restlet.ext.spring.
        - Moved org.restlet.util.DateUtils, ByteUtils and Engine 
          classes to org.restlet.engine.* packages.
    - Enhancements
        - Internal HTTP connector now supports HTTPS connections.
          Contributed by Kevin Conaway.
        - Added a Lucene extension including a Solr client connector
          contributed by Remi Dewitte. Also contains a useful 
          TikaRepresentation to extract metadata from a representation
          using Lucene Tika parsing and analysis library. Suggested by
          Ben Johnson.
        - The Atom Service class now supports getting documents from
          other protocols than HTTP.
        - Updated org.restlet.Component to support validating parsing. 
          Contributed by Raif S. Naffah.
        - XmlRepresentation now has "entityResolver", "errorHandler", 
          "schema", "xIncludeAware" and "validating" properties. 
          Contributed by Raif S. Naffah.
    - API changes
        - A response with a 200 (Ok) status should have an entity. Now,
          we make sure that a warning is logged. 
          Reported by Rob Heittman.
        - Removed all code deprecated in the Restlet 1.1 release.
        - Added org.restlet.data.Literal to represent RDF
          literals with an optional datatype. 
        - Added org.restlet.data.Link to represent RDF links (aka 
          triples, statements or relationships).
        - Moved o.r.u.Helper class, used privately by API classes to 
          the o.r.engine package.
        - Added MediaType constants APPLICATION_RDF_TRIG, 
          APPLICATION_RDF_TRIX, APPLICATION_RDF_TURTLE, 
          APPLICATION_SPARQL_RESULTS_XML and
          APPLICATION_SPARQL_RESULTS_JSON for RDF and SPARQL.
        - Added LinkReference and LinkSet classes to support RDF 
          reference manipulation (blank nodes for example) and RDF 
          graphs or models.
        - Added CharacterSet#DEFAULT constant, new constructor for 
          Charset instances and a toCharset() method. Suggested by
          Charles Gay.
        - Added Reference#toUri(), toUrl() and constructors from 
          java.net.URI and URL instances. Suggested by Cliff Binstock.
        - Added APPLICATION_ATOM media type constant and 
          deprecated APPLICATION_ATOM_XML.          
        - Added APPLICATION_ATOM_SERVICE_XML media type constant and 
          deprecated APPLICATION_ATOMPUB_SERVICE.
        - Added APPLICATION_ATOMPUB_CATEGORY media type constant.
        - Added APPLICATION_KML and APPLICATION_KMZ media type 
          constants. Suggested by Frank Hellwig.          
        - Added APPLICATION_MATHML_XML media type constant and 
          deprecated APPLICATION_MATHML.
        - Added APPLICATION_RSS_XML media type constant and 
          deprecated APPLICATION_RSS.
        - Added APPLICATION_W3C_SCHEMA_XML media type constant and 
          deprecated APPLICATION_W3C_SCHEMA.
        - Added APPLICATION_WADL_XML media type constant and 
          deprecated APPLICATION_WADL.
        - Added APPLICATION_XHTML_XML media type constant and 
          deprecated APPLICATION_XHTML.
        - MediaType constructor now normalizes the main and sub parts.
          If invalid characters are detected, an IllegalArgumentExcept
          is thrown. Spaces are also trimmed and empty parts are 
          converted to '*'. Contributed by Nicolas Rinaudo.
        - Method#setUri() has been deprecated as Method instances 
          shouldn't be modifiable.
        - Language.getSubTags() now returns an unmodifiable list.
        - MediaType.parameters property is now unmodifiable. Initial
          issue reported by Nicolas Rinaudo. 
        - Added static Series#unmodifiableSeries() method.
        - Added DateUtils.format(Date) method which uses HTTP default
          format.
        - Added a new "org.restlet.security" package with a full
          replacement for current Guard mechanism. This is
          an alpha level package not intended for Restlet users yet.
        - Made the SpringBeanRouter implement ApplicationContextAware
          to enable AOP on target resources. Suggested by Daniel Woo.
        - Resource subclasses can now declared variants and match them
          more easily using an automatic detection mechanism based on
          represent*() methods where '*' is a series of extensions. 
          Also added a "detectVariants" property to turn off this
          behavior if necessary.
        - Added a getAllMetadata(String extension) method on the
          MetadataService class. 
        - Deprecated the ClientInfo#addresses property and replaced it
          by a more explicit "forwardedAddresses" property. Also, added
          a new getUpstreamAddress() method. Adjusted the Resolver 
          class to add a new "ciua" variable. Change suggested by 
          John D. Mitchell. Initial patch provided by Remi Dewitte.
        - Added ClientInfo#subject property returning a JAAS Subject.
          Can contain several principals and credentials. Deprecated 
          the ChallengeResponse#getPrincipal() method.
        - Added new Conditions.getStatus() method signature for usage
          by the JAX-RS extension. Suggested by Stephan Koops.
    - Misc
        - JAX-RS extension:
            - added class ExendedUriBuilder with "file" extensions for
              content negotiation and an ExtendedUriInfo to get it.
            - Supports per-request-providers now.
            - JaxRsApplication will not clear the MetadataService (as
              before; was required to not use other extensions as given
              in the JAX-RS ApplicationConfig class).
        - The Directory class doesn't override the findTarget() method
          but uses the default Finder mechanism based on the 
          "targetClass" property. Therefore, it is easier to specify a
          subclass of org.restlet.engine.local.DirectoryResource in
          order to customize the default behavior. 
          Suggested by Cliff Binstock.
        - Upgraded db4o to version 7.7.67.
        - Refactored engine support for the StatusService. Removed
          ApplicationStatusFilter and ComponentStatusFilter.
        - Extracted all internal classes of ByteUtils into the new
          org.restlet.engine.io package for easier reuse and 
          maintenance.
        - Clarified Javadocs in Reference#getPath() methods.
        - Fixed potential NPE in Reference#decode() method.
        - Clarified Javadocs in FileRepresentation and methods 
          Representation#getDownloadName(), setDownloadName() in order
          to explain that setDownloadable(true) must be called first.
          Issue reported by Kevin Conaway.
        - The internal HTTP client doesn't send absolute request URIs
          anymore. It now sends them as relative URIs according to the
          HTTP 1.1 specification. Reported by Jonas Maturana Larsen.
        - Upgraded Apache Commons IO to version 1.4.
        - The ServerServlet now sets the HTTP headers after the status
          to prevent issues with Tomcat 5.0 and "Content-Length: 0" 
          headers sending the response immediately. 
          Reported by Eirik Bjorsnos. 
        - The internal HTTP client no longer forces the user agent name
          if one has already been specified by the user. Contributed by
          Kevin Conaway.