From 10eed7ae4371f425abe52ba5d3efbce2f52fa353 Mon Sep 17 00:00:00 2001 From: Leo Christy Jesuraj Date: Tue, 4 Nov 2025 17:28:43 -0500 Subject: [PATCH 1/9] List container images for 25.0.0.11 (#678) List container images for 25.0.0.11 --- docs/icr-images.md | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/docs/icr-images.md b/docs/icr-images.md index c217aef1..78632356 100644 --- a/docs/icr-images.md +++ b/docs/icr-images.md @@ -31,7 +31,7 @@ ibmcloud cr images --restrict appcafe/open-liberty ## Latest version -The following tags include the most recent Open Liberty version: `25.0.0.10` +The following tags include the most recent Open Liberty version: `25.0.0.11` ``` kernel-slim-java25-openj9-ubi-minimal @@ -69,32 +69,32 @@ The `beta` tag includes all the features and capabilities from the most recent r beta ``` -## 25.0.0.10 +## 25.0.0.11 ``` -25.0.0.10-kernel-slim-java25-openj9-ubi-minimal -25.0.0.10-kernel-slim-java21-openj9-ubi-minimal -25.0.0.10-kernel-slim-java17-openj9-ubi-minimal -25.0.0.10-kernel-slim-java11-openj9-ubi-minimal -25.0.0.10-kernel-slim-java8-openj9-ubi-minimal -25.0.0.10-kernel-slim-java8-ibmjava-ubi-minimal +25.0.0.11-kernel-slim-java25-openj9-ubi-minimal +25.0.0.11-kernel-slim-java21-openj9-ubi-minimal +25.0.0.11-kernel-slim-java17-openj9-ubi-minimal +25.0.0.11-kernel-slim-java11-openj9-ubi-minimal +25.0.0.11-kernel-slim-java8-openj9-ubi-minimal +25.0.0.11-kernel-slim-java8-ibmjava-ubi-minimal -25.0.0.10-kernel-slim-java17-openj9-ubi -25.0.0.10-kernel-slim-java11-openj9-ubi -25.0.0.10-kernel-slim-java8-openj9-ubi -25.0.0.10-kernel-slim-java8-ibmjava-ubi +25.0.0.11-kernel-slim-java17-openj9-ubi +25.0.0.11-kernel-slim-java11-openj9-ubi +25.0.0.11-kernel-slim-java8-openj9-ubi +25.0.0.11-kernel-slim-java8-ibmjava-ubi -25.0.0.10-full-java25-openj9-ubi-minimal -25.0.0.10-full-java21-openj9-ubi-minimal -25.0.0.10-full-java17-openj9-ubi-minimal -25.0.0.10-full-java11-openj9-ubi-minimal -25.0.0.10-full-java8-openj9-ubi-minimal -25.0.0.10-full-java8-ibmjava-ubi-minimal +25.0.0.11-full-java25-openj9-ubi-minimal +25.0.0.11-full-java21-openj9-ubi-minimal +25.0.0.11-full-java17-openj9-ubi-minimal +25.0.0.11-full-java11-openj9-ubi-minimal +25.0.0.11-full-java8-openj9-ubi-minimal +25.0.0.11-full-java8-ibmjava-ubi-minimal -25.0.0.10-full-java17-openj9-ubi -25.0.0.10-full-java11-openj9-ubi -25.0.0.10-full-java8-openj9-ubi -25.0.0.10-full-java8-ibmjava-ubi +25.0.0.11-full-java17-openj9-ubi +25.0.0.11-full-java11-openj9-ubi +25.0.0.11-full-java8-openj9-ubi +25.0.0.11-full-java8-ibmjava-ubi ``` ## 25.0.0.9 From 6b92ab29d1fb16b143b49bf01a43a8d9c2a0b380 Mon Sep 17 00:00:00 2001 From: Leo Christy Jesuraj Date: Wed, 3 Dec 2025 09:32:02 -0500 Subject: [PATCH 2/9] List container images for 25.0.0.12 (#684) --- docs/icr-images.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/icr-images.md b/docs/icr-images.md index 78632356..2a65e3ed 100644 --- a/docs/icr-images.md +++ b/docs/icr-images.md @@ -20,7 +20,7 @@ The `beta` tag is based on UBI 9 minimal and the latest Java JRE and provides th Append a tag to `icr.io/appcafe/open-liberty` to pull a specific image. For example: ``` -icr.io/appcafe/open-liberty:25.0.0.9-kernel-slim-java17-openj9-ubi +icr.io/appcafe/open-liberty:25.0.0.12-kernel-slim-java17-openj9-ubi ``` Available images can be listed using [IBM Cloud CLI](https://cloud.ibm.com/docs/cli?topic=cli-getting-started). Log in with your IBMid prior to running the following commands. Note that authentication is only required to list the images. **Images can be pulled from ICR without authentication**: @@ -31,7 +31,7 @@ ibmcloud cr images --restrict appcafe/open-liberty ## Latest version -The following tags include the most recent Open Liberty version: `25.0.0.11` +The following tags include the most recent Open Liberty version: `25.0.0.12` ``` kernel-slim-java25-openj9-ubi-minimal @@ -69,32 +69,32 @@ The `beta` tag includes all the features and capabilities from the most recent r beta ``` -## 25.0.0.11 +## 25.0.0.12 ``` -25.0.0.11-kernel-slim-java25-openj9-ubi-minimal -25.0.0.11-kernel-slim-java21-openj9-ubi-minimal -25.0.0.11-kernel-slim-java17-openj9-ubi-minimal -25.0.0.11-kernel-slim-java11-openj9-ubi-minimal -25.0.0.11-kernel-slim-java8-openj9-ubi-minimal -25.0.0.11-kernel-slim-java8-ibmjava-ubi-minimal +25.0.0.12-kernel-slim-java25-openj9-ubi-minimal +25.0.0.12-kernel-slim-java21-openj9-ubi-minimal +25.0.0.12-kernel-slim-java17-openj9-ubi-minimal +25.0.0.12-kernel-slim-java11-openj9-ubi-minimal +25.0.0.12-kernel-slim-java8-openj9-ubi-minimal +25.0.0.12-kernel-slim-java8-ibmjava-ubi-minimal -25.0.0.11-kernel-slim-java17-openj9-ubi -25.0.0.11-kernel-slim-java11-openj9-ubi -25.0.0.11-kernel-slim-java8-openj9-ubi -25.0.0.11-kernel-slim-java8-ibmjava-ubi +25.0.0.12-kernel-slim-java17-openj9-ubi +25.0.0.12-kernel-slim-java11-openj9-ubi +25.0.0.12-kernel-slim-java8-openj9-ubi +25.0.0.12-kernel-slim-java8-ibmjava-ubi -25.0.0.11-full-java25-openj9-ubi-minimal -25.0.0.11-full-java21-openj9-ubi-minimal -25.0.0.11-full-java17-openj9-ubi-minimal -25.0.0.11-full-java11-openj9-ubi-minimal -25.0.0.11-full-java8-openj9-ubi-minimal -25.0.0.11-full-java8-ibmjava-ubi-minimal +25.0.0.12-full-java25-openj9-ubi-minimal +25.0.0.12-full-java21-openj9-ubi-minimal +25.0.0.12-full-java17-openj9-ubi-minimal +25.0.0.12-full-java11-openj9-ubi-minimal +25.0.0.12-full-java8-openj9-ubi-minimal +25.0.0.12-full-java8-ibmjava-ubi-minimal -25.0.0.11-full-java17-openj9-ubi -25.0.0.11-full-java11-openj9-ubi -25.0.0.11-full-java8-openj9-ubi -25.0.0.11-full-java8-ibmjava-ubi +25.0.0.12-full-java17-openj9-ubi +25.0.0.12-full-java11-openj9-ubi +25.0.0.12-full-java8-openj9-ubi +25.0.0.12-full-java8-ibmjava-ubi ``` ## 25.0.0.9 From 4ccfc968abf320df22246e38a4aa991a8d4401f5 Mon Sep 17 00:00:00 2001 From: Leo Christy Jesuraj Date: Wed, 17 Dec 2025 15:37:52 -0500 Subject: [PATCH 3/9] Update image details --- docs/icr-images.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/icr-images.md b/docs/icr-images.md index 83d0c622..5409f1cf 100644 --- a/docs/icr-images.md +++ b/docs/icr-images.md @@ -3,7 +3,7 @@ Open Liberty container images are available from the IBM Container Registry (ICR) at `icr.io/appcafe/open-liberty`. Our recommendation is to use ICR instead of Docker Hub since ICR doesn't impose rate limits on image pulls. Images can be pulled from ICR without authentication. Only images with Universal Base Image (UBI) as the Operating System are available in ICR. -The images for the latest Liberty release and the last two quarterly releases (versions ending in _.3_, _.6_, _.9_ and _.12_) are available and are refreshed regularly (every 1-2 weeks) to include fixes for the operating system (OS) and Java. +The images for the latest Liberty release and the last three quarterly releases (versions ending in _.3_, _.6_, _.9_ and _.12_) are available and are refreshed regularly (every 1-2 weeks) to include fixes for the operating system (OS) and Java. Available image tags are listed below. The tags use the following naming convention. For more information on tags, see [Container image tags naming conventions](https://openliberty.io/docs/latest/container-images.html#tags) documentation. ``` @@ -20,7 +20,7 @@ The `beta` tag is based on UBI 9 minimal and the latest Java JRE and provides th Append a tag to `icr.io/appcafe/open-liberty` to pull a specific image. For example: ``` -icr.io/appcafe/open-liberty:25.0.0.12-kernel-slim-java17-openj9-ubi +icr.io/appcafe/open-liberty:25.0.0.12-kernel-slim-java25-openj9-ubi-minimal ``` Available images can be listed using [IBM Cloud CLI](https://cloud.ibm.com/docs/cli?topic=cli-getting-started). Log in with your IBMid prior to running the following commands. Note that authentication is only required to list the images. **Images can be pulled from ICR without authentication**: From 23df3db0349235536010e7296c990ce4f135109a Mon Sep 17 00:00:00 2001 From: Leo Christy Jesuraj Date: Tue, 27 Jan 2026 17:19:00 -0500 Subject: [PATCH 4/9] List container images for 26.0.0.1 (#695) --- docs/icr-images.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/docs/icr-images.md b/docs/icr-images.md index 5409f1cf..1bce1500 100644 --- a/docs/icr-images.md +++ b/docs/icr-images.md @@ -31,7 +31,7 @@ ibmcloud cr images --restrict appcafe/open-liberty ## Latest version -The following tags include the most recent Open Liberty version: `25.0.0.12` +The following tags include the most recent Open Liberty version: `26.0.0.1` ``` kernel-slim-java25-openj9-ubi-minimal @@ -69,6 +69,34 @@ The `beta` tag includes all the features and capabilities from the most recent r beta ``` +## 26.0.0.1 + +``` +26.0.0.1-kernel-slim-java25-openj9-ubi-minimal +26.0.0.1-kernel-slim-java21-openj9-ubi-minimal +26.0.0.1-kernel-slim-java17-openj9-ubi-minimal +26.0.0.1-kernel-slim-java11-openj9-ubi-minimal +26.0.0.1-kernel-slim-java8-openj9-ubi-minimal +26.0.0.1-kernel-slim-java8-ibmjava-ubi-minimal + +26.0.0.1-kernel-slim-java17-openj9-ubi +26.0.0.1-kernel-slim-java11-openj9-ubi +26.0.0.1-kernel-slim-java8-openj9-ubi +26.0.0.1-kernel-slim-java8-ibmjava-ubi + +26.0.0.1-full-java25-openj9-ubi-minimal +26.0.0.1-full-java21-openj9-ubi-minimal +26.0.0.1-full-java17-openj9-ubi-minimal +26.0.0.1-full-java11-openj9-ubi-minimal +26.0.0.1-full-java8-openj9-ubi-minimal +26.0.0.1-full-java8-ibmjava-ubi-minimal + +26.0.0.1-full-java17-openj9-ubi +26.0.0.1-full-java11-openj9-ubi +26.0.0.1-full-java8-openj9-ubi +26.0.0.1-full-java8-ibmjava-ubi +``` + ## 25.0.0.12 ``` From 5bf372c9c45c5039398a01105c5f8298db56be73 Mon Sep 17 00:00:00 2001 From: kelly-gao Date: Thu, 29 Jan 2026 11:10:04 -0500 Subject: [PATCH 5/9] Make infinispan-client-setup.sh configurable --- .../helpers/build/infinispan-client-setup.sh | 71 ++++++++++++++++--- 1 file changed, 61 insertions(+), 10 deletions(-) diff --git a/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh b/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh index ff9b1a21..c7d5b7a2 100755 --- a/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh @@ -3,6 +3,15 @@ set -Eeo pipefail +# Recommended stable baseline for Jakarta EE 10 / JDK 17+ environments. +INFINISPAN_DEFAULT_VERSION="15.2.6.Final" +INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSION} + +# Resolves the latest patch release (x.y.Z) within the specified major.minor version. +INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} +# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. +INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} + pkgcmd=yum if ! command $pkgcmd then @@ -11,17 +20,59 @@ fi $pkgcmd update -y $pkgcmd install -y maven -mkdir -p /opt/ol/wlp/usr/shared/resources/infinispan -echo ' 4.0.0 io.openliberty openliberty-infinispan-client 1.0 org.infinispan infinispan-jcache-remote 10.1.3.Final ' > /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml dependency:copy-dependencies -DoutputDirectory=/opt/ol/wlp/usr/shared/resources/infinispan + +CLIENT_JARS_DIR="/opt/ol/wlp/usr/shared/resources/infinispan" +mkdir -p "${CLIENT_JARS_DIR}" + +cat << EOF > ${CLIENT_JARS_DIR}/pom.xml + + 4.0.0 + io.openliberty + openliberty-infinispan-client + 1.0 + + + + + org.infinispan + infinispan-jcache-remote + ${INFINISPAN_CLIENT_VERSION} + + + +EOF + +if [ "${INFINISPAN_USE_LATEST_PATCH}" = "true" ]; then + echo "Resolving latest Infinispan client patch release (no major upgrades)..." + mvn -f "${CLIENT_JARS_DIR}"/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -DallowMinorUpdates=false +fi + +mvn -f "${CLIENT_JARS_DIR}/pom.xml" dependency:copy-dependencies -DoutputDirectory="${CLIENT_JARS_DIR}" # This fails with dependency errors using microdnf on ubi-minimal, but it is okay to let it fail yum remove -y maven || true -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/jboss-transaction-api*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/reactive-streams-*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/rxjava-*.jar +rm -f "${CLIENT_JARS_DIR}/pom.xml" + +# Remove unnecessary spec jars +rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar +rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar + +# Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 +# Only remove if explicitly disabled (default: enabled) +if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then + echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." + rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar + rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar +fi + rm -rf ~/.m2 -chown -R 1001:0 /opt/ol/wlp/usr/shared/resources/infinispan -chmod -R g+rw /opt/ol/wlp/usr/shared/resources/infinispan +chown -R 1001:0 "${CLIENT_JARS_DIR}" +chmod -R g+rw "${CLIENT_JARS_DIR}" + +INSTALLED_VERSION=$(find "${CLIENT_JARS_DIR}/" -name "infinispan-jcache-remote-*.jar" -printf "%f" | sed 's/infinispan-commons-\(.*\).jar/\1/') + +if [ -n "$INSTALLED_VERSION" ]; then + echo "Successfully installed Infinispan client version: ${INSTALLED_VERSION}" +fi From 6bfde9b69c6ddc594340935fc4ec4974d5baeb16 Mon Sep 17 00:00:00 2001 From: kelly-gao Date: Thu, 29 Jan 2026 11:34:08 -0500 Subject: [PATCH 6/9] Update session caching startup info in README --- README.md | 95 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 4ca6b49b..b59f7515 100644 --- a/README.md +++ b/README.md @@ -183,40 +183,71 @@ The Liberty session caching feature builds on top of an existing technology call * **Setup Infinispan Service** - Configuring Liberty session caching with Infinispan depends on an Infinispan service being available in your Kubernetes environment. It is preferable to create your Infinispan service by utilizing the [Infinispan Operator](https://infinispan.org/docs/infinispan-operator/main/operator.html). The [Infinispan Operator Tutorial](https://github.com/infinispan/infinispan-simple-tutorials/tree/main/infinispan-remote/operator/openshift) provides a good example of getting started with Infinispan in OpenShift. - * **Install Client Jars and Set INFINISPAN_SERVICE_NAME** - To enable Infinispan functionality in Liberty, the container image author can use the Dockerfile provided below. This Dockerfile assumes an Infinispan service name of `example-infinispan`, which is the default used in the [Infinispan Operator Tutorial](https://github.com/infinispan/infinispan-simple-tutorials/tree/main/infinispan-remote/operator/openshift). To customize your Infinispan service see [Creating Infinispan Clusters](https://infinispan.org/docs/infinispan-operator/main/operator.html#creating-clusters). The `INFINISPAN_SERVICE_NAME` environment variable must be set at build time as shown in the example Dockerfile, or overridden at image deploy time. + * **Install Client Jars and Set INFINISPAN_SERVICE_NAME** - The [infinispan-client-setup.sh](releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh) script automates the retrieval of client libraries. To ensure compatibility between your Liberty features and the Infinispan client, the following variables can be configured during image build time: + * `INFINISPAN_CLIENT_VERSION` + - Description: Sets the Infinispan client version. Refer to [Infinispan Release Notes](https://infinispan.org/release-notes) for major version and compatibility details. + - Default: `"15.2.6.Final"` + * `INFINISPAN_USE_LATEST_PATCH` + - Description: When set to "true", `INFINISPAN_CLIENT_VERSION` will resolve to the latest patch update within its specified major-minor. + - Default: `"false"` + - Note: This will resolve the highest version string found in [Maven Central](https://mvnrepository.com/artifact/org.infinispan/infinispan-jcache), which may include non-final releases (e.g., .Dev01, .Beta, or .RC versions) if they are newer than the current .Final release. + * `INFINISPAN_ENABLE_REACTIVE_STREAMS` + - Description: Enables the inclusion of Reactive Streams and RxJava transitive dependencies. + - Default: `"true"` + - Note: This is required for Infinispan 12+ to prevent runtime errors during Liberty session cache initialization but can be disabled for EOL (<12.0) client versions. + * **TIP** - Liberty enforces specific API namespaces based on the Java EE / Jakarta EE specification level of your enabled features. When using Jakarta EE 10 features, the runtime environment is strictly `jakarta.*`, necessitating an Infinispan client that aligns with that specification. For further details on lifecycle and Java baseline requirements, refer to the [Infinispan Release Posts](https://infinispan.org/blog/tag/release/) and official [Download pages](https://infinispan.org/download/). + +
+ Infinispan Client Compatibility Table + + | Major Version | Java Baseline | Namespace | Support Until | Notes | + | :--- | :--- | :--- | :--- | :--- | + | **16.0** | Java 17+ | **jakarta.* (EE 10+)** | 6 months after 17.0 (Full) | Release versions no longer end with .Final | + | **15.2** | Java 17+ | **jakarta.* (EE 10+)** | May 2026 (Full) | | + | **14.0** | Java 11+ | **javax.* / jakarta.*** | October 2027 (Limited) | | + | **13.0** | Java 8+ | **javax.*** | November 2026 (Limited) | | + | **10.x - 12.0**| Java 8 | **javax.*** | End of life | Unsupported | + +
+ + * **Dockerfile Example** - An example Dockerfile for enabling Infinispan functionality in Liberty is provided below. This Dockerfile assumes an Infinispan service name of `example-infinispan`, which is the default used in the [Infinispan Operator Tutorial](https://github.com/infinispan/infinispan-simple-tutorials/tree/main/infinispan-remote/operator/openshift). To customize your Infinispan service see [Creating Infinispan Clusters](https://infinispan.org/docs/infinispan-operator/main/operator.html#creating-clusters). The `INFINISPAN_SERVICE_NAME` environment variable must be set at build time as shown in the example Dockerfile, or overridden at image deploy time. + * **TIP** - If your Infinispan deployment and Liberty deployment are in different namespaces/projects, you will need to set the `INFINISPAN_HOST`, `INFINISPAN_PORT`, `INFINISPAN_USER`, and `INFINISPAN_PASS` environment variables in addition to the `INFINISPAN_SERVICE_NAME` environment variable. This is due to the Liberty deployment not having the access to the Infinispan service environment variables it requires. - ```dockerfile - ### Infinispan Session Caching ### - FROM icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi AS infinispan-client - - # Install Infinispan client jars - USER root - RUN infinispan-client-setup.sh - USER 1001 - - FROM icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi AS open-liberty-infinispan - - # Copy Infinispan client jars to Open Liberty shared resources - COPY --chown=1001:0 --from=infinispan-client /opt/ol/wlp/usr/shared/resources/infinispan /opt/ol/wlp/usr/shared/resources/infinispan - - # Instruct configure.sh to use Infinispan for session caching. - # This should be set to the Infinispan service name. - # TIP - Run the following oc/kubectl command with admin permissions to determine this value: - # oc get infinispan -o jsonpath={.items[0].metadata.name} - ENV INFINISPAN_SERVICE_NAME=example-infinispan - - # Uncomment and set to override auto detected values. - # These are normally not needed if running in a Kubernetes environment. - # One such scenario would be when the Infinispan and Liberty deployments are in different namespaces/projects. - #ENV INFINISPAN_HOST= - #ENV INFINISPAN_PORT= - #ENV INFINISPAN_USER= - #ENV INFINISPAN_PASS= - - # This script will add the requested XML snippets and grow image to be fit-for-purpose - RUN configure.sh - ``` + ```dockerfile + ### Infinispan Session Caching ### + FROM icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi AS infinispan-client + + # Install Infinispan client jars + USER root + + # Set 15.2.6.Final as client version for Jakarta EE 10 with latest security patches + ARG INFINISPAN_CLIENT_VERSION=15.2.6.Final + RUN infinispan-client-setup.sh + USER 1001 + + FROM icr.io/appcafe/open-liberty:kernel-slim-java8-openj9-ubi AS open-liberty-infinispan + + # Copy Infinispan client jars to Open Liberty shared resources + COPY --chown=1001:0 --from=infinispan-client /opt/ol/wlp/usr/shared/resources/infinispan /opt/ol/wlp/usr/shared/resources/infinispan + + # Instruct configure.sh to use Infinispan for session caching. + # This should be set to the Infinispan service name. + # TIP - Run the following oc/kubectl command with admin permissions to determine this value: + # oc get infinispan -o jsonpath={.items[0].metadata.name} + ENV INFINISPAN_SERVICE_NAME=example-infinispan + + # Uncomment and set to override auto detected values. + # These are normally not needed if running in a Kubernetes environment. + # One such scenario would be when the Infinispan and Liberty deployments are in different namespaces/projects. + #ENV INFINISPAN_HOST= + #ENV INFINISPAN_PORT= + #ENV INFINISPAN_USER= + #ENV INFINISPAN_PASS= + + # This script will add the requested XML snippets and grow image to be fit-for-purpose + RUN configure.sh + ``` * **Mount Infinispan Secret** - Finally, the Infinispan generated secret must be mounted as a volume under the mount point of `/platform/bindings/infinispan/secret/` on Liberty containers. The default , for versions latest and 20.0.0.6+, of `/platform/bindings/infinispan/secret/` can to be overridden by setting the `LIBERTY_INFINISPAN_SECRET_DIR` environment variable. When using the Infinispan Operator, this secret is automatically generated as part of the Infinispan service with the name of `-generated-secret`. For the mounting of this secret to succeed, the Infinispan Operator and Liberty must share the same namespace. If they do not share the same namespace, the `INFINISPAN_HOST`, `INFINISPAN_PORT`, `INFINISPAN_USER`, and `INFINISPAN_PASS` environment variables can be used instead(see the Dockerfile example above). For an example of mounting this secret, review the `volumes` and `volumeMounts` portions of the YAML below. From b2d592dbffb023b260e982c2b3953b1264a6d23f Mon Sep 17 00:00:00 2001 From: kelly-gao Date: Thu, 29 Jan 2026 11:54:54 -0500 Subject: [PATCH 7/9] Update infinispan-client-setup.sh --- .../helpers/build/infinispan-client-setup.sh | 70 +++++++++++++++--- .../helpers/build/infinispan-client-setup.sh | 71 ++++++++++++++++--- 2 files changed, 121 insertions(+), 20 deletions(-) diff --git a/releases/latest/beta/helpers/build/infinispan-client-setup.sh b/releases/latest/beta/helpers/build/infinispan-client-setup.sh index ff9b1a21..952eeaa1 100755 --- a/releases/latest/beta/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/beta/helpers/build/infinispan-client-setup.sh @@ -3,6 +3,15 @@ set -Eeo pipefail +# Recommended stable baseline for Jakarta EE 10 / JDK 17+ environments. +INFINISPAN_DEFAULT_VERSION="15.2.6.Final" +INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSION} + +# Resolves the latest patch release (x.y.Z) within the specified major.minor version. +INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} +# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. +INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} + pkgcmd=yum if ! command $pkgcmd then @@ -11,17 +20,58 @@ fi $pkgcmd update -y $pkgcmd install -y maven -mkdir -p /opt/ol/wlp/usr/shared/resources/infinispan -echo ' 4.0.0 io.openliberty openliberty-infinispan-client 1.0 org.infinispan infinispan-jcache-remote 10.1.3.Final ' > /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml dependency:copy-dependencies -DoutputDirectory=/opt/ol/wlp/usr/shared/resources/infinispan + +CLIENT_JARS_DIR="/opt/ol/wlp/usr/shared/resources/infinispan" +mkdir -p "${CLIENT_JARS_DIR}" + +cat << EOF > ${CLIENT_JARS_DIR}/pom.xml + + 4.0.0 + io.openliberty + openliberty-infinispan-client + 1.0 + + + + + org.infinispan + infinispan-jcache-remote + ${INFINISPAN_CLIENT_VERSION} + + + +EOF + +if [ "${INFINISPAN_USE_LATEST_PATCH}" = "true" ]; then + echo "Resolving latest Infinispan client patch release (no major upgrades)..." + mvn -f "${CLIENT_JARS_DIR}"/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -DallowMinorUpdates=false +fi + +mvn -f "${CLIENT_JARS_DIR}/pom.xml" dependency:copy-dependencies -DoutputDirectory="${CLIENT_JARS_DIR}" # This fails with dependency errors using microdnf on ubi-minimal, but it is okay to let it fail yum remove -y maven || true -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/jboss-transaction-api*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/reactive-streams-*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/rxjava-*.jar +rm -f "${CLIENT_JARS_DIR}/pom.xml" + +# Remove unnecessary spec jars +rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar +rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar + +# Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 +# Only remove if explicitly disabled (default: enabled) +if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then + echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." + rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar + rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar +fi + rm -rf ~/.m2 -chown -R 1001:0 /opt/ol/wlp/usr/shared/resources/infinispan -chmod -R g+rw /opt/ol/wlp/usr/shared/resources/infinispan +chown -R 1001:0 "${CLIENT_JARS_DIR}" +chmod -R g+rw "${CLIENT_JARS_DIR}" + +INSTALLED_VERSION=$(find "${CLIENT_JARS_DIR}/" -name "infinispan-jcache-remote-*.jar" -printf "%f" | sed 's/infinispan-commons-\(.*\).jar/\1/') +if [ -n "$INSTALLED_VERSION" ]; then + echo "Successfully installed Infinispan client version: ${INSTALLED_VERSION}" +fi \ No newline at end of file diff --git a/releases/latest/full/helpers/build/infinispan-client-setup.sh b/releases/latest/full/helpers/build/infinispan-client-setup.sh index ff9b1a21..c7d5b7a2 100755 --- a/releases/latest/full/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/full/helpers/build/infinispan-client-setup.sh @@ -3,6 +3,15 @@ set -Eeo pipefail +# Recommended stable baseline for Jakarta EE 10 / JDK 17+ environments. +INFINISPAN_DEFAULT_VERSION="15.2.6.Final" +INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSION} + +# Resolves the latest patch release (x.y.Z) within the specified major.minor version. +INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} +# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. +INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} + pkgcmd=yum if ! command $pkgcmd then @@ -11,17 +20,59 @@ fi $pkgcmd update -y $pkgcmd install -y maven -mkdir -p /opt/ol/wlp/usr/shared/resources/infinispan -echo ' 4.0.0 io.openliberty openliberty-infinispan-client 1.0 org.infinispan infinispan-jcache-remote 10.1.3.Final ' > /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -mvn -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml dependency:copy-dependencies -DoutputDirectory=/opt/ol/wlp/usr/shared/resources/infinispan + +CLIENT_JARS_DIR="/opt/ol/wlp/usr/shared/resources/infinispan" +mkdir -p "${CLIENT_JARS_DIR}" + +cat << EOF > ${CLIENT_JARS_DIR}/pom.xml + + 4.0.0 + io.openliberty + openliberty-infinispan-client + 1.0 + + + + + org.infinispan + infinispan-jcache-remote + ${INFINISPAN_CLIENT_VERSION} + + + +EOF + +if [ "${INFINISPAN_USE_LATEST_PATCH}" = "true" ]; then + echo "Resolving latest Infinispan client patch release (no major upgrades)..." + mvn -f "${CLIENT_JARS_DIR}"/pom.xml versions:use-latest-releases -DallowMajorUpdates=false -DallowMinorUpdates=false +fi + +mvn -f "${CLIENT_JARS_DIR}/pom.xml" dependency:copy-dependencies -DoutputDirectory="${CLIENT_JARS_DIR}" # This fails with dependency errors using microdnf on ubi-minimal, but it is okay to let it fail yum remove -y maven || true -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/pom.xml -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/jboss-transaction-api*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/reactive-streams-*.jar -rm -f /opt/ol/wlp/usr/shared/resources/infinispan/rxjava-*.jar +rm -f "${CLIENT_JARS_DIR}/pom.xml" + +# Remove unnecessary spec jars +rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar +rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar + +# Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 +# Only remove if explicitly disabled (default: enabled) +if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then + echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." + rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar + rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar +fi + rm -rf ~/.m2 -chown -R 1001:0 /opt/ol/wlp/usr/shared/resources/infinispan -chmod -R g+rw /opt/ol/wlp/usr/shared/resources/infinispan +chown -R 1001:0 "${CLIENT_JARS_DIR}" +chmod -R g+rw "${CLIENT_JARS_DIR}" + +INSTALLED_VERSION=$(find "${CLIENT_JARS_DIR}/" -name "infinispan-jcache-remote-*.jar" -printf "%f" | sed 's/infinispan-commons-\(.*\).jar/\1/') + +if [ -n "$INSTALLED_VERSION" ]; then + echo "Successfully installed Infinispan client version: ${INSTALLED_VERSION}" +fi From baa95e23b68e59fa9e52d0d8057a7aca04daf2be Mon Sep 17 00:00:00 2001 From: kelly-gao Date: Wed, 11 Feb 2026 12:15:38 -0500 Subject: [PATCH 8/9] Infinispan client script: remove ENABLE_REACTIVE_STREAMS env variable, strip jars for versions < 11 --- .../beta/helpers/build/infinispan-client-setup.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/releases/latest/beta/helpers/build/infinispan-client-setup.sh b/releases/latest/beta/helpers/build/infinispan-client-setup.sh index 952eeaa1..bd69fcfe 100755 --- a/releases/latest/beta/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/beta/helpers/build/infinispan-client-setup.sh @@ -9,8 +9,6 @@ INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSI # Resolves the latest patch release (x.y.Z) within the specified major.minor version. INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} -# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. -INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} pkgcmd=yum if ! command $pkgcmd @@ -58,10 +56,12 @@ rm -f "${CLIENT_JARS_DIR}/pom.xml" rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar +# Extract major version set +MAJOR_VERSION=$(echo "${INFINISPAN_CLIENT_VERSION}" | sed -E 's/^([0-9]+)\..*/\1/') # Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 -# Only remove if explicitly disabled (default: enabled) -if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then - echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." +# For versions < 11.0.0, remove reactive streams +if [ "${MAJOR_VERSION}" -lt 11 ]; then + echo "Removing reactive-streams and rxjava jars as Infinispan version ${INFINISPAN_CLIENT_VERSION} is < 11.0.0..." rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar fi From 367df6026136d605ea5dc072f9376d705b118b60 Mon Sep 17 00:00:00 2001 From: kelly-gao Date: Wed, 11 Feb 2026 12:21:10 -0500 Subject: [PATCH 9/9] Added allowlist to full, kernel, beta --- .../infinispan-client-sessioncache.xml | 1 + .../infinispan-client-sessioncache.xml | 1 + .../full/helpers/build/infinispan-client-setup.sh | 10 +++++----- .../infinispan-client-sessioncache.xml | 1 + .../helpers/build/infinispan-client-setup.sh | 10 +++++----- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/releases/latest/beta/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml b/releases/latest/beta/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml index e2ec72d2..a1914f0f 100644 --- a/releases/latest/beta/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml +++ b/releases/latest/beta/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml @@ -6,6 +6,7 @@ + diff --git a/releases/latest/full/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml b/releases/latest/full/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml index e2ec72d2..a1914f0f 100644 --- a/releases/latest/full/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml +++ b/releases/latest/full/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml @@ -6,6 +6,7 @@ + diff --git a/releases/latest/full/helpers/build/infinispan-client-setup.sh b/releases/latest/full/helpers/build/infinispan-client-setup.sh index c7d5b7a2..a7b7c0ef 100755 --- a/releases/latest/full/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/full/helpers/build/infinispan-client-setup.sh @@ -9,8 +9,6 @@ INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSI # Resolves the latest patch release (x.y.Z) within the specified major.minor version. INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} -# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. -INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} pkgcmd=yum if ! command $pkgcmd @@ -58,10 +56,12 @@ rm -f "${CLIENT_JARS_DIR}/pom.xml" rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar +# Extract major version set +MAJOR_VERSION=$(echo "${INFINISPAN_CLIENT_VERSION}" | sed -E 's/^([0-9]+)\..*/\1/') # Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 -# Only remove if explicitly disabled (default: enabled) -if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then - echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." +# For versions < 11.0.0, remove reactive streams +if [ "${MAJOR_VERSION}" -lt 11 ]; then + echo "Removing reactive-streams and rxjava jars as Infinispan version ${INFINISPAN_CLIENT_VERSION} is < 11.0.0..." rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar fi diff --git a/releases/latest/kernel-slim/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml b/releases/latest/kernel-slim/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml index d835cb4e..47bc5bf2 100644 --- a/releases/latest/kernel-slim/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml +++ b/releases/latest/kernel-slim/helpers/build/configuration_snippets/infinispan-client-sessioncache.xml @@ -3,6 +3,7 @@ + diff --git a/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh b/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh index c7d5b7a2..a7b7c0ef 100755 --- a/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh +++ b/releases/latest/kernel-slim/helpers/build/infinispan-client-setup.sh @@ -9,8 +9,6 @@ INFINISPAN_CLIENT_VERSION=${INFINISPAN_CLIENT_VERSION:-$INFINISPAN_DEFAULT_VERSI # Resolves the latest patch release (x.y.Z) within the specified major.minor version. INFINISPAN_USE_LATEST_PATCH=${INFINISPAN_USE_LATEST_PATCH:-false} -# Required for Infinispan 11+ on Liberty. Hard dependency for Liberty sessionCache-1.0. -INFINISPAN_ENABLE_REACTIVE_STREAMS=${INFINISPAN_ENABLE_REACTIVE_STREAMS:-true} pkgcmd=yum if ! command $pkgcmd @@ -58,10 +56,12 @@ rm -f "${CLIENT_JARS_DIR}/pom.xml" rm -f "${CLIENT_JARS_DIR}"/jboss-transaction-api*.jar rm -f "${CLIENT_JARS_DIR}"/jakarta.transaction-api*.jar +# Extract major version set +MAJOR_VERSION=$(echo "${INFINISPAN_CLIENT_VERSION}" | sed -E 's/^([0-9]+)\..*/\1/') # Reactive streams are required for Infinispan 11+ on Liberty sessionCache-1.0 -# Only remove if explicitly disabled (default: enabled) -if [ "${INFINISPAN_ENABLE_REACTIVE_STREAMS}" != "true" ]; then - echo "Removing reactive-streams and rxjava jars as INFINISPAN_ENABLE_REACTIVE_STREAMS is not set to true..." +# For versions < 11.0.0, remove reactive streams +if [ "${MAJOR_VERSION}" -lt 11 ]; then + echo "Removing reactive-streams and rxjava jars as Infinispan version ${INFINISPAN_CLIENT_VERSION} is < 11.0.0..." rm -f "${CLIENT_JARS_DIR}"/reactive-streams-*.jar rm -f "${CLIENT_JARS_DIR}"/rxjava-*.jar fi