5.1.0.8 (Oct 25, 2014)
Juno 5.1.0.8 is a moderate update, focused primarily on performance improvements.
- Improved performance on JSON and URL-Encoding parsers by approximately 50% on large data sets.
- Rewrote {@link oaj.parser.ParserReader} class to handle it's own buffering.
The change allowed several optimizations to be made when dealing with JSON and URL-Encoding
text by avoiding char array copies.
- Added a estimatedSize parameter to the {@link oaj.parser.Parser} parse methods to
optimize buffering when the input size is known beforehand.
- Revamped the {@link oaj.BeanContext} API to perform better in multi-threaded environments.
- Introduced a new BeanPropertyStore class that handles creation of {@link oaj.BeanContext} objects.
This allows BeanContext objects to be considered immutable, and therefore cacheable/reusable by the framework.
While this was technically possible to cache these objects beforehand, it relied on a locking mechanism to prevent bean contexts
from being modified after being created. The new mechanism is much more straightforward.
- Modifications to the
org.apache.juneau.rest.client APIs to make it easier to work with custom Apache HTTP clients.
- Added overridable RestClient#createHttpClient() to allow customized subclasses to construct customized HTTP clients.
- Removed the DefaultRestClient class since it's now fully redundant with RestClient.
- Added RestClient.shutdown() method for cleaning up the internal HTTP client when you're done using a REST client.