5.0.0.34 (Nov 10, 2013)

Juno 5.0.0.34 is a moderate update.

- New support for runtime-replaced variables in REST resource properties:

  @RestResource( messages="nls/Messages", properties={ @Property(name="label",value="$L{servletTitle}"), // Localized variable in Messages.properties @Property(name="javaVendor",value="$S{java.vendor}"), // System property @Property(name="foo",value="bar"), @Property(name="bar",value="baz"), @Property(name="v1",value="$R{foo}"), // Request variable. value="bar" @Property(name="v2",value="$R{$R{foo}}") // Nested request variable. value="baz" } )

  See RestServlet.createRequestVarResolver(RestRequest) for more information.
- Eliminated @Property.type annotation which was the old way of specifying NLS variables that got resolved at runtime.
- New methods on {@link oajr.RestRequest}:
  - RestRequest.getVarResolver()
  - RestRequest.getServletURI()
  - RestRequest.getRequestParentURI()
- New methods on {@link oajr.RestResponse}:
  - RestResponse.sendRedirect(CharSequence)
- New methods on {@link oajr.RestServlet} that allow easier customization by subclasses:
  - RestServlet.createConfigFactory()
  - RestServlet.createConverters()
  - RestServlet.createDefaultRequestHeaders()
  - RestServlet.createDefaultResponseHeaders()
  - RestServlet.createEncoders()
  - RestServlet.createFilters()
  - RestServlet.createGuards()
  - RestServlet.createMimetypesFileTypeMap()
  - RestServlet.createParsers()
  - RestServlet.createProperties()
  - RestServlet.createRequestProperties(ObjectMap,RestRequest)
  - RestServlet.createRequestVarResolver(RestRequest)
  - RestServlet.createSerializers()
  - RestServlet.createUrlEncodingParser()
- Changed RestServletNls to use ResourceDescription/MethodDescription instead of RestResource/RestMethod
- New property RestServletProperties.REST_htDocsFolder.
  New support for serving up static documents from classpath through REST interface.
- Exception APIs now use {@link java.text.MessageFormat} (e.g. "{0}") for message variables instead of "%s".
- New {@link oaj.annotation.Bean#stopClass @Bean.stopClass} annotation for specifying stop classes for bean properties.
- New BeanFilter.setStopClass(Class) which is the program equivalent to the annotation above.
- New methods on {@link oaj.dto.ResultSetList}:
  - ResultSetList.handleBlob(Blob)
  - ResultSetList.handleClob(Clob)