Skip to content

Spring boot 3 modernization#30

Merged
IvanHargreaves merged 73 commits into
mainfrom
spring-boot-3-modernization
Jul 7, 2026
Merged

Spring boot 3 modernization#30
IvanHargreaves merged 73 commits into
mainfrom
spring-boot-3-modernization

Conversation

@IvanHargreaves

Copy link
Copy Markdown
Contributor
  • Update to Spring Boot 3
  • Restructure for Gradle/Maven/Eclipse builds
  • Add CICS-bundle-plugin deployment
  • Add Explorer SDK 'Export to zFS' deployment.

Sample projects should not include artifact publishing configuration.

Changes:
- Removed distributionManagement section from pom.xml
- Removed maven-publish plugin from build.gradle
- Removed publishing block from build.gradle
- Removed publishing properties from gradle.properties
- Added Gradle build optimizations to gradle.properties

This aligns with CICS sample repository standards where samples
are not published to artifact repositories.
Java 17 is required as the foundation for Spring Boot 3.x upgrade.

Changes:
- Updated java.version to 17 in pom.xml
- Added Maven compiler plugin with release parameter
- Updated java_version to 17 in gradle.properties
- Updated README prerequisites to Java SE 17
- Updated CICS TS requirement to V5.6+ (minimum for Java 17)

This establishes the Java 17 baseline required for Spring Boot 3.x.
Updated CI/CD workflows to modern standards with Java 17+ support.

Changes to java.yaml:
- Added permissions block (contents: read)
- Updated Java version matrix to 17, 21, 25 (all stable, none experimental)
- Updated action versions to v4 (checkout, setup-java, upload-artifact)
- Added copyright checking job using cicsdev reusable action
- Updated Gradle action to gradle/actions/setup-gradle@v4
- Added explicit Gradle version 8.14.4 for CICS Bundle Plugin compatibility
- Added work branch (spring-boot-3-modernization) to trigger branches
- Removed -Djava.version parameter (now uses centralized property)
- Fixed artifact naming for uniqueness
- Copyright directory points to -app module for multi-module structure

Added cleanup-old-runs.yml:
- Automatic cleanup of old workflow runs
- 30-day retention with minimum 3 runs
- Weekly schedule (Sunday midnight UTC)
- Manual trigger support

This modernizes CI/CD infrastructure before Spring Boot 3 upgrade.
- Update BOM version in pom.xml from 5.5 to 6.1
- Update BOM version in build.gradle from 5.5 to 6.1
- Update README documentation with new BOM version
- Align comments with JCICS repository standards
- BOM now compatible with CICS TS V6.1 with APAR PH63856
Update CICS BOM to 6.1-20250812133513-PH63856
- Update Spring Boot version from 2.7.0 to 3.5.14 in pom.xml
- Update Spring Boot version from 2.7.0 to 3.5.14 in build.gradle
- Update dependency-management plugin from 1.0.11.RELEASE to 1.1.7
- Add relativePath to parent POM for consistency
- Spring Boot 3.x requires Java 17+ and Jakarta EE 10
- No code changes needed (no javax.* imports found)
- Create parent pom.xml with Spring Boot 3.5.14 parent
- Create cics-java-liberty-springboot-asynchronous-app module
  - Move src/ directory to app module
  - Update pom.xml to reference parent project
  - Update build.gradle with proper structure
  - Add bootWar { enabled = false } configuration
- Create cics-java-liberty-springboot-asynchronous-cicsbundle module
  - Add pom.xml with cics-bundle-maven-plugin
  - Add build.gradle with com.ibm.cics.bundle plugin
  - Configure dependency on app module WAR
- Update settings.gradle to include both modules
- Align with JCICS repository structure and standards
- Add Gradle Buildship configuration
- Add Web module component configuration with context-root
- Add project facets for Java 17 and Web 2.4
- Aligns with JCICS repository structure
Add Eclipse configuration files
- Update CICS TS requirement from V5.6 to V6.1 (Spring Boot 3 requires Jakarta EE 10)
- Update servlet feature from servlet-3.1/4.0 to servlet-6.0 (Jakarta EE 10 requirement)
- Update concurrent feature from concurrent-1.0 to concurrent-3.0
- Update build commands for multi-module structure (clean build instead of clean bootWar)
- Update output paths to reflect multi-module structure (app/build/libs and app/target)
- Remove outdated servlet-4.0 compatibility note
Update README for Spring Boot 3 accuracy
- Update servlet feature from servlet-3.1 to servlet-6.0 (Jakarta EE 10)
- Update concurrent feature from concurrent-1.0 to concurrent-3.0
- Aligns with Spring Boot 3.x requirements and README documentation
Update Liberty server.xml for Spring Boot 3
- Update .gitignore to use directory patterns instead of root-level patterns
  - Ensures build artifacts in sub-modules are properly ignored
  - Adds *.war and *.jar patterns for artifact exclusion
- Update root .classpath to reference JavaSE-17 (was JavaSE-1.8)
- Simplify root .classpath to minimal structure for parent POM
  - Remove source folder references (source is in child modules)
  - Aligns with multi-module Eclipse configuration standards

Fixes three critical issues identified in validation against Agents_CONSOLIDATED.md
Fix root Eclipse configuration for multi-module project
- Add .settings/org.eclipse.core.resources.prefs for UTF-8 encoding
- Add .settings/org.eclipse.jdt.core.prefs for Java 17 compiler settings
- Update .settings/org.eclipse.wst.common.project.facet.core.xml to Java 17
- Fix Gradle wrapper from 7.5-rc-1 to 8.14.4 (required for Java 25 support)

These changes eliminate Eclipse warnings and ensure compatibility with modern Java versions.
- Upgrade from Maven 3.8.5 to 3.9.9 for better Java 21/25 support
- Update wrapper JAR and scripts to version 3.3.4
- Ensures compatibility with Java 17+ and future-proofs the build
- Update gradle-wrapper.jar to match 8.14.4 version
- Regenerate wrapper scripts (gradlew, gradlew.bat)
- Ensures wrapper JAR is properly versioned and committed
chore: regenerate Gradle wrapper JAR for 8.14.4
- Add build-gradlew job to test Gradle wrapper separately
- Update build-gradle to use direct Gradle installation (not wrapper)
- Complete 4-way matrix: Gradle, Gradlew, Maven, Mvnw
- Each build tool tested against Java 17, 21, 25
- Total: 12 build jobs (4 tools × 3 Java versions)
- Update triggers: run on ALL pull requests (branches: **), not just specific branches
- Ensures all PRs are validated before merge, regardless of target branch
feat: add complete 4-way build matrix and run on all PRs
- Changed pull_request trigger from branches: ["**"] to ["main"]
- Aligns with standard pattern where all PRs target main branch
- Work branch was temporary exception, now standardizing across all repos
fix: standardize workflow triggers to target main branch only
…gradle jobs to use clean build; add -Djava.version to Maven jobs
…lication element names; update MAINTAINERS review date
Validation fixes: build config, CI workflow, Eclipse settings, Maven wrapper, README
Validation fixes: build config, CI workflow, Eclipse settings, Maven wrapper, README
Adds cics-java-liberty-springboot-asynchronous-cicsbundle-eclipse, a
CICS Explorer SDK bundle project that allows the WAR produced by the
Gradle/Maven build to be deployed to z/OS via the 'Export Bundle
Project to z/OS UNIX File System' action in Eclipse.
…e built first for Spring Boot deps to be included
…xt-root to web.xml; reinstate CICS Explorer SDK deployment method in README
…sspath containers after Buildship sync; add project UTF-8 encoding; update WTP component
…lasspath containers, fix wst.common.component files
…sh for submodules, cicsbundle-eclipse imported separately
@IvanHargreaves IvanHargreaves self-assigned this Jul 7, 2026
@IvanHargreaves IvanHargreaves merged commit 95458ed into main Jul 7, 2026
15 checks passed
@IvanHargreaves IvanHargreaves deleted the spring-boot-3-modernization branch July 7, 2026 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant