blob: 0528882621572b105267bd68d25c432a4f122d12 [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.20 (Apr 7, 2013)
<p>
Juno 5.0.0.20 is a major update.
</p>
<h5 class='topic w800'>Core API changes</h5>
<ul class='spaced-list'>
<li>
New Jena-based {@link oaj.jena.RdfSerializer} for serializing POJOs to RDF/XML, RDF/XML-ABBREV, N-Triple, Turtle, and N3.<br>
Serializes ANY POJOs to RDF, even simple objects and primitives.
</li>
<li>
New Jena-based {@link oaj.jena.RdfParser} for parsing RDF/XML, RDF/XML-ABBREV, N3, Turtle, and N-Triple back into POJOs.
</li>
<li>
<dc>XmlSerializerContext.XML_autoDetectNamespaces</dc> default changed to <jk>true</jk>.<br>
The old default value would cause XML with unmapped namespaces if you didn't manually specify them via the <dc>XmlSerializerContext.XML_namespaces</dc> annotation.<br>
While setting the default to <jk>true</jk> is somewhat slower (since the serializer must crawl the POJO tree to find namespaces), the benefits of having it work out-of-the-box outweighs the performance concerns.<br>
For developers concerned about performance, they can always change it back to false and specify the namespaces themselves.
</li>
</ul>
<h5 class='topic w800'>REST server API changes</h5>
<ul class='spaced-list'>
<li>
Allow inheritance of <dc>@RestResource</dc> annotation.<br>
Serializers, parsers, filters, properties , guards, and converters definitions are automatically inherited from parent classes and interfaces.
</li>
<li>
Enhancements to {@link oajr.annotation.RestMethod @RestMethod} annotation:
<ul>
<li>
New <c>RestMethod.filters()</c> annotation for defining POJO filters at the method level.
</li>
<li>
New <dc>RestMethod.serializersInherit()</dc> and <dc>RestMethod.parsersInherit()</dc> annotations for controlling how serializers and parsers (and associated filters and properties) are inherited from the class.<br>
This replaces the previous <c>addSerializers</c> and <c>addParsers</c> annotations.
</ul>
</li>
<li>
New <dc>RestServletJenaDefault</dc> servlet that includes serialization/parsing support for all Jena-based serializers and parsers.
</li>
<li>
New <dc>DefaultJenaProvider</dc> JAX-RS provider that includes serialization/parsing support for all Jena-based serializers and parsers.
</li>
<li>
Eliminated <c>RestServletChild</c> class.<br>
It's redundant with the introduction of inheritable annotations.
</li>
<li>
New methods on {@link oajr.RestServlet}:
<ul>
<li><c>RestServlet.createConfigFactory()</c></li>
<li><c>RestServlet.createSerializers()</c></li>
<li><c>RestServlet.createParsers()</c></li>
</ul>
These augment the existing <c>getBeanContext()</c> / <c>getSerializers()</c> / <c>getParsers()</c> methods.
</li>
</ul>
<h5 class='topic w800'>REST client API changes</h5>
<ul class='spaced-list'>
<li>
New <c>RestCall.setDateHeader(String,Object)</c> method for setting ISO8601 datetime headers.
</li>
</ul>