Overview of all Java EE specifications

I am looking for a clear description of all Java EE technology stacks.

I think that people like me who searched on many sites / tutorials did not find the exact list which are the technologies used in Java EE and what they are good for.

I hope someone clarifies a simple and beautiful situation in order to be good for the whole community.

+20
java-ee
May 6 '16 at 10:34
source share
2 answers

Important: While this answer remains valid, you can check the Java EE 8 Technology list released on September 21st 2017. Take a look at this answer .




Java EE 7 Technologies

Below is a list of specifications for Java EE 7 technologies. For more information, check out the JSR pages:

  • Java EE Platform

    • JSR 342 : Java Platform Enterprise Edition 7 (Java EE 7)
  • Web Application Technologies

    • JSR 356 : Java API for WebSocket
    • JSR 353 : Java API for JSON Processing
    • JSR 340 : Java Servlet 3.1
    • JSR 344 : JavaServer Faces 2.2
    • JSR 341 : Expression Language 3.0
    • JSR 245 : JavaServer Pages 2.3
    • JSR 52 : Standard Tag Library for JavaServer Pages (JSTL) 1.2
  • Enterprise Applied Technology

    • JSR 352 : Packaged Applications for the Java Platform
    • JSR 236 : Concurrency Utilities for Java EE 1.0
    • JSR 346 : Contexts and Dependency Injection for Java 1.1
    • JSR 330 : Dependency Injection for Java 1.0
    • JSR 349 : Bean Verification 1.1
    • JSR 345 : Enterprise JavaBeans 3.2
    • JSR 318 : Interceptors 1.2
    • JSR 322 : Java EE 1.7 Connector Architecture
    • JSR 338 : Java 2.1 Persistence
    • JSR 250 : general annotations for the Java 1.2 platform
    • JSR 343 : Java 2.0 Messaging Service API
    • JSR 907 : Java Transaction API (JTA) 1.2
    • JSR 919 : JavaMail 1.5
  • Web Services Technology

    • JSR 339 : Java API for RESTful Web Services (JAX-RS) 2.0
    • JSR 109 : Enterprise Web Services Implementation 1.3
    • JSR 224 : Java API for XML Web Services (JAX-WS) 2.2
    • JSR 181 : Web Services Metadata for the Java Platform
    • JSR 101 : Java API for XML-based RPC (JAX-RPC) 1.1
    • JSR 67 : Java API for XML Messaging 1.3
    • JSR 93 : Java API for XML Registries (JAXR) 1.0
  • Management and Security Technologies

    • JSR 196 : Java Authentication Service Provider Interface for Containers 1.1
    • JSR 115 : Java Authorization Contract for Containers 1.5
    • JSR 88 : Deploying Java EE 1.2 Applications (Optional)
    • JSR 77 : J2EE Management 1.1
    • JSR 45 : debugging support for other languages โ€‹โ€‹1.0
  • Specifications related to Java EE in Java SE

    • JSR 222 : Java Architecture for XML Binding (JAXB) 2.2
    • JSR 206 : Java API for XML Processing (JAXP) 1.3
    • JSR 221 : Java Database Connectivity 4.0
    • JSR 3 : Java Management Extensions (JMX) 2.0
    • JSR 925 : JavaBeans Activation Environment (JAF) 1.1
    • JSR 173 : Streaming API for XML (StAX) 1.0

For more information, refer to this page .

Java EE Stack

As Arun Gupta mentioned in his book called Java EE 7 Essentials , the various components work together to provide an integrated stack, as shown below:

The Java EE stack

