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

Dependency Injection In Java and CDI

Spring Components & Auto Scanning & Configuration

Servlet