Devoxx Java EE 8
Raw notes from Linda DeMichiel's Java EE 8 talk.
What was in EE 7: Actually a very action packed release, with the usual themes: simplicity, platform cohesion, embracing contemporary standards.
EE8: Admit the impact of the hiatus. The original plan had to be scaled back from 12 to 9 JSRs. Really not a big scale back.
Two net new JSRs: Security and JSON-B. Revisions for Servlet, JSF, JSON-P, JAX-RS.
JSON-P. JSON-Pointer: String syntax for referencing into a JSON document. RFC-6901. Would be nice if there was EL integration. JSON Patch: Ability to mutate a JSON document. RFC-6902. This has a builder API. JSON-Merge Patch: Conditionally apply the patch. RFC-7386. Also includes seamless integration with Java SE 8 Lambda and Strings.
JSON-B. Like JAX-B, but for JSON. This is the missing piece for
JSON in standard Java. JsonbBuilder
is the client entry
point. Jsonb
the thing you actually manipulate. Allows
you to annotate your Java Pojo to control how it is mapped to JSON.
The JsonBConfig
allows you to do this control. The RI is
called Yasson.
JAX-RS. New features: Reactive Client API, Server Sent Events, NIO. I have more on this at a previous post. Linda's talk had more structure on Server Sent Events. I am glad she emphasized the value JAX-RS brings in sending SSE to both client and server when doing REST.
Servlet. But first set the context with some plain content on HTTP/2. When talking about the binary framing, she mentioned that frames were self describing, which was a nice observation.
JSF. A mature technology. An enormous number of community requested fixes. She did address why we are continuing JSF while we are not continuing MVC. This was nice to hear.
CDI 2.0. Mostly about how to use CDI in Java SE environments,
outside of Java SE. This is hugely important for fat-jar style
Microservices. Some enhancements to CDI events. In 1.1, events are
invoked synchronously, without regard for priority. 2.0 allows
prioritization and ordering. Adds async
events: event.fireAsync()
and @ObserveAsync
.
BeanValidation 2.0. Continuing the theme with JSF, adds support for
a number of Java SE 8 features. Adds some new constraints. Add
ability to apply constraints on insertion into Map
.
Security 1.0. Three new APIs SecurityContext,
HttpAuthenticationMechanism, IdentityStore
. The first is under
debate about whether or note the first is actually
necessary. SecurityContext
is intended to supercede APIs
in several of the other EE technologies. I like the
idea. HttpAuthenticationMechanism
, modeled on JASPIC,
and JASPIC is intended to delegate to this. It is used to
authenticate callers of web applications. IdentityStore
has methods for authentication and authorization.
Summary: Target release date of this summer!