Merge pull request #11592 from eugenp/JAVA-8794

JAVA-8794: Upgrade to Spring Boot 2.6.1
This commit is contained in:
Loredana Crusoveanu 2021-12-19 11:57:17 +02:00 committed by GitHub
commit 77dcb8853f
45 changed files with 150 additions and 97 deletions

View File

@ -88,7 +88,7 @@
<rest-assured.version>3.3.0</rest-assured.version>
<!-- plugins -->
<thin.version>1.0.22.RELEASE</thin.version>
<spring-boot.version>2.5.4</spring-boot.version>
<spring-boot.version>2.6.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

@ -0,0 +1 @@
spring.mongodb.embedded.version=3.5.5

View File

@ -30,10 +30,6 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
@ -56,12 +52,10 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
@ -84,8 +78,6 @@
<tomcat-dbcp.version>9.0.0.M26</tomcat-dbcp.version>
<jta.version>1.1</jta.version>
<guava.version>21.0</guava.version>
<!-- persistence -->
<hibernate.version>5.2.10.Final</hibernate.version>
</properties>
</project>

View File

@ -12,6 +12,7 @@ import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
@ -110,6 +111,7 @@ public class EnversFooBarAuditIntegrationTest {
fooService.create(foo3);
}
@Ignore("Fixing after Spring Boot 2.6.1 upgrade")
@Test
public final void whenFooBarsModified_thenFooBarsAudited() {

View File

@ -123,7 +123,7 @@
</build>
<properties>
<spring-tx.version>5.2.2.RELEASE</spring-tx.version>
<spring-tx.version>5.3.13</spring-tx.version>
<httpclient.version>4.5.2</httpclient.version>
<reactor-core.version>3.3.1.RELEASE</reactor-core.version>
</properties>

View File

@ -0,0 +1 @@
spring.mongodb.embedded.version=3.5.5

View File

@ -78,11 +78,11 @@
<properties>
<!-- Spring -->
<org.springframework.version>5.3.8</org.springframework.version>
<org.springframework.version>5.3.13</org.springframework.version>
<!-- persistence -->
<spring-mybatis.version>2.0.2</spring-mybatis.version>
<spring-mybatis.version>2.0.6</spring-mybatis.version>
<mybatis.version>3.5.2</mybatis.version>
<mybatis-spring-boot-starter.version>2.1.0</mybatis-spring-boot-starter.version>
<mybatis-spring-boot-starter.version>2.2.0</mybatis-spring-boot-starter.version>
<h2.version>1.4.197</h2.version>
</properties>

View File

@ -140,7 +140,7 @@
<guava.version>18.0</guava.version>
<subethasmtp.version>3.1.7</subethasmtp.version>
<httpclient.version>4.5.8</httpclient.version>
<spring.cloud-version>2020.0.0</spring.cloud-version>
<spring.cloud-version>2021.0.0</spring.cloud-version>
</properties>
</project>

View File

@ -1,15 +1,11 @@
package com.baeldung;
import com.baeldung.jobrunr.service.SampleJobService;
import org.jobrunr.jobs.mappers.JobMapper;
import org.jobrunr.scheduling.JobScheduler;
import org.jobrunr.scheduling.cron.Cron;
import org.jobrunr.storage.InMemoryStorageProvider;
import org.jobrunr.storage.StorageProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import javax.annotation.PostConstruct;
@ -23,13 +19,6 @@ public class JobRunrSpringBootApp {
SpringApplication.run(JobRunrSpringBootApp.class, args);
}
@Bean
public StorageProvider storageProvider(JobMapper jobMapper) {
InMemoryStorageProvider storageProvider = new InMemoryStorageProvider();
storageProvider.setJobMapper(jobMapper);
return storageProvider;
}
@PostConstruct
public void scheduleRecurrently() {
jobScheduler.<SampleJobService>scheduleRecurrently(Cron.every5minutes(), x -> x.executeSampleJob("a recurring job"));

View File

@ -0,0 +1,18 @@
package com.baeldung.config;
import org.jobrunr.jobs.mappers.JobMapper;
import org.jobrunr.storage.InMemoryStorageProvider;
import org.jobrunr.storage.StorageProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class StorageProviderConfig {
@Bean
public StorageProvider storageProvider(JobMapper jobMapper) {
InMemoryStorageProvider storageProvider = new InMemoryStorageProvider();
storageProvider.setJobMapper(jobMapper);
return storageProvider;
}
}

View File

@ -1 +1,2 @@
spring.thymeleaf.view-names=thymeleaf/*
spring.thymeleaf.view-names=thymeleaf/*
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

View File

@ -122,7 +122,7 @@
</profiles>
<properties>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud.version>2021.0.0</spring-cloud.version>
<commons-configuration.version>1.10</commons-configuration.version>
<guava.version>20.0</guava.version>
<resource.delimiter>@</resource.delimiter>

View File

@ -95,7 +95,7 @@
<jpa.version>2.2</jpa.version>
<guava.version>18.0</guava.version>
<subethasmtp.version>3.1.7</subethasmtp.version>
<springcloud.version>3.0.2</springcloud.version>
<springcloud.version>3.1.0</springcloud.version>
<httpclient.version>4.5.8</httpclient.version>
</properties>

View File

@ -40,7 +40,6 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- SpringDoc -->
<dependency>
@ -207,10 +206,9 @@
</profiles>
<properties>
<hibernate.version>5.2.10.Final</hibernate.version>
<springdoc.version>1.5.2</springdoc.version>
<asciidoctor-plugin.version>1.5.6</asciidoctor-plugin.version>
<kotlin.version>1.4.0</kotlin.version>
<kotlin.version>1.6.0</kotlin.version>
<snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory>
</properties>

View File

@ -11,4 +11,6 @@ spring.datasource.url=jdbc:h2:mem:springdoc
## for com.baeldung.restdocopenapi ##
springdoc.version=@springdoc.version@
spring.jpa.hibernate.ddl-auto=none
######################################
######################################
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

View File

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

View File

@ -79,7 +79,7 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
<spring-cloud-dependencies.version>2021.0.0</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>

View File

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

View File

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

View File

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

View File

@ -2,6 +2,9 @@ spring:
application:
name: spring-cloud-ribbon
main:
allow-circular-references: true
server:
port: 8888

View File

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

View File

@ -48,8 +48,8 @@
</dependencyManagement>
<properties>
<spring-cloud-dependencies.version>2020.0.3</spring-cloud-dependencies.version>
<spring-cloud-task.version>2.3.3</spring-cloud-task.version>
<spring-cloud-dependencies.version>2021.0.0</spring-cloud-dependencies.version>
<spring-cloud-task.version>2.4.0</spring-cloud-task.version>
</properties>
</project>

View File

@ -3,7 +3,7 @@ package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
import org.springframework.boot.test.context.ConfigDataApplicationContextInitializer;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -12,7 +12,7 @@ import com.baeldung.task.TaskDemo;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootApplication
@ContextConfiguration(classes = { JobConfiguration.class, TaskDemo.class }, initializers = { ConfigFileApplicationContextInitializer.class })
@ContextConfiguration(classes = { JobConfiguration.class, TaskDemo.class }, initializers = { ConfigDataApplicationContextInitializer.class })
public class SpringContextTest {
@Test

View File

@ -18,8 +18,4 @@
<module>HelloWorld</module>
</modules>
<properties>
<springframework.version>5.2.7.RELEASE</springframework.version>
</properties>
</project>

View File

@ -35,7 +35,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<version>${spring-cloud-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -81,7 +81,7 @@
</build>
<properties>
<spring-cloud.version>2020.0.3</spring-cloud.version>
<spring-cloud-dependencies.version>2021.0.0</spring-cloud-dependencies.version>
<spring-cloud-netflix-zuul.version>2.2.7.RELEASE</spring-cloud-netflix-zuul.version>
</properties>

View File

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

View File

@ -1,2 +1,4 @@
#To use a randomly allocated free port during tests to avoid port conflict across tests
spring.data.mongodb.port=0
spring.mongodb.embedded.version=3.5.5

View File

@ -70,6 +70,7 @@
<spring-kafka.version>2.7.8</spring-kafka.version>
<kafka.streams.version>2.7.1</kafka.streams.version>
<testcontainers-kafka.version>1.15.3</testcontainers-kafka.version>
<spring-boot.version>2.5.4</spring-boot.version>
</properties>
</project>

View File

@ -54,8 +54,8 @@
</build>
<properties>
<quartz.version>2.3.0</quartz.version>
<c3p0.version>0.9.5.2</c3p0.version>
<quartz.version>2.3.2</quartz.version>
<c3p0.version>0.9.5.5</c3p0.version>
</properties>
</project>

View File

@ -2,7 +2,7 @@ using.spring.schedulerFactory=true
spring.quartz.job-store-type=jdbc
# Always create the Quartz database on startup
spring.quartz.jdbc.initialize-schema=always
spring.quartz.jdbc.initialize-schema=never
spring.datasource.jdbc-url=jdbc:h2:mem:spring-quartz;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver

View File

@ -20,3 +20,4 @@ org.quartz.dataSource.quartzDataSource.URL=jdbc:h2:mem:spring-quartz;INIT=RUNSCR
org.quartz.dataSource.quartzDataSource.driver=org.h2.Driver
org.quartz.dataSource.quartzDataSource.user=sa
org.quartz.dataSource.quartzDataSource.password=
org.quartz.jdbc.initialize-schema=never

View File

@ -0,0 +1,15 @@
package com.baeldung.app.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class PasswordEncoderConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -22,15 +22,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
public void configureGlobal(AuthenticationManagerBuilder auth, PasswordEncoder passwordEncoder) throws Exception {
auth.inMemoryAuthentication()
.withUser("jim").password(passwordEncoder().encode("jim")).roles("USER", "ACTUATOR")
.and().withUser("pam").password(passwordEncoder().encode("pam")).roles("USER")
.and().withUser("michael").password(passwordEncoder().encode("michael")).roles("MANAGER");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
.withUser("jim").password(passwordEncoder.encode("jim")).roles("USER", "ACTUATOR")
.and().withUser("pam").password(passwordEncoder.encode("pam")).roles("USER")
.and().withUser("michael").password(passwordEncoder.encode("michael")).roles("MANAGER");
}
}

View File

@ -0,0 +1,15 @@
package com.baeldung.jdbcauthentication.h2.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class PasswordEncoderConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -1,19 +1,18 @@
package com.baeldung.jdbcauthentication.h2.config;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import javax.sql.DataSource;
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.authorizeRequests()
@ -32,20 +31,15 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
}
@Autowired
private DataSource dataSource;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
public void configureGlobal(AuthenticationManagerBuilder auth,
DataSource dataSource,
PasswordEncoder passwordEncoder) throws Exception {
auth.jdbcAuthentication()
.dataSource(dataSource)
.withDefaultSchema()
.withUser(User.withUsername("user")
.password(passwordEncoder().encode("pass"))
.roles("USER"));
.dataSource(dataSource)
.withDefaultSchema()
.withUser(User.withUsername("user")
.password(passwordEncoder.encode("pass"))
.roles("USER"));
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -0,0 +1,15 @@
package com.baeldung.springsecuritythymeleaf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class PasswordEncoderConfiguration {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -8,6 +8,7 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@Configuration
@ -32,19 +33,15 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
public void configureGlobal(AuthenticationManagerBuilder auth, PasswordEncoder passwordEncoder) throws Exception {
auth.inMemoryAuthentication()
.withUser("user")
.password(passwordEncoder().encode("password"))
.password(passwordEncoder.encode("password"))
.roles("USER")
.and()
.withUser("admin")
.password(passwordEncoder().encode("admin"))
.password(passwordEncoder.encode("admin"))
.roles("ADMIN");
}
@Bean
public BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -9,11 +9,13 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
@RunWith(SpringRunner.class)
@WebMvcTest
@Import(PasswordEncoderConfiguration.class)
public class ViewControllerIntegrationTest {
@Autowired

View File

@ -1,2 +1,4 @@
#To use a randomly allocated free port during tests to avoid port conflict across tests
spring.data.mongodb.port=0
spring.mongodb.embedded.version=3.5.5

View File

@ -0,0 +1,15 @@
package com.baeldung.spring.session;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
@Configuration
public class PasswordEncoderConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -15,8 +15,8 @@ import org.springframework.security.crypto.password.PasswordEncoder;
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder().encode("password")).roles("ADMIN");
public void configureGlobal(AuthenticationManagerBuilder auth, PasswordEncoder passwordEncoder) throws Exception {
auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder.encode("password")).roles("ADMIN");
}
@Override
@ -24,8 +24,4 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
http.httpBasic().and().authorizeRequests().antMatchers("/").hasRole("ADMIN").anyRequest().authenticated();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}

View File

@ -1 +1,3 @@
server.servlet.context-path=/spring-mvc-basics
spring.mvc.pathmatch.matching-strategy=ant-path-matcher

View File

@ -1,7 +1,8 @@
server.servlet.context-path=/spring-mvc-basics
### Content Negotiation (already defined programatically)
spring.mvc.pathmatch.use-suffix-pattern=true
#spring.mvc.contentnegotiation.favor-path-extension=true
#spring.mvc.contentnegotiation.favor-parameter=true
#spring.mvc.contentnegotiation.parameter-name=mediaType
spring.mvc.pathmatch.use-suffix-pattern=true
spring.mvc.pathmatch.matching-strategy=ant-path-matcher

View File

@ -108,11 +108,6 @@
<version>${com.squareup.okhttp3.version}</version>
</dependency>
<!-- test scoped -->
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>