diff --git a/pom.xml b/pom.xml
index 225920df..604037ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.1
+ 3.2.3
@@ -134,12 +134,6 @@
org.springframework.boot
spring-boot-starter-test
test
-
-
- org.junit.vintage
- junit-vintage-engine
-
-
de.bwaldvogel
@@ -151,6 +145,12 @@
greenmail
2.0.1
test
+
+
+ junit
+ junit
+
+
@@ -281,6 +281,25 @@
+
+
+ org.openrewrite.maven
+ rewrite-maven-plugin
+ 5.24.0
+
+
+ org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_2
+
+
+
+
+ org.openrewrite.recipe
+ rewrite-spring
+ 5.6.0
+
+
+
+
diff --git a/src/main/java/com/aidanwhiteley/books/controller/BookController.java b/src/main/java/com/aidanwhiteley/books/controller/BookController.java
index 1c4dc8c6..e6d1ae45 100644
--- a/src/main/java/com/aidanwhiteley/books/controller/BookController.java
+++ b/src/main/java/com/aidanwhiteley/books/controller/BookController.java
@@ -8,7 +8,6 @@
import com.aidanwhiteley.books.repository.dtos.BooksByGenre;
import com.aidanwhiteley.books.service.StatsService;
import com.aidanwhiteley.books.service.dtos.SummaryStats;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -38,7 +37,6 @@ public class BookController {
@Value("${books.users.max.page.size}")
private int maxPageSize;
- @Autowired
public BookController(BookRepository bookRepository, StatsService statsService) {
this.bookRepository = bookRepository;
this.statsService = statsService;
@@ -50,33 +48,33 @@ public Page findAllByCreatedDateTimeDesc(Principal principal) {
}
@GetMapping(value = {"/books", "/books/"}, params = {"page", "size"})
- public Page findAllByCreatedDateTimeDesc(@RequestParam(value = "page") int page,
- @RequestParam(value = "size") int size, Principal principal) {
+ public Page findAllByCreatedDateTimeDesc(@RequestParam int page,
+ @RequestParam int size, Principal principal) {
PageRequest pageObj = PageRequest.of(page, size);
return bookRepository.findAllByOrderByCreatedDateTimeDesc(pageObj);
}
@GetMapping(value = "/books/{id}")
- public Book findBookById(@PathVariable("id") String id, Principal principal) {
+ public Book findBookById(@PathVariable String id, Principal principal) {
return bookRepository.findById(id).orElseThrow(() -> new NotFoundException("Book id " + id + " not found"));
}
@GetMapping(value = {"/books", "/books/"}, params = {"author"})
- public Page findByAuthor(@RequestParam("author") String author, Principal principal) {
+ public Page findByAuthor(@RequestParam String author, Principal principal) {
return findByAuthor(author, 0, defaultPageSize, principal);
}
@GetMapping(value = {"/books", "books/"}, params = {"author", "page", "size"})
- public Page findByAuthor(@RequestParam("author") String author, @RequestParam(value = "page") int page,
- @RequestParam(value = "size") int size, Principal principal) {
+ public Page findByAuthor(@RequestParam String author, @RequestParam int page,
+ @RequestParam int size, Principal principal) {
if (null == author || author.trim().isEmpty()) {
throw new IllegalArgumentException("Author parameter cannot be empty");
}
if (size > maxPageSize) {
- throw new IllegalArgumentException(String.format(PAGE_REQUEST_TOO_BIG_MESSAGE, maxPageSize));
+ throw new IllegalArgumentException(PAGE_REQUEST_TOO_BIG_MESSAGE.formatted(maxPageSize));
}
PageRequest pageObj = PageRequest.of(page, size);
@@ -84,20 +82,20 @@ public Page findByAuthor(@RequestParam("author") String author, @RequestPa
}
@GetMapping(value = {"/books", "/books/"}, params = {"search"})
- public Page findBySearch(@RequestParam("search") String search, Principal principal) {
+ public Page findBySearch(@RequestParam String search, Principal principal) {
return findBySearch(search, 0, defaultPageSize, principal);
}
@GetMapping(value = {"/books", "/books/"}, params = {"search", "page", "size"})
- public Page findBySearch(@RequestParam("search") String search, @RequestParam(value = "page") int page,
- @RequestParam(value = "size") int size, Principal principal) {
+ public Page findBySearch(@RequestParam String search, @RequestParam int page,
+ @RequestParam int size, Principal principal) {
if (null == search || search.trim().isEmpty()) {
throw new IllegalArgumentException("Search query string cannot be empty");
}
if (size > maxPageSize) {
- throw new IllegalArgumentException(String.format(PAGE_REQUEST_TOO_BIG_MESSAGE, maxPageSize));
+ throw new IllegalArgumentException(PAGE_REQUEST_TOO_BIG_MESSAGE.formatted(maxPageSize));
}
PageRequest pageObj = PageRequest.of(page, size);
@@ -105,20 +103,20 @@ public Page findBySearch(@RequestParam("search") String search, @RequestPa
}
@GetMapping(value = {"/books", "/books/"}, params = {"genre"})
- public Page findByGenre(@RequestParam("genre") String genre, Principal principal) {
+ public Page findByGenre(@RequestParam String genre, Principal principal) {
return findByGenre(genre, 0, defaultPageSize, principal);
}
@GetMapping(value = {"/books", "/books/"}, params = {"genre", "page", "size"})
- public Page findByGenre(@RequestParam("genre") String genre, @RequestParam(value = "page") int page,
- @RequestParam(value = "size") int size, Principal principal) {
+ public Page findByGenre(@RequestParam String genre, @RequestParam int page,
+ @RequestParam int size, Principal principal) {
if (null == genre || genre.trim().isEmpty()) {
throw new IllegalArgumentException("Genre parameter cannot be empty");
}
if (size > maxPageSize) {
- throw new IllegalArgumentException(String.format(PAGE_REQUEST_TOO_BIG_MESSAGE, maxPageSize));
+ throw new IllegalArgumentException(PAGE_REQUEST_TOO_BIG_MESSAGE.formatted(maxPageSize));
}
PageRequest pageObj = PageRequest.of(page, size);
@@ -141,13 +139,13 @@ public List findBookAuthors() {
}
@GetMapping(value = {"/books", "/books/"}, params = {"rating"})
- public Page findByRating(@RequestParam("rating") String rating, Principal principal) {
+ public Page findByRating(@RequestParam String rating, Principal principal) {
return findByRating(rating, 0, defaultPageSize, principal);
}
@GetMapping(value = {"/books", "/books/"}, params = {"rating", "page", "size"})
- public Page findByRating(@RequestParam("rating") String rating, @RequestParam(value = "page") int page,
- @RequestParam(value = "size") int size, Principal principal) {
+ public Page findByRating(@RequestParam String rating, @RequestParam int page,
+ @RequestParam int size, Principal principal) {
if (null == rating || rating.trim().isEmpty()) {
throw new IllegalArgumentException("Rating parameter cannot be empty");
@@ -159,7 +157,7 @@ public Page findByRating(@RequestParam("rating") String rating, @RequestPa
}
if (size > maxPageSize) {
- throw new IllegalArgumentException(String.format(PAGE_REQUEST_TOO_BIG_MESSAGE, maxPageSize));
+ throw new IllegalArgumentException(PAGE_REQUEST_TOO_BIG_MESSAGE.formatted(maxPageSize));
}
PageRequest pageObj = PageRequest.of(page, size);
diff --git a/src/main/java/com/aidanwhiteley/books/controller/BookSecureController.java b/src/main/java/com/aidanwhiteley/books/controller/BookSecureController.java
index ef08e43c..6bcd3cce 100644
--- a/src/main/java/com/aidanwhiteley/books/controller/BookSecureController.java
+++ b/src/main/java/com/aidanwhiteley/books/controller/BookSecureController.java
@@ -15,7 +15,6 @@
import com.aidanwhiteley.books.util.JwtAuthenticationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -67,7 +66,6 @@ public class BookSecureController {
@Value("${books.users.max.page.size}")
private int maxPageSize;
- @Autowired
public BookSecureController(BookRepository bookRepository, GoogleBooksDaoSync googleBooksDaoSync,
GoogleBooksDaoAsync googleBooksDaoAsync, JwtAuthenticationUtils jwtAuthenticationUtils) {
this.bookRepository = bookRepository;
@@ -140,7 +138,7 @@ public ResponseEntity updateBook(@Valid @RequestBody Book book, Principal
}
@DeleteMapping(value = "/books/{id}")
- public ResponseEntity deleteBookById(@PathVariable("id") String id, Principal principal) {
+ public ResponseEntity deleteBookById(@PathVariable String id, Principal principal) {
Optional user = authUtils.extractUserFromPrincipal(principal, false);
if (user.isPresent()) {
@@ -159,7 +157,7 @@ public ResponseEntity deleteBookById(@PathVariable("id") String id, Princi
}
@PostMapping(value = "/books/{id}/comments")
- public Book addCommentToBook(@PathVariable("id") String id, @Valid @RequestBody Comment comment,
+ public Book addCommentToBook(@PathVariable String id, @Valid @RequestBody Comment comment,
Principal principal) {
Optional user = authUtils.extractUserFromPrincipal(principal, false);
@@ -173,7 +171,7 @@ public Book addCommentToBook(@PathVariable("id") String id, @Valid @RequestBody
}
@DeleteMapping(value = "/books/{id}/comments/{commentId}")
- public Book removeCommentFromBook(@PathVariable("id") String id, @PathVariable("commentId") String commentId,
+ public Book removeCommentFromBook(@PathVariable String id, @PathVariable String commentId,
Principal principal) {
Optional user = authUtils.extractUserFromPrincipal(principal, false);
@@ -203,15 +201,15 @@ public Book removeCommentFromBook(@PathVariable("id") String id, @PathVariable("
* least ROLE_EDITOR
*/
@GetMapping(value = {"/books", "/books/"})
- public Page findByReader(@RequestParam String reader, @RequestParam(value = "page", defaultValue = "0") int page,
- @RequestParam(value = "size", defaultValue = "5") int size, Principal principal) {
+ public Page findByReader(@RequestParam String reader, @RequestParam(defaultValue = "0") int page,
+ @RequestParam(defaultValue = "5") int size, Principal principal) {
if (null == reader || reader.trim().isEmpty()) {
throw new IllegalArgumentException("Reader parameter cannot be empty");
}
if (size > maxPageSize) {
- throw new IllegalArgumentException(String.format("Cannot request a page of data containing more that %s elements", maxPageSize));
+ throw new IllegalArgumentException("Cannot request a page of data containing more that %s elements".formatted(maxPageSize));
}
PageRequest pageObj = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "createdDateTime"));
@@ -219,7 +217,7 @@ public Page findByReader(@RequestParam String reader, @RequestParam(value
}
@GetMapping(value = {"/googlebooks", "googlebooks/"}, params = "title")
- public BookSearchResult findGoogleBooksByTitle(@RequestParam("title") String title) {
+ public BookSearchResult findGoogleBooksByTitle(@RequestParam String title) {
return googleBooksDaoSync.searchGoogBooksByTitle(title);
}
diff --git a/src/main/java/com/aidanwhiteley/books/controller/FeedsController.java b/src/main/java/com/aidanwhiteley/books/controller/FeedsController.java
index f54d9a0c..9184d0ff 100644
--- a/src/main/java/com/aidanwhiteley/books/controller/FeedsController.java
+++ b/src/main/java/com/aidanwhiteley/books/controller/FeedsController.java
@@ -2,7 +2,6 @@
import com.aidanwhiteley.books.util.SiteRssFeed;
import com.rometools.rome.feed.rss.Channel;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -13,7 +12,6 @@ public class FeedsController {
private final SiteRssFeed siteRssFeed;
- @Autowired
public FeedsController(SiteRssFeed siteRssFeed) {
this.siteRssFeed = siteRssFeed;
}
diff --git a/src/main/java/com/aidanwhiteley/books/controller/UserController.java b/src/main/java/com/aidanwhiteley/books/controller/UserController.java
index 304e31cc..b35603c9 100644
--- a/src/main/java/com/aidanwhiteley/books/controller/UserController.java
+++ b/src/main/java/com/aidanwhiteley/books/controller/UserController.java
@@ -8,7 +8,6 @@
import com.aidanwhiteley.books.util.JwtAuthenticationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -40,7 +39,6 @@ public class UserController {
private final JwtAuthenticationService authService;
- @Autowired
public UserController(UserRepository userRepository, JwtAuthenticationUtils jwtAuthenticationUtils,
JwtAuthenticationService jwtAuthenticationService) {
this.userRepository = userRepository;
@@ -80,7 +78,7 @@ public List users(Principal principal) {
@DeleteMapping(value = "/users/{id}")
@PreAuthorize("hasRole('ROLE_ADMIN')")
- public ResponseEntity