Skip to content

Commit 1b22f5c

Browse files
committed
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
1 parent 84c0a1c commit 1b22f5c

22 files changed

Lines changed: 254 additions & 92 deletions

File tree

build.gradle renamed to cics-java-liberty-springboot-link-app/build.gradle

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ plugins
99
}
1010

1111
group = 'com.ibm.cicsdev.springboot'
12-
archivesBaseName='cics-java-liberty-springboot-link'
13-
version = '0.1.0'
12+
version = '1.0.0'
1413

1514
// ============================================================================
1615
// Java Configuration
@@ -20,6 +19,19 @@ java {
2019
targetCompatibility = JavaVersion.toVersion(java_version)
2120
}
2221

22+
// ============================================================================
23+
// WAR Configuration
24+
// ============================================================================
25+
war
26+
{
27+
archiveFileName = "cics-java-liberty-springboot-link-app-${version}.war"
28+
}
29+
30+
// Two versions of the WAR would be built, one for embedding into servers like Liberty (plain)
31+
// and a bootWAR which can run standalone and contains all the Tomcat and Spring Boot stuff
32+
// we don't need bootWAR, so disable it.
33+
bootWar { enabled = false }
34+
2335
// If in Eclipse, add Javadoc to the local project classpath
2436
eclipse
2537
{
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<!-- Inherit from parent POM -->
7+
<parent>
8+
<groupId>com.ibm.cicsdev</groupId>
9+
<artifactId>cics-java-liberty-springboot-link</artifactId>
10+
<version>1.0.0</version>
11+
<relativePath>../pom.xml</relativePath>
12+
</parent>
13+
14+
<!-- Application module properties -->
15+
<artifactId>cics-java-liberty-springboot-link-app</artifactId>
16+
<name>com.ibm.cicsdev.springboot.link.app</name>
17+
<description>Demo project for Spring Boot with CICS Link - Application</description>
18+
19+
<properties>
20+
<java.version>17</java.version>
21+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
22+
<maven.compiler.target>${java.version}</maven.compiler.target>
23+
<maven.compiler.source>${java.version}</maven.compiler.source>
24+
<spring-boot.repackage.skip>true</spring-boot.repackage.skip>
25+
</properties>
26+
27+
<!-- CICS TS V6.1 BOM (as of Sept 2024) -->
28+
<dependencyManagement>
29+
<dependencies>
30+
<dependency>
31+
<groupId>com.ibm.cics</groupId>
32+
<artifactId>com.ibm.cics.ts.bom</artifactId>
33+
<version>6.1-20250812133513-PH63856</version>
34+
<type>pom</type>
35+
<scope>import</scope>
36+
</dependency>
37+
</dependencies>
38+
</dependencyManagement>
39+
40+
<dependencies>
41+
<!-- Compile against, but don't include JCICS in the final build (version and scope are from BOM) -->
42+
<dependency>
43+
<groupId>com.ibm.cics</groupId>
44+
<artifactId>com.ibm.cics.server</artifactId>
45+
</dependency>
46+
47+
<!-- CICS Annotations -->
48+
<dependency>
49+
<groupId>com.ibm.cics</groupId>
50+
<artifactId>com.ibm.cics.server.invocation.annotations</artifactId>
51+
</dependency>
52+
53+
<!-- Spring web support -->
54+
<dependency>
55+
<groupId>org.springframework.boot</groupId>
56+
<artifactId>spring-boot-starter-web</artifactId>
57+
</dependency>
58+
59+
<!-- Validation annotation support for validating Web input forms -->
60+
<dependency>
61+
<groupId>jakarta.validation</groupId>
62+
<artifactId>jakarta.validation-api</artifactId>
63+
</dependency>
64+
65+
<!-- Thymeleaf view -->
66+
<dependency>
67+
<groupId>org.springframework.boot</groupId>
68+
<artifactId>spring-boot-starter-thymeleaf</artifactId>
69+
</dependency>
70+
71+
<!-- Don't include TomCat in the runtime build, but put it in lib-provided so it can run standalone as well as embedded -->
72+
<dependency>
73+
<groupId>org.springframework.boot</groupId>
74+
<artifactId>spring-boot-starter-tomcat</artifactId>
75+
<scope>provided</scope>
76+
</dependency>
77+
78+
<!-- Add tiles-el dependency if using JSF, see README for more details -->
79+
<dependency>
80+
<groupId>org.apache.tiles</groupId>
81+
<artifactId>tiles-el</artifactId>
82+
<version>3.0.8</version>
83+
</dependency>
84+
85+
</dependencies>
86+
87+
<!-- Package as an executable war (default jar) -->
88+
<packaging>war</packaging>
89+
90+
<!-- Build with Maven and CICS annotation processor -->
91+
<build>
92+
<plugins>
93+
<!-- Spring Boot plugin for Maven -->
94+
<plugin>
95+
<groupId>org.springframework.boot</groupId>
96+
<artifactId>spring-boot-maven-plugin</artifactId>
97+
</plugin>
98+
99+
<!-- Enable the Link to Liberty annotation processor -->
100+
<plugin>
101+
<artifactId>maven-compiler-plugin</artifactId>
102+
<version>3.12.1</version>
103+
<configuration>
104+
<annotationProcessorPaths>
105+
<annotationProcessorPath>
106+
<groupId>com.ibm.cics</groupId>
107+
<artifactId>com.ibm.cics.server.invocation</artifactId>
108+
</annotationProcessorPath>
109+
</annotationProcessorPaths>
110+
</configuration>
111+
</plugin>
112+
</plugins>
113+
</build>
114+
115+
</project>

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Application.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/InMemoryMessageRepository.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/Message.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/MessageRepository.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/ServletInitializer.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/cics/CICSCallable.java

File renamed without changes.

src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java renamed to cics-java-liberty-springboot-link-app/src/main/java/com/ibm/cicsdev/springboot/link/app/ui/mvc/MessageController.java

File renamed without changes.

src/main/resources/application.properties renamed to cics-java-liberty-springboot-link-app/src/main/resources/application.properties

File renamed without changes.

0 commit comments

Comments
 (0)