5.1.0.10 (Dec 23, 2014)
Juno 5.1.0.10 is a moderate update.
Core
- Major changes to URL-Encoded serializer and parser.
- Logic for serializing and parsing URL-Encoded key-value pairs moved to {@link oaj.urlencoding.UrlEncodingSerializer} and {@link oaj.urlencoding.UrlEncodingParser} classes.
- Logic for serializing and parsing URL-Encoded values moved to new {@link oaj.uon.UonSerializer} and {@link oaj.uon.UonParser} classes.
- Fix bug where BeanRuntimeExceptions weren't being thrown on subsequent calls to {@link oaj.BeanContext#getClassMeta(Class)}.
- Moved logic for BeanContext.getPrimitiveDefault(Class) to new {@link oaj.ClassMeta#getPrimitiveDefault()} method for performance reasons.
- Fixed bug in BeanContext.addTransforms(Class[]) that would cause filter order to get messed up.
- {@link oaj.ClassMeta#newInstance()} can now create array instances.
- Fixed indentation bugs in {@link oaj.html.HtmlSerializer}.
- Fixed issue in {@link oaj.html.HtmlSerializer} where newlines were not being converted into line breaks.
- New {@link oaj.serializer.WriterSerializer#toString(Object)} method that's identical to the serialize method but throws RuntimeExceptions to make the serializer easier to use for debugging.
Server
- Fixed major issue that prevented parsing URL-Encoded form posts into POJOs.
Calling HttpServlet.getParameter(String) was forcing the underlying servlet code to process the HTTP body itself, preventing the UrlEncodingSerializer
class from being able to parse the content. Updated code no longer inadvertantly calls this method.
- New RestRequest.getQueryParameter(String), RestRequest.hasQueryParameter(String), and RestRequest.hasAnyQueryParameters(String[])
methods that only look for parameters in the URL query string to prevent loading and parsing of URL-Encoded form posts.
- New @QParam and @HasQParam annotations for accessing query parameters from the URL query string.
- &plainText parameter can now specify a false value.
- Removed properties parameters from RestServlet.onPreCall(RestRequest) and RestServlet#onPostCall(RestRequest,RestResponse) methods
since the properties are already accessible through RestRequest.getProperties().
- Added {@link oaj.uon.UonSerializer} and {@link oaj.uon.UonParser} to serializer and parser lists on
{@link oajr.BasicRestServlet} and RestServletJenaDefault.
Client
- Moved to Apache HttpClient 4.3 to match Jazz 6.0.
- Renamed RestResponseEntity to {@link oajrc.RestRequestEntity}.
- Improved performance on URL-Encoded form posts by serializing directly to output stream instead of serialized to string first.
- New methods on {@link oajrc.RestClient} class that makes it easier to associate serializer and parser attributes with registered serializer and parser:
- RestClient#setProperty(String,Object)
- RestClient#setProperties(ObjectMap)
- RestClient#addNotBeanClasses(Class[])
- RestClient.addTransforms(Class[])
- RestClient#addImplClass(Class,Class)
- Renamed RestClient.shutdown() to {@link oajrc.RestClient#close()} to mirror change in Apache API.
Samples
- New CodeFormatterResource for quickly formatting Java and XML code samples in Javadocs.
- New UrlEncodedFormResource for showing how to work with URL-Encoded form posts.