8.1.2 (Dec 01, 2019)

Juneau 8.1.2 is a moderate release.

##### juneau-marshall

- Support for read-only and write-only properties.
  - {@link oaj.annotation.Bean#bpro()}
  - {@link oaj.annotation.Bean#bpwo()}
  - {@link oaj.annotation.Beanp#ro()}
  - {@link oaj.annotation.Beanp#wo()}
  - {@link oaj.BeanContext#BEAN_bpro}
  - {@link oaj.BeanContext#BEAN_bpwo}
  - {@link oaj.BeanContextBuilder#bpro(Map)}
  - {@link oaj.BeanContextBuilder#bpwo(Map)}
- New convenience methods:
  - {@link oaj.ObjectMap#parse(CharSequence)}
  - {@link oaj.ObjectList#parse(CharSequence)}
- {@link oaj.marshall.CharMarshall} and {@link oaj.marshall.StreamMarshall} now have public constructors.
- {@link oaj.annotation.Beanp @Beanp} replaces {@link oaj.annotation.BeanProperty @BeanProperty}.
- {@link oaj.annotation.Beanc @Beanc} replaces {@link oaj.annotation.BeanConstructor @BeanConstructor}.
- {@link oaj.http.remote.Remote @Remote} replaces {@link oaj.http.remote.RemoteResource @RemoteResource}.
- Shortened names for {@link oaj.annotation.Bean#dictionary @Bean(dictionary)} and {@link oaj.BeanContextBuilder#dictionary(Object...)}.

##### juneau-rest-server

- {@link oajr.annotation.Rest @Rest} replaces {@link oajr.annotation.RestResource @RestResource} with shorter syntax.
- New method {@link oajr.RestResponse#setHeaderSafe(String,String)} to strip invalid characters from header values.
- Fixed issues related to invalid characters being set on HTTP header values.

##### juneau-rest-client

- {@link oajrc.RestClient} is now extendible. The constructor has been made public and simplified to: {@link oajrc.RestClient#RestClient(RestClientBuilder)}.
- Duplicate methods between {@link oajrc.RestClientBuilder} and {@link org.apache.http.impl.client.HttpClientBuilder} have been made deprecated on the former. This eliminates the need to try to keep the two builder classes in sync.