Chapter 6. Capability trimming
When building a bootable JAR, you can decide which JBoss EAP features and subsystems to include.
Capability trimming is supported only on OpenShift or when building a bootable JAR.
Additional resources
6.1. Available JBoss EAP layers
Red Hat makes available a number of layers to customize provisioning of the JBoss EAP server in OpenShift or a bootable JAR.
Three layers are base layers that provide core functionality. The other layers are decorator layers that enhance the base layers with additional capabilities.
Most decorator layers can be used to build S2I images in JBoss EAP for OpenShift or to build a bootable JAR. A few layers do not support S2I images; the description of the layer notes this limitation.
Only the listed layers are supported. Layers not listed here are not supported.
6.1.1. Base layers
Each base layer includes core functionality for a typical server user case.
datasources-web-server
This layer includes a servlet container and the ability to configure a datasource.
This layer does not include MicroProfile capabilities.
The following Jakarta EE specifications are supported in this layer:
- Jakarta JSON Processing 1.1
- Jakarta JSON Binding 1.0
- Jakarta Servlet 4.0
- Jakarta Expression Language 3.0
- Jakarta Server Pages 2.3
- Jakarta Standard Tag Library 1.2
- Jakarta Concurrency 1.1
- Jakarta Annotations 1.3
- Jakarta XML Binding 2.3
- Jakarta Debugging Support for Other Languages 1.0
- Jakarta Transaction 1.3
- Jakarta Connector API 1.7
jaxrs-server
This layer enhances the datasources-web-server
layer with the following JBoss EAP subsystems:
-
jaxrs
-
weld
-
jpa
This layer also adds Infinispan-based second-level entity caching locally in the container.
The following MicroProfile capability is included in this layer:
- MicroProfile REST Client
The following Jakarta EE specifications are supported in this layer in addition to those supported in the datasources-web-server
layer:
- Jakarta Contexts and Dependency Injection 2.0
- Jakarta Bean Validation 2.0
- Jakarta Interceptors 1.2
- Jakarta RESTful Web Services 2.1
- Jakarta Persistence 2.2
cloud-server
This layer enhances the jaxrs-server
layer with the following JBoss EAP subsystems:
-
resource-adapters
-
messaging-activemq
(remote broker messaging, not embedded messaging)
This layer also adds the following observability features to the jaxrs-server
layer:
- MicroProfile Health
- MicroProfile Metrics
- MicroProfile Config
- MicroProfile OpenTracing
The following Jakarta EE specification is supported in this layer in addition to those supported in the jaxrs-server
layer:
- Jakarta Security 1.0
6.1.2. Decorator layers
Decorator layers are not used alone. You can configure one or more decorator layers with a base layer to deliver additional functionality.
ejb-lite
This decorator layer adds a minimal EJB/Jakarta Enterprise Bean implementation to the provisioned server. The following support is not included in this layer:
- IIOP integration
- MDB instance pool
- Remote connector resource
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
ejb
This decorator layer extends the ejb-lite
layer. This layer adds the following support to the provisioned server, in addition to the base functionality included in the ejb-lite
layer:
- MDB instance pool
- Remote connector resource
Use this layer if you want to use message-driven beans (MDBs) or EJB remoting capabilities, or both. If you do not need these capabilities, use the ejb-lite
layer.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
ejb-local-cache
This decorator layer adds local caching support for EJBs/Jakarta Enterprise Beans to the provisioned server.
Dependencies: You can only include this layer if you have included the ejb-lite
layer or the ejb
layer.
This layer is not compatible with the ejb-dist-cache
layer. If you include the ejb-dist-cache
layer, you cannot include the ejb-local-cache
layer. If you include both layers, the resulting build may include an unexpected EJB configuration.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
ejb-dist-cache
This decorator layer adds distributed caching support for EJBs/Jakarta Enterprise Beans to the provisioned server.
Dependencies: You can only include this layer if you have included the ejb-lite
layer or the ejb
layer.
This layer is not compatible with the ejb-local-cache
layer. If you include the ejb-dist-cache
layer, you cannot include the ejb-local-cache
layer. If you include both layers, the resulting build may result in an unexpected configuration.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
jdr
This decorator layer adds the JBoss Diagnostic Reporting (jdr
) subsystem to gather diagnostic data when requesting support from Red Hat.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
jpa
This decorator layer adds persistence capabilities for a single-node server. Note that distributed caching only works if the servers are able to form a cluster.
The layer adds Hibernate libraries to the provisioned server, with the following support:
-
Configurations of the
jpa
subsystem -
Configurations of the
infinispan
subsystem - A local Hibernate cache container
This layer is not compatible with the jpa-distributed
layer. If you include the jpa
layer, you cannot include the jpa-distributed
layer.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
jpa-distributed
This decorator layer adds persistence capabilities for servers operating in a cluster. The layer adds Hibernate libraries to the provisioned server, with the following support:
-
Configurations of the
jpa
subsystem -
Configurations of the
infinispan
subsystem - A local Hibernate cache container
- Invalidation and replication Hibernate cache containers
-
Configuration of the
jgroups
subsystem
This layer is not compatible with the jpa
layer. If you include the jpa
layer, you cannot include the jpa-distributed
layer.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
jsf
This decorator layer adds the jsf
subsystem to the provisioned server.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
microprofile-platform
This decorator layer adds the following Eclipse MicroProfile capabilities to the provisioned server:
- MicroProfile Config
- MicroProfile Fault Tolerance
- MicroProfile Health
- MicroProfile JWT
- MicroProfile Metrics
- MicroProfile OpenAPI
- MicroProfile OpenTracing
This layer includes MicroProfile capabilities that are also included in the observability
layer. If you include this layer, you do not need to include the observability
layer.
observability
This decorator layer adds the following observability features to the provisioned server:
- MicroProfile Health
- MicroProfile Metrics
- MicroProfile Config
- MicroProfile OpenTracing
This layer is built in to the cloud-server
layer. You do not need to add this layer to the cloud-server
layer.
remote-activemq
This decorator layer adds the ability to communicate with a remote ActiveMQ broker to the provisioned server, integrating messaging support.
The pooled connection factory configuration specifies guest
as the value for the user
and password
attributes. You can use a CLI script to change these values at runtime.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
sso
This decorator layer adds Red Hat Single Sign-On integration to the provisioned server.
This layer should only be used when provisioning a server using S2I.
web-console
This decorator layer adds the management console to the provisioned server.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
web-clustering
This layer adds embedded Infinispan-based web session clustering to the provisioned server.
webservices
This layer adds web services functionality to the provisioned server, supporting Jakarta web services deployments.
This layer is only supported when building a bootable JAR. This layer is not supported when using S2I.
Additional resources