diff --git a/pom.xml b/pom.xml index 4ec0d59d..9acd9f4b 100644 --- a/pom.xml +++ b/pom.xml @@ -97,6 +97,7 @@ spring-cloud-kubernetes-integration-tests docs spring-cloud-kubernetes-loadbalancer + spring-cloud-starter-kubernetes-loadbalancer diff --git a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java index 227d4f63..e1732219 100644 --- a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java +++ b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerAutoConfiguration.java @@ -16,6 +16,7 @@ package org.springframework.cloud.kubernetes.loadbalancer; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryProperties; import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients; @@ -25,9 +26,10 @@ import org.springframework.context.annotation.Configuration; /** * @author Piotr Minkowski */ -@Configuration -@EnableConfigurationProperties -@LoadBalancerClients(defaultConfiguration = KubernetesClientConfiguration.class) +@Configuration(proxyBeanMethods = false) +@EnableConfigurationProperties(KubernetesLoadBalancerProperties.class) +@ConditionalOnProperty("spring.cloud.kubernetes.loadbalancer.enabled") +@LoadBalancerClients(defaultConfiguration = KubernetesLoadBalancerClientConfiguration.class) public class KubernetesLoadBalancerAutoConfiguration { @Bean diff --git a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesClientConfiguration.java b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerClientConfiguration.java similarity index 96% rename from spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesClientConfiguration.java rename to spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerClientConfiguration.java index c16c9fe8..adfb8730 100644 --- a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesClientConfiguration.java +++ b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesLoadBalancerClientConfiguration.java @@ -28,7 +28,7 @@ import org.springframework.core.env.Environment; * * @author Piotr Minkowski */ -public class KubernetesClientConfiguration { +public class KubernetesLoadBalancerClientConfiguration { @Bean @ConditionalOnProperty(name = "spring.cloud.kubernetes.loadbalancer.mode", diff --git a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceInstanceMapper.java b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceInstanceMapper.java index 2ad20252..c4826323 100644 --- a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceInstanceMapper.java +++ b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceInstanceMapper.java @@ -35,10 +35,6 @@ import org.springframework.cloud.kubernetes.discovery.KubernetesServiceInstance; */ public class KubernetesServiceInstanceMapper { - private static final String DSL = "//"; - - private static final String COLON = ":"; - private final KubernetesLoadBalancerProperties properties; private final KubernetesDiscoveryProperties discoveryProperties; diff --git a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServicesListSupplier.java b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServicesListSupplier.java index bf807394..463fc9ad 100644 --- a/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServicesListSupplier.java +++ b/spring-cloud-kubernetes-loadbalancer/src/main/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServicesListSupplier.java @@ -76,7 +76,7 @@ public class KubernetesServicesListSupplier implements ServiceInstanceListSuppli result.add(mapper.map(service)); } } - return Flux.just(result); + return Flux.defer(() -> Flux.just(result)); } } diff --git a/spring-cloud-kubernetes-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceListSupplierTests.java b/spring-cloud-kubernetes-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceListSupplierTests.java index a7059876..b0ed844c 100644 --- a/spring-cloud-kubernetes-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceListSupplierTests.java +++ b/spring-cloud-kubernetes-loadbalancer/src/test/java/org/springframework/cloud/kubernetes/loadbalancer/KubernetesServiceListSupplierTests.java @@ -110,7 +110,7 @@ public class KubernetesServiceListSupplierTests { private Service buildService(String name, int port) { return new ServiceBuilder().withNewMetadata().withName(name).endMetadata() - .withNewSpec().addNewPort().withPort(8080).endPort().endSpec().build(); + .withNewSpec().addNewPort().withPort(port).endPort().endSpec().build(); } } diff --git a/spring-cloud-starter-kubernetes-all/pom.xml b/spring-cloud-starter-kubernetes-all/pom.xml index fd9567f0..a3f3fc73 100644 --- a/spring-cloud-starter-kubernetes-all/pom.xml +++ b/spring-cloud-starter-kubernetes-all/pom.xml @@ -48,7 +48,7 @@ org.springframework.cloud - spring-cloud-starter-loadbalancer + spring-cloud-kubernetes-loadbalancer diff --git a/spring-cloud-starter-kubernetes-loadbalancer/pom.xml b/spring-cloud-starter-kubernetes-loadbalancer/pom.xml new file mode 100644 index 00000000..93c561ca --- /dev/null +++ b/spring-cloud-starter-kubernetes-loadbalancer/pom.xml @@ -0,0 +1,26 @@ + + + + spring-cloud-kubernetes + org.springframework.cloud + 2.0.0-SNAPSHOT + + 4.0.0 + + spring-cloud-starter-kubernetes-loadbalancer + Spring Cloud Kubernetes :: Starter :: LoadBalancer + + + + org.springframework.cloud + spring-cloud-kubernetes-core + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + +