Enterprise grade Java.
You'll read about Conferences, Java User Groups, Java, Integration, Reactive, Microservices and other technologies.

Monday, November 30, 2015

A Refresher - Java EE 7 At A Glance

10:34 Monday, November 30, 2015 Posted by Markus Eisele
As the Red Hat JBoss Enterprise Application Platform 7 (EAP 7) is looming on the horizon and even the WebLogic server just recently got Java EE 7 certified, I thought it might be about time to give you a little refresher about the Java Enterprise Edition 7 features and point you towards further resources.

Java EE 7 - Developer Productivity, HTML 5 and Enterprise Demands
The Java Enterprise Edition 7 offers new features for enhanced HTML5 support,
helps developers being more productive and further helps meeting enterprise demands. As a developer you will write a lot less boilerplate code and have better support for the latest Web applications and frameworks.

Main Topics Of Java EE 7

There are a couple of new features in Java EE 7 and Arun compiled a list of the top ten most prominent ones a while ago already and you can see the complete slide-deck as part of the Java EE 7 samples project on GitHub. This is a quick recap of them:

Java API for WebSocket 1.0 (JSR 356)
There is first class support for creating and deploying WebSocket endpoints. There is a standard W3C JavaScript API that can be used from browsers but this API also introduces a client endpoint.
The reference implementation is Tyrus.

Batch Applications for the Java Platform (JSR 352)
In-built support for Batch applications allows to remove dependency on third-party frameworks. Also see the Batch Applications tutorial on WildFly for further information.

JSON Processing (JSR 353)
Native support for JSON processing allows to make the application light-weight and getting rid of third party libraries.

Concurrency Utilities for Java EE (JSR 236)
Concurrency Utilities extends JSR standard Java SE Concurrency Utilities and add asynchronous capabilities to Java EE application components.

Simplified JMS API (JSR 368)
JMS API has been extremely simplified by leveraging CDI, Autocloseable, and other features of the language.

@Transactional and @TransactionScoped (JSR 907)
Deliver transactional applications with choice and flexibility, use @Transactional to enable transactions on any POJO.

JAX-RS Client API (JSR 339)
JAX-RS added a new Client API to invoke a REST endpoint using a fluent builder API.

Default Resources (JSR 342)
Default resources like JDBC DataSource, JMS ConnectionFactory, etc are added to simplify OOTB experience.

More annotated POJOs
More annotations have been added to simplify devops experience such as @JMSDestinationDefinition that automatically creates a JMS destination.

Faces Flow (JSR 344)
JSF added Faces Flow that allows to create reusable modules to capture a flow of pages together.

Pruned Technologies
While many new features have been added in Java EE 7, others have been made optional. Those are: Java EE Management (JSR-77); Application Deployment (JSR-88); JAXR, for interfacing with UDDI registries (JSR-93); JAX-RPC, for XML-based RPC (JSR-101); and EJB 2.x Container Managed Persistence, which is effectively replaced by the Java Persistence API (JSR-338). These specifications, while removed from the current release, remain optional for vendors in the event that demand for them persists among customers. They will, however, be removed in Java EE 8.

Further Reading
Java EE 7 API Documentation
Oracle Java EE SDK
Java EE 7 Tutorial
Java EE 7 Samples On Github
Application Server Migration: Java EE 5 to JBoss Wildfly Java EE7
Getting Started With EAP 7 Alpha and Java EE 7
Java EE 7 Essentials by Arun Gupta
Beginning Java EE 7 by Antonio Goncalves
Java EE Bootstrap Course by JBoss Champion Adam Bien
Arjan Tijm's ZEEF Page about Java EE 7