So, we have the following:

  • The various components can be logically divided into three levels: internal level, middle level and web level. This is only a logical representation, and components may be limited to another level depending on the requirements of the application.

  • JPA and JMS provide basic services such as database access and messaging. JCA allows you to connect to legacy systems. The package is used to perform non-interactive, volume-oriented tasks.

  • Managed Beans and EJB provide a simplified programming model using POJO to use basic services.

  • CDI, Interceptors, and Common Annotations provide concepts that apply to a wide range of components, such as secure dependency injection, interceptor resolution using interceptors, and a common set of annotations. Concurrency utilities can be used to run tasks in a managed thread. JTA includes transactional interceptors that can be applied to any POJO.

  • CDI extensions allow you to extend the platform in a standard way beyond its existing capabilities.

  • Web services using JAX-RS and JAX-WS, JSF, JSP, and EL define a programming model for web applications. Web Slices let you automatically register third-party web frameworks in a very natural way. JSON provides a way to parse and generate JSON structures at the web level. WebSocket allows you to configure a bidirectional full duplex communication channel over a single TCP connection.

  • Bean Validation provides standard tools for declaring constraints and checking them in various technologies.

Briefing on each technology

To learn more about the core technologies listed above, see the Java EE 7 Guide . And a good overview of the core technologies can be found on this page . Just to quote it here:

Enterprise JavaBeans Technology

The Enterprise JavaBeans (EJB) component, or enterprise component, is a collection of code that contains fields and methods for implementing business logic modules. You can imagine an enterprise component as a building block that can be used separately or together with other enterprise components to execute business logic on a Java EE server.

Enterprise components are session or message-driven components.

  • The session component is a temporary dialogue with the client. When the client completes execution, the session bean and its data disappear.

  • The message-driven component combines the functions of a session component and a message receiver, which allows the business component to receive messages asynchronously. These are typically Java Message Service (JMS) messages.

In the Java EE 7 platform, new enterprise component features include the following:

  • Asynchronous Local Session Components in EJB Lite

  • Intermittent timers in EJB Lite

The Java EE 7 platform requires Enterprise JavaBeans 3.2 and Interceptors 1.2. The Interceptors specification is part of the EJB specification.

Java Servlet Technology

Java Servlet technology allows you to define HTTP-specific servlet classes. The servlet class extends the capabilities of servers hosting applications that are accessed through a request-response programming model. Although servlets can respond to any request, they are commonly used to extend applications hosted on web servers.

In the Java EE 7 platform, new features in Java Servlet technology include the following:

  • Non Blocking I / O

  • HTTP protocol update

The Java EE 7 platform requires Servlet 3.1.

JavaServer Faces Technology

JavaServer Faces is a user interface framework for building web applications. The main components of JavaServer Faces technology are:

  • GUI component framework

  • A flexible model for rendering components in various types of HTML or in different languages โ€‹โ€‹and markup technologies. The Renderer object generates markup for visualizing the component and converts the data stored in the model object into types that can be represented in the form.

  • Standard RenderKit for creating HTML 4.01 markup.

The following functions support GUI components:

  • Input confirmation

  • Event handling

  • Transforming data between model objects and components

  • Creating a managed model object

  • Page Navigation Configuration

  • Expression Language (EL)

All of these features are available using standard Java APIs and XML-based configuration files.

In the Java EE 7 platform, new features in JavaServer Faces technology include the following:

  • HTML5 friendly markup

  • Faces streams

  • Resource Library Contracts

The Java EE 7 platform requires JavaServer Faces 2.2 and Expression Language 3.0.

JavaServer Pages Technology

JavaServer Pages (JSP) technology allows you to place snippets of servlet code directly in a text document. A JSP page is a text document that contains two types of text:

  • Static data that can be expressed in any text format, such as HTML or XML

  • JSP elements that determine how a page creates dynamic content

For information on JSP technology, see the Java EE 5 Tutorial at http://docs.oracle.com/javaee/5/tutorial/doc/ .

The Java EE 7 platform requires JavaServer Pages 2.3 for compatibility with earlier releases, but it is recommended that you use Facelets as a display technology in new applications.

JavaServer Pages Standard Tag Library

