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 the {@del org.apache.juneau.rest.client} package for details.
- New org.apache.juneau.rest.client.jazz package and org.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 {@del org.apache.juneau.urlencoding} package for details.
- Changes to Parser API.
- Removal of ExtendedReaderParser abstract class and moved methods into
{@link oaj.parser.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 with String input.
However, it could interfere with garbage collection of the original string object.
Instead, the existing {@link oaj.parser.ParserReader} was enhanced to work
well with String input, and tests show no significant performance differences.
- New org.apache.juneau.parser.Parser.parse(Object,int,ClassMeta) convenience method added.
Other changes
- Various new methods added to {@link oaj.internal.StringUtils} and {@link oaj.internal.ClassUtils}.
- Improved support on {@del BeanContext#getClassMetaFromString(String)}.
Now supports resolving "long[]", and so forth.
- {@del ResourceDescription} name parameter is now automatically URL-encoded in links.
- {@link oajr.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 {@link oaj.ClassMeta}.
- New BeanContext.setDefaultParser(ReaderParser) method added for specifying
a default parser to use in a bean context (used when converting beans to Strings using
{@del BeanContext#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 {@link oajr.RestRequest} class.
- Changed the order of parameters on {@del RestRequest#getParameter(String,Class)}.
- Added RestRequest.getMapParameter(String,Class,Class,Class) and
RestRequest.getCollectionParameter(String,Class,Class)} methods.