5.0.0.14 (Mar 23, 2013)

Juno 5.0.0.14 is a major update.

The biggest change is that the `RestSerializer`, `RestParser`, `RestSerializerGroup`, and `RestParserGroup` classes have been eliminated entirely.
Instead, the existing {@link oaj.serializer.Serializer}, {@link oaj.parser.Parser}, {@link oaj.serializer.SerializerGroup}, and {@link oaj.parser.ParserGroup} classes of the core API have been augmented to replace them.

Adoptions will be required if you have previously used these classes.

##### Core API changes

- New `org.apache.juneau.serializer` package.
  - Entirely reworked class hierarchy to make it easier to define new serializers.
  - New {@link oaj.serializer.WriterSerializer} base class for defining character-based serializers.
  - New {@link oaj.serializer.OutputStreamSerializer} base class for defining byte-based serializers.
  - Updated {@link oaj.serializer.SerializerGroup} class with full support for RFC2616 `Accept-Content` headers.
  - Improved cloning support on serializers and serializer groups.
- New `org.apache.juneau.parser` package.
  - Entirely reworked class hierarchy to make it easier to define new parsers.
  - New {@link oaj.parser.ReaderParser} base class for defining character-based parsers.
  - New {@link oaj.parser.InputStreamParser} base class for defining byte-based parsers.
  - Improved cloning support on parsers and parser groups.
- New `org.apache.juneau.transform` package.
  - Cleaner class structure.
  - Improved {@link oaj.transform.BeanFilter} class for defining property filters on beans.
  - Improved {@link oaj.utils.PojoQuery} class for defining filters on objects (previously called `ObjectFilter`).
- New `org.apache.juneau.encoders` package.
  - Defines API for {@link oaj.encoders.Encoder Encoders} for enabling compression in REST servlets and clients.
  - Previously, gzip compression was enabled by default. This new API allows you to plug in your own compression algorithms.
  - New {@link oaj.encoders.GzipEncoder} class for enabling gzip compression.
  - New {@link oaj.encoders.EncoderGroup} class for managing multiple encoders and finding them based on RFC2616 `Accept-Encoding` header values.
- New `org.apache.juneau.plaintext` package.
  - New {@link oaj.plaintext.PlainTextSerializer} and {@link oaj.plaintext.PlainTextParser} classes for serializing/parsing text/plain content.
- New `org.apache.juneau.jso` package.
  - New {@link oaj.jso.JsoSerializer} class for serializing `application/x-java-serialized-object` content.
- New `org.apache.juneau.soap` package.
  - New {@link oaj.soap.SoapXmlSerializer} class for serializing `text/xml+soap` content.
- Improved cloning support on the {@link oaj.BeanContext} class.
  - Better caching. Improved caching performance.
- `JsonMap` and `JsonList` changed to {@link oaj.ObjectMap} and {@link oaj.ObjectList} to better reflect that they're not limited to just JSON support.
- Renamed `PojoSwap` to {@link oaj.utils.PojoQuery} to not confuse it with the new Filter API.

##### REST server API changes

- Eliminated `org.apache.juneau.rest.serializers` and `org.apache.juneau.rest.parsers` packages.
  - All existing REST serializers and parsers merged into the core API.

##### REST client API changes

- Simplified {@link oajrc.RestClient} API.
  - You can now only specify a single serializer or parser per client. This significantly simplifies the code.
  - Support for {@link oaj.encoders.Encoder Encoders}.
- Eliminated `RestCmdLine` (since it's essentially redundant with CURL).