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.