Refactor eager-load PR. Add docs.

This commit is contained in:
Olga Maciaszek-Sharma
2022-07-01 18:15:15 +02:00
parent d84c772b7e
commit 9b67e2fd8e
7 changed files with 26 additions and 31 deletions

View File

@@ -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());
}
}

View File

@@ -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);
}
}

View File

@@ -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.",

View File

@@ -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();
}
}
}