blob: ab8e74a35a905d75755caa0421352ea6995c2a54 [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 <code>RestSerializer</code>, <code>RestParser</code>, <code>RestSerializerGroup</code>, and <code>RestParserGroup</code> 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 <code>org.apache.juneau.serializer</code> 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 <code>Accept-Content</code> headers.</li>
<li>Improved cloning support on serializers and serializer groups.</li>
</ul>
</li>
<li>
New <code>org.apache.juneau.parser</code> 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 <code>org.apache.juneau.transform</code> 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 <code>ObjectFilter</code>).</li>
</ul>
</li>
<li>
New <code>org.apache.juneau.encoders</code> 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 <code>Accept-Encoding</code> header values.</li>
</ul>
</li>
<li>
New <code>org.apache.juneau.plaintext</code> 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 <code>org.apache.juneau.jso</code> package.
<ul>
<li>New {@link oaj.jso.JsoSerializer} class for serializing <code>application/x-java-serialized-object</code> content.</li>
</ul>
</li>
<li>
New <code>org.apache.juneau.soap</code> package.
<ul>
<li>New {@link oaj.soap.SoapXmlSerializer} class for serializing <code>text/xml+soap</code> 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>
<code>JsonMap</code> and <code>JsonList</code> changed to {@link oaj.ObjectMap} and {@link oaj.ObjectList} to better reflect that they're not limited to just JSON support.
</li>
<li>
Renamed <code>PojoSwap</code> 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 <code>org.apache.juneau.rest.serializers</code> and <code>org.apache.juneau.rest.parsers</code> 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 <code>RestCmdLine</code> (since it's essentially redundant with CURL).
</li>
</ul>