From 859156e5b338c22cdc7e3e875c45aac8f196dfae Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 13:49:33 +0000 Subject: [PATCH 01/14] Update pom.xml Correct data on BOM --- pom.xml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 44e6959..0001c84 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ ${java.version} - + @@ -45,13 +45,11 @@ org.springframework.boot spring-boot-starter-web - + com.ibm.cics com.ibm.cics.server - - + From 8d8c191011f2980d6cb35d7dda7b17b12f6229b9 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 13:50:48 +0000 Subject: [PATCH 02/14] Update build.gradle Minor updates --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index a853336..ffa99bc 100644 --- a/build.gradle +++ b/build.gradle @@ -39,8 +39,8 @@ dependencies // Tomcat provided by CICS Liberty at runtime providedRuntime("org.springframework.boot:spring-boot-starter-tomcat") - // Use correct BOM version for CICS TS (6.1 is the minimum supported release for this sample). - // If you are running on a higher CICS TS version, you may replace this with a newer BOM.) + // Use correct BOM version for CICS TS (6.1 is the minimum supported release for this sample) + // If you are running on a higher CICS TS version, you may replace this with a newer BOM) compileOnly(enforcedPlatform("com.ibm.cics:com.ibm.cics.ts.bom:6.1-20250812133513-PH63856")) // JCICS API (version inherited from BOM) From 83939bc293807035cc485f892ecaa8d0aae31728 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 13:52:07 +0000 Subject: [PATCH 03/14] Update pom.xml Sync comments with build.gradle --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0001c84..604070a 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,8 @@ ${java.version} - + + From ceaf67530ab5e0112288f4f30d42523fc96e9052 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 13:55:42 +0000 Subject: [PATCH 04/14] Update README.md Update prereqs --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fd74058..38dcb82 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,9 @@ For further details about the development of this sample refer to the tutorial [ ## Requirements -- CICS TS V5.3 or later +- CICS TS V6.1 or later - A configured Liberty JVM server in CICS -- Java SE 1.8 or later on the workstation +- IBM Semeru Runtime Certified Edition Version 17.0 or later on the workstation - An Eclipse development environment on the workstation (optional) - Either Gradle or Apache Maven on the workstation (optional if using Wrappers) From 02346aebfc8fe2c217e0e42ebd8d7ac4f5bf7e21 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 13:59:16 +0000 Subject: [PATCH 05/14] Update README.md Update to CICS TS 6.1 prereq --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 38dcb82..f822184 100644 --- a/README.md +++ b/README.md @@ -26,12 +26,12 @@ For further details about the development of this sample refer to the tutorial [ ### Check dependencies -Before building this sample, you should verify that the correct CICS TS bill of materials (BOM) is specified for your target release of CICS. The BOM specifies a consistent set of artifacts, and adds information about their scope. In the example below the version specified is compatible with CICS TS V5.5 with JCICS APAR PH25409, or newer. That is, the Java byte codes built by compiling against this version of JCICS will be compatible with later CICS TS versions and subsequent JCICS APARs. +Before building this sample, you should verify that the correct CICS TS bill of materials (BOM) is specified for your target release of CICS. The BOM specifies a consistent set of artifacts, and adds information about their scope. In the example below the version specified is compatible with CICS TS V6.1 with JCICS APAR PH63856, or newer. That is, the Java byte codes built by compiling against this version of JCICS will be compatible with later CICS TS versions and subsequent JCICS APARs. You can browse the published versions of the CICS BOM at [Maven Central.](https://mvnrepository.com/artifact/com.ibm.cics/com.ibm.cics.ts.bom) Gradle (build.gradle): -`compileOnly enforcedPlatform("com.ibm.cics:com.ibm.cics.ts.bom:5.5-20200519131930-PH25409")` +`compileOnly enforcedPlatform("com.ibm.cics:com.ibm.cics.ts.bom:6.1-20250812133513-PH63856")` Maven (POM.xml): @@ -41,7 +41,7 @@ Maven (POM.xml): com.ibm.cics com.ibm.cics.ts.bom - 5.5-20200519131930-PH25409 + 6.1-20250812133513-PH63856 pom import @@ -108,9 +108,7 @@ This creates a WAR file inside the `target` directory. - Ensure you have the following features defined in your Liberty `server.xml`: - `` or `` depending on the version of Java EE in use. - - `` if CICS security is enabled. - ->**Note:** `servlet-4.0` will only work for CICS TS V5.5 or later + - `` if CICS security is enabled. - Deployment option 1: - Copy and paste the built WAR from your *target* or *build/libs* directory into a Eclipse CICS bundle project and create a new WAR bundlepart that references the WAR file. Then deploy the CICS bundle project from CICS Explorer using the **Export Bundle Project to z/OS UNIX File System** wizard. From 690d9099e35dc8d82d48a4e5329c9a5302b13cef Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 15:06:02 +0000 Subject: [PATCH 06/14] Clean up gradle build --- build.gradle | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index ffa99bc..4ce3212 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,4 @@ - - plugins +plugins { id 'org.springframework.boot' version '3.5.9' id 'io.spring.dependency-management' version '1.1.7' @@ -12,6 +11,8 @@ group = 'com.ibm.cicsdev.springboot' archivesBaseName='cics-java-liberty-springboot-jcics' version = '0.1.0' + + java { sourceCompatibility = JavaVersion.VERSION_17 @@ -44,15 +45,11 @@ dependencies compileOnly(enforcedPlatform("com.ibm.cics:com.ibm.cics.ts.bom:6.1-20250812133513-PH63856")) // JCICS API (version inherited from BOM) - compileOnly("com.ibm.cics:com.ibm.cics.server") - - + compileOnly("com.ibm.cics:com.ibm.cics.server") } -// Don't generate a FAT bootWar, we don't need to run standalone -bootWar { enabled = false } -group = 'com.ibm.cicsdev.springboot' -archivesBaseName='cics-java-liberty-springboot-jcics' -version = '0.1.0' + +//Don't generate a FAT bootWar, we don't need to run standalone +//bootWar { enabled = false } publishing { From 5b758196c4729f9741c86bd6893d1dabfbc2a7b7 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 15:07:40 +0000 Subject: [PATCH 07/14] Remove Java version from gradle.properties --- gradle.properties | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3538325..71ffae9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,5 +13,4 @@ # These values only have any effect if the publish goal is used. # For example: gradle build publish. publish_repo_releases_url = 'default-value-for-publish_repo_releases_url' -publish_repo_releases_name = 'default-value-for-publish_repo_releases_name' -java_version = 8 \ No newline at end of file +publish_repo_releases_name = 'default-value-for-publish_repo_releases_name' \ No newline at end of file From 05ef9214ef018013c463d5ff70a0c8b671a5fa72 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Tue, 3 Feb 2026 15:08:20 +0000 Subject: [PATCH 08/14] Update maintainers --- MAINTAINERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 27652f8..ae77be6 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -4,4 +4,4 @@ - Alex Brown [@AlexBrown](https://github.com/SoftlySplinter) - Phil Wakelin [@PhilWakelin](https://github.com/PhilWakelin) -*Last reviewed:* November 2024 +*Last reviewed:* Feb 2026 From 0af468a816313f3ddcde598be00c92187081e6f4 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Wed, 4 Feb 2026 09:58:47 +0000 Subject: [PATCH 09/14] Update maven build to remove extra war libs --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 604070a..727b208 100644 --- a/pom.xml +++ b/pom.xml @@ -20,10 +20,10 @@ 17 - UTF-8 ${java.version} - ${java.version} + ${java.version} + true From 40a54ea1d089c14b6c5d85a160b2e6bc3e227e7e Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Wed, 4 Feb 2026 09:59:07 +0000 Subject: [PATCH 10/14] Fix gradle build instructions --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f822184..64f600d 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ On the command line, you simply swap the Gradle or Maven command for the wrapper For an IDE, taking Eclipse as an example, the plug-ins for Gradle *buildship* and Maven *m2e* will integrate with the "Run As..." capability, allowing you to specify whether you want to build the project with a Wrapper, or a specific version of your chosen build tool. -The required build-tasks are typically `clean bootWar` for Gradle and `clean package` for Maven. Once run, Gradle will generate a WAR file in the `build/libs` directory, while Maven will generate it in the `target` directory. +The required build-tasks are typically `clean build` for Gradle and `clean package` for Maven. Once run, Gradle will generate a WAR file in the `build/libs` directory, while Maven will generate it in the `target` directory. **Note:** When building a WAR file for deployment to Liberty it is good practice to exclude Tomcat from the final runtime artifact. We demonstrate this in the pom.xml with the *provided* scope, and in build.gradle with the *providedRuntime()* dependency. @@ -73,12 +73,12 @@ Run the following in a local command prompt: On Linux or Mac: ```shell -./gradlew clean bootWar +./gradlew clean build ``` On Windows: ```shell -gradlew.bat clean bootWar +gradlew.bat clean build ``` This creates a WAR file inside the `build/libs` directory. From ee09bd15282e15bd52179b05a3803c690e532132 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Wed, 4 Feb 2026 09:59:37 +0000 Subject: [PATCH 11/14] Remove fat bootwar from gradle build --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4ce3212..b386ce6 100644 --- a/build.gradle +++ b/build.gradle @@ -49,7 +49,7 @@ dependencies } //Don't generate a FAT bootWar, we don't need to run standalone -//bootWar { enabled = false } +bootWar { enabled = false } publishing { From d61cce0c30fc3a04ed1e54d670b49b06afb8ff7d Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Mon, 9 Feb 2026 09:41:50 +0000 Subject: [PATCH 12/14] Update to Jakarta EE 9 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 64f600d..e76143f 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ For further details about the development of this sample refer to the tutorial [ - CICS TS V6.1 or later - A configured Liberty JVM server in CICS +- Jakarta EE 9.0 or later - IBM Semeru Runtime Certified Edition Version 17.0 or later on the workstation - An Eclipse development environment on the workstation (optional) - Either Gradle or Apache Maven on the workstation (optional if using Wrappers) @@ -107,7 +108,7 @@ This creates a WAR file inside the `target` directory. ## Deploying to a CICS Liberty JVM server - Ensure you have the following features defined in your Liberty `server.xml`: - - `` or `` depending on the version of Java EE in use. + - `` or later depending on the version of Jakarta EE in use. - `` if CICS security is enabled. - Deployment option 1: From e8a1876cb6c84202d5179fcb09984e0718ba7a33 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Mon, 9 Feb 2026 09:46:30 +0000 Subject: [PATCH 13/14] Remove old Java versions from build --- .github/workflows/java.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index 269eadd..e595ac7 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - jdk: [8, 11, 17] + jdk: [17] steps: - uses: actions/checkout@v4 @@ -35,7 +35,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - jdk: [8, 11, 17] + jdk: [17] steps: - uses: actions/checkout@v4 From ba8f5ecfa6348efe128ecbd4ce8223e4e62f97e0 Mon Sep 17 00:00:00 2001 From: Phil Wakelin Date: Mon, 9 Feb 2026 12:08:34 +0000 Subject: [PATCH 14/14] Update to Jakarta EE 10 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e76143f..e1cf634 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ For further details about the development of this sample refer to the tutorial [ - CICS TS V6.1 or later - A configured Liberty JVM server in CICS -- Jakarta EE 9.0 or later +- Jakarta EE 10 or later - IBM Semeru Runtime Certified Edition Version 17.0 or later on the workstation - An Eclipse development environment on the workstation (optional) - Either Gradle or Apache Maven on the workstation (optional if using Wrappers) @@ -108,7 +108,7 @@ This creates a WAR file inside the `target` directory. ## Deploying to a CICS Liberty JVM server - Ensure you have the following features defined in your Liberty `server.xml`: - - `` or later depending on the version of Jakarta EE in use. + - `` or later depending on the version of Jakarta EE in use. - `` if CICS security is enabled. - Deployment option 1: