11plugins {
2- id ' org.springframework.boot' version ' 2.7.18 '
3- id ' io.spring.dependency-management' version ' 1.1.4 '
2+ id ' org.springframework.boot' version ' 4.0.3 '
3+ id ' io.spring.dependency-management' version ' 1.1.7 '
44 id ' java'
55 id ' jacoco'
6- id ' com.github.spotbugs' version ' 6.0.6'
76}
87
98group = ' uk.nhs.prm.deductions'
@@ -13,54 +12,63 @@ configurations {
1312 compileOnly {
1413 extendsFrom annotationProcessor
1514 }
15+ mockitoAgent
1616}
1717
1818repositories {
1919 mavenCentral()
2020}
2121
22+ java {
23+ toolchain {
24+ languageVersion = JavaLanguageVersion . of(25 )
25+ }
26+ }
27+
2228// Without this task two jars are built, the additional "-plain.jar" is not needed
2329// for more details refer to: https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#packaging-executable.and-plain-archives
2430jar {
2531 enabled = false
2632}
2733
2834dependencies {
29- implementation ' org.springframework.boot:spring-boot-starter-web '
35+ implementation ' org.springframework.boot:spring-boot-starter-webmvc '
3036 implementation ' org.springframework.boot:spring-boot-starter-actuator'
3137 implementation ' org.springframework.boot:spring-boot-starter-security'
38+ implementation ' org.springframework.boot:spring-boot-starter-validation'
3239
3340 testImplementation ' org.springframework.boot:spring-boot-starter-test'
34- testImplementation ' org.springframework.boot:spring-boot-starter-aop'
35-
36- implementation ' org.yaml:snakeyaml:2.2'
37- implementation ' org.springdoc:springdoc-openapi-ui:1.6.15'
38- implementation ' net.logstash.logback:logstash-logback-encoder:6.6'
39- implementation ' org.bouncycastle:bcpkix-jdk15on:1.70'
40- implementation ' com.nimbusds:nimbus-jose-jwt:9.37.3'
41- implementation ' org.jetbrains:annotations:20.1.0'
42- implementation ' org.json:json:20231013'
43- implementation ' org.apache.httpcomponents:httpclient:4.5.14'
44-
45- implementation(' io.netty:netty-buffer' ) { version { strictly ' 4.1.104.Final' } }
46- implementation(' io.netty:netty-codec' ) { version { strictly ' 4.1.104.Final' } }
47- implementation(' io.netty:netty-codec-http' ) { version { strictly ' 4.1.104.Final' } }
48- implementation(' io.netty:netty-codec-http2' ) { version { strictly ' 4.1.104.Final' } }
49- implementation(' io.netty:netty-common' ) { version { strictly ' 4.1.104.Final' } }
50- implementation(' io.netty:netty-handler' ) { version { strictly ' 4.1.104.Final' } }
51- implementation(' io.netty:netty-resolver' ) { version { strictly ' 4.1.104.Final' } }
52- implementation(' io.netty:netty-transport' ) { version { strictly ' 4.1.104.Final' } }
53- implementation(' io.netty:netty-transport-classes-epoll' ) { version { strictly ' 4.1.104.Final' } }
54- implementation(' io.netty:netty-transport-native-unix-common' ) { version { strictly ' 4.1.104.Final' } }
55-
56- implementation platform(' software.amazon.awssdk:bom:2.18.41' )
41+ testImplementation ' org.springframework.boot:spring-boot-starter-webmvc-test'
42+ testImplementation ' org.springframework.boot:spring-boot-starter-restclient-test'
43+
44+ implementation ' org.yaml:snakeyaml:2.5'
45+ implementation ' org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.2'
46+ implementation ' net.logstash.logback:logstash-logback-encoder:9.0'
47+ implementation ' org.bouncycastle:bcpkix-jdk18on:1.83'
48+ implementation ' com.nimbusds:nimbus-jose-jwt:10.8'
49+ implementation ' org.json:json:20251224'
50+
51+ implementation(' io.netty:netty-buffer' ) { version { strictly ' 4.2.9.Final' } }
52+ implementation(' io.netty:netty-codec' ) { version { strictly ' 4.2.9.Final' } }
53+ implementation(' io.netty:netty-codec-http' ) { version { strictly ' 4.2.9.Final' } }
54+ implementation(' io.netty:netty-codec-http2' ) { version { strictly ' 4.2.9.Final' } }
55+ implementation(' io.netty:netty-common' ) { version { strictly ' 4.2.9.Final' } }
56+ implementation(' io.netty:netty-handler' ) { version { strictly ' 4.2.9.Final' } }
57+ implementation(' io.netty:netty-resolver' ) { version { strictly ' 4.2.9.Final' } }
58+ implementation(' io.netty:netty-transport' ) { version { strictly ' 4.2.9.Final' } }
59+ implementation(' io.netty:netty-transport-classes-epoll' ) { version { strictly ' 4.2.9.Final' } }
60+ implementation(' io.netty:netty-transport-native-unix-common' ) { version { strictly ' 4.2.9.Final' } }
61+
62+ implementation platform(' software.amazon.awssdk:bom:2.41.14' )
5763 implementation ' software.amazon.awssdk:ssm'
5864
59- compileOnly ' org.projectlombok:lombok:1.18.30 '
65+ compileOnly ' org.projectlombok:lombok:1.18.42 '
6066
6167 annotationProcessor ' org.projectlombok:lombok'
6268
63- testImplementation ' com.github.tomakehurst:wiremock-jre8:2.35.1'
69+ testImplementation ' org.wiremock:wiremock-standalone:3.13.2'
70+ implementation ' org.apache.httpcomponents.client5:httpclient5'
71+ mockitoAgent(' org.mockito:mockito-core' ) { transitive = false }
6472}
6573
6674springBoot {
8795
8896tasks. withType(Test ) {
8997 useJUnitPlatform()
98+ jvmArgs " -javaagent:${ configurations.mockitoAgent.asPath} "
9099}
91100
92101task integration (type : Test ) {
@@ -118,33 +127,5 @@ jacocoTestCoverageVerification {
118127 }
119128}
120129
121- spotbugsMain {
122- ignoreFailures = true
123- reports {
124- html {
125- enabled = true
126- destination = file(" $buildDir /reports/spotbugs/main/spotbugs.html" )
127- stylesheet = ' fancy-hist.xsl'
128- }
129- }
130- }
131-
132- spotbugsTest {
133- enabled = false
134- }
135-
136- spotbugsIntegration {
137- ignoreFailures = true
138- reports {
139- html {
140- enabled = true
141- destination = file(" $buildDir /reports/spotbugs/integration/spotbugs.html" )
142- stylesheet = ' fancy-hist.xsl'
143- }
144- }
145- }
146-
147- check. dependsOn integration
148-
149130test. outputs. upToDateWhen {false }
150131integration. outputs. upToDateWhen {false }
0 commit comments