restlet Framework2.2和2.3版本号的对照
Restlet Framework
2.2 Milestone 1 (12/24/2012) 使用 Java SE 6
2.3 Milestone 1 (03/27/2014) 使用 Java 7
一、2.2 Changed log
================ 2.2 Changes log ================ - 2.2.3 (11/27/2014) - Bugs fixed - Fixed potential NPE in odata extension when schema ComplexType in a document does not declare a schema attribute (issue #932). - Uncaught exceptions may cause LogFilter to fail, with dire consequences. Issue #931. Reported and contributed by Tal Liron. - The Restlet internal connector only serves from one thread (issue #937). - Securing JaxRepresentation by default (issue #785). Reported by Jim Trainor. - OData Edm.DateTime properties are sometimes parsed as null (issue #946). Reported and contributed by Emmanuel Liossis. - Enhancements - Added targetRef support to templates, allow reference variables to resolve to the full reference (issue #935). Contributed by Jeremy Gustie. - Fixed log level (issue #777). Reported by marcus-nl. - 2.2.2 (08/05/2014) - Bugs fixed - Fixed generation of Android edition. - Enhancements - Updated agent.properties file with recent Opera user agent signature. - 2.2.1 (05/06/2014) - Bugs fixed - Fixed missing internal FTP client connector registration. - Fixed missing internal HTTPS server isn't properly registered. Reported by Roy Olsen. - Fixed forgotten traces to the console #911, #905, #904. Reported by Emanuele Massara. - Fixed missing default values for DefaultSslContextFactory attributes, issue #903. - Removed unecessary ".properties" files from the distributions, issue #892. - Prevented NPE in org.httpclient.internal.HttpMethodCall.getStatusCode, issue #871. Reported by Claus Ibsen. - Fixed CompositeHelper.handle fails when Component has no inbound filters. Issue #865. Reported and contributed by Jeremy Gustie. - Stabilized Swagger documentation for JAX-RS applications. Issue #827. - 2.2.0 (03/27/2014) - Enhancements - Integration of new Guice extension, issue #489. Reported and contributed by Tim Peierls. - Reverted Swagger extension to version 2.9, supporting only JAX-RS API. Issue #827. - Bugs fixed - Fixed user agent product parsing. Issues #878 and 879. Contributed by Jeremy Gustie. - Fixed usage of client connector in GAE edition, issue #876. Reported by Alex Harvey. - Misc - Fixed many links and updated content of the User Guide http://restlet.org/learn/guide/2.2/ - 2.2 Release Candidate 4 (03/18/2014) - Enhancements - Updated Swagger extension based on Swagger 2.10 version, issue #827. - Bugs fixed - ServerResource doesn't throw away empty response entities anymore, issue #848. Reported by Arjohn Kampman and Marcel Hellkamp. - DefaultSslContextFactory doesn't handle enabledCipherSuites/enabledProtocols parameters properly, issue #853. Reported and contributed by Jonathan Keljo. - Android NIO server SSL handshake hangs, issue #851. Reported and contributed by Jonathan Keljo. - NIO SSL server infinite loops on close-notify, issue #862. Reported and contributed by Jonathan Keljo. - Misc - Automatic build using Travis https://travis-ci.org/restlet/restlet-framework-java - 2.2 Release Candidate 3 (03/04/2014) - Enhancements - Add JSON media types. Reported and contributed by Jack Jones. - Moved all the remaining NIO logic from previous internal HTTP connector to the org.restlet.ext.nio. This will help reduce the org.restlet.jar file size. - Bugs fixed - Issue #818: Call.isBroken does not detect Tomcat ClientAbortException. Reported and contributed by Jeremy Gustie. - Issue #847: DELETE responses send 200 status without any entity, whereas it should be 204. - Issue #805: The NioUtils.copy(..) logic that sometimes created Cyclic barrier exceptions has been moved as well and replaced with the older and more stable logic that was in place in version 2.1.0 and older releases. Reported by Wim Jongman. - 2.2 Release Candidate 2 (02/18/2014) - Enhancements - Allow Delete methods with entities, issue #841. - Allow configuring HttpClient's HostnameVerifier, issue #246. Reported and contributed by Philippe Laflamme. - Short term fix for XStream - remote code execution due to insecure XML deserialization, issue #835. Reported by David Jorm. - 2.2 Release Candidate 1 (02/09/2014) - Enhancements - Added Javadocs artefacts for Maven repository, issue #811. Suggested by David Roussel. - Added Thymeleaf extension, issue #824. Reported and contributed by Grzegorz Godlewski. - Improved ServerServlet.createComponent() to address issues #766 and #767: allowed to specify a custom Component class and configure it using xml file. Reported and contributed by Jason Guild. - Added Swagger extension, currently with JAX-RS API support only. Issue #595. Reported and contributed by Grzegorz Godlewski. - API changes - Moved org.restlet.ext.net HTTP/HTTPS/FTP client connectors into the core org.restlet module (org.restlet.engine.net package) as the new internal client connectors. - Moved NIO-based internal connector to new org.restlet.ext.nio extension. Marked as "developer preview" state. - Added new internal HTTP/HTTPS server connectors based on the com.sun.net.httpserver package available in JDK 6. Issue #381. - Moved org.restlet.ext.ssl into core org.restlet.engine.ssl package except classes related to the jSSLutils library now part of new org.restlet.ext.jsslutils extension and for CertificateAuthenticator class now in org.restlet.security. Solves issue #803 reported by Tal Liron. - XEE injection security fix (Issue #826). As a side effect, the XML parsers adopt a more defensive strategy and prevent by default loading of external entities, validation of DTD, and turn on secure processing for SAX parsers. - Deprecated MediaType#APPLICATION_RDF_TURTLE and added TEXT_TURTLE constant. Suggested by Peter Ansell. Issue #730. - Bugs fixed - Fixed issue #823: Service-Component header missing in manifest.mf for servlet extension. Reported by Ioan Lupu. - XEE injection security fix. Issue #826. Reported by Alvaro Munoz. - OData not passing null when property not marked nullable, issue #663. Reported by Carl J. Mosca and contributed by Luke Adams. - Android ICS: needs fixing for HttpUrlConnectionCall.getResponseHeaders, issue #548. Reported by Bobby Sawhney. - @Patch annotation is ignored, issue #747. Reported by Ralph van Etten. - Misc - Updated Jetty to version 8.1.14. - Updated XStream to version 1.4.6. - Updated NekoHTML to version 1.9.19. - Updated Apache commons logging to version 1.1.3. - Updated Apache Log4j to version 1.2.17. - Updated Jettison to version 1.3.5. - Updated Freemarker to version 2.3.20. - Updated JiBX to version 1.2.5. - Updated Jackson to version 2.2.3. - Updated Guice to version 3.0. - Updated Google Protobuf to version 2.5. - Updated Apache Commons fileupload to version 1.3. - Updated Apache HTTP Client to version 4.3.2. - Updated Apache HTTP Core to version 4.3.2. - Updated Apache HTTP MIME to version 4.3.2. - Updated Mime4j to version 0.7. - Updated Lucene to version 4.6. - Updated Solr to version 4.6. - Updated Tika to version 1.4. - Updated Velocity to version 1.7. - Updated Woodstox to version 4.2.4. - Updated Joda time to version 2.3. - Updated JUnit to version 4.11. - Updated MongoDB to version 2.11.3. - Updated Simple Framework to version 5.1.6. - Updated Spring Framework to version 3.2.6. - Updated TestNG to version 6.8.7. - Updated SnakeYAML to version 1.13. - 2.2 Milestone 6 (12/05/2013) - Enhancements - Added a Message#bufferEntity() method to facilitate buffering of request and response entities/representations when they are transient but need to be consumed multiple times. Note that if not used properly, it can easily drain JVM memory. - Moved BufferingRepresentation from Engine to org.restlet.representation package. - Added client support for HTTP OAuth MAC authentication. - Added support of nowrap "deflater" (support of GZIP compatible compression), issue #786. Reported and contributed by Tal Liron. - Bugs fixed - Fixed issue #789, declaration of gson's maven artifact identifier. Reported by mafuba. - 2.2 Milestone 5 (09/07/2013) - Bugs fixed - Fixed issues #774, #778 - Removed default support of JavaBeans XML-deserialization, binary-deserialization on ObjectRepresentation class. Reported by David Jorm. - 2.2 Milestone 4 (08/23/2013) - Enhancements - Added GSON extension (#586). Contributed by Neal Mi. - OAuth extension has been upgraded to support final OAuth 2.0 specification. Contributed by Shotaro Uchida. - Bugs fixed - Fixed issue #739 - Copy extension headers from JAX-RS API to Restlet response. Reported by Mark Kharitonov. - Fixed issue #774 - Removed default support of JavaBeans XML-serialization. Reported by David Jorm, Dinis Cruz, Abraham Kang and Alvaro Munoz. - Fixed issue #778 - Removed default support of JavaBeans binary-serialization. Reported by David Jorm. - 2.2 Milestone 3 (03/07/2013) - Bugs fixed - Fixed issue #737 - ExecutorService not set when calling WriterRepresentation#write. Reported by Tim Peierls. - Fixed issue #734 - Implementations of XmlHttpRequest in IE versions prior to IE10 turn 204 status into 1223. Reported by Koen Maes. - 2.2 Milestone 2 (02/28/2013) - Enhancements - Upgraded Servlet API to version 3.0.1. - Updated Simple HTTP server library to version 5.0.4. - Added a JSONP filter that can automatically wrap JSON representations. Contributed by Mark Kharitonov and Cyril Lakech. - API changes - Refactored the OAuth extension to prevent the org.restlet.ext.oauth.security subpackage. - Refactored the JacksonRepresentation to merge the JacksonSmileRepresentation back into the JacksonRepresentation. Also improved extensibility and default behavior of the CSV serialization format. - Added Request/Response.flushBuffers() method to attempt to force network buffers to be flushed out. Suggested by Yan Pujante. - Removed all code deprecated in branch 2.1. - Added patch-related methods to the ConverterService: applyPatch(Representation original, Representation patch) : Representation revertPatch(Representation modified, Representation patch) : Representation createPatch(Representation original, Representation modified) : Representation - Added patch(..) methods to ClientResource. Suggested by Brian Sletten. - Added patch(..) to ServerResource relying by default on the ConverterService and on the put(..) methods. Suggested by Brian Sletten. - Added ClientInfo.acceptedPatches property and HTTP header writing/reading logic for "Accept-Patch". - Added IOException declaration to all the ConverterService methods. - Restored Role.equals(..) and hashCode(..) methods so that two roles with the same parent application, name and child roles are equals. - Added Role.application property to make it more explicit what is required for role equality and to make the MemoryRealm class less ambiguous. Reported by Tim Peierls, Martin Svensson, Peter Ansell and others. - Deprecated Role.ALL constant which wasn't compatible with the fact that roles have specific applications as parent. - Deprecated constructors Role(String) and Role(String, String) and added Role(Application, String) and Role(Application, String, String) as replacements, using Application.getCurrent() to workaround the lack of Application parameter in deprecated constructors. - Added findRoles/map/unmap methods with an Application argument to the MemoryRealm class for conveniency. - Added static get(...) methods to Role. - Added getRole(String) method to ServerResource. - Refactored GaeEnroler constructors to require proper Role instances or parent Application. - Added Component.taskService property and deprecated+disabled the Application.taskService. The same task service/thread pool can then be shared by multiple applications inside the same component/JVM. - Added Context.executorService property to be able to invoke the parent task service without actually being able to control it (start/stop). - Added JaxRsApplication(Context, Application) constructor. - Bugs fixed - The same ones as in version 2.1.2. - Misc - Updated the links to the user guide in the wiki. - 2.2 Milestone 1 (12/24/2012) - Enhancements - Upgraded Jetty to version 8.1.5. - Upgraded JAX-RS to version 1.1.1. - Upgraded Servlet API to version 3.0. - Upgraded Jackson to version 2.1.0 and Woodstox to 4.1.4. Now supporting JSON binary (Smile), XML, YAML and CSV serialization format based on the media type. - Added OBAP (OSGi Bundle Access Protocol) client connector to allow access to resources from other OSGi bundles. Use "obap://{bundleSymbolicName}/{pathToResource}" Added to the "org.restlet.ext.osgi" extension (OSGi edition). - Added additional content type mappings to the JAX-RS module client. - OAuth extension has been upgraded to support OAuth 2.0 draft 30 specification. Contributed by Shotaro Uchida. - API changes - Added a resource client to the JAX-RS extension. Contributed by Shaun Elliott. - Added an optional namespace prefix mapper for JAXB representations when marshalling Java content into XML. Contributed by Emanuele Ziglioli. - Added support of the Jackson Smile format. Suggested by Tim Peierls. - Added conveniency add(...) method signature without Reference parameters in RdfClientResource. - Added Method.PATCH constant and @Patch annotation based on RFC 5789. Suggested by Brian Sletten. - Added MediaType.APPLICATION_JSON_PATCH constant based on internet draft for "application/json-patch" media type. - Added ChallengeScheme.HTTP_OAUTH_BEARER and HTTP_OAUTH_MAC constants to support the final OAuth 2.0 RFC. - Bugs fixed - The same ones as in version 2.1.1. - Misc - Updated Eclipse projects to use JavaSE 6.0 and simple Java build rather than PDE/OSGi (removed manifest.mf files) or Maven (removed pom.xml files). - Of course, Maven is still supported via our Maven repository, the previous change is only for Restlet committers.
二、2.3 Changes log
================ 2.3 Changes log ================ - 2.3.5 (10/03/2015) - Bugs fixed - Added check for jar class path resources if the inputstream is empty. Reported and contributed by Gernot Pansy. - Fixed Jetty server connector that sends the Date header twice. Issue #1141. - Fixed ResourceException constructor calling incorrect Status constructor. Issue #1139. Reported by Chad Gatesman. - Fixed ResourceException constructor calling incorrect Status constructor. Issue #1139. Reported by Chad Gatesman. - Fixed support of encoding inside the DecodeRepresentation, and the Jetty client connector. Issue #1146. - Fixed handling of header Access-Control-Expose-Headers. Issue #1147. Reported and contributed by Ralph van Etten. - Fixed issue when setting header Access-Control-Expose-Headers. Issue #1145. Reported by Ralph van Etten. - Removed useless log trace for HTTP_OAUTH_BEARER request with raw value. Issue #1152. - Enhancements - Added Request and response attributes to the ResourceException class. - ServerResource traces Exception in the doCatch method with SEVERE log level, in case of 5xx errors. - Added Guice extension to GAE edition. Issue #1136. - API changes - Added ResourceException#resource attribute and ResourceException#getRequest() and ResourceException#getResponse() shortcut methods. - 2.3.4 (07/16/2015) - Bugs fixed - LOCK and UNLOCK methods are not safe. Issue #1112. Reported by Zsolt Szloboda. - Fixed APISpark introspection when application name is not set. - 2.3.3 (06/21/2015) - Bugs fixed - Redirector does not translate response's entity location reference. Issue #1069. - Fixed tunnelFilter. + symbol (%2b) converted incorrectly when media query parameter is used. Issue #804. Reported by Rob Elsner. - Fixed never ending call when an exception happens while writing the response's entity using the internal HTTP server connector. Issue #1061. Reported by Gernot Pansy. - Prevented insertion of query params into POST request for JAX-RS client. Issue #1072. Reported by Edouard Mercier. - Fixed NPE when OAuth refresh token request when no scope is provided. Issue #1080. Reported by Gernot Pansy. - Internal HTTP client doesn't fail anymore with null values in headers. - Improved robustness of Swagger translation code (import/export). - Fixed security scheme issue in RAML translator. - Enhancements - Allowed spaces in the values of the Java methods annotations. Issue #1099. - Added support for Chromium browser when extracting user agent info. - Added Swagger 2.0 import support in Swagger and APISPark extensions. - 2.3.2 (05/01/2015) - Bugs fixed - Fix CORS header name Access-Control-Allow-Credentials. Issue #1030. - Fixed malformed JSON in the JsonpRepresentation. Reported by Wagner Correa Ramos. - When catching a 405 status, make sure to update allowed methods inside a ServerResource. Issue #1034. Reported by Jeremy Gustie. - Fixed wrong Reference.getRemainingPart(boolean decode). Issue #1041. Reported by Tal Liron. - Authorization header is not sent by GWT client, for authentication scheme other than HTTP Basic. Issue #1040. - Jetty client connector duplicates User-Agent header. Issue #1055. Reported by Charlie Mason. - Fixed Restlet JAX-RS encoding problem when using @FormParam annotation. Issue #1038. - Fixed Tomcat shutdown due to TaskService that did not instantiate threads as daemon threads. Issue #1053. - Made a public field private in JaxRs extension which lead some containers to stop the application. Issue #1058. Reported by Constantin Gruber. - Fixed duplication of headers (jaxrs). Issues #944, #948. - Misc - Completed the Javadocs for query parameter declarations inside HTTP method annotations such as @Get("json?param=val). - Enhancements - Allowed to turn off header cleaning in Redirector for server-side redirects. Issue #799. Suggested by Tal Liron. - Upgraded swagger-models library to 1.5.3-M1. - 2.3.1 (02/03/2015) - Bugs fixed - Reintroduced registration by default of the internal HTTP server connectors in JEE edition. - FormDataSet not properly serializing text/plain files. Issue #1006. Reported by johnjaylward. - Fixed fileupload extension for GAE and JEE editions. - Fixed potential NPE. Issue #1004. Reported by Philippe Perrault. - Reference scheme reverts to http when using https. Issue #998. Reported by Stephen C. Pope. - Fixed bug that prevented client code to properly consume error responses #1004 and #1018. Reported by Philippe Perrault and spraguep. - Enhancements - Added support of JAX-RS extension for the Android edition. Contributed by Kiran Rao. - 2.3.0 (12/17/2014) - Bugs fixed - Fixed usage of custom Component with ServerServlet (issue #926). Reported by Graham Smith. - StatusService didn't copy the contactEmail and homeRef property to the internal serialized status object. - JacksonRepresentation fields are now thread safe. Reported by Tim Peierls. - Removed XML serialization using Jackson extension from Android edition as it depends on classes not supported by Android SDK (issue #964). Reported by Ralph van Etten. - Fixed OutputRepresentation in the GAE edition (issue #954). Reported by Edouard Mercier. - Enhancements - Upgraded Google App Engine API to version 1.9.15. - Upgraded Jackson to version 2.4.4. - Upgraded Woodstox to version 4.3.0. - Upgraded GSon to version 2.3.1. - Upgraded Jetty to version 9.2.6. - 2.3 Release Candidate 2 (12/08/2014) - Bugs fixed - Restored HTML variant of error status representations returned by default. Now handled by the ConverterService via a StatusInfoHtmlConverter in engine. - Fixed bug in OData extension when looping through a multi pages collection. Reported by Vishnu Perabathini. - Deprecations - Deprecated org.restlet.Component XML configuration. Usage of XML support in Spring extension is recommended instead. - Deprecated e4 extension. Usage of Guice or Spring extensions is recommended instead. - Deprecated JDBC extension. Use a persistence technology such as Mybatis or Hibernate instead. - Deprecated JiBX and XStream extensions. Use an XML serialization technology such as Jackson instead. - Deprecated jSSLUtils, ROME, XDB extensions. Libraries not actively developed anymore. - Deprecated Apache HTTP Client and Simple extensions. Will be removed to favor lower-level network extensions such as Jetty and Netty, allowing more control at the Restlet API level. - Deprecated SIP, WebDAV extensions. Will be removed to focus on Web APIs. - Misc - Removed the Tanuki's Java Service Wrapper library. - Removed the CDDL and LGPL licences, kept Apache License, Version 2.0 and Eclipse Public License -v 1.0. - 2.3 Release Candidate 1 (11/21/2014) - Enhancements - Upgraded Jetty to version 9.2.4 - Added support for SPDY via the Jetty extension. Contributed by Tal Liron. - 422 unprocessable entity status returned when errors happens when deserializing a representation. - Exceptions annotated with @Status are now automatically serialized using ConverterService on both client-side and server-side. Client-side resource proxy automatically re-throw the de-serialized exception back to the API call invoker. Note that when the application is not in debugging mode, the stacktrace is cleared before serialization and a warning is triggered if a cause is available in the exception. - API changes - Deprecated protected LogService#debugging property. - Added Application#debugging Boolean property and a start message indicating in which mode your application is. - Added getName() and getDescription() methods in ServerResource for documentation purpose. Note that this could conflict with existing subclasses. - Bugs fixed - Prevent potential security issue with Directory class. Contributed by Andrew Hughes. - Misc - Remove the outdated example based on the O'Reilly's book "RESTful Web Services" and the related db4o dependency. Issue reported by Thomas Munz. - 2.3 Milestone 5 (11/07/2014) - Enhancements - Added support of GWT 2.7. Contributed by Koen Maes. - Enhanced introspection of Restlet and JAX-RS based applications in conjunction with Swagger and Raml annotations. - Added APISpark agent service. - API changes - Jackson representation now ignore null values by default in the JSON/XML/CSV/YAML produced, leading to more compact representations. - Added additional constructors to Status and ResourceException for convenience purpose. Suggested by Kristoffer Gronowski. - 2.3 Milestone 4 (10/31/2014) - Enhancements - Unified the HTTP client connector parameters (socket connection to 15s, idle socket to 60s, socket stop to 60s, max connections per host to 10, max total connections to 20). Suggested by Kristoffer Gronowski. - Upgraded Jackson to version 2.4.3. - Jackson representation now ignore empty value (null or empty collections) by default in the JSON/XML/CSV/YAML produced, leading to more compact representations. - Fixed log level (issue #777). Reported by Marcus NL. - API changes - Deprecated statusService property in Component to keep it only in Application. - Added connegService, metadataService and converterService properties to StatusService and pass them via the constructor instead of the toRepresentation and toStatus methods. - Renamed @Status#serializeProperties (default to false) into serialize (default to true). - Deprecated Component#statusService in favor of the Application#statusService property. - Bugs fixed - @Status now works with annotated methods on the server-side. - Securing JaxRepresentation by default (issue #785). Reported by Jim Trainor. - OData Edm.DateTime properties are sometimes parsed as null (issue #946). Reported and contributed by Emmanuel Liossis. - 2.3 Milestone 3 (09/18/2014) - New features - Added API firewall feature to the APISpark extension. - Added RAML support in dedicated extension. - Enhancements - Added targetRef support to templates, allow reference variables to resolve to the full reference (issue #935). Contributed by Jeremy Gustie. - Updated agent.properties file with recent Opera user agent signature. - Added Resource#toRepresentation(Object, MediaType) convenience method. - Added ConverterService#toRepresentation(Object, MediaType) convenience method. - Added ConverterService#toRepresentation(Object, Variant) convenience method. - Added static Resource#toInteger, toFloat, toByte, toLong, toDouble, toBoolean methods accepting 'null' string values to facilitate the processing of path variables and query parameters. - Renamed StatusService methods from getRepresentation(...) and getStatus(...) to toRepresentation(...) and toStatus(...), added throwable parameters to allow access to throwable and converter service if available. - Aligned behavior of StatusService (underlying StatusFilter) with the behavior of the ServerResource#doCatch() method in case a throwable is intercepted. - Added org.restlet.resource.@Status annotation type to automatically convert Throwable Java classes between HTTP statuses and error response entities. NOTE: implementation is in progress. - StatusService.toStatus(Throwable, ...) methods now support @Status annotations to set the proper code. - Bugs fixed - ObjectRepresentation wasn't closing a Decoder in case reading exceptions occured. - ServerResource#doCatch() method wasn't invoking StatusService to set the error representation if empty. - Fixed potential NPE in odata extension when schema ComplexType in a document does not declare a schema attribute (issue #932). - Uncaught exceptions may cause LogFilter to fail, with dire consequences. Issue #931. Reported and contributed by Tal Liron. - The Restlet internal connector only serves from one thread. #937 - Fixed dependencies for Swagger extension. #956 - 2.3 Milestone 2 (05/06/2014) - New features - APISpark extension now includes an Introspector service (see main method) that can analyze a Restlet Application, introspect its web API definition and push it to APISpark.com PaaS for online and intuive documentation. Added user guide page to describe the process and parameters. API contract can be created or updated (replaced) remotely. - Enhancements - Added HTTPS support to Jetty connector. Issue #793. Contributed by Tal Liron. - ServletWarEntity and ZipEntryEntity ignore the timeToLive parameter. Issue #866. Reported and contributed by Jeremy Gustie. - ServletWarEntity is limited to file system modification dates. Issue #868. Reported and contributed by Jeremy Gustie. - Bugs fixed - Added copy of Servlet request parameters to the Restlet request attributes. Issue #741. Reported by Steve Rowe and contributed by Jeremy Gustie. - Stripped Servlet container generated "jsessionid" matrix parameter. Issue #770 Reported and contributed by Jeremy Gustie. - Fixed CompositeHelper.handle fails when Component has no inbound filters. Issue #865. Reported and contributed by Jeremy Gustie. - Fixed missing internal FTP client connector registration. - Fixed missing internal HTTPS server isn't properly registered. Reported by Roy Olsen. - Fixed forgotten traces to the console #911, #905, #904. Reported by Emanuele Massara. - Fixed missing default values for DefaultSslContextFactory attributes, issue #903. - Prevented NPE in org.httpclient.internal.HttpMethodCall.getStatusCode, issue #871. Reported by Claus Ibsen. - Stabilized Swagger documentation for JAX-RS applications. Issue #827. - Misc - Removed unecessary ".properties" files from the distributions, issue #892. - Added mention of edition and version in Javadoc header. - Lowered trace level from 'info' to 'fine' for OBAP pseudo client. - 2.3 Milestone 1 (03/27/2014) - New features - Added initial APISpark extension. Issue #875. - Added Jetty client for HTTP and HTTPS. Issue #512. Contributed by Tal Liron. - Enhancements - Upgraded project to Java 7. Issue #874. - Upgraded Jetty connector to version 9.1.3. Issue #793. Contributed by Tal Liron. - Upgraded Servlet API to version 3.1. - Upgraded JAX-RS API to version 2.0. - Added JBoss RESTEasy library version 3.0.6. - Added Reference constructor taking two URI instances. - Added Message#getHeaders() method to facilitate raw HTTP headers manipulation. Issue #879. Suggested by Robert Fischer, Jack Jones and others. - Moved Header class to org.restlet.util package. - Integration of new Guice extension, issue #489. Reported and contributed by Tim Peierls. - Misc - Refactored test cases to test all combinations of connectors including server (Internal, Jetty, NIO, Simple) and client (Apache, Internal, Jetty, NIO) - Started integration of Restlet JAX-RS extension with RESTEasy. - Removed AJP (Tomcat protocol) support from the Jetty extension. Not supported anymore by Eclipse Jetty 9.1.