The JavaServer Pages Standard Tag Library (JSTL) includes the core functionality common to many JSP applications. Instead of mixing tags from multiple vendors in your JSP applications, you use one standard tag set. This standardization allows you to deploy applications in any JSP container that supports JSTL, and increases the likelihood of optimizing tag implementations.

JSTL has an iterator and conditional tags for flow control, tags for managing XML documents, internationalization tags, tags for accessing databases using SQL, and tags for commonly used functions.

The Java EE 7 platform requires JSTL 1.2.

Java Persistence API

The Java Persistence API (JPA) is a Java standards-based persistence solution. Persistence uses the object-relational mapping approach to bridge the gap between the object-oriented model and the relational database. The Java Persistence API can also be used in Java SE applications outside of the Java EE environment. Java Persistence consists of the following areas:

  • Java Persistence API

  • Query Language

  • Object / Relational Mapping Metadata

The Java EE 7 platform requires the Java Persistence API 2.1.

Java Transaction API

The Java Transaction API (JTA) provides a standard interface for distinguishing between transactions. The Java EE architecture provides automatic default adoption for transaction commit processing and transaction rollback. Automatic commit means that any other applications that view the data will see updated data after each read or write operation to the database. However, if your application performs two separate database access operations that are dependent on each other, you will want to use the JTA API to determine where the entire transaction, including both operations, starts, rolls back, and commits.

The Java EE 7 platform requires the Java Transaction API 1.2.

Java API for RESTful Web Services

The Java API for RESTful Web Services (JAX-RS) defines APIs for developing web services built in accordance with the Representational State Transfer (REST) โ€‹โ€‹architectural style. The JAX-RS application is a web application that consists of classes packaged as a servlet in a WAR file along with the required libraries.

The Java EE 7 platform requires JAX-RS 2.0.

Guided Beans

Managed components, lightweight container-managed objects (POJOs) with minimal requirements support a small set of basic services such as resource injection, lifecycle callbacks, and interceptors. Managed components are a generalization of the managed components defined by the JavaServer Faces technology and can be used anywhere in a Java EE application, not just web modules.

The Managed Beans specification is part of the Java EE 7 Platform Specification (JSR 342). The Java EE 7 platform requires Managed Beans 1.0.

Contexts and Dependency Injection for Java EE

Implementation of contexts and dependencies for Java EE (CDI) defines a set of contextual services provided by Java EE containers that allow developers to easily use enterprise components with JavaServer Faces technology in web applications. Designed for use with state objects, CDI also has much wider use, which gives developers more flexibility to integrate various types of components in loosely coupled, but type-safe ways.

The Java EE 7 platform requires CDI 1.1.

Dependency Injection for Java

Dependency injection for Java defines a standard set of annotations (and one interface) for use in injected classes.

On the Java platform, EE CDI provides support for dependency injection. In particular, you can only use injection points in a CDI-enabled application.

The Java EE 7 platform requires dependency injection for Java 1.0.

Bean Check

The Bean Validation specification defines a metadata model and API for validating data in JavaBeans components. Instead of distributing data validation across several layers, such as the browser and server side, you can define the limitations of validation in one place and divide them between different levels.

The Java EE 7 platform requires Bean Validation 1.1.

Java Messaging API

The Java Message Service API (JMS) is a messaging standard that allows Java EE application components to create, send, receive, and read messages. This provides a distributed connection that is loosely coupled, reliable, and asynchronous.

In the platform, new JMS features include the following.

  • The new simplified API offers a simpler alternative to the previous API. This API includes a JMSContext object in the JMSContext that combines the connection and JMSContext functions.

  • All objects with the close method implement the java.lang.Autocloseable interface so that they can be used in the try-with-resources Java SE 7 statement.

The Java EE 7 platform requires JMS 2.0.

Java EE Connector Architecture

The Java EE connector architecture is used by tool providers and system integrators to create resource adapters that support access to enterprise information systems that can be connected to any Java EE product. A resource adapter is a software component that allows Java EE application components to access and interact with the underlying EIS resource manager. Because the resource adapter is specific to its resource manager, for each type of database or enterprise information system, there is usually a different resource adapter.

The Java EE connector architecture also provides performance-oriented, secure, scalable, and message-based transactional integration of Java EE platform web services with existing EISs, which can be either synchronous or asynchronous. Existing applications and EIS, integrated through the Java EE connector architecture into the Java EE platform, can be represented as XML-based web services using the JAX-WS and Java EE component models. Thus, JAX-WS and Java EE Connector Architecture are complementary technologies for enterprise application integration (EAI) and end-to-end business integration.

The Java EE 7 platform requires the Java EE 1.7 connector architecture.

JavaMail API

Java EE applications use the JavaMail API to send email notifications. The JavaMail API consists of two parts:

  • Application-level interface used by application components to send mail

  • Service Provider Interface

The Java EE platform includes a service provider JavaMail API that allows application components to send mail over the Internet.

The Java EE 7 platform requires JavaMail 1.5.

Java Authorization Contract for Containers

The Java Container Authorization Contract (JACC) specification defines a contract between the Java EE application server and the authorization policy provider. All Java EE containers support this contract.

The JACC specification defines java.security.Permission classes that satisfy the Java EE authorization model. The specification defines the binding of decisions on access to containers to operations with instances of these permission classes. It defines the semantics of policy providers that use new permission classes to meet the authorization requirements of the Java EE platform, including the definition and use of roles.

The Java EE 7 platform requires JACC 1.5.

Java Authentication Service Provider Interface for Containers

The Java Container Authentication Service Provider Interface (JASPIC) interface specification defines a Service Provider Interface (SPI) by which authentication providers that implement message authentication mechanisms can be integrated into containers or client or server messaging environments. Authentication providers integrated through this interface work with network messages sent to them by calling containers. Authentication providers convert outgoing messages so that the source of each message can be authenticated by the receiving container, and the recipient of the message can be authenticated by the sender of the message. Authentication providers authenticate each incoming message and return to their calling containers the identity established by the message authentication.

The Java EE 7 platform requires JASPIC 1.1.

Java API for WebSocket

WebSocket is an application protocol that provides full duplex communication between two nodes over TCP. The Java API for WebSocket enables Java EE applications to create endpoints using annotations that specify endpoint configuration parameters and designate lifecycle callback methods.

The WebSocket API is new to the Java EE 7 platform. The Java EE 7 platform requires the Java API for WebSocket 1.0.

Java API for JSON Processing

JSON is a text-based data exchange format derived from JavaScript that is used in web services and other related applications. The Java JSON Processing API (JSON-P) allows Java EE applications to parse, transform, and query JSON data using an object model or stream model.

JSON-P is new to the Java EE 7 platform. The Java EE 7 platform requires JSON-P 1.0.

Concurrency Utilities for Java EE

Concurrency utilities for Java EE is a standard API for providing asynchronous capabilities to components of a Java EE application using the following object types: managed worker service, managed scheduled worker service, managed thread factory, and context service.

Concurrency Utilities for Java EE - New to the Java EE 7 Platform. Java EE 7 Platform requires concurrency utilities for Java EE 1.0.

Packaged Applications for the Java Platform

Batch jobs are tasks that can be completed without user intervention. Batch applications for the Java platform specification is a batch environment that provides support for creating and running batch jobs in Java applications. A batch environment consists of a batch runtime, an XML-based job specification language, a Java API for interacting with a batch runtime, and a Java API for implementing package artifacts.

Packaged applications for the Java platform are new to the Java EE 7 platform. The Java EE 7 platform requires bundled applications for the Java 1.0 platform.

see also

To test the technology of older versions of Java EE, take a look at the following links:

+43
May 7 '16 at
source share
โ€” -

Java EE 8 Technology

Java EE 8 is based on Java EE 7 (see previous answer for details) and is upgrading support for many industry standards and continues to simplify ready-to-use APIs.

Improvements include:

  • Java Servlet 4.0 API with HTTP / 2 Support
  • Enhanced JSON support, including the new JSON binding API
  • New REST Reactive Client API
  • CDI Asynchronous Events
  • New Portable Security API
  • Support for events sent by the server (on the client and server side)
  • Support for new Java SE 8 features (e.g., data and time APIs, threading APIs, annotation improvements)

The following JSRs are new or updated in Java EE 8:

  • Java EE Platform

  • Web Application Technologies

    • JSR 367 : Java API for JSON binding (JSON-B) 1.0
    • JSR 374 : Java API for JSON Processing (JSON-P) 1.1
    • JSR 369 : Java 4.0 Servlet
    • JSR 372 : JavaServer Faces (JSF) 2.3
  • Enterprise Applied Technology

  • Web Services Technology

    • JSR 370 : Java API for RESTful Web Services (JAX-RS) 2.1
  • Management and Security Technologies

For more information, refer to this page .

Briefing on each technology

To learn more about the core technologies listed above, check out the Java EE tutorial . And a good overview of the core technologies can be found on this page . Just to quote it here:

Enterprise JavaBeans Technology

The Enterprise JavaBeans (EJB) component, or enterprise component, is a collection of code that contains fields and methods for implementing business logic modules. You can imagine an enterprise component as a building block that can be used separately or together with other enterprise components to execute business logic on a Java EE server.

Enterprise components are session or message-driven components.

  • The session component is a temporary dialogue with the client. When the client completes execution, the session bean and its data disappear.
  • The message-driven component combines the functions of a session component and a message receiver, which allows the business component to receive messages asynchronously. These are typically Java Message Service (JMS) messages.

The Java EE 8 platform requires Enterprise JavaBeans 3.2 and Interceptors 1.2. The Interceptors specification is part of the EJB specification.

Java Servlet Technology

Java Servlet technology allows you to define HTTP-specific servlet classes. The servlet class extends the capabilities of servers hosting applications that are accessed through a request-response programming model. Although servlets can respond to any request, they are commonly used to extend applications hosted on web servers.

In the Java EE 8 platform, new features in Java Servlet technology include the following:

  • Push server
  • HTTP trailer

Java EE 8 Platform Requires Servlet 4.0

JavaServer Faces Technology

JavaServer Faces is a user interface framework for building web applications. The main components of JavaServer Faces technology are:

  • GUI component framework
  • A flexible model for rendering components in various types of HTML or in different languages โ€‹โ€‹and markup technologies. The Renderer object generates markup for visualizing the component and converts the data stored in the model object into types that can be represented in the form.
  • Standard RenderKit for creating HTML 4.01 markup.

The following functions support GUI components:

  • Input confirmation
  • Event handling
  • Transforming data between model objects and components
  • Creating a managed model object
  • Page Navigation Configuration
  • Expression Language (EL)

All of these features are available using standard Java APIs and XML-based configuration files.

In the Java EE 8 platform, new features in JavaServer Faces technology include the following:

  • Direct support for WebSockets with the new <f:websocket>
  • Checking the bean at the class level with the new <f:validateWholeBean>
  • CDI compliant annotation @ManagedProperty
  • Advanced Component Search Expression Structure

The Java EE 8 platform requires JavaServer Faces 2.3 and Expression Language 3.0.

For an excellent summary of what's new in JSF 2.3, see https://javaserverfaces.imtqy.com/whats-new-in-jsf23.html .

JavaServer Pages Technology

JavaServer Pages (JSP) technology allows you to place snippets of servlet code directly in a text document. A JSP page is a text document that contains two types of text:

  • Static data that can be expressed in any text format, such as HTML or XML
  • JSP elements that determine how a page creates dynamic content

For information on JSP technology, see the Java EE 5 Tutorial at http://docs.oracle.com/javaee/5/tutorial/doc/ .

The Java EE 8 platform requires JavaServer Pages 2.3 to be compatible with earlier releases, but it is recommended that you use Facelets as the display technology in new applications.

JavaServer Pages Standard Tag Library

The JavaServer Pages Standard Tag Library (JSTL) includes the core functionality common to many JSP applications. Instead of mixing tags from multiple vendors in your JSP applications, you use one standard tag set. This standardization allows you to deploy applications in any JSP container that supports JSTL, and increases the likelihood of optimizing tag implementations.

JSTL , XML-, , SQL .

Java EE 8 JSTL 1.2.

API Java

Java Persistence API (JPA) - Java . - - . Java Persistence API Java SE Java EE. Java Persistence :

  • API Java
  • /

Java EE 8 Java Persistence API 2.2.

API Java

Java Transaction API (JTA) . Java EE . , , , . , , , JTA API, , , , , .

Java EE 8 Java Transaction API 1.2.

Java API - RESTful

Java API - RESTful (JAX-RS) API- -, (REST). JAX-RS - -, , WAR .

Java EE 8 - RESTful :

  • API. , API Java SE , , , .
  • . , . , text/event-stream.
  • JSON-B CDI, Servlet Bean Validation

Java EE 8 JAX-RS 2.1.

, (POJO) , , . , JavaServer Faces, Java EE, -.

Managed Beans Java EE 8 (JSR 366). Java EE 8 Managed Beans 1.0.

Java EE

Java EE (CDI) , Java EE, JavaServer Faces -. , CDI , , .

Java EE 8 CDI :

  • API CDI Java SE 8
  • , , ,
  • , CDI
  • ,

Java EE 8 CDI 2.0.

Java

Java ( ) .

Java EE CDI . , CDI.

Java EE 8 Java 1.0.

Bean Validation API JavaBeans. , , , .

Java EE 8 :

  • Java SE 8, API Date-Time
  • Bean Validation

Java EE 8 Bean Validation 2.0.

API Java

API Java (JMS) - , Java EE , , . , , .

Java EE 8 JMS 2.0.

Java EE

Java EE , , Java EE. - , Java EE EIS. , .

Java EE , , - Java EE EIS, , . EIS, Java EE Java EE, - XML JAX-WS Java EE. , JAX-WS Java EE Connector Architecture (EAI) -.

Java EE 8 Java EE 1.7.

JavaMail API

Java EE JavaMail API . JavaMail API :

  • ,

Java EE API JavaMail , .

Java EE 8 JavaMail 1.6.

Java

Java (JACC) Java EE . Java EE .

JACC java.security.Permission, Java EE. . , Java EE, .

Java EE 8 JACC 1.5.

Java

Java (JASPIC) (SPI), , , . , , , . , , . , .

Java EE 8 JASPIC 1.1.

API Java EE

API Java EE - API , , , API . Java EE Security API:

  • SecurityContext : , .
  • HttpAuthenticationMechanism : HttpAuthenticationMechanism - .
  • IdentityStore . , .

Java EE 8 API Java EE 1.0.

Java API WebSocket

WebSocket - , TCP. Java API WebSocket Java EE , .

Java EE 8 Java API WebSocket 1.1.

Java API JSON

JavaScript Object Notation (JSON) - , JavaScript, - . Java API JSON (JSON-P) Java EE , JSON, .

Java EE 8 JSON-P :

  • JSON: JSON. JSON Pointer API JSON.
  • JSON: , JSON.
  • JSON Merge Patch: JSON .

  • JSON.

  • , JSON Collectors, Stream API, Java SE 8.

Java EE 8 JSON-P 1.1.

Java API JSON

Java API JSON (JSON-B) Java JSON . JSON-B , , Java , JavaBean, .

JSON-B Java EE 8. Java EE 8 JSON-B 1.0.

Java EE

Java EE - API- Java EE : , , .

Java EE 8 Java EE 1.0.

Java

- , . Java - , Java. , XML, API Java API Java .

Java EE 8 Java 1.0.

+14
22 . '17 14:02
source share



All Articles