Skip to content

Commit 1e4f9c9

Browse files
SteKoeulischulteandreasfritzhzpzclaude
authored
feat: Spring Boot 4 support (#4838)
Co-authored-by: ulrichschulte <ulrich.schulte@codecentric.de> Co-authored-by: Andreas Fritz <andreas.fritz@codecentric.de> Co-authored-by: Timo <mailantimo@gmx.de> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 531b030 commit 1e4f9c9

326 files changed

Lines changed: 21905 additions & 3215 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ trim_trailing_whitespace = true
66

77
[*.md]
88
trim_trailing_whitespace = false
9+
max_line_length = 120
10+
ij_markdown_wrap_text_if_long = true
11+
ij_markdown_format_tables = true
912

1013
[*.java]
1114
indent_style = tab
@@ -23,7 +26,7 @@ ij_java_blank_lines_after_class_header = 0
2326
ij_java_doc_enable_formatting = false
2427
ij_java_class_count_to_use_import_on_demand = 100
2528
ij_java_names_count_to_use_import_on_demand = 100
26-
ij_java_imports_layout = |, java.**, |, jakarta.**, *, |, de.codecentric.boot.admin.**, |, $*
29+
ij_java_imports_layout = |, java.**, |, jakarta.**, *, tools.**, |, de.codecentric.boot.admin.**, |, $*
2730
ij_java_layout_static_imports_separately = true
2831

2932
[*.xml]

.github/workflows/deploy-documentation.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ on:
44
workflow_dispatch:
55
inputs:
66
releaseversion:
7-
description: 'Release version'
7+
description: 'Version to publish the documentation for. This should be a tag that exists in the repository.'
8+
type: string
89
required: true
9-
default: '3.0.0'
1010
copyDocsToCurrent:
11-
description: "Should the docs be published at https://docs.spring-boot-admin.com? Otherwise they will be accessible by version number only."
11+
description: "Mark docs as 'latest'? This will create a redirect from /current to the version being published. This should only be set for the latest version of the documentation."
1212
required: true
1313
type: boolean
1414
default: false

.github/workflows/release-to-maven-central.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ on:
44
workflow_dispatch:
55
inputs:
66
releaseversion:
7-
description: 'Release version'
7+
description: "Version to release and publish to maven central."
88
required: true
9-
default: '3.0.0'
109
copyDocsToCurrent:
11-
description: "Should the docs be published at https://docs.spring-boot-admin.com? Otherwise they will be accessible by version number only."
10+
description: "Mark docs as 'latest'? This will create a redirect from /current to the version being published. This should only be set for the latest version of the documentation."
1211
required: true
1312
type: boolean
1413
default: false

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ node/
2828

2929
.DS_Store
3030
mockServiceWorker.js
31+
/.github/agents/

pom.xml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<url>https://github.com/codecentric/spring-boot-admin/</url>
3131

3232
<properties>
33-
<revision>3.5.8-SNAPSHOT</revision>
33+
<revision>4.0.0-SNAPSHOT</revision>
3434

3535
<java.version>17</java.version>
3636
<node.version>v22.12.0</node.version>
@@ -47,18 +47,17 @@
4747
<maven.site.skip>true</maven.site.skip>
4848

4949
<!-- used dependencies versions -->
50-
<spring-boot.version>3.5.10</spring-boot.version>
51-
<spring-cloud.version>2025.0.0</spring-cloud.version>
50+
<spring-boot.version>4.0.2</spring-boot.version>
51+
<spring-cloud.version>2025.1.1</spring-cloud.version>
5252

53-
<jolokia-support-spring.version>2.4.3</jolokia-support-spring.version>
53+
<jolokia-support-springboot.version>2.5.0</jolokia-support-springboot.version>
5454

5555
<checkstyle.version>12.3.1</checkstyle.version>
5656
<findbugs-jsr305.version>3.0.2</findbugs-jsr305.version>
5757

5858
<wiremock.version>3.13.2</wiremock.version>
5959
<hazelcast.version>5.6.0</hazelcast.version>
6060
<awaitility.version>4.3.0</awaitility.version>
61-
<testcontainers.version>2.0.3</testcontainers.version>
6261
<jetty.version>12.1.6</jetty.version>
6362

6463
<!-- plugin versions -->

spring-boot-admin-build/pom.xml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
</dependency>
5252
<dependency>
5353
<groupId>org.jolokia</groupId>
54-
<artifactId>jolokia-support-spring</artifactId>
55-
<version>${jolokia-support-spring.version}</version>
54+
<artifactId>jolokia-support-springboot</artifactId>
55+
<version>${jolokia-support-springboot.version}</version>
5656
</dependency>
5757
<dependency>
5858
<groupId>org.wiremock</groupId>
@@ -85,18 +85,6 @@
8585
<version>${awaitility.version}</version>
8686
<scope>test</scope>
8787
</dependency>
88-
<dependency>
89-
<groupId>org.testcontainers</groupId>
90-
<artifactId>testcontainers</artifactId>
91-
<version>${testcontainers.version}</version>
92-
<scope>test</scope>
93-
</dependency>
94-
<dependency>
95-
<groupId>org.testcontainers</groupId>
96-
<artifactId>testcontainers-junit-jupiter</artifactId>
97-
<version>${testcontainers.version}</version>
98-
<scope>test</scope>
99-
</dependency>
10088
</dependencies>
10189
</dependencyManagement>
10290

spring-boot-admin-client/pom.xml

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,27 +41,27 @@
4141
<artifactId>spring-boot-starter-actuator</artifactId>
4242
</dependency>
4343
<dependency>
44-
<groupId>org.springframework</groupId>
45-
<artifactId>spring-web</artifactId>
44+
<groupId>org.springframework.boot</groupId>
45+
<artifactId>spring-boot-starter-restclient</artifactId>
4646
</dependency>
4747
<dependency>
4848
<groupId>org.springframework.boot</groupId>
49-
<artifactId>spring-boot-starter-web</artifactId>
49+
<artifactId>spring-boot-starter-webflux</artifactId>
5050
<optional>true</optional>
5151
</dependency>
5252
<dependency>
5353
<groupId>org.springframework.boot</groupId>
54-
<artifactId>spring-boot-autoconfigure-processor</artifactId>
54+
<artifactId>spring-boot-starter-webmvc</artifactId>
5555
<optional>true</optional>
5656
</dependency>
5757
<dependency>
5858
<groupId>org.springframework.boot</groupId>
59-
<artifactId>spring-boot-configuration-processor</artifactId>
59+
<artifactId>spring-boot-autoconfigure-processor</artifactId>
6060
<optional>true</optional>
6161
</dependency>
6262
<dependency>
63-
<groupId>org.springframework</groupId>
64-
<artifactId>spring-webflux</artifactId>
63+
<groupId>org.springframework.boot</groupId>
64+
<artifactId>spring-boot-configuration-processor</artifactId>
6565
<optional>true</optional>
6666
</dependency>
6767
<dependency>
@@ -74,11 +74,6 @@
7474
<artifactId>spring-boot-starter-test</artifactId>
7575
<scope>test</scope>
7676
</dependency>
77-
<dependency>
78-
<groupId>org.springframework.boot</groupId>
79-
<artifactId>spring-boot-starter-webflux</artifactId>
80-
<scope>test</scope>
81-
</dependency>
8277
<dependency>
8378
<groupId>org.wiremock</groupId>
8479
<artifactId>wiremock-standalone</artifactId>

spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientProperties.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
import java.time.Duration;
2020
import java.time.temporal.ChronoUnit;
2121

22+
import org.jspecify.annotations.Nullable;
2223
import org.springframework.boot.cloud.CloudPlatform;
2324
import org.springframework.boot.context.properties.ConfigurationProperties;
2425
import org.springframework.boot.convert.DurationUnit;
2526
import org.springframework.core.env.Environment;
26-
import org.springframework.lang.Nullable;
2727

2828
@lombok.Data
2929
@ConfigurationProperties(prefix = "spring.boot.admin.client")
@@ -60,21 +60,18 @@ public class ClientProperties {
6060
/**
6161
* Username for basic authentication on admin server
6262
*/
63-
@Nullable
64-
private String username;
63+
@Nullable private String username;
6564

6665
/**
6766
* Password for basic authentication on admin server
6867
*/
69-
@Nullable
70-
private String password;
68+
@Nullable private String password;
7169

7270
/**
7371
* Enable automatic deregistration on shutdown If not set it defaults to true if an
7472
* active {@link CloudPlatform} is present;
7573
*/
76-
@Nullable
77-
private Boolean autoDeregistration = null;
74+
@Nullable private Boolean autoDeregistration = null;
7875

7976
/**
8077
* Enable automatic registration when the application is ready.

spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientRuntimeHints.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.springframework.aot.hint.MemberCategory;
2222
import org.springframework.aot.hint.RuntimeHints;
2323
import org.springframework.aot.hint.RuntimeHintsRegistrar;
24-
import org.springframework.boot.web.context.WebServerInitializedEvent;
24+
import org.springframework.boot.web.server.context.WebServerInitializedEvent;
2525
import org.springframework.context.annotation.Configuration;
2626

2727
import de.codecentric.boot.admin.client.registration.Application;

spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/CloudFoundryApplicationProperties.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,16 @@
1919
import java.util.ArrayList;
2020
import java.util.List;
2121

22+
import org.jspecify.annotations.Nullable;
2223
import org.springframework.boot.context.properties.ConfigurationProperties;
23-
import org.springframework.lang.Nullable;
2424

2525
@lombok.Data
2626
@ConfigurationProperties("vcap.application")
2727
public class CloudFoundryApplicationProperties {
2828

29-
@Nullable
30-
private String applicationId;
29+
@Nullable private String applicationId;
3130

32-
@Nullable
33-
private String instanceIndex;
31+
@Nullable private String instanceIndex;
3432

3533
private List<String> uris = new ArrayList<>();
3634

0 commit comments

Comments
 (0)