JAVA-18602: update spring-retry version (#13637)
* java-18602 update spring-retry version * java-18602 spring-scheduling, improve test coverage * Replace usage of deprecated function in springframework-util with apache-common-lang library
This commit is contained in:
parent
6a2d723155
commit
19eb14d09d
|
@ -23,6 +23,7 @@
|
|||
<dependency>
|
||||
<groupId>org.springframework.retry</groupId>
|
||||
<artifactId>spring-retry</artifactId>
|
||||
<version>${spring-retry.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
@ -45,6 +46,7 @@
|
|||
</dependencies>
|
||||
|
||||
<properties>
|
||||
<spring-retry.version>2.0.0</spring-retry.version>
|
||||
<annotation-api.version>1.3.2</annotation-api.version>
|
||||
</properties>
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
|
|||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.task.SimpleAsyncTaskExecutor;
|
||||
import org.springframework.scheduling.annotation.AsyncConfigurer;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.baeldung.springretry;
|
|||
|
||||
import java.sql.SQLException;
|
||||
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.retry.annotation.Backoff;
|
||||
import org.springframework.retry.annotation.Recover;
|
||||
import org.springframework.retry.annotation.Retryable;
|
||||
|
@ -13,13 +12,13 @@ public interface MyService {
|
|||
@Retryable
|
||||
void retryService();
|
||||
|
||||
@Retryable(value = SQLException.class)
|
||||
@Retryable(retryFor = SQLException.class)
|
||||
void retryServiceWithRecovery(String sql) throws SQLException;
|
||||
|
||||
@Retryable(value = { SQLException.class }, maxAttempts = 2, backoff = @Backoff(delay = 100))
|
||||
@Retryable(retryFor = SQLException.class , maxAttempts = 2, backoff = @Backoff(delay = 100))
|
||||
void retryServiceWithCustomization(String sql) throws SQLException;
|
||||
|
||||
@Retryable( value = SQLException.class, maxAttemptsExpression = "${retry.maxAttempts}",
|
||||
@Retryable(retryFor = SQLException.class, maxAttemptsExpression = "${retry.maxAttempts}",
|
||||
backoff = @Backoff(delayExpression = "${retry.maxDelay}"))
|
||||
void retryServiceWithExternalConfiguration(String sql) throws SQLException;
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import java.sql.SQLException;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@Service
|
||||
public class MyServiceImpl implements MyService {
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
package com.baeldung.springretry;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||
import org.springframework.retry.support.RetryTemplate;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
@ -14,8 +20,10 @@ import java.sql.SQLException;
|
|||
@ContextConfiguration(classes = AppConfig.class, loader = AnnotationConfigContextLoader.class)
|
||||
public class SpringRetryIntegrationTest {
|
||||
|
||||
@Autowired
|
||||
@SpyBean
|
||||
private MyService myService;
|
||||
@Value("${retry.maxAttempts}")
|
||||
private String maxAttempts;
|
||||
|
||||
@Autowired
|
||||
private RetryTemplate retryTemplate;
|
||||
|
@ -33,11 +41,13 @@ public class SpringRetryIntegrationTest {
|
|||
@Test
|
||||
public void givenRetryServiceWithCustomization_whenCallWithException_thenRetryRecover() throws SQLException {
|
||||
myService.retryServiceWithCustomization(null);
|
||||
verify(myService, times(Integer.parseInt(maxAttempts))).retryServiceWithCustomization(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenRetryServiceWithExternalConfiguration_whenCallWithException_thenRetryRecover() throws SQLException {
|
||||
myService.retryServiceWithExternalConfiguration(null);
|
||||
verify(myService, times(Integer.parseInt(maxAttempts))).retryServiceWithExternalConfiguration(any());
|
||||
}
|
||||
|
||||
@Test(expected = RuntimeException.class)
|
||||
|
|
Loading…
Reference in New Issue