8.1.3 (TBD)

Juneau 8.1.3 is a moderate release.

##### juneau-marshall

- Dynamically applied annotations: {@doc juneau-marshall.DynamicallyAppliedAnnotations}
- Better representation of nulls for XML and HTML content properties.
  Old: "<myBean><null></myBean>"
  New: "<myBean nil='true'></myBean>"
- Configurable properties such as {@link oaj.BeanContext#BEAN_debug} can now be set globally by either system properties or environment variables.
  For BEAN_debug you can use either the system property "BeanContext.debug" or environment variables "BEANCONTEXT_DEBUG".
- Fixed an initialization time race condition that can cause initial parse errors when concurrently parsing into array types like so:

  JsonParser.DEFAULT.parse(input, MyBean[].class);

##### juneau-rest-server

- Fixed bug in {@link oajr.BasicRestCallHandler} where if you have the following REST methods...

  @RestMethod(name="GET", path="/foo") @RestMethod(name="*", path="/bar")

  ...and you tried to make a GET request to /bar, you'd erroneously get a 404 error instead of matching the 2nd method.
- Fixed an issue involving using Juneau REST with Spring Security. When Spring Security cannot authenticate a request, it sets the URL on the request to "/error" with a 401 status. When Juneau then processes this request, it cannot find that mapping and changes the status to 404 which messes with HTTP clients.
  Solution was to add a default no-op error method to the {@link oajr.BasicRestConfig} (and implementers):

  @RestMethod(name="*", path="/error") public void error() {}

- Fixed a bug where @RestResource(debug="true") wouldn't log requests if a @RestMethod-annotated method was not matched.
- Renamed the following annotations:
  - @Rest(attrs) --> {@link oajr.annotation.Rest#reqAttrs() @Rest(reqAttrs)}
  - @Rest(defaultRequestHeaders) --> {@link oajr.annotation.Rest#reqHeaders() @Rest(reqHeaders)}
  - @Rest(defaultResponseHeaders) --> {@link oajr.annotation.Rest#resHeaders() @Rest(resHeaders)}
  - @RestMethod(attrs) --> {@link oajr.annotation.RestMethod#reqAttrs() @RestMethod(reqAttrs)}
  - @RestMethod(defaultRequestHeaders) --> {@link oajr.annotation.RestMethod#reqHeaders() @RestMethod(reqHeaders)}
- New auto-generated REST method execution statistics: {@doc juneau-rest-server.ExecutionStatistics}

##### juneau-rest-client

- Several convenience methods defined in {@link oajrc.RestClientBuilder} that were deprecated in 8.1.2 have been undeprecated in this release due to user feedback.

##### juneau-doc

- New auto-generated glossary of all configurable properties: {@doc Glossaries.ConfigurablePropertiesGlossary}