fix: use setter of logger for RetryTemplate (#2545)
This commit is contained in:
committed by
GitHub
parent
73b63de1e1
commit
67771717d0
@@ -16,43 +16,23 @@
|
||||
|
||||
package org.springframework.cloud.config.client;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import org.springframework.retry.support.RetryTemplate;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
|
||||
public final class RetryTemplateFactory {
|
||||
|
||||
private static final Field field;
|
||||
|
||||
static {
|
||||
field = ReflectionUtils.findField(RetryTemplate.class, "logger");
|
||||
if (field != null) {
|
||||
ReflectionUtils.makeAccessible(field);
|
||||
}
|
||||
}
|
||||
|
||||
private RetryTemplateFactory() {
|
||||
|
||||
}
|
||||
|
||||
public static RetryTemplate create(RetryProperties properties, Log log) {
|
||||
RetryTemplate retryTemplate = RetryTemplate.builder()
|
||||
return RetryTemplate.builder()
|
||||
.maxAttempts(properties.getMaxAttempts())
|
||||
.exponentialBackoff(properties.getInitialInterval(), properties.getMultiplier(),
|
||||
properties.getMaxInterval(), properties.isUseRandomPolicy())
|
||||
.withLogger(log)
|
||||
.build();
|
||||
try {
|
||||
field.set(retryTemplate, log);
|
||||
}
|
||||
catch (IllegalAccessException e) {
|
||||
if (log.isErrorEnabled()) {
|
||||
log.error("error setting retry log", e);
|
||||
}
|
||||
}
|
||||
return retryTemplate;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
<jgit.version>6.6.1.202309021850-r</jgit.version>
|
||||
<spring-vault.version>3.1.1</spring-vault.version>
|
||||
<spring-credhub.version>2.1.1.RELEASE</spring-credhub.version>
|
||||
<spring-retry.version>2.0.10</spring-retry.version>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
@@ -41,6 +42,11 @@
|
||||
<artifactId>spring-cloud-config-monitor</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.retry</groupId>
|
||||
<artifactId>spring-retry</artifactId>
|
||||
<version>${spring-retry.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.vault</groupId>
|
||||
<artifactId>spring-vault-core</artifactId>
|
||||
|
||||
Reference in New Issue
Block a user