8.1.2 (Dec 01, 2019)

Juneau 8.1.2 is a moderate release.

##### juneau-marshall

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

##### juneau-rest-server

- {@link oajr.annotation.Rest @Rest} replaces RestResource @RestResource with shorter syntax.
- New method 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: oajrc.RestClient.RestClient(RestClient.Builder).
- Duplicate methods between {@link oajrc.RestClient.Builder} 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.