Chapter 1. Eclipse MicroProfile

1.1. Eclipse MicroProfile

Support for Eclipse MicroProfile Fault Tolerance 2.1

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile Fault Tolerance 2.1 specification.

The Eclipse MicroProfile Fault Tolerance 2.1 specification defines the following patterns for handling a failure:

  • Timeout
  • Fallback
  • Retry
  • CircuitBreaker
  • Bulkhead
Note

Fault Tolerance annotations can be applied only to methods or classes designed for Fault Tolerance. For example, a method marked with @Retry needs to ensure its logic is repeatable and does not leave resources open or rely on external resources. Correctly start, stop, or roll back any methods of classes that involve transactions. This ensures that the method is not placed in the wrong state if the method fails and is subsequently retried.

If transactions are container managed, they are started from the container outside of the CDI scope where MicroProfile annotations take place. The syntax will be valid, but you can experience unexpected behavior. Adding Fault Tolerance annotations to a CMT EJB is neither recommended nor supported because the transaction will be in the wrong state.

A new subsystem, microprofile-fault-tolerance-smallrye, provides the Eclipse MicroProfile Fault Tolerance 2.1 integration in JBoss EAP XP.

Support for Eclipse MicroProfile JWT RBAC 1.1

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile JWT RBAC 1.1 specification.

With Eclipse MicroProfile JWT RBAC, you can authenticate an identity using a cryptographically-signed JSON Web Token (JWT) token that is received in an HTTP request. The claims of the authenticated identity are verified using role-based access control (RBAC) for accessing microservice endpoints.

Eclipse MicroProfile JWT RBAC provides the following benefits:

  • Eclipse MicroProfile JWT RBAC requires only minimal configuration within a deployment for establishing an identity.
  • Eclipse MicroProfile JWT RBAC does not rely on access to external repositories of identities, such as databases or directory servers.

A new subsystem, microprofile-jwt-smallrye, provides the Eclipse MicroProfile JWT RBAC integration in JBoss EAP XP.

Support for Eclipse MicroProfile OpenAPI 1.1

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile OpenAPI 1.1 specification.

The Eclipse MicroProfile OpenAPI specification defines an HTTP GET /openapi endpoint that returns an OpenAPI v3 compliant document. This document describes the RESTful services provided by an application. The supported document formats are YAML and JSON.

Note

Currently, the /openapi endpoint for a virtual host can only document a single JAX-RS deployment. To use OpenAPI with multiple JAX-RS deployments that are registered with different context paths on the same virtual host, each deployment must use a distinct endpoint path.

Support for Eclipse MicroProfile Config 1.4

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile Config 1.4 specification.

The microprofile-config-smallrye subsystem has been updated to integrate Eclipse MicroProfile version 1.4.

Support for Eclipse MicroProfile Health 2.2

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile Health 2.2 specification.

The microprofile-health-smallrye subsystem has been updated to integrate Eclipse MicroProfile Health 2.2 in JBoss EAP XP.

Note

Health checks in subdeployments of an Enterprise Application Archive (EAR) deployment are not supported.

Support for Eclipse MicroProfile Metrics 2.3

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile Metrics 2.3 specification.

The microprofile-metrics-smallrye subsystem has been updated to integrate Eclipse MicroProfile Metrics 2.3. The updated subsystem provides a new optional base metric ProcessCpuTime.

Eclipse MicroProfile OpenTracing 1.3

JBoss EAP XP 1.0.0 supports the Eclipse MicroProfile OpenTracing 1.3 specification.

The microprofile-opentracing-smallrye subsystem has been updated to provide the Eclipse MicroProfile OpenTracing 1.3 integration in JBoss EAP XP.

The updated microprofile-opentracing-smallrye subsystem includes support for tracing JAX-RS and CDI. The subsystem also allows configuration of Jaeger Java Client.

Support for Eclipse MicroProfile REST Client 1.4

JBoss EAP XP 1.0.0 supports the MicroProfile REST Client 1.4 specification. MicroProfile REST Client 1.4 adds the Contexts and Dependency Injection (CDI) capability to the class org.eclipse.microprofile.rest.client.ext.ClientHeadersFactory.

Eclipse MicroProfile standalone server configuration

JBoss EAP XP 1.0.0 provides additional standalone configuration files, standalone-microprofile.xml and standalone-microprofile-ha.xml.

These configuration files support applications that use Eclipse MicroProfile specifications in JBoss EAP. Elytron is the default security solution for JBoss EAP XP.

Update standalone configurations with Eclipse MicroProfile subsystems and extensions

With JBoss EAP XP 1.0.0, you can update existing standalone server configuration files using the enable-microprofile.cli script. The enable-microprofile.cli is intended as an example script for updating standard standalone server configuration files, not custom configurations.

The enable-microprofile script adds the following Eclipse MicroProfile subsystems and extensions if they are not already present in the standalone server configuration file:

  • microprofile-openapi-smallrye
  • microprofile-jwt-smallrye
  • microprofile-fault-tolerance-smallrye

Ability to build and run microservices applications on the OpenShift image for JBoss EAP XP

You can build and run your microservices applications on the OpenShift image for JBoss EAP XP.

JBoss EAP XP 1.0 supports the following image streams:

  • The JDK 8 builder imagestream: jboss-eap-xp1-openjdk8-openshift:1.0
  • The JDK 8 runtime imagestream: jboss-eap-xp1-openjdk8-runtime-openshift:1.0
  • The JDK 11 builder imagestream: jboss-eap-xp1-openjdk11-openshift:1.0
  • The JDK 11 runtime imagestream: jboss-eap-xp1-openjdk11-runtime-openshift:1.0

For more information about the image streams and the workflow, see Build and run microservices applications on the OpenShift image for JBoss EAP XP.

Support for a default standalone configuration file for OpenShift

The OpenShift images for JBoss EAP XP 1.0.0 provide a default standalone configuration file for OpenShift. The default file, which is based on JBoss EAP XP 1.0.0 standalone-microprofile-ha.xml file, is adapted to OpenShift.

Support for CodeReady Workspaces

A Red Hat CodeReady Workspaces template with support for Eclipse MicroProfile is now available.

1.2. Quickstarts

Quickstarts for JBoss EAP XP 1.0.0 are provided as Technology Preview only.

Technology Preview features are not supported with Red Hat production service level agreements (SLAs), might not be functionally complete, and Red Hat does not recommend to use them for production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

See Technology Preview Features Support Scope on the Red Hat Customer Portal for information about the support scope for Technology Preview features.