diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc
index dfb2a311..1beb1d7d 100644
--- a/docs/src/main/asciidoc/_configprops.adoc
+++ b/docs/src/main/asciidoc/_configprops.adoc
@@ -31,6 +31,7 @@
|spring.cloud.loadbalancer.cache.ttl | `+++35s+++` | Time To Live - time counted from writing of the record, after which cache entries are expired, expressed as a {@link Duration}. The property {@link String} has to be in keeping with the appropriate syntax as specified in Spring Boot StringToDurationConverter. @see StringToDurationConverter.java
|spring.cloud.loadbalancer.clients | |
|spring.cloud.loadbalancer.configurations | `+++default+++` | Enables a predefined LoadBalancer configuration.
+|spring.cloud.loadbalancer.eager-load.clients | | Names of the clients.
|spring.cloud.loadbalancer.enabled | `+++true+++` | Enables Spring Cloud LoadBalancer.
|spring.cloud.loadbalancer.health-check.initial-delay | `+++0+++` | Initial delay value for the HealthCheck scheduler.
|spring.cloud.loadbalancer.health-check.interval | `+++25s+++` | Interval for rerunning the HealthCheck scheduler.
@@ -59,8 +60,6 @@
|spring.cloud.loadbalancer.sticky-session.instance-id-cookie-name | `+++sc-lb-instance-id+++` | The name of the cookie holding the preferred instance id.
|spring.cloud.loadbalancer.x-forwarded.enabled | `+++false+++` | To Enable X-Forwarded Headers.
|spring.cloud.loadbalancer.zone | | Spring Cloud LoadBalancer zone.
-|spring.cloud.loadbalancer.eager-load.enabled| | Enables eager load of client context.
-|spring.cloud.loadbalancer.eager-load.clients | |
|spring.cloud.refresh.additional-property-sources-to-retain | | Additional property sources to retain during a refresh. Typically only system property sources are retained. This property allows property sources, such as property sources created by EnvironmentPostProcessors to be retained as well.
|spring.cloud.refresh.enabled | `+++true+++` | Enables autoconfiguration for the refresh scope and associated features.
|spring.cloud.refresh.extra-refreshable | `+++true+++` | Additional class names for beans to post process into refresh scope.
diff --git a/docs/src/main/asciidoc/spring-cloud-commons.adoc b/docs/src/main/asciidoc/spring-cloud-commons.adoc
index fbd29e52..b4a9ffda 100644
--- a/docs/src/main/asciidoc/spring-cloud-commons.adoc
+++ b/docs/src/main/asciidoc/spring-cloud-commons.adoc
@@ -853,6 +853,12 @@ that retrieves available instances from Service Discovery using a <>.
diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadbalancerEagerLoadProperties.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerEagerLoadProperties.java
similarity index 95%
rename from spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadbalancerEagerLoadProperties.java
rename to spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerEagerLoadProperties.java
index eb75753e..d99c0d8e 100644
--- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadbalancerEagerLoadProperties.java
+++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerEagerLoadProperties.java
@@ -25,7 +25,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Andrii Bohutskyi
*/
@ConfigurationProperties("spring.cloud.loadbalancer.eager-load")
-public class LoadbalancerEagerLoadProperties {
+public class LoadBalancerEagerLoadProperties {
private List clients = new ArrayList<>();
@@ -36,4 +36,5 @@ public class LoadbalancerEagerLoadProperties {
public void setClients(List clients) {
this.clients = clients;
}
+
}
diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerAutoConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerAutoConfiguration.java
index 14649453..c4f4eeed 100644
--- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerAutoConfiguration.java
+++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerAutoConfiguration.java
@@ -25,7 +25,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties;
-import org.springframework.cloud.client.loadbalancer.LoadbalancerEagerLoadProperties;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerEagerLoadProperties;
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration;
import org.springframework.cloud.client.loadbalancer.reactive.ReactorLoadBalancerClientAutoConfiguration;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification;
@@ -42,7 +42,7 @@ import org.springframework.core.env.Environment;
*/
@Configuration(proxyBeanMethods = false)
@LoadBalancerClients
-@EnableConfigurationProperties(LoadBalancerClientsProperties.class)
+@EnableConfigurationProperties({ LoadBalancerClientsProperties.class, LoadBalancerEagerLoadProperties.class })
@AutoConfigureBefore({ ReactorLoadBalancerClientAutoConfiguration.class,
LoadBalancerBeanPostProcessorAutoConfiguration.class })
@ConditionalOnProperty(value = "spring.cloud.loadbalancer.enabled", havingValue = "true", matchIfMissing = true)
@@ -69,9 +69,9 @@ public class LoadBalancerAutoConfiguration {
}
@Bean
- @ConditionalOnProperty(value = "spring.cloud.loadbalancer.eager-load.enabled", havingValue = "true")
public LoadBalancerEagerContextInitializer loadBalancerEagerContextInitializer(
- LoadBalancerClientFactory clientFactory, LoadbalancerEagerLoadProperties properties) {
+ LoadBalancerClientFactory clientFactory, LoadBalancerEagerLoadProperties properties) {
return new LoadBalancerEagerContextInitializer(clientFactory, properties.getClients());
}
+
}
diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializer.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializer.java
index 50f962c5..7a72cb68 100644
--- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializer.java
+++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializer.java
@@ -16,11 +16,11 @@
package org.springframework.cloud.loadbalancer.support;
+import java.util.List;
+
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
-import java.util.List;
-
/**
* @author Andrii Bohutskyi
*/
@@ -37,11 +37,7 @@ public class LoadBalancerEagerContextInitializer implements ApplicationListener<
@Override
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
- warnUpFunction();
- }
-
- private void warnUpFunction() {
- this.serviceNames.forEach(factory::getInstance);
+ serviceNames.forEach(factory::getInstance);
}
}
diff --git a/spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index c8b3fe85..302b4228 100644
--- a/spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -34,11 +34,6 @@
"description": "Enables Spring Cloud LoadBalancer.",
"type": "java.lang.Boolean"
},
- {
- "name": "spring.cloud.loadbalancer.eager-load.enabled",
- "description": "Enables eager load of clients context.",
- "type": "java.lang.Boolean"
- },
{
"name": "spring.cloud.loadbalancer.eager-load.clients",
"description": "Names of the clients.",
diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializerTest.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializerTest.java
index 2b30ee57..67ebc080 100644
--- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializerTest.java
+++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/support/LoadBalancerEagerContextInitializerTest.java
@@ -16,29 +16,25 @@
package org.springframework.cloud.loadbalancer.support;
+import java.util.Collections;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import java.util.Collections;
-import java.util.concurrent.atomic.AtomicInteger;
import static org.assertj.core.api.Assertions.assertThat;
/**
* @author Andrii Bohutskyi
*/
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(classes = {
- LoadBalancerAutoConfiguration.class,
- LoadBalancerEagerContextInitializerTest.SomeTestConfig.class
-})
+@SpringBootTest(
+ classes = { LoadBalancerAutoConfiguration.class, LoadBalancerEagerContextInitializerTest.SomeTestConfig.class })
class LoadBalancerEagerContextInitializerTest {
private static final String LOAD_BALANCER = "testLoadBalancer";
@@ -58,7 +54,7 @@ class LoadBalancerEagerContextInitializerTest {
static class SomeTestConfig {
@Bean
- public LoadBalancerEagerContextInitializer loadBalancerEagerContextInitializer(
+ public LoadBalancerEagerContextInitializer testLoadBalancerEagerContextInitializer(
LoadBalancerClientFactory factory) {
return new LoadBalancerEagerContextInitializer(factory, Collections.singletonList(LOAD_BALANCER));
}
@@ -78,12 +74,14 @@ class LoadBalancerEagerContextInitializerTest {
private static final AtomicInteger COUNT = new AtomicInteger();
- public LoadBalancerCounter() {
+ LoadBalancerCounter() {
COUNT.incrementAndGet();
}
public static int getCount() {
return COUNT.get();
}
+
}
+
}