Skip to content

Commit e3ee30d

Browse files
feat : upgrade to spring boot 4 (#2105)
* feat : upgrade to spring boot 4 * fix : build issue * remove lombok * upgrade to java 25
1 parent 9e4c832 commit e3ee30d

File tree

17 files changed

+166
-113
lines changed

17 files changed

+166
-113
lines changed

.devcontainer/devcontainer.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
{
44
"name": "Java",
55
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6-
"image": "mcr.microsoft.com/devcontainers/java:1-21-bullseye",
6+
"image": "mcr.microsoft.com/devcontainers/java:25",
77

88
"features": {
99
"ghcr.io/devcontainers/features/java:1": {
1010
"version": "none",
1111
"installMaven": "true",
1212
"installGradle": "false"
1313
},
14-
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
14+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
15+
"moby": false
16+
},
1517
"ghcr.io/devcontainers/features/node:1": {
1618
"version": "lts"
1719
}

.github/workflows/mongodb-redis-integration.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
strategy:
2121
matrix:
22-
java: [ '21']
22+
java: [ '25']
2323
defaults:
2424
run:
2525
working-directory: "poc-mongodb-redis-cache/mongodb-redis-integration"

poc-mongodb-redis-cache/mongodb-redis-integration/docker/docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ services:
55
volumes:
66
- mongo-data:/data/db/mongo
77
ports:
8-
- 27017:27017
8+
- "27017:27017"
99

1010
redis:
1111
image: redis
1212
volumes:
1313
- redis-data:/data/db/redis
1414
ports:
15-
- 6379:6379
15+
- "6379:6379"
1616

1717
volumes:
1818
mongo-data:

poc-mongodb-redis-cache/mongodb-redis-integration/pom.xml

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>org.springframework.boot</groupId>
88
<artifactId>spring-boot-starter-parent</artifactId>
9-
<version>3.5.8</version>
9+
<version>4.0.0</version>
1010
<relativePath /> <!-- lookup parent from repository -->
1111
</parent>
1212

@@ -19,8 +19,8 @@
1919
<properties>
2020
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
2121
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
22-
<java.version>17</java.version>
23-
<springdoc-open-ui.version>2.8.14</springdoc-open-ui.version>
22+
<java.version>25</java.version>
23+
<springdoc-open-ui.version>3.0.0</springdoc-open-ui.version>
2424

2525
<spotless.version>3.1.0</spotless.version>
2626
<sonar-maven-plugin.version>5.3.0.6276</sonar-maven-plugin.version>
@@ -61,7 +61,7 @@
6161
</dependency>
6262
<dependency>
6363
<groupId>org.springframework.boot</groupId>
64-
<artifactId>spring-boot-starter-web</artifactId>
64+
<artifactId>spring-boot-starter-webmvc</artifactId>
6565
</dependency>
6666
<dependency>
6767
<groupId>org.springdoc</groupId>
@@ -77,13 +77,18 @@
7777
</dependency>
7878

7979
<dependency>
80-
<groupId>org.projectlombok</groupId>
81-
<artifactId>lombok</artifactId>
82-
<optional>true</optional>
80+
<groupId>org.springframework.boot</groupId>
81+
<artifactId>spring-boot-starter-webmvc-test</artifactId>
82+
<scope>test</scope>
8383
</dependency>
8484
<dependency>
8585
<groupId>org.springframework.boot</groupId>
86-
<artifactId>spring-boot-starter-test</artifactId>
86+
<artifactId>spring-boot-starter-data-mongodb-test</artifactId>
87+
<scope>test</scope>
88+
</dependency>
89+
<dependency>
90+
<groupId>org.springframework.boot</groupId>
91+
<artifactId>spring-boot-starter-restclient-test</artifactId>
8792
<scope>test</scope>
8893
</dependency>
8994
<dependency>
@@ -93,12 +98,12 @@
9398
</dependency>
9499
<dependency>
95100
<groupId>org.testcontainers</groupId>
96-
<artifactId>junit-jupiter</artifactId>
101+
<artifactId>testcontainers-junit-jupiter</artifactId>
97102
<scope>test</scope>
98103
</dependency>
99104
<dependency>
100105
<groupId>org.testcontainers</groupId>
101-
<artifactId>mongodb</artifactId>
106+
<artifactId>testcontainers-mongodb</artifactId>
102107
<scope>test</scope>
103108
</dependency>
104109
</dependencies>
@@ -108,14 +113,6 @@
108113
<plugin>
109114
<groupId>org.springframework.boot</groupId>
110115
<artifactId>spring-boot-maven-plugin</artifactId>
111-
<configuration>
112-
<excludes>
113-
<exclude>
114-
<groupId>org.projectlombok</groupId>
115-
<artifactId>lombok</artifactId>
116-
</exclude>
117-
</excludes>
118-
</configuration>
119116
</plugin>
120117
<plugin>
121118
<groupId>io.github.git-commit-id</groupId>
@@ -189,7 +186,7 @@
189186
<configuration>
190187
<java>
191188
<googleJavaFormat>
192-
<version>1.17.0</version>
189+
<version>1.28.0</version>
193190
<style>AOSP</style>
194191
</googleJavaFormat>
195192
<licenseHeader>

poc-mongodb-redis-cache/mongodb-redis-integration/src/main/java/com/mongodb/redis/integration/config/CustomCacheErrorHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
/* Licensed under Apache-2.0 2021-2023 */
22
package com.mongodb.redis.integration.config;
33

4-
import lombok.extern.slf4j.Slf4j;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
56
import org.springframework.cache.Cache;
67
import org.springframework.cache.interceptor.CacheErrorHandler;
78

8-
@Slf4j
99
class CustomCacheErrorHandler implements CacheErrorHandler {
1010

11+
private static final Logger log = LoggerFactory.getLogger(CustomCacheErrorHandler.class);
12+
1113
/** {@inheritDoc} */
1214
@Override
1315
public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) {

poc-mongodb-redis-cache/mongodb-redis-integration/src/main/java/com/mongodb/redis/integration/config/RedisCachingConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
package com.mongodb.redis.integration.config;
33

44
import jakarta.annotation.PreDestroy;
5-
import lombok.RequiredArgsConstructor;
65
import org.springframework.cache.annotation.CachingConfigurer;
76
import org.springframework.cache.annotation.EnableCaching;
87
import org.springframework.cache.interceptor.CacheErrorHandler;
@@ -12,11 +11,14 @@
1211

1312
@Configuration(proxyBeanMethods = false)
1413
@EnableCaching
15-
@RequiredArgsConstructor
1614
public class RedisCachingConfig implements CachingConfigurer {
1715

1816
private final RedisConnectionFactory connectionFactory;
1917

18+
public RedisCachingConfig(RedisConnectionFactory connectionFactory) {
19+
this.connectionFactory = connectionFactory;
20+
}
21+
2022
@Bean
2123
@Override
2224
public CacheErrorHandler errorHandler() {

poc-mongodb-redis-cache/mongodb-redis-integration/src/main/java/com/mongodb/redis/integration/controller/BookController.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import com.mongodb.redis.integration.service.BookService;
77
import jakarta.validation.Valid;
88
import jakarta.validation.constraints.NotNull;
9-
import lombok.RequiredArgsConstructor;
10-
import lombok.extern.slf4j.Slf4j;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
1111
import org.springframework.http.HttpStatus;
1212
import org.springframework.http.ResponseEntity;
1313
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -21,14 +21,18 @@
2121
import org.springframework.web.bind.annotation.ResponseStatus;
2222
import org.springframework.web.bind.annotation.RestController;
2323

24-
@Slf4j
2524
@RestController
2625
@RequestMapping("/book")
27-
@RequiredArgsConstructor
2826
public class BookController {
2927

28+
private static final Logger log = LoggerFactory.getLogger(BookController.class);
29+
3030
private final BookService bookService;
3131

32+
public BookController(BookService bookService) {
33+
this.bookService = bookService;
34+
}
35+
3236
@GetMapping("/findByTitle/{title}")
3337
public Book findBookByTitle(@NotNull @PathVariable String title) throws BookNotFoundException {
3438
return this.bookService.findBookByTitle(title);

poc-mongodb-redis-cache/mongodb-redis-integration/src/main/java/com/mongodb/redis/integration/data/TestData.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
1-
/* Licensed under Apache-2.0 2021-2023 */
1+
/* Licensed under Apache-2.0 2021-2025 */
22
package com.mongodb.redis.integration.data;
33

44
import com.mongodb.redis.integration.document.Book;
55
import com.mongodb.redis.integration.repository.BookRepository;
6-
import lombok.extern.slf4j.Slf4j;
7-
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
88
import org.springframework.boot.context.event.ApplicationReadyEvent;
99
import org.springframework.context.annotation.Configuration;
1010
import org.springframework.context.annotation.Profile;
1111
import org.springframework.context.event.EventListener;
1212

1313
@Configuration
1414
@Profile({"local", "test"})
15-
@Slf4j
1615
public class TestData {
1716

18-
@Autowired BookRepository bookRepository;
17+
private static final Logger log = LoggerFactory.getLogger(TestData.class);
18+
19+
private final BookRepository bookRepository;
20+
21+
public TestData(BookRepository bookRepository) {
22+
this.bookRepository = bookRepository;
23+
}
1924

2025
@EventListener(ApplicationReadyEvent.class)
2126
void loadData() {
22-
Book book = Book.builder().title("SB2").bookId("1").author("raja").build();
27+
Book book = new Book().setTitle("SB2").setBookId("1").setAuthor("raja");
2328
log.info("saving dummy data");
2429
this.bookRepository.save(book);
2530
}
Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
1-
/* Licensed under Apache-2.0 2021-2023 */
1+
/* Licensed under Apache-2.0 2021-2025 */
22
package com.mongodb.redis.integration.document;
33

44
import jakarta.validation.constraints.NotBlank;
55
import jakarta.validation.constraints.Size;
66
import java.io.Serial;
77
import java.io.Serializable;
8-
import lombok.Builder;
9-
import lombok.Getter;
10-
import lombok.Setter;
11-
import lombok.ToString;
128
import org.springframework.data.annotation.Id;
139
import org.springframework.data.annotation.Version;
1410
import org.springframework.data.mongodb.core.index.Indexed;
1511

16-
@Setter
17-
@Getter
18-
@Builder
19-
@ToString
2012
public class Book implements Serializable {
2113

2214
@Serial private static final long serialVersionUID = 1L;
@@ -33,4 +25,49 @@ public class Book implements Serializable {
3325
private String text;
3426

3527
@Version private Long version;
28+
29+
public String getBookId() {
30+
return bookId;
31+
}
32+
33+
public Book setBookId(String bookId) {
34+
this.bookId = bookId;
35+
return this;
36+
}
37+
38+
public String getTitle() {
39+
return title;
40+
}
41+
42+
public Book setTitle(String title) {
43+
this.title = title;
44+
return this;
45+
}
46+
47+
public String getAuthor() {
48+
return author;
49+
}
50+
51+
public Book setAuthor(String author) {
52+
this.author = author;
53+
return this;
54+
}
55+
56+
public String getText() {
57+
return text;
58+
}
59+
60+
public Book setText(String text) {
61+
this.text = text;
62+
return this;
63+
}
64+
65+
public Long getVersion() {
66+
return version;
67+
}
68+
69+
public Book setVersion(Long version) {
70+
this.version = version;
71+
return this;
72+
}
3673
}
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
/* Licensed under Apache-2.0 2021-2022 */
22
package com.mongodb.redis.integration.exception;
33

4-
import lombok.Getter;
5-
64
public class BookNotFoundException extends Exception {
75

8-
@Getter private final String message;
6+
private final String message;
97

108
public BookNotFoundException(String exceptionMessage) {
119
super(exceptionMessage);
1210
this.message = exceptionMessage;
1311
}
12+
13+
@Override
14+
public String getMessage() {
15+
return message;
16+
}
1417
}

0 commit comments

Comments
 (0)