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/build.gradle b/cics-java-liberty-springboot-link-app/build.gradle similarity index 74% rename from build.gradle rename to cics-java-liberty-springboot-link-app/build.gradle index 206adea..aa757d4 100644 --- a/build.gradle +++ b/cics-java-liberty-springboot-link-app/build.gradle @@ -9,17 +9,30 @@ plugins } group = 'com.ibm.cicsdev.springboot' -archivesBaseName='cics-java-liberty-springboot-link' -version = '0.1.0' +version = '1.0.0' // ============================================================================ // Java Configuration // ============================================================================ java { - sourceCompatibility = JavaVersion.toVersion(java_version) - targetCompatibility = JavaVersion.toVersion(java_version) + toolchain { + languageVersion = JavaLanguageVersion.of(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..6c33d7e --- /dev/null +++ b/cics-java-liberty-springboot-link-app/pom.xml @@ -0,0 +1,114 @@ + + + 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} + 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/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/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 diff --git a/pom.xml b/pom.xml index a05935d..7209067 100644 --- a/pom.xml +++ b/pom.xml @@ -1,8 +1,8 @@ - + + 4.0.0 - + org.springframework.boot @@ -10,24 +10,27 @@ 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} + ${java.version} + DFHWLP - - + + + com.ibm.cics com.ibm.cics.ts.bom @@ -37,81 +40,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')