Java EE Technology Stack

In this article, we will examine the components of Java EE technology stack and historically look at the new comer components and version changes in the components along with the Java EE versions. I will use this article as the umbrella for Java EE stack and update for every new features added to Java EE.


About Java Enterprise Edition

Under the container architecture named Java Enterprise Edition;
  - business logic (projects to EJB)
  - contents or presentations (projects to Servlet, JSP, JSF)
are developed as software components and then run in a managed execution environment named containers.

In terms of Java EE, there are two types of containers;
  • Web container
    • In web container, the components are generated in the form of Servlet, JSP and JSF, called web components.
    • Tomcat is a Java EE web container in which web components can be executed.
  • Application container
    • In the application container, the components are generated in the form of EJBs.
    • Weblogic, Websphere, Tom EE are some of JEE compliant application servers.

What containers do ?

Containers provide essential services to components and execute the life cycle of components.
Samples for the provided services by containers:
  • Security
  • Transaction management
  • Life cycle management
  • Request dispatching
Below is the diagram for the web and ejb containers and the services provided for each in Java EE 5:



Java EE 6 Technology Stack

The umbrella specification for Java EE 6 is JSR 316
Java EE 6 API
Version
Spec
Web Container
EJB Container
Servlet
JSR 315
✔
X
Java Server Faces
JSR 314
✔
X
EJB (Enterprise Java Beans)
JSR 318
X
✔
EJB Lite
JSR 318
✔
X
Interceptors
JSR 318
✔
✔
Managed Beans

✔
✔
Common Annotations
JSR 250
✔
✔
Dependency Injection for Java
JSR 330
✔
✔
CDI (Contexts and Dependency Injection)
JSR 299
✔
✔
Bean Validation
JSR 303
✔
✔
EL
JSR 245
✔
X
JavaMail
JSR 919
✔
✔
JSP
JSR 245
✔
X
Connectors
JSR 322
✔
✔
JPA (Java Persistence)
JSR 317
✔
✔
JTA (Java Transaction API)
JSR 907
X
✔
JMS (Java Message Service API)
JSR 914
✔
✔
Management
JSR 77
✔
✔
JMX
JSR 255
✔
✔
WS Metadata

✔

Web Services
JSR 109
✔
✔
JACC (Java Authorization Contract for Containers)
JSR 115
✔
✔
JASPIC (Java Authentication Service Provider Interface)

✔
✔
JAX-RS (Java API for RESTful Web Services)
JSR 311
✔
✔
JAX-WS (Java API for XML-Based Web Services)
JSR 224
✔
✔
JAX-RPC (Java API for XML-Based RPC)
JSR 101
✔
✔
JAXR (Java API for XML Registries)
JSR 93
X
✔

Java EE 7 Technology Stack

The umbrella specification for Java EE 7 is JSR 342
Java EE 7 API
Version
Spec
Web Container
EJB Container
Servlet
JSR 340
✔
X
Java Server Faces
JSR 344
✔
X
EJB (Enterprise Java Beans)
JSR 345
X
✔
EJB Lite
JSR 345
✔
X
Concurrency Utilities
JSR 236
✔
✔
Batch Applications for the Java Platform

✔
✔
Interceptors
JSR 318
✔
✔
Managed Beans
JSR 342
✔
✔
Common Annotations
JSR 250
✔
✔
Dependency Injection for Java
JSR 330
✔
✔
CDI (Contexts and Dependency Injection)
JSR 346
✔
✔
Bean Validation
JSR 349
✔
✔
EL
JSR 341
✔
X
JSTL
JSR 52
✔
X
JavaMail
JSR 919
✔
✔
JSP
JSR 245
✔
X
Connectors
JSR 322
✔
✔
JPA (Java Persistence)
JSR 338
✔
✔
JTA (Java Transaction API)
JSR 907
X
✔
JMS (Java Message Service API)
JSR 343
✔
✔
Management
JSR 77
✔
✔
JMX
JSR 003
✔
✔
WS Metadata

✔

Web Services
JSR 109
✔
✔
JACC (Java Authorization Contract for Containers)
JSR 115
✔
✔
JASPIC (Java Authentication Service Provider Interface)
JSR 196
✔
✔
JAX-RS (Java API for RESTful Web Services)
JSR 339
✔
✔
JAX-WS (Java API for XML-Based Web Services)
JSR 224
✔
✔
JAX-RPC (Java API for XML-Based RPC)
JSR 101
✔
✔
JAXR (Java API for XML Registries)
JSR 93
X
✔
JSON-P (Java API for JSON Processing)

✔
✔
WebSocket
JSR 356
✔
X

Java EE 8 Technology Stack

The umbrella specification for Java EE 8 is JSR 366

Java EE 8 API
Version
Spec
Web Container
EJB Container
Servlet
JSR 369
✔
X
JSF (Java Server Faces)
JSR 372
✔
X
EJB
JSR 345
X
✔
EJB Lite
JSR 345
✔
X
Concurrency Utilities
JSR 236
X
✔
Batch Applications for the Java Platform
JSR 352
X
✔
Interceptors
JSR 318
✔
✔
Common Annotations
JSR 250
✔
✔
Dependency Injection for Java
JSR 330
✔
✔
CDI (Contexts and Dependency Injection)
JSR 365
✔
✔
Bean Validation
JSR 380
✔
✔
EL
JSR 341
✔
X
JavaMail
JSR 919
X
✔
JSP
JSR 245
✔
X
Connectors
JSR 322
X
✔
JPA (Java Persistence)
JSR 338
✔
✔
JTA (Java Transaction API)
JSR 907
✔
✔
JMS (Java Message Service API)
JSR 343
X
✔
Management
JSR 77
X
✔
WS Metadata
JSR 181
X
✔
Web Services
JSR 109
X
✔
JACC (Java Authorization Contract for Containers)
JSR 115
X
✔
JASPIC (Java Authentication Service Provider Interface)
JSR 196
✔
✔
JAX-RS (Java API for RESTful Web Services)
JSR 339
✔
✔
JAX-WS (Java API for XML-Based Web Services) (SE)
JSR 224
✔
✔
JAX-RPC (Java API for XML-Based RPC)
JSR 101
X
✔
JAXR (Java API for XML Registries)
JSR 93
X
✔
JAXP (Java API for XML Processing) (SE)
JSR 206
✔
✔
JAXB (Java Architecture for XML Binding) (SE)
JSR 222
✔
✔
StAX (Streaming API for XML) (SE)
JSR 173
✔
✔
JSTL
JSR 52
✔
X
JSON-P (Java API for JSON Processing)
JSR 374
✔
✔
JSON-B (Java API for JSON Binding)
JSR 367
✔
✔
WebSocket
JSR 356
✔
X
Java EE Security API
JSR 375
✔
✔
Java EE Application Deployment (Optional)
JSR 88
X
✔
Debugging Support for Other Languages
JSR 45
✔
✔
SAAJ (SOAP with Attachments API for Java) (SE)
JSR 67
✔
✔
JMX (Java Management Extensions) (SE)
JSR 003
✔
✔
Java Database Connectivity (SE)
JSR 221
✔
✔
JAF (JavaBeans Activation Framework) (SE)
JSR 925
✔
✔

Yorumlar

Popular

The Convergence of OpenJDK and the Oracle JDK

Java 9 New Features

Pretenders, Contenders and Liars