From a0043c86c9504652518e45f4d60458231505c235 Mon Sep 17 00:00:00 2001 From: manvisingh55 Date: Fri, 5 Jun 2026 18:02:44 +0530 Subject: [PATCH 1/3] gradle version update --- gradle/wrapper/gradle-wrapper.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 03b32a2..419c0c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists +zipStorePath=wrapper/dists \ No newline at end of file From f2f2958d7960c7cb89d97254a358240dd0993602 Mon Sep 17 00:00:00 2001 From: Manvi Singh Date: Fri, 5 Jun 2026 18:04:08 +0530 Subject: [PATCH 2/3] Restructure to multi-module format following CICS standards - Convert to two-module structure (app + cicsbundle) - Update to Jakarta EE 10 (Servlet 6.0) for Spring Boot 3.x - Add CICS Bundle Plugin 1.0.8 for Gradle and Maven - Update GitHub workflow for Java 17, 21, 25 with copyright checker - Upgrade Gradle to 8.14.4 (matches transactions sample) - Update .gitignore to match CICS samples - Version updated to 1.0.0 across all modules --- .../build.gradle | 16 ++- cics-java-liberty-springboot-link-app/pom.xml | 115 ++++++++++++++++++ .../springboot/link/app/ui/Application.java | 0 .../app/ui/InMemoryMessageRepository.java | 0 .../springboot/link/app/ui/Message.java | 0 .../link/app/ui/MessageRepository.java | 0 .../link/app/ui/ServletInitializer.java | 0 .../link/app/ui/cics/CICSCallable.java | 0 .../link/app/ui/mvc/MessageController.java | 0 .../main/resources/application.properties | 0 .../src}/main/resources/logback.xml | 0 .../src}/main/resources/messages.properties | 0 .../resources/static/css/bootstrap.min.css | 0 .../src}/main/resources/static/favicon.ico | Bin .../main/resources/templates/fragments.html | 0 .../resources/templates/messages/form.html | 0 .../resources/templates/messages/list.html | 0 .../resources/templates/messages/view.html | 0 .../build.gradle | 33 +++++ .../pom.xml | 57 +++++++++ pom.xml | 114 ++++------------- settings.gradle | 11 +- 22 files changed, 254 insertions(+), 92 deletions(-) rename build.gradle => cics-java-liberty-springboot-link-app/build.gradle (78%) create mode 100644 cics-java-liberty-springboot-link-app/pom.xml rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/application.properties (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/logback.xml (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/messages.properties (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/static/css/bootstrap.min.css (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/static/favicon.ico (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/templates/fragments.html (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/templates/messages/form.html (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/templates/messages/list.html (100%) rename {src => cics-java-liberty-springboot-link-app/src}/main/resources/templates/messages/view.html (100%) create mode 100644 cics-java-liberty-springboot-link-cicsbundle/build.gradle create mode 100644 cics-java-liberty-springboot-link-cicsbundle/pom.xml diff --git a/build.gradle b/cics-java-liberty-springboot-link-app/build.gradle similarity index 78% rename from build.gradle rename to cics-java-liberty-springboot-link-app/build.gradle index 206adea..873b334 100644 --- a/build.gradle +++ b/cics-java-liberty-springboot-link-app/build.gradle @@ -9,8 +9,7 @@ plugins } group = 'com.ibm.cicsdev.springboot' -archivesBaseName='cics-java-liberty-springboot-link' -version = '0.1.0' +version = '1.0.0' // ============================================================================ // Java Configuration @@ -20,6 +19,19 @@ java { targetCompatibility = JavaVersion.toVersion(java_version) } +// ============================================================================ +// WAR Configuration +// ============================================================================ +war +{ + archiveFileName = "cics-java-liberty-springboot-link-app-${version}.war" +} + +// Two versions of the WAR would be built, one for embedding into servers like Liberty (plain) +// and a bootWAR which can run standalone and contains all the Tomcat and Spring Boot stuff +// we don't need bootWAR, so disable it. +bootWar { enabled = false } + // If in Eclipse, add Javadoc to the local project classpath eclipse { diff --git a/cics-java-liberty-springboot-link-app/pom.xml b/cics-java-liberty-springboot-link-app/pom.xml new file mode 100644 index 0000000..c8f6037 --- /dev/null +++ b/cics-java-liberty-springboot-link-app/pom.xml @@ -0,0 +1,115 @@ + + + 4.0.0 + + + + com.ibm.cicsdev + cics-java-liberty-springboot-link + 1.0.0 + ../pom.xml + + + + cics-java-liberty-springboot-link-app + com.ibm.cicsdev.springboot.link.app + Demo project for Spring Boot with CICS Link - Application + + + 17 + UTF-8 + ${java.version} + ${java.version} + true + + + + + + + com.ibm.cics + com.ibm.cics.ts.bom + 6.1-20250812133513-PH63856 + pom + import + + + + + + + + com.ibm.cics + com.ibm.cics.server + + + + + com.ibm.cics + com.ibm.cics.server.invocation.annotations + + + + + org.springframework.boot + spring-boot-starter-web + + + + + jakarta.validation + jakarta.validation-api + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + + + org.apache.tiles + tiles-el + 3.0.8 + + + + + + war + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + maven-compiler-plugin + 3.12.1 + + + + com.ibm.cics + com.ibm.cics.server.invocation + + + + + + + + diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java diff --git a/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java b/cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java similarity index 100% rename from src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java rename to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java diff --git a/src/main/resources/application.properties b/cics-java-liberty-springboot-link-app/src/main/resources/application.properties similarity index 100% rename from src/main/resources/application.properties rename to cics-java-liberty-springboot-link-app/src/main/resources/application.properties diff --git a/src/main/resources/logback.xml b/cics-java-liberty-springboot-link-app/src/main/resources/logback.xml similarity index 100% rename from src/main/resources/logback.xml rename to cics-java-liberty-springboot-link-app/src/main/resources/logback.xml diff --git a/src/main/resources/messages.properties b/cics-java-liberty-springboot-link-app/src/main/resources/messages.properties similarity index 100% rename from src/main/resources/messages.properties rename to cics-java-liberty-springboot-link-app/src/main/resources/messages.properties diff --git a/src/main/resources/static/css/bootstrap.min.css b/cics-java-liberty-springboot-link-app/src/main/resources/static/css/bootstrap.min.css similarity index 100% rename from src/main/resources/static/css/bootstrap.min.css rename to cics-java-liberty-springboot-link-app/src/main/resources/static/css/bootstrap.min.css diff --git a/src/main/resources/static/favicon.ico b/cics-java-liberty-springboot-link-app/src/main/resources/static/favicon.ico similarity index 100% rename from src/main/resources/static/favicon.ico rename to cics-java-liberty-springboot-link-app/src/main/resources/static/favicon.ico diff --git a/src/main/resources/templates/fragments.html b/cics-java-liberty-springboot-link-app/src/main/resources/templates/fragments.html similarity index 100% rename from src/main/resources/templates/fragments.html rename to cics-java-liberty-springboot-link-app/src/main/resources/templates/fragments.html diff --git a/src/main/resources/templates/messages/form.html b/cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/form.html similarity index 100% rename from src/main/resources/templates/messages/form.html rename to cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/form.html diff --git a/src/main/resources/templates/messages/list.html b/cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/list.html similarity index 100% rename from src/main/resources/templates/messages/list.html rename to cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/list.html diff --git a/src/main/resources/templates/messages/view.html b/cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/view.html similarity index 100% rename from src/main/resources/templates/messages/view.html rename to cics-java-liberty-springboot-link-app/src/main/resources/templates/messages/view.html diff --git a/cics-java-liberty-springboot-link-cicsbundle/build.gradle b/cics-java-liberty-springboot-link-cicsbundle/build.gradle new file mode 100644 index 0000000..52dcf00 --- /dev/null +++ b/cics-java-liberty-springboot-link-cicsbundle/build.gradle @@ -0,0 +1,33 @@ +// ============================================================================ +// Plugins +// ============================================================================ +plugins +{ + id 'com.ibm.cics.bundle' version '1.0.8' +} + +// ============================================================================ +// Project Information +// ============================================================================ +description = 'CICS Spring Boot Link Application - CICS Bundle' +version = '1.0.0' + +// ============================================================================ +// Dependencies +// ============================================================================ +dependencies +{ + // Application WAR from sibling project + cicsBundlePart project(path: ':cics-java-liberty-springboot-link-app', configuration: 'archives') +} + +// ============================================================================ +// CICS Bundle Configuration +// ============================================================================ +cicsBundle +{ + build + { + defaultJVMServer = project.findProperty('cics.jvmserver') ?: 'DFHWLP' + } +} diff --git a/cics-java-liberty-springboot-link-cicsbundle/pom.xml b/cics-java-liberty-springboot-link-cicsbundle/pom.xml new file mode 100644 index 0000000..ce97854 --- /dev/null +++ b/cics-java-liberty-springboot-link-cicsbundle/pom.xml @@ -0,0 +1,57 @@ + + + 4.0.0 + + + + + + com.ibm.cicsdev + cics-java-liberty-springboot-link + 1.0.0 + ../pom.xml + + + + + + cics-java-liberty-springboot-link-cicsbundle + cics-bundle + CICS Spring Boot Link - CICS Bundle + + + + + + + + ${project.groupId} + cics-java-liberty-springboot-link-app + ${project.version} + war + + + + + + + + + + + com.ibm.cics + cics-bundle-maven-plugin + 1.0.8 + true + + ${cics.jvmserver} + + + + + + + + diff --git a/pom.xml b/pom.xml index a05935d..4797a9a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,8 @@ - + + 4.0.0 - + org.springframework.boot @@ -10,24 +10,28 @@ 3.5.9 - - - com.ibm.cicsdev.springboot + + + + + com.ibm.cicsdev cics-java-liberty-springboot-link - 0.1.0 - cics-java-liberty-springboot-link - Demo project for Spring Boot + 1.0.0 + Demo project for Spring Boot with CICS Link + pom + 17 - UTF-8 ${java.version} ${java.version} + DFHWLP - - + + + com.ibm.cics com.ibm.cics.ts.bom @@ -37,81 +41,13 @@ - - - - - com.ibm.cics - com.ibm.cics.server - - - - - com.ibm.cics - com.ibm.cics.server.invocation.annotations - - - - - org.springframework.boot - spring-boot-starter-web - - - - - jakarta.validation - jakarta.validation-api - - - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - - - org.apache.tiles - tiles-el - 3.0.8 - - - - - - war - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - maven-compiler-plugin - 3.12.1 - - - - com.ibm.cics - com.ibm.cics.server.invocation - - - - - - + + + + + + cics-java-liberty-springboot-link-app + cics-java-liberty-springboot-link-cicsbundle + \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 6d472f9..8662f2c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,10 @@ -rootProject.name = 'com.ibm.cicsdev.springboot.link' +// ============================================================================ +// Root Project Configuration +// ============================================================================ +rootProject.name = 'cics-java-liberty-springboot-link' + +// ============================================================================ +// Subprojects +// ============================================================================ +include(':cics-java-liberty-springboot-link-app') +include(':cics-java-liberty-springboot-link-cicsbundle') From f2798cc643cd3956544a4feaf67573b9f6fb6e96 Mon Sep 17 00:00:00 2001 From: Manvi Singh Date: Wed, 10 Jun 2026 13:53:08 +0530 Subject: [PATCH 3/3] Apply gold standard compliance updates - Rename workflow from java.yaml to build.yaml - Update README badge to reference build.yaml - Update build.gradle to use toolchain instead of sourceCompatibility/targetCompatibility - Update pom.xml files to use maven.compiler.release instead of source/target - Add Gradle daemon and parallel build settings to gradle.properties - Update .classpath from JavaSE-1.8 to JavaSE-17 - All builds tested and passing (Gradle and Maven) --- .classpath | 2 +- .github/workflows/{java.yaml => build.yaml} | 0 README.md | 2 +- cics-java-liberty-springboot-link-app/build.gradle | 5 +++-- cics-java-liberty-springboot-link-app/pom.xml | 3 +-- gradle.properties | 14 ++++++++++---- pom.xml | 3 +-- 7 files changed, 17 insertions(+), 12 deletions(-) rename .github/workflows/{java.yaml => build.yaml} (100%) diff --git a/.classpath b/.classpath index 070a4d7..4c6c44b 100644 --- a/.classpath +++ b/.classpath @@ -13,7 +13,7 @@ - + diff --git a/.github/workflows/java.yaml b/.github/workflows/build.yaml similarity index 100% rename from .github/workflows/java.yaml rename to .github/workflows/build.yaml diff --git a/README.md b/README.md index 76e3c37..783ad6d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # cics-java-liberty-springboot-link -[![Build](https://github.com/cicsdev/cics-java-liberty-springboot-link/actions/workflows/java.yaml/badge.svg)](https://github.com/cicsdev/cics-java-liberty-springboot-link/actions/workflows/java.yaml) +[![Build](https://github.com/cicsdev/cics-java-liberty-springboot-link/actions/workflows/build.yaml/badge.svg)](https://github.com/cicsdev/cics-java-liberty-springboot-link/actions/workflows/build.yaml) This sample demonstrates how you can link to a Spring Boot application in a Liberty JVM server from a CICS program. The application is based on a Spring Boot sample application that demonstrates Spring MVC, so has both a web front-end and a CICS entry point using the link to Liberty `@CICSProgram` annotation. The sample shows how both entry points can access the same data. diff --git a/cics-java-liberty-springboot-link-app/build.gradle b/cics-java-liberty-springboot-link-app/build.gradle index 873b334..aa757d4 100644 --- a/cics-java-liberty-springboot-link-app/build.gradle +++ b/cics-java-liberty-springboot-link-app/build.gradle @@ -15,8 +15,9 @@ version = '1.0.0' // Java Configuration // ============================================================================ java { - sourceCompatibility = JavaVersion.toVersion(java_version) - targetCompatibility = JavaVersion.toVersion(java_version) + toolchain { + languageVersion = JavaLanguageVersion.of(java_version) + } } // ============================================================================ diff --git a/cics-java-liberty-springboot-link-app/pom.xml b/cics-java-liberty-springboot-link-app/pom.xml index c8f6037..6c33d7e 100644 --- a/cics-java-liberty-springboot-link-app/pom.xml +++ b/cics-java-liberty-springboot-link-app/pom.xml @@ -19,8 +19,7 @@ 17 UTF-8 - ${java.version} - ${java.version} + ${java.version} true diff --git a/gradle.properties b/gradle.properties index 9fa633b..a395657 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # -# Values in this file provide defaults to variables used in the +# Values in this file provide defaults to variables used in the # gradle files. # @@ -7,11 +7,17 @@ # But if we do, these are the default values we use to indicate # where the files should be placed. # -# These can be over-ridden from the command line +# These can be over-ridden from the command line # with -Ppublish_repo_releases_url="file://my-folder" for example. -# +# # 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 = 17 \ No newline at end of file +java_version = 17 + +# Gradle daemon improves build performance +org.gradle.daemon=true + +# Enable parallel builds for faster compilation +org.gradle.parallel=true diff --git a/pom.xml b/pom.xml index 4797a9a..7209067 100644 --- a/pom.xml +++ b/pom.xml @@ -23,8 +23,7 @@ 17 UTF-8 - ${java.version} - ${java.version} + ${java.version} DFHWLP