Release 5.1.0.0
Date: Jan 18, 2014
Juno 5.1.0.0 is a major update.
Major changes
-
Brand new REST client API that uses Apache HttpClient for HTTP communication. The new client API is simply a thin layer on top of
HttpClient
that performs serialization and parsing using Juno parsers but leaves all the details of the HTTP connection to the Apache code. See theclientpackage for details. -
New
org.apache.juneau.rest.client.jazz
package andorg.apache.juneau.rest.client.jazz.JazzRestClient
class for performing REST operations against Jazz servers. Includes improved support for FORM authentication, and better SSL certificate validation. -
Completely redesigned URL-Encoding support. See
urlencodingpackage for details. -
Changes to Parser API.
- Removal of
ExtendedReaderParser
abstract class and moved methods into ReaderParser class. - Removal of
DataFormat
class from API since it was no longer necessary due to API change above. - Removal of
ParserStringReader
class. This was a reader optimized to work withString
input. However, it could interfere with garbage collection of the original string object. Instead, the existing ParserReader was enhanced to work well withString
input, and tests show no significant performance differences. - New
org.apache.juneau.parser.Parser.parse(Object,int,ClassMeta)
convenience method added.
- Removal of
Other changes
-
Various new methods added to
StringUtilsandClassUtils. -
Improved support on
BeanContext.getClassMetaFromString(String). Now supports resolving"long[]"
, and so forth. -
ResourceDescriptionname parameter is now automatically URL-encoded in links. -
RestRequest now correctly handles cases involving URL-encoded characters in the path info portion of URLs (e.g.
http://host/contextRoot/foo%2Fbar
). -
Removed lazy-initialization that required locking in ClassMeta.
-
New
BeanContext.setDefaultParser(ReaderParser)
method added for specifying a default parser to use in a bean context (used when converting beans toStrings
usingBeanContext.convertToType(Object,Class)). Old behavior simply used the default JSON serializer in these cases. -
More consistent handling of exceptions across all parsers.
-
Minor changes to RestRequest class.
- Changed the order of parameters on
RestRequest.getParameter(String,Class). - Added
RestRequest.getMapParameter(String,Class,Class,Class)
andRestRequest.getCollectionParameter(String,Class,Class)
methods.
- Changed the order of parameters on