Skip to content

Commit 375fefc

Browse files
NIAD-3347: Update Java to version 21 (#294)
* Update build.gradle to use Java 21 * Update gradle-wrapper.properties to use gradle 8.5 (compatible with java 21) * Update javax.* packages to jakarta.* packages. * Remove override exception which no longer exists on super class. * Update Dockerfiles to use Java 21 * Update GitHub test workflow to use Java 21 * Add updated handleExceptionInternal override method to `OperationOutcomeExceptionHandler`, this now uses `HttpStatusCode` as so the expected response method is adjusted slightly. * Update documentation to reflect change to Java 21 * Update CHANGELOG.md
1 parent f4c1c51 commit 375fefc

24 files changed

+76
-71
lines changed

.github/workflows/test.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ jobs:
1010
- name: Checkout Repository
1111
uses: actions/checkout@v4
1212

13-
- name: Setup Java 11
13+
- name: Setup Java 21
1414
uses: actions/setup-java@v4
1515
with:
16-
java-version: 11
16+
java-version: 21
1717
distribution: temurin
1818

1919
- name: Execute Unit Tests
@@ -49,10 +49,10 @@ jobs:
4949
- name: Checkout Repository
5050
uses: actions/checkout@v4
5151

52-
- name: Setup Java 11
52+
- name: Setup Java 21
5353
uses: actions/setup-java@v4
5454
with:
55-
java-version: 11
55+
java-version: 21
5656
distribution: temurin
5757

5858
- name: Execute Component Tests
@@ -94,7 +94,7 @@ jobs:
9494
- name: Setup Java
9595
uses: actions/setup-java@v4
9696
with:
97-
java-version: 11
97+
java-version: 21
9898
distribution: temurin
9999

100100
- name: Setup Required Docker Images

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77
## [Unreleased]
8+
9+
- Update adaptor to use Java JDK 21.
10+
811
## [1.4.2] - 2022-04-14
912
- Hotfix for Spring vulnerability CVE-2022-22965
1013
-

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
FROM gradle:jdk11 as cache
1+
FROM gradle:jdk21 as cache
22
RUN mkdir -p /home/gradle/cache_home
33
ENV GRADLE_USER_HOME /home/gradle/cache_home
44
COPY build.gradle /home/gradle/src/
55
WORKDIR /home/gradle/src
66
RUN gradle -b build.gradle clean build -i --stacktrace
77

8-
FROM gradle:jdk11 AS build
8+
FROM gradle:jdk21 AS build
99
COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle
1010
COPY --chown=gradle:gradle . /home/gradle/src
1111
WORKDIR /home/gradle/src
1212
RUN gradle --no-daemon -b build.gradle bootJar -i --stacktrace
1313

14-
FROM eclipse-temurin:11-jre-focal
14+
FROM eclipse-temurin:21-jre-jammy
1515

1616
EXPOSE 8080
1717

Dockerfile.responder

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
FROM gradle:jdk11 as cache
1+
FROM gradle:jdk21 as cache
22
RUN mkdir -p /home/gradle/cache_home
33
ENV GRADLE_USER_HOME /home/gradle/cache_home
44
COPY responder.gradle /home/gradle/src/
55
WORKDIR /home/gradle/src
66
RUN gradle -b responder.gradle clean build -i --stacktrace
77

8-
FROM gradle:jdk11 AS build
8+
FROM gradle:jdk21 AS build
99
COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle
1010
COPY --chown=gradle:gradle . /home/gradle/src
1111
WORKDIR /home/gradle/src
1212
RUN gradle --no-daemon -b responder.gradle bootJar -i --stacktrace
1313

14-
FROM eclipse-temurin:11-jre-focal
14+
FROM eclipse-temurin:21-jre-jammy
1515

1616
EXPOSE 8080
1717

Dockerfile.tests

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
FROM gradle:jdk11 AS build
1+
FROM gradle:jdk21 AS build
22
COPY --chown=gradle:gradle . /home/gradle/src
33
WORKDIR /home/gradle/src

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ Example: [nhais-env-example.yaml](./nhais-env-example.yaml)
287287

288288
### Pre-requisites (IntelliJ)
289289

290-
* Install a Java JDK 11. [AdoptOpenJdk](https://adoptopenjdk.net/index.html?variant=openjdk11&jvmVariant=hotspot) is recommended.
290+
* Install a Java JDK 21. [Temurin](https://adoptium.net/en-GB/temurin/releases/) is recommended.
291291
* Install [IntelliJ](https://www.jetbrains.com/idea/)
292292
* Install the [Lombok plugin](https://plugins.jetbrains.com/plugin/6317-lombok)
293293
* Install [Docker](https://www.docker.com/products/docker-desktop)
@@ -300,9 +300,9 @@ Example: [nhais-env-example.yaml](./nhais-env-example.yaml)
300300
* Verify the project structure
301301

302302

303-
Project structure -> SDKs -> add new SDK -> select adoptopenjdk-11.jdk/Contents/Home (or alternative location)
304-
-> Project SDK -> Java 11 (11.0.7)
305-
-> Module SDK -> Java 11 (11.0.7)
303+
Project structure -> SDKs -> add new SDK -> select your installed java SDK (21.x.x)
304+
-> Project SDK -> Java 21 (21.x.x)
305+
-> Module SDK -> Java 21 (21.x.x)
306306

307307
### Start Dependencies
308308

build.gradle

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
plugins {
2-
id "org.springframework.boot" version "2.5.12"
3-
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
2+
id "org.springframework.boot" version "3.4.5"
3+
id 'io.spring.dependency-management' version '1.1.7'
44
id 'java'
5-
id "io.freefair.lombok" version "5.1.0"
5+
id "io.freefair.lombok" version "8.13.1"
66
id 'jacoco'
77
id 'checkstyle'
88
}
99

10+
apply plugin: 'java'
11+
apply plugin: 'application'
1012
apply plugin: 'checkstyle'
13+
apply plugin: 'org.springframework.boot'
1114

12-
group = 'uk.nhs.digital.nhsconnect'
13-
version = '0.0.1-SNAPSHOT'
14-
sourceCompatibility = '11'
15+
group = 'uk.nhs.digital.nhsconnect.nhais'
16+
sourceCompatibility = '21'
17+
18+
mainClassName = 'uk.nhs.digital.nhsconnect.nhais.IntegrationAdaptorNhaisApplication'
1519

1620
repositories {
1721
mavenCentral()
1822
}
1923

20-
bootJar {
21-
mainClassName = 'uk.nhs.digital.nhsconnect.nhais.IntegrationAdaptorNhaisApplication'
22-
}
23-
2424
sourceSets {
2525
intTest {
2626
compileClasspath += sourceSets.main.output
@@ -50,24 +50,19 @@ dependencies {
5050
implementation 'org.springframework.boot:spring-boot-starter-actuator'
5151
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
5252
implementation 'org.springframework.boot:spring-boot-starter-web'
53+
implementation 'org.springframework:spring-jms'
5354
implementation 'org.apache.httpcomponents:httpclient:4.5.12'
5455
implementation 'com.heroku.sdk:env-keystore:1.1.4'
5556

5657
implementation 'ca.uhn.hapi.fhir:hapi-fhir-base:4.2.0'
5758
implementation 'ca.uhn.hapi.fhir:hapi-fhir-structures-r4:4.2.0'
5859
implementation 'ca.uhn.hapi.fhir:hapi-fhir-validation-resources-r4:4.2.0'
5960
implementation 'com.google.guava:guava:29.0-jre'
60-
implementation 'org.springframework:spring-jms:5.2.6.RELEASE'
61-
implementation 'org.apache.qpid:qpid-jms-client:0.51.0'
61+
implementation 'org.apache.qpid:qpid-jms-client:2.7.0'
6262
implementation 'com.amazonaws:aws-java-sdk-s3:1.11.880'
6363

6464
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
6565

66-
implementation 'org.projectlombok:lombok'
67-
testImplementation 'org.projectlombok:lombok'
68-
annotationProcessor 'org.projectlombok:lombok'
69-
testAnnotationProcessor 'org.projectlombok:lombok'
70-
7166
testImplementation('org.springframework.boot:spring-boot-starter-test') {
7267
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
7368
}
@@ -77,10 +72,6 @@ dependencies {
7772
testImplementation("org.assertj:assertj-core:3.16.1")
7873
}
7974

80-
lombok {
81-
config['lombok.log.fieldName'] = 'LOGGER'
82-
}
83-
8475
test {
8576
useJUnitPlatform() {
8677
excludeTags 'component'
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
46
zipStoreBase=GRADLE_USER_HOME
5-
zipStorePath=wrapper/dists
7+
zipStorePath=wrapper/dists

src/intTest/java/uk/nhs/digital/nhsconnect/nhais/IntegrationBaseTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
import uk.nhs.digital.nhsconnect.nhais.outbound.state.OutboundStateRepository;
2828
import uk.nhs.digital.nhsconnect.nhais.utils.JmsReader;
2929

30-
import javax.annotation.PostConstruct;
31-
import javax.annotation.PreDestroy;
32-
import javax.jms.JMSException;
33-
import javax.jms.Message;
30+
import jakarta.annotation.PostConstruct;
31+
import jakarta.annotation.PreDestroy;
32+
import jakarta.jms.JMSException;
33+
import jakarta.jms.Message;
3434
import java.util.List;
3535
import java.util.concurrent.atomic.AtomicReference;
3636
import java.util.function.Supplier;

src/intTest/java/uk/nhs/digital/nhsconnect/nhais/inbound/DeadLetterQueueTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import uk.nhs.digital.nhsconnect.nhais.utils.ConversationIdService;
1414
import uk.nhs.digital.nhsconnect.nhais.utils.JmsHeaders;
1515

16-
import javax.jms.JMSException;
16+
import jakarta.jms.JMSException;
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919
import static org.mockito.Mockito.doThrow;

0 commit comments

Comments
 (0)