blob: 1c7d3cb28f449fb6139e2cae5b25c41066027ac9 [file] [log] [blame]
<!--
/***************************************************************************************************************************
* Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
***************************************************************************************************************************/
-->
5.0.0.14 (Mar 23, 2013)
<p>
Juno 5.0.0.14 is a major update.
</p>
<p>
The biggest change is that the <c>RestSerializer</c>, <c>RestParser</c>, <c>RestSerializerGroup</c>, and <c>RestParserGroup</c> classes have been eliminated entirely.<br>
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.
</p>
<p>
Adoptions will be required if you have previously used these classes.
</p>
<h5 class='topic w800'>Core API changes</h5>
<ul class='spaced-list'>
<li>
New <c>org.apache.juneau.serializer</c> package.
<ul>
<li>Entirely reworked class hierarchy to make it easier to define new serializers.</li>
<li>New {@link oaj.serializer.WriterSerializer} base class for defining character-based serializers.</li>
<li>New {@link oaj.serializer.OutputStreamSerializer} base class for defining byte-based serializers.</li>
<li>Updated {@link oaj.serializer.SerializerGroup} class with full support for RFC2616 <c>Accept-Content</c> headers.</li>
<li>Improved cloning support on serializers and serializer groups.</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.parser</c> package.
<ul>
<li>Entirely reworked class hierarchy to make it easier to define new parsers.</li>
<li>New {@link oaj.parser.ReaderParser} base class for defining character-based parsers.</li>
<li>New {@link oaj.parser.InputStreamParser} base class for defining byte-based parsers.</li>
<li>Improved cloning support on parsers and parser groups.</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.transform</c> package.
<ul>
<li>Cleaner class structure.</li>
<li>Improved {@link oaj.transform.BeanFilter} class for defining property filters on beans.</li>
<li>Improved {@link oaj.utils.PojoQuery} class for defining filters on objects (previously called <c>ObjectFilter</c>).</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.encoders</c> package.
<ul>
<li>Defines API for {@link oaj.encoders.Encoder Encoders} for enabling compression in REST servlets and clients.</li>
<li>Previously, gzip compression was enabled by default. This new API allows you to plug in your own compression algorithms.</li>
<li>New {@link oaj.encoders.GzipEncoder} class for enabling gzip compression.</li>
<li>New {@link oaj.encoders.EncoderGroup} class for managing multiple encoders and finding them based on RFC2616 <c>Accept-Encoding</c> header values.</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.plaintext</c> package.
<ul>
<li>New {@link oaj.plaintext.PlainTextSerializer} and {@link oaj.plaintext.PlainTextParser} classes for serializing/parsing text/plain content.</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.jso</c> package.
<ul>
<li>New {@link oaj.jso.JsoSerializer} class for serializing <c>application/x-java-serialized-object</c> content.</li>
</ul>
</li>
<li>
New <c>org.apache.juneau.soap</c> package.
<ul>
<li>New {@link oaj.soap.SoapXmlSerializer} class for serializing <c>text/xml+soap</c> content.</li>
</ul>
</li>
<li>
Improved cloning support on the {@link oaj.BeanContext} class.
<ul>
<li>Better caching. Improved caching performance.</li>
</ul>
</li>
<li>
<c>JsonMap</c> and <c>JsonList</c> changed to {@link oaj.ObjectMap} and {@link oaj.ObjectList} to better reflect that they're not limited to just JSON support.
</li>
<li>
Renamed <c>PojoSwap</c> to {@link oaj.utils.PojoQuery} to not confuse it with the new Filter API.
</li>
</ul>
<h5 class='topic w800'>REST server API changes</h5>
<ul class='spaced-list'>
<li>
Eliminated <c>org.apache.juneau.rest.serializers</c> and <c>org.apache.juneau.rest.parsers</c> packages.
<ul>
<li>All existing REST serializers and parsers merged into the core API.</li>
</ul>
</li>
</ul>
<h5 class='topic w800'>REST client API changes</h5>
<ul class='spaced-list'>
<li>
Simplified {@link oajrc.RestClient} API.
<ul>
<li>You can now only specify a single serializer or parser per client. This significantly simplifies the code.</li>
<li>Support for {@link oaj.encoders.Encoder Encoders}.</li>
</ul>
</li>
<li>
Eliminated <c>RestCmdLine</c> (since it's essentially redundant with CURL).
</li>
</ul>