Skip to content

Commit 7efa73f

Browse files
committed
Upgraded to Spring Boot 4
1 parent 6c6c706 commit 7efa73f

15 files changed

Lines changed: 63 additions & 64 deletions

pom.xml

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@
6969
<version.gson>2.11.0</version.gson>
7070
<version.httpclient>4.5.14</version.httpclient>
7171
<version.httpmime>4.5.14</version.httpmime>
72-
<version.snakeyaml>2.3</version.snakeyaml>
73-
<version.spring-boot>3.3.5</version.spring-boot>
72+
<!-- The version provided by the parent is not compatible with Spring Boot 4. Remove once the parent provides 6.x -->
73+
<version.junit>6.0.1</version.junit>
74+
<version.spring-boot>4.0.1</version.spring-boot>
7475
</properties>
7576

7677
<dependencies>
@@ -130,13 +131,6 @@
130131
<version>${version.spring-boot}</version>
131132
</dependency>
132133

133-
<!-- Override version provided by spring-boot-starter until it uses a more secure version itself -->
134-
<dependency>
135-
<groupId>org.yaml</groupId>
136-
<artifactId>snakeyaml</artifactId>
137-
<version>${version.snakeyaml}</version>
138-
</dependency>
139-
140134
<dependency>
141135
<groupId>org.springframework.boot</groupId>
142136
<artifactId>spring-boot-starter-actuator</artifactId>
@@ -159,17 +153,19 @@
159153
<groupId>org.mockito</groupId>
160154
<artifactId>mockito-junit-jupiter</artifactId>
161155
</exclusion>
162-
<exclusion>
163-
<!-- This comes with an older version of SLF4J which causes conflicts -->
164-
<groupId>com.jayway.jsonpath</groupId>
165-
<artifactId>json-path</artifactId>
166-
</exclusion>
167156
</exclusions>
168157
</dependency>
169158

170159
<dependency>
171160
<groupId>org.springframework.boot</groupId>
172-
<artifactId>spring-boot-starter-web</artifactId>
161+
<artifactId>spring-boot-starter-webmvc</artifactId>
162+
<version>${version.spring-boot}</version>
163+
<scope>test</scope>
164+
</dependency>
165+
166+
<dependency>
167+
<groupId>org.springframework.boot</groupId>
168+
<artifactId>spring-boot-starter-restclient</artifactId>
173169
<version>${version.spring-boot}</version>
174170
<scope>test</scope>
175171
</dependency>
@@ -217,8 +213,8 @@
217213
<configuration>
218214
<sourcepath>${project.basedir}/src/main/java</sourcepath>
219215
<links>
220-
<link>https://docs.spring.io/spring-boot/docs/3.2.x/api</link>
221-
<link>https://docs.spring.io/spring-framework/docs/6.1.x/javadoc-api</link>
216+
<link>https://docs.spring.io/spring-boot/api/java/</link>
217+
<link>https://docs.spring.io/spring-framework/docs/7.0.x/javadoc-api/</link>
222218
<link>https://logback.qos.ch/apidocs/</link>
223219
<link>https://worldline-global-collect.github.io/connect-sdk-java/apidocs/7.x</link>
224220
</links>
@@ -343,7 +339,7 @@
343339
<version.gson>2.6</version.gson>
344340
<version.httpclient>4.4</version.httpclient>
345341
<version.httpmime>4.4</version.httpmime>
346-
<version.spring-boot>3.0.0</version.spring-boot>
342+
<version.spring-boot>4.0.0</version.spring-boot>
347343
</properties>
348344
</profile>
349345
</profiles>

src/main/java/com/github/robtimus/connect/sdk/java/springboot/actuator/ApiKeyEndpoint.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
package com.github.robtimus.connect.sdk.java.springboot.actuator;
1919

20+
import org.springframework.boot.actuate.endpoint.Access;
2021
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2122
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
2223
import com.github.robtimus.connect.sdk.java.springboot.ConfigurableV1HMACAuthenticator;
@@ -27,7 +28,7 @@
2728
* @author Rob Spoor
2829
* @since 3.8
2930
*/
30-
@Endpoint(id = "connectSdkApiKey", enableByDefault = false)
31+
@Endpoint(id = "connectSdkApiKey", defaultAccess = Access.NONE)
3132
@SuppressWarnings("javadoc")
3233
public class ApiKeyEndpoint {
3334

src/main/java/com/github/robtimus/connect/sdk/java/springboot/actuator/ConnectSdkHealthIndicator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919

2020
import java.util.Objects;
2121
import java.util.concurrent.TimeUnit;
22-
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
23-
import org.springframework.boot.actuate.health.Health.Builder;
24-
import org.springframework.boot.actuate.health.HealthIndicator;
22+
import org.springframework.boot.health.contributor.AbstractHealthIndicator;
23+
import org.springframework.boot.health.contributor.Health.Builder;
24+
import org.springframework.boot.health.contributor.HealthIndicator;
2525
import com.worldline.connect.sdk.java.v1.ApiException;
2626
import com.worldline.connect.sdk.java.v1.domain.TestConnection;
2727
import com.worldline.connect.sdk.java.v1.merchant.MerchantClient;

src/main/java/com/github/robtimus/connect/sdk/java/springboot/actuator/ConnectionsEndpoint.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@
2323
import java.util.List;
2424
import java.util.concurrent.TimeUnit;
2525
import java.util.function.Consumer;
26+
import org.jspecify.annotations.Nullable;
2627
import org.springframework.beans.BeansException;
28+
import org.springframework.boot.actuate.endpoint.Access;
2729
import org.springframework.boot.actuate.endpoint.annotation.DeleteOperation;
2830
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2931
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
3032
import org.springframework.boot.actuate.endpoint.annotation.Selector;
3133
import org.springframework.context.ApplicationContext;
32-
import org.springframework.lang.Nullable;
3334
import com.worldline.connect.sdk.java.Client;
3435
import com.worldline.connect.sdk.java.Communicator;
3536
import com.worldline.connect.sdk.java.communication.PooledConnection;
@@ -39,7 +40,7 @@
3940
*
4041
* @author Rob Spoor
4142
*/
42-
@Endpoint(id = "connectSdkConnections", enableByDefault = false)
43+
@Endpoint(id = "connectSdkConnections", defaultAccess = Access.NONE)
4344
@SuppressWarnings({ "nls", "javadoc" })
4445
public class ConnectionsEndpoint {
4546

src/main/java/com/github/robtimus/connect/sdk/java/springboot/actuator/LoggingEndpoint.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@
2222
import java.util.List;
2323
import java.util.Map;
2424
import java.util.Optional;
25+
import org.jspecify.annotations.Nullable;
26+
import org.springframework.boot.actuate.endpoint.Access;
2527
import org.springframework.boot.actuate.endpoint.annotation.DeleteOperation;
2628
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
2729
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
2830
import org.springframework.boot.actuate.endpoint.annotation.Selector;
2931
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
3032
import org.springframework.context.ApplicationContext;
31-
import org.springframework.lang.Nullable;
3233
import com.worldline.connect.sdk.java.Client;
3334
import com.worldline.connect.sdk.java.Communicator;
3435
import com.worldline.connect.sdk.java.communication.Connection;
@@ -41,7 +42,7 @@
4142
*
4243
* @author Rob Spoor
4344
*/
44-
@Endpoint(id = "connectSdkLogging", enableByDefault = false)
45+
@Endpoint(id = "connectSdkLogging", defaultAccess = Access.NONE)
4546
@SuppressWarnings("javadoc")
4647
public class LoggingEndpoint {
4748

src/main/java/com/github/robtimus/connect/sdk/java/springboot/autoconfigure/ConnectSdkConnectionAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.Objects;
2424
import java.util.Set;
2525
import java.util.concurrent.TimeUnit;
26+
import org.jspecify.annotations.Nullable;
2627
import org.springframework.beans.factory.annotation.Autowired;
2728
import org.springframework.beans.factory.annotation.Value;
2829
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@@ -31,7 +32,6 @@
3132
import org.springframework.boot.context.properties.EnableConfigurationProperties;
3233
import org.springframework.context.annotation.Bean;
3334
import org.springframework.context.annotation.Configuration;
34-
import org.springframework.lang.Nullable;
3535
import org.springframework.scheduling.annotation.EnableScheduling;
3636
import org.springframework.scheduling.annotation.Scheduled;
3737
import org.springframework.stereotype.Service;

src/main/java/com/github/robtimus/connect/sdk/java/springboot/autoconfigure/ConnectSdkHealthIndicatorAutoConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
package com.github.robtimus.connect.sdk.java.springboot.autoconfigure;
1919

2020
import org.springframework.beans.factory.annotation.Value;
21-
import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
22-
import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration;
23-
import org.springframework.boot.actuate.health.HealthIndicator;
2421
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2522
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
2623
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2724
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2825
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2926
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
27+
import org.springframework.boot.health.autoconfigure.contributor.ConditionalOnEnabledHealthIndicator;
28+
import org.springframework.boot.health.autoconfigure.contributor.HealthContributorAutoConfiguration;
29+
import org.springframework.boot.health.contributor.HealthIndicator;
3030
import org.springframework.context.annotation.Bean;
3131
import org.springframework.context.annotation.Configuration;
3232
import com.github.robtimus.connect.sdk.java.springboot.actuator.ConnectSdkHealthIndicator;

src/site/xhtml/actuator-endpoints.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<div class="section">
77
<h2>Actuator endpoints</h2>
88
<p>The following custom actuator endpoints are provided. These are disabled by default for both JMX and web.
9-
To enable these you need to set property <code>management.endpoint.&lt;id&gt;.enabled</code> to <code>true</code>.</p>
9+
To enable these you need to set property <code>management.endpoint.&lt;id&gt;.access</code> to <code>unrestricted</code>.</p>
1010
<p>By default all endpoints are exposed over JMX, but only the <code>info</code> and <code>health</code> endpoints are exposed over HTTP.
1111
To expose these custom endpoints over HTTP as well you need to set property <code>management.endpoints.web.exposure.include</code> with all endpoints you want enabled.
1212
See <a href="https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints">Exposing Endpoints</a> for more information.</p>

src/test/java/com/github/robtimus/connect/sdk/java/springboot/actuator/ConnectSdkHealthIndicatorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import java.util.UUID;
2929
import java.util.concurrent.TimeUnit;
3030
import org.junit.jupiter.api.Test;
31-
import org.springframework.boot.actuate.health.Health;
32-
import org.springframework.boot.actuate.health.Status;
31+
import org.springframework.boot.health.contributor.Health;
32+
import org.springframework.boot.health.contributor.Status;
3333
import com.worldline.connect.sdk.java.v1.ApiException;
3434
import com.worldline.connect.sdk.java.v1.domain.APIError;
3535
import com.worldline.connect.sdk.java.v1.domain.TestConnection;

src/test/java/com/github/robtimus/connect/sdk/java/springboot/actuator/EndpointsTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@
5151
import org.springframework.beans.factory.annotation.Value;
5252
import org.springframework.boot.SpringBootConfiguration;
5353
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
54+
import org.springframework.boot.restclient.RestTemplateBuilder;
5455
import org.springframework.boot.test.context.SpringBootTest;
5556
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
56-
import org.springframework.boot.web.client.RestTemplateBuilder;
5757
import org.springframework.context.annotation.Bean;
5858
import org.springframework.http.HttpStatus;
5959
import org.springframework.http.MediaType;
@@ -76,9 +76,9 @@
7676
"connect.api.authorization-secret=secret",
7777
"connect.api.merchant-id=123",
7878
"management.endpoint.health.show-details=always",
79-
"management.endpoint.connectSdkApiKey.enabled=true",
80-
"management.endpoint.connectSdkConnections.enabled=true",
81-
"management.endpoint.connectSdkLogging.enabled=true",
79+
"management.endpoint.connectSdkApiKey.access=UNRESTRICTED",
80+
"management.endpoint.connectSdkConnections.access=UNRESTRICTED",
81+
"management.endpoint.connectSdkLogging.access=UNRESTRICTED",
8282
"management.endpoints.web.exposure.include=health,connectSdkApiKey,connectSdkConnections,connectSdkLogging"
8383
})
8484
@SuppressWarnings("nls")

0 commit comments

Comments
 (0)