Chapter 4. Features
4.1. New features and feature upgrades Copy linkLink copied to clipboard!
4.1.1. Support for Thorntail Runtime on IBM Z Copy linkLink copied to clipboard!
The Red Hat build of Thorntail for s390x platform is supported only in OpenShift environments provisioned on IBM Z infrastructure. Running an Thorntail application on a stand-alone installation of RHEL on IBM Z is not supported.
Eclipse OpenJ9 Java images for IBM Z and new images for products supported on IBM Z are available in the Red Hat Ecosystem Catalog.
4.1.2. Deploying example applications on OpenShift provisioned on IBM Z infrastructure Copy linkLink copied to clipboard!
To deploy the example applications on OpenShift environments provisioned on IBM Z infrastructure, specify the relevant IBM Z image name in the pom.xml file and commands.
Some of the example applications also require other products, such as Red Hat Data Grid to demonstrate the workflows. In this case, you must also change the image names of these products to their relevant IBM Z image names in the YAML file of the example applications.
The Secured example application in Thorntail requires Red Hat SSO 7.3. Since Red Hat SSO 7.3 is not supported on IBM Z, the Secured example is not available for IBM Z.
4.1.3. Feature upgrades Copy linkLink copied to clipboard!
This release of Thorntail introduces the following feature upgrades:
- Eclipse MicroProfile 3.0 support
This release implements Eclipse MicroProfile 3.0 by including the latest SmallRye artifacts. The following specifications have been upgraded to the versions listed below:
Health Check 2.0
-
This release introduces the
@Livenessand@Readinessannotations, replacing the@Healthannotation that is now deprecated (see also the Changed and deprecated features section below). -
The
/health/liveand/health/readyendpoints are introduced in this release. The/healthendpoint now serves as the unified endpoint for the@Health,@Livenessand@Readinesschecks.
-
This release introduces the
Metrics 2.0
-
The
@ConcurrentGaugeannotation is introduced in this release, as a replacement of the@Counter(monotonic = false)annotation (see also the Changed and deprecated features section below).
-
The
Rest Client 1.3
-
The Rest Client interfaces can now extend
CloseableandAutoCloseableinterfaces. -
The
RestClientBuildernow includes methods for SSL configuration.
-
The Rest Client interfaces can now extend
- Eclipse MicroProfile JWT improvements
The
microprofile-jwtfraction has received a number of improvements in this release. The changes are backwards compatible and not expected to break your application code.-
The
@LoginConfigannotation is no longer required, if you set thethorntail.microprofile.jwt.token.realmconfiguration property in your application. If you use the@LoginConfigannotation with thethorntail.microprofile.jwt.token.realmproperty set, ensure that the value of therealmNameproperty of the@LoginConfigannotation matches the of thethorntail.microprofile.jwt.token.realmconfiguration property. -
You can set
thorntail.microprofile.jwt.enableconfiguration property value tofalseto disable the Eclipse MicroProfile JWT authentication mechanism. The default value of thethorntail.microprofile.jwt.enableconfiguration property istrue. -
You must use the
thorntail.microprofile.jwt.token.signer-pub-key-locationto specify external key assets. Previously available alternate methods are deprecated. (For details, see Changed and deprecated features below.) -
The
thorntail.microprofile.jwt.path.groupsconfiguration property can be used to select an arbitrary claim inside a JWT token to function as thegroupsclaim expected by Eclipse MicroProfile JWT. This is useful if nogroupsclaim is present in the JWT token, but some other claim exists that contains the groups information. Unless the custom claim is a standardscopeclaim, its value must be formatted as an array of strings. Use the following syntax to reference a claim:path/to/claim. -
You can use the
thorntail.microprofile.jwt.claims.groupsconfiguration property to provide a default value for thegroupsclaim if the JWT token contains no groups information at all. -
You can use the
thorntail.microprofile.jwt.token.roles.mapconfiguration property to inline the roles configuration in the Thorntail YAML configuration.
-
The
ejb-mdbfraction introduced-
This release introduces the
ejb-mdbfraction. This fraction enables you to deploy Message-Driven Beans, but it does not provide all the components required to set up a messaging infrastructure for your application. This means that you can not use this fraction to create a messaging server, but you can use it connect to an existing external messaging server, if you also provide the correct resource adapter.
4.1.4. Updated components Copy linkLink copied to clipboard!
The components updated in this Thorntail release are:
- Red Hat JBoss EAP 7.2.7.GA
- The EAP dependencies in Thorntail have been updated to Red Hat JBoss Enterprise Application Platform 7.2.7.GA release.
- Red Hat SSO 7.3.7.GA
- The single sign-on components in Thorntail have been updated to Red Hat Single Sign-On 7.3.7.GA release.
- Jaeger 0.34.1
- This release of Thorntail contains Jaeger 0.34.1 client components.
- Apache Thrift 0.13.0
- This release of Thorntail contains Apache Thrift 0.13.0 components.
- RESTEasy 3.9.3.SP1
- This release of Thorntail contains RESTEasy 3.9.3.SP1 framework.
- Jackson 2.10.2
- This release of Thorntail contains Jackson 2.10.2 libraries.
- SmallRye Config 1.3.6.SP01
- This release of Thorntail contains SmallRye Config 1.3.6.SP01.
4.2. Changed and deprecated features Copy linkLink copied to clipboard!
- Microprofile 3.0
Health Check 2.0
The
@Healthannotation is now deprecated. Use the@Livenessand@Readinessannotations instead.ImportantThis is a breaking change. Ensure that you update your application code to avoid encountering issues with your applications after upgrading to the latest release of Thorntail.
The
outcomeandstatefields in the JSON response format are replaced by thestatusfield.ImportantThis is a breaking change. Ensure that you update your application code and external monitoring to avoid encountering issues with your applications after upgrading to the latest release of Thorntail.
Metrics 2.0
-
Some of the base metrics (defined by the Eclipse MicroProfile Metrics 2.0 specification) changed their type from
CountertoGauge. -
Some of the base metrics as well as some of the vendor metrics (provided by Thorntail) were renamed. Notably, the names of all accumulating counters now contain the suffix
total. -
In the OpenMetrics output format (formerly known as the Prometheus format), the metric scope and name are now separated by an underscore (
_) symbol. This replaces the colon (:) symbol used as the separator in previous releases. -
Metrics are no longer identified by their
Stringname, but by aMetricIDclass. TheMetricIDconsists of aStringname and a set of key-value pairs called tags. In application code, this set of tags is represented asMap<String, String>. The
@Countedannotation no longer includes themonotonicparameter. Previously, the default value of themonotonicparameter wasfalse. Now, the@Counterannotation always behaves as if themonotonicparameter was set totrue. When you want your annotation to behave as whenmonotonicis set tofalse, use the@ConcurrentGaugeannotation instead.ImportantThese are breaking changes. Ensure that you update your application code and external monitoring configuration to avoid encountering issues with your applications after upgrading to the latest release of Thorntail.
-
Some of the base metrics (defined by the Eclipse MicroProfile Metrics 2.0 specification) changed their type from
Rest Client 1.3
-
In this release, Thorntail replaces the Eclipse MicroProfile Rest Client implementation from the SmallRye project, with the Eclipse MicroProfile Rest Client implementation from RESTEasy. As a result of this change, all public APIs and SPIs that were previously present in the
io.smallrye.restclientpackage, such asRestClientProxy, are now part of theorg.jboss.resteasy.microprofile.clientpackage. Ensure that you use the new package name in your code and logging configuration. The specification now mandates that
application/jsonis used as a default media type, if the Rest Client interface does not include the@Produces/@Consumesannotations. If you do not use the@Produces/@Consumesannotations in your client interfaces, this change might break your application.ImportantThese are breaking changes. Ensure that you update your application code and logging configuration to avoid encountering issues with your applications after upgrading to the latest release of Thorntail.
-
In this release, Thorntail replaces the Eclipse MicroProfile Rest Client implementation from the SmallRye project, with the Eclipse MicroProfile Rest Client implementation from RESTEasy. As a result of this change, all public APIs and SPIs that were previously present in the
- Eclipse MicroProfile JWT
When specifying external key assets, the following referencing methods are now deprecated:
-
Using the
file:andclasspath:prefixes in the value of thethorntail.microprofile.jwt.token.signer-pub-keyconfiguration property to point to the location of an external key asset. -
Using the
thorntail.microprofile.jwt.token.jwks-uriconfiguration property to refer to an external JWK Set.
-
Using the
Instead, use thorntail.microprofile.jwt.token.signer-pub-key-location configuration property.
Using configuration properties in the thorntail.microprofile.jwtauth namespace is now deprecated. While this is not a breaking change, you are encouraged to update your configuration to use properties from the thorntail.microprofile.jwt namespace.
- The
wildfly-swarm.useUberJarsystem property The
wildfly-swarm.useUberJarsystem property previously used by the Thorntail Maven plugin is no longer recognized. To ensure that the Thorntail Maven plugin runs in uberjar mode (as opposed to classpath mode), use thethorntail.useUberJarsystem property.ImportantThis is a breaking change. Ensure that you use the new name when running Maven to avoid encountering issues with your applications after upgrading to the latest release of Thorntail.
4.3. Technology preview Copy linkLink copied to clipboard!
No technology preview features have been introduced in this release.