Skip to content

Commit d34694f

Browse files
committed
Update for Spring Boot 3.5.4
1 parent c72d9dc commit d34694f

20 files changed

+90
-50
lines changed

CHANGES.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
# Changelog
22
Newest updates are at the top of this file
33

4+
## 3.5.4 (2025-07-28)
5+
- Update Spring dependencies
6+
- Update Testcontainers dependencies
7+
- Enable building against Spring Boot 4 milestone M1
8+
49
## 3.5.3 (2025-06-23)
5-
- Update to match Spring Boot versions after their rapid reissues
10+
- Update to match Spring Boot versions after their rapid reissues
611

712
## 3.5.1 (2025-06-19)
813
- Update to MQ 9.4.3.0
@@ -12,14 +17,14 @@ Newest updates are at the top of this file
1217
- See samples/s5
1318

1419
## <No new version> (2025-03-06)
15-
- Add Narayana-based global transaction sample
20+
- Add Narayana-based global transaction sample
1621
- Update build process in preparation for Boot 4.
1722

1823
## 3.4.3 (2025-02-28)
1924
- Update Spring dependencies
2025
- Samples using Atomikos not updated because of [this](https://github.com/atomikos/transactions-essentials/issues/234)
2126
- Update to MQ 9.4.2.0
22-
- Add "balancingInstanceMode" property
27+
- Add "balancingInstanceMode" property
2328
- Simplify creation of Pooled XAConnectionFactories
2429

2530
## 3.3.5 (2024-10-25)

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ on Spring 2. Further updates will follow the Spring 3 path only. If you want to
1414
versions of the MQ jars, then overriding the version inherited from the mq-jms-spring-boot in your parent pom.xml should
1515
be possible. However, this would not give easy access via configuration to any new features available in the MQ client.
1616

17-
NOTE: Spring Boot 4 is under development planned for release later in 2025. While this package does not currently do
18-
anything specific for Boot 4, the pieces are already in place to be able to build against it once it is available.
17+
NOTE: Spring Boot 4 is under development planned for release later in 2025. Early milestones are starting to appear.
18+
While this package does not currently have a formal release for Boot 4, the pieces are now in place to allow you do
19+
build against it: `RUNME.sh -b4` will create Boot4-compatible modules.
1920

2021
## Installation and Usage
2122

RUNME.sh

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ done
138138
shift $((OPTIND-1))
139139
if [ "$1" != "" ]
140140
then
141-
tasks=$*
141+
tasks=$*
142142
fi
143143

144144
if [ -z "$bootVersions" ]
@@ -243,6 +243,10 @@ do
243243
fi
244244
(./gradlew $args --warning-mode all clean jar $target $tasks 2>&1;echo $? > $rcFile) | tee -a $buildLog
245245

246+
user=`cat gradle.properties | grep ossrhUsername | cut -f2 -d=`
247+
pass=`cat gradle.properties | grep ossrhPassword | cut -f2 -d=`
248+
249+
246250
# Always make sure we've got a dummy properties file - the values are not needed from here on
247251
cp -p gradle.properties.template gradle.properties
248252

@@ -277,12 +281,25 @@ done
277281

278282
if $gaRelease
279283
then
284+
# This is using the Staging API as the migration step to the new Sonatype interface.
285+
# The upload has already happened, we are now moving the modules from the staging system
286+
# to the real Central Repository, from which it can be released.
287+
echo "Doing upload preparation and migration"
288+
289+
bearer=$(printf "$user:$pass" | base64)
290+
curl --request POST \
291+
--header "Authorization: Bearer $bearer" \
292+
https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/com.ibm.mq
293+
294+
echo
295+
280296
cat << EOF
281297
282298
The files appear to have been successfully uploaded to Maven Central.
283299
You now need to log on to Sonatype Nexus, and check the newly-created repository or
284-
repositories. There might be one for each of BOOT2, BOOT3 and BOOT4, or they might be combined in a single repo.
285-
If it all looks OK, then CLOSE and RELEASE the repo.
300+
repositories at https://central.sonatype.com/publishing/deployments.
301+
There might be one for each of BOOT2, BOOT3 and BOOT4, or they might be combined in a single repo.
302+
If it all looks OK, then PUBLISH the repo.
286303
287304
EOF
288305
fi

boot3.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
ext {
33
// Our shipped version - should usually match the Spring Boot Version but
44
// there may be reasons to make it different
5-
mqStarterVersion = '3.5.3'
5+
mqStarterVersion = '3.5.4'
66

77
// Direct Dependencies - give versions here
8-
springVersion = '6.2.8'
9-
springBootVersion = '3.5.3'
8+
springVersion = '6.2.9'
9+
springBootVersion = '3.5.4'
1010

1111
pooledJmsVersion = '3.1.7'
1212
jUnitVersion = '4.13.2'

boot4.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ ext {
66

77
// Direct Dependencies - give versions here
88
// Currently placeholders until real Spring Boot 4 versions are available.
9-
springVersion = '6.2.8'
10-
springBootVersion = '3.5.3'
9+
springVersion = '7.0.0-M7'
10+
springBootVersion = '4.0.0-M1'
1111

1212
pooledJmsVersion = '3.1.7'
1313
jUnitVersion = '4.13.2'

build.gradle

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ subprojects {
4444
// It's only built once, so we don't need to put the MQ-specific module in one of the version properties.
4545
// The MQ version ought to match the base version, but it's not an absolute requirement so we split the
4646
// properties.
47-
ext.tcVer = '1.21.2'
48-
ext.mqTCVer = '1.21.2'
47+
ext.tcVer = '1.21.3'
48+
ext.mqTCVer = '1.21.3'
4949

5050
// The groupid for the compiled jars when uploaded
5151
group = mqGroup
@@ -64,9 +64,10 @@ subprojects {
6464

6565
// Include variable debug info in the compiled classes
6666
compileJava.options.debugOptions.debugLevel = "source,lines,vars"
67+
6768
// Fail on javac warnings
6869
if (bootVer != "boot2") {
69-
compileJava.options.compilerArgs << "-Werror"
70+
compileJava.options.compilerArgs << "-Werror" // << "-verbose"
7071
}
7172
task mqPrereq(type:Exec) {
7273
commandLine ("../prereqCheck.sh", mqGroup, mqJar, mqVersion)
@@ -83,6 +84,13 @@ subprojects {
8384
targetCompatibility=javaSourceCompatibility
8485
}
8586

87+
/*
88+
tasks.named('jar') {
89+
manifest {
90+
attributes('Automatic-Module-Name': project.name)
91+
}
92+
}
93+
*/
8694
task sourcesJar(type: Jar, dependsOn: ['mqPrereq',classes]) {
8795
archiveClassifier = 'sources'
8896
sourceSets.all {
@@ -193,11 +201,12 @@ subprojects {
193201
repositories {
194202
maven {
195203
def snapshotUrl = "https://oss.sonatype.org/content/repositories/snapshots"
196-
def releasesUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2"
204+
// def releasesUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2"
205+
def releasesUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2"
197206
url = version.endsWith('SNAPSHOT') ? snapshotUrl : releasesUrl
198207
credentials {
199-
username ossrhUsername
200-
password ossrhPassword
208+
username = ossrhUsername
209+
password = ossrhPassword
201210
}
202211
}
203212
}

gradle/wrapper/gradle-wrapper.jar

79 Bytes
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

makeBoot4.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,17 @@ fi
2626
mkdir $out >/dev/null 2>&1
2727
cd $in
2828
# Create the structure
29-
find . -type f | cpio -upad $out
29+
find . -type f |\
30+
grep -v bin/ |\
31+
cpio -upad $out
3032
# And recopy the Java files doing any modifications as we go
31-
find . -type f -name "*.java" | while read f
33+
find . -type f -name "*.java" |\
34+
grep -v bin/ |\
35+
while read f
3236
do
33-
cp $f $out/$f
37+
# Boot4 moved a bunch of imported classes
38+
cat $f |\
39+
sed "s/org.springframework.boot.autoconfigure.jms/org.springframework.boot.jms.autoconfigure/g" |\
40+
sed "s/org.springframework.boot.autoconfigure.transaction.jta/org.springframework.boot.transaction.jta.autoconfigure/g" > $out/$f
3441
done
3542

mq-jms-spring-boot-starter/build.gradle

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,16 @@ dependencies {
3535
api group: 'org.springframework', name: 'spring-context', version: springVersion
3636
api group: 'org.springframework', name: 'spring-beans', version: springVersion
3737
api group: 'org.springframework', name: 'spring-jms', version: springVersion
38-
39-
api group: 'org.springframework.boot', name: 'spring-boot-starter', version: springBootVersion
40-
api group: 'org.springframework.boot', name: 'spring-boot', version: springBootVersion
41-
api group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: springBootVersion
42-
38+
39+
if (!springBootVersion.startsWith("4")) {
40+
api group: 'org.springframework.boot', name: 'spring-boot-starter', version: springBootVersion
41+
api group: 'org.springframework.boot', name: 'spring-boot', version: springBootVersion
42+
api group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: springBootVersion
43+
} else {
44+
api group: 'org.springframework.boot', name: 'spring-boot-starter-jms', version: springBootVersion
45+
api group: 'org.springframework.boot', name: 'spring-boot-tx', version: springBootVersion
46+
}
47+
4348
annotationProcessor group:'org.springframework.boot', name:'spring-boot-configuration-processor', version: springBootVersion
4449

4550
api group: 'org.messaginghub', name: 'pooled-jms', version: pooledJmsVersion

0 commit comments

Comments
 (0)