JAVA-5875: Upgrade Spring Boot to 2.5.1 (#10956)

* JAVA-5875: Upgrade Spring Boot to 2.5.1

* JAVA-5875: Leave jta module on Spring Boot 2.4.7

* JAVA-5875: Update spring-boot-persistence-mongodb to use embedded Mongo 3.0

* JAVA-5875: Leave spring-data-dynamodb on Spring Boot 2.4.7

* JAVA-5875: ErrorController#getErrorPath has been removed

* JAVA-5875: Fix SQL Script DataSource Initialization

* JAVA-5875: ErrorController#getErrorPath has been removed

* JAVA-5875: Fix RepositoryRestConfigurer

* JAVA-5875: Fix issues caused by rest-assured upgrade

* JAVA-5875: Upgrade spring-cloud-dependencies to 2020.0.3

* JAVA-5875: Leave spring-boot-keycloak on Spring Boot 2.4.7

* JAVA-5875: Fix data.sql script initialization

* JAVA-5875: Leave spring-security-legacy-oidc on Spring Boot 2.4.7

* JAVA-5875: Fix data.sql script initialization

* JAVA-5875: Fix data.sql script initialization

* JAVA-5875: Update de.flapdoodle.embed.mongo dependency

* JAVA-5875: Upgrade spring-cloud-dependencies to 2020.0.3

* JAVA-5875: Update Spring Cloud dependencies

* JAVA-5875: Update cloud dependencies

* JAVA-5875: Defer datasource initialization

* JAVA-5875: Fix rest assured version

* JAVA-5875: Fix Spring Batch serialization issue

* JAVA-5875: Update Spring Cloud Stream version

* JAVA-5875: Update Spring Kafka version

* JAVA-5875: Leave spring-zuul-rate-limiting on Spring Boot 2.4.7

Co-authored-by: Krzysztof Woyke <krzysztof.woyke.sp@lhsystems.com>
This commit is contained in:
kwoyke 2021-06-25 21:50:37 +02:00 committed by GitHub
parent a7d529ea22
commit eb1f4e1e90
40 changed files with 77 additions and 68 deletions

View File

@ -6,7 +6,12 @@ spring:
application-path: /odata
jpa:
defer-datasource-initialization: true
show-sql: true
open-in-view: false
hibernate:
ddl-auto: update
ddl-auto: update
sql:
init:
mode: always

View File

@ -36,4 +36,8 @@
</dependency>
</dependencies>
<properties>
<spring-boot.version>2.4.7</spring-boot.version>
</properties>
</project>

View File

@ -81,7 +81,7 @@
<rest-assured.version>3.3.0</rest-assured.version>
<!-- plugins -->
<thin.version>1.0.22.RELEASE</thin.version>
<spring-boot.version>2.4.3</spring-boot.version>
<spring-boot.version>2.5.1</spring-boot.version>
<aspectjweaver.version>1.9.1</aspectjweaver.version>
<!-- this property can be removed once we update Mockito version in the main pom.xml -->
<mockito.version>3.4.0</mockito.version>

View File

@ -2,10 +2,11 @@ spring.datasource.url=jdbc:h2:mem:mydb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.defer-datasource-initialization=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.validator.apply_to_ddl=false
#spring.jpa.properties.hibernate.check_nullability=true
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.path=/h2-console

View File

@ -5,8 +5,8 @@ import com.mongodb.DBObject;
import com.mongodb.client.MongoClients;
import de.flapdoodle.embed.mongo.MongodExecutable;
import de.flapdoodle.embed.mongo.MongodStarter;
import de.flapdoodle.embed.mongo.config.IMongodConfig;
import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
import de.flapdoodle.embed.mongo.config.ImmutableMongodConfig;
import de.flapdoodle.embed.mongo.config.MongodConfig;
import de.flapdoodle.embed.mongo.config.Net;
import de.flapdoodle.embed.mongo.distribution.Version;
import de.flapdoodle.embed.process.runtime.Network;
@ -36,7 +36,9 @@ class ManualEmbeddedMongoDbIntegrationTest {
String ip = "localhost";
int randomPort = SocketUtils.findAvailableTcpPort();
IMongodConfig mongodConfig = new MongodConfigBuilder().version(Version.Main.PRODUCTION)
ImmutableMongodConfig mongodConfig = MongodConfig
.builder()
.version(Version.Main.PRODUCTION)
.net(new Net(ip, randomPort, Network.localhostIsIPv6()))
.build();

View File

@ -183,6 +183,7 @@
<dynamodblocal.version>1.11.86</dynamodblocal.version>
<dynamodblocal.repository.url>https://s3-us-west-2.amazonaws.com/dynamodb-local/release</dynamodblocal.repository.url>
<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
<spring-boot.version>2.4.7</spring-boot.version>
</properties>
</project>

View File

@ -0,0 +1 @@
spring.jpa.defer-datasource-initialization=true

View File

@ -1 +1,2 @@
spring.jpa.show-sql=true
spring.jpa.show-sql=true
spring.jpa.defer-datasource-initialization=true

View File

@ -1,4 +1,5 @@
spring.jpa.show-sql=true
spring.jpa.defer-datasource-initialization=true
#MySql
#spring.datasource.url=jdbc:mysql://localhost:3306/baeldung
#spring.datasource.username=baeldung

View File

@ -17,6 +17,11 @@
</parent>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson-datatype.version}</version>
</dependency>
<!-- JAXB APIs & runtime no longer provided in JDK 11 -->
<!-- see http://openjdk.java.net/jeps/320 -->
<dependency>
@ -91,6 +96,7 @@
<sqlite.version>3.15.1</sqlite.version>
<opencsv.version>4.1</opencsv.version>
<jaxb.version>2.3.1</jaxb.version>
<jackson-datatype.version>2.12.3</jackson-datatype.version>
<awaitility.version>3.1.1</awaitility.version>
</properties>

View File

@ -1,5 +1,10 @@
package com.baeldung.taskletsvschunks.model;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@ -7,6 +12,8 @@ import java.time.format.DateTimeFormatter;
public class Line implements Serializable {
private String name;
@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonSerialize(using = LocalDateSerializer.class)
private LocalDate dob;
private Long age;

View File

@ -11,8 +11,6 @@ import javax.servlet.http.HttpServletRequest;
@Controller
public class MyErrorController implements ErrorController {
public MyErrorController() {}
@GetMapping(value = "/error")
public String handleError(HttpServletRequest request) {
@ -31,10 +29,4 @@ public class MyErrorController implements ErrorController {
}
return "error";
}
@Override
public String getErrorPath() {
return null;
}
}

View File

@ -77,6 +77,7 @@
<properties>
<keycloak-adapter-bom.version>13.0.1</keycloak-adapter-bom.version>
<spring-boot.version>2.4.7</spring-boot.version>
</properties>
</project>

View File

@ -122,16 +122,8 @@
</profile>
</profiles>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<properties>
<spring-cloud.version>2020.0.0-M5</spring-cloud.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<commons-configuration.version>1.10</commons-configuration.version>
<guava.version>20.0</guava.version>
<resource.delimiter>@</resource.delimiter>

View File

@ -7,18 +7,9 @@ public class MyCustomErrorController implements ErrorController {
private static final String PATH = "/error";
public MyCustomErrorController() {
// TODO Auto-generated constructor stub
}
@GetMapping(value = PATH)
public String error() {
return "Error haven";
}
@Override
public String getErrorPath() {
return PATH;
}
}

View File

@ -34,7 +34,7 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>2020.0.0</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
</properties>
</project>

View File

@ -79,13 +79,13 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>2020.0.1</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
<spring-cloud-starter-config.version>2.2.3.RELEASE</spring-cloud-starter-config.version>
<spring-cloud-config-server.version>2.2.3.RELEASE</spring-cloud-config-server.version>
<spring-cloud-starter-eureka.version>1.4.7.RELEASE</spring-cloud-starter-eureka.version>
<spring-cloud-starter-feign.version>1.4.7.RELEASE</spring-cloud-starter-feign.version>
<spring-cloud-starter-hystrix.version>1.4.7.RELEASE</spring-cloud-starter-hystrix.version>
<spring-cloud-stream.version>3.0.6.RELEASE</spring-cloud-stream.version>
<spring-cloud-stream.version>3.1.3</spring-cloud-stream.version>
</properties>

View File

@ -60,7 +60,7 @@
</dependencies>
<properties>
<spring-cloud-dependencies.version>2.0.1.RELEASE</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2.0.3.RELEASE</spring-cloud-dependencies.version>
<junit.platform.version>1.2.0</junit.platform.version>
</properties>

View File

@ -34,7 +34,7 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>2020.0.0</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
</properties>
</project>

View File

@ -38,6 +38,6 @@
</modules>
<properties>
<spring-cloud-dependencies.version>2020.0.1</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
</properties>
</project>

View File

@ -47,7 +47,7 @@
</dependencies>
<properties>
<spring-cloud-dependencies.version>2020.0.1</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
</properties>
</project>

View File

@ -34,7 +34,7 @@
</modules>
<properties>
<spring-cloud-dependencies.version>2020.0.1</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
</properties>
</project>

View File

@ -48,8 +48,8 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>Hoxton.SR4</spring-cloud-dependencies.version>
<spring-cloud-task.version>2.2.3.RELEASE</spring-cloud-task.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
<spring-cloud-task.version>2.3.3</spring-cloud-task.version>
</properties>
</project>

View File

@ -42,6 +42,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
<version>${spring-cloud-netflix-zuul.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@ -21,7 +21,8 @@
</modules>
<properties>
<spring-cloud-dependencies.version>Finchley.SR2</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
<spring-cloud-netflix-zuul.version>2.2.7.RELEASE</spring-cloud-netflix-zuul.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

View File

@ -81,8 +81,8 @@
</build>
<properties>
<spring-cloud.version>2020.0.0</spring-cloud.version>
<spring-cloud-netflix-zuul.version>2.2.2.RELEASE</spring-cloud-netflix-zuul.version>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-netflix-zuul.version>2.2.7.RELEASE</spring-cloud-netflix-zuul.version>
</properties>
</project>

View File

@ -42,6 +42,7 @@
<properties>
<rate.limit.version>2.2.0.RELEASE</rate.limit.version>
<spring-boot.version>2.4.7</spring-boot.version>
</properties>
</project>

View File

@ -2,18 +2,19 @@ package com.baeldung.books.config;
import com.baeldung.books.models.WebsiteUser;
import com.baeldung.books.projections.CustomBook;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.rest.core.config.RepositoryRestConfiguration;
import org.springframework.data.rest.core.mapping.ExposureConfiguration;
import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer;
import org.springframework.http.HttpMethod;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
@Configuration
public class RestConfig implements RepositoryRestConfigurer {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration repositoryRestConfiguration) {
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration repositoryRestConfiguration,
CorsRegistry cors) {
repositoryRestConfiguration.getProjectionConfiguration().addProjection(CustomBook.class);
ExposureConfiguration config = repositoryRestConfiguration.getExposureConfiguration();
config.forDomainType(WebsiteUser.class).withItemExposure((metadata, httpMethods) -> httpMethods.disable(HttpMethod.PATCH));

View File

@ -81,7 +81,7 @@
<properties>
<checkstyle.version>2.17</checkstyle.version>
<de.flapdoodle.embed.mongo.version>2.0.0</de.flapdoodle.embed.mongo.version>
<de.flapdoodle.embed.mongo.version>3.0.0</de.flapdoodle.embed.mongo.version>
</properties>
</project>

View File

@ -43,8 +43,8 @@
</dependencies>
<properties>
<spring-kafka.version>2.5.8.RELEASE</spring-kafka.version>
<testcontainers-kafka.version>1.15.0</testcontainers-kafka.version>
<spring-kafka.version>2.7.2</spring-kafka.version>
<testcontainers-kafka.version>1.15.3</testcontainers-kafka.version>
</properties>
</project>

View File

@ -49,6 +49,7 @@
<spring-security-oauth2.version>2.2.1.RELEASE</spring-security-oauth2.version>
<spring-security-jwt.version>1.0.9.RELEASE</spring-security-jwt.version>
<jwks-rsa.version>0.3.0</jwks-rsa.version>
<spring-boot.version>2.4.7</spring-boot.version>
</properties>
</project>

View File

@ -1,4 +1,6 @@
spring.social.facebook.appId=1715784745414888
spring.social.facebook.appSecret=abefd6497e9cc01ad03be28509617bf0
spring.thymeleaf.cache=false
server.servlet.register-default-servlet=true
server.servlet.register-default-servlet=true
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true

View File

@ -226,7 +226,6 @@
<!-- testing -->
<httpcore.version>4.4.5</httpcore.version>
<httpclient.version>4.5.2</httpclient.version>
<rest-assured.version>3.0.7</rest-assured.version>
<net.sourceforge.htmlunit>2.23</net.sourceforge.htmlunit>
<!-- maven plugins -->
<maven-war-plugin.version>3.2.2</maven-war-plugin.version>

View File

@ -2,4 +2,6 @@ server.servlet.contextPath=/
spring.h2.console.enabled=true
logging.level.org.hibernate.SQL=info
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create
spring.jpa.hibernate.ddl-auto=create
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true

View File

@ -1,2 +1,4 @@
server.port=8082
server.servlet.context-path=/spring-rest-query-language
server.servlet.context-path=/spring-rest-query-language
spring.sql.init.mode=always
spring.jpa.defer-datasource-initialization=true

View File

@ -126,11 +126,6 @@
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
@ -180,7 +175,6 @@
<joda-time.version>2.9.6</joda-time.version>
<msg-simple.version>1.1</msg-simple.version>
<btf.version>1.2</btf.version>
<groovy.version>2.4.7</groovy.version>
<wiremock.version>2.4.1</wiremock.version>
<scribejava.version>2.5.3</scribejava.version>
</properties>

View File

@ -25,7 +25,7 @@ public class BasicPreemtiveAuthenticationLiveTest {
get(SVC_URL).then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("<form"), containsString("action=\"login\""));
.body(containsString("<form"), containsString("action=\"login\""));
}
@Test
@ -37,7 +37,7 @@ public class BasicPreemtiveAuthenticationLiveTest {
.then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("<form"), containsString("action=\"login\""));
.body(containsString("<form"), containsString("action=\"login\""));
}
@Test

View File

@ -35,6 +35,6 @@ public class DigestAuthenticationLiveTest {
.then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("This is the body of the sample view"));
.body(containsString("This is the body of the sample view"));
}
}

View File

@ -27,7 +27,7 @@ public class FormAuthenticationLiveTest {
get(SVC_URL).then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("<form"), containsString("action=\"perform_login\""));
.body(containsString("<form"), containsString("action=\"perform_login\""));
}
@Test
@ -40,7 +40,7 @@ public class FormAuthenticationLiveTest {
.then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("<form"), containsString("action=\"perform_login\""));
.body(containsString("<form"), containsString("action=\"perform_login\""));
}
@Test
@ -52,6 +52,6 @@ public class FormAuthenticationLiveTest {
.then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(isEmptyString());
.body(isEmptyString());
}
}

View File

@ -25,7 +25,7 @@ public class FormAutoconfAuthenticationLiveTest {
get(SVC_URL).then()
.assertThat()
.statusCode(HttpStatus.OK.value())
.content(containsString("<form"), containsString("action=\"login\""));
.body(containsString("<form"), containsString("action=\"login\""));
}
@Test