From db66e1c3d47902179efd795f2cd24b38a331253b Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 8 Jan 2018 13:14:25 -0500 Subject: [PATCH] polish --- .../ConditionalOnRibbonAndEurekaEnabled.java | 34 +++++++++++++++---- .../eureka/RibbonEurekaAutoConfiguration.java | 24 ------------- .../ConditionalOnRefreshScopeTests.java | 25 +++++++------- 3 files changed, 40 insertions(+), 43 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/ConditionalOnRibbonAndEurekaEnabled.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/ConditionalOnRibbonAndEurekaEnabled.java index 96dbfc4a..5df8b539 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/ConditionalOnRibbonAndEurekaEnabled.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/ConditionalOnRibbonAndEurekaEnabled.java @@ -1,20 +1,42 @@ package org.springframework.cloud.netflix.ribbon.eureka; -import org.springframework.context.annotation.Conditional; - import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -/** - * @author Igor Kryvenko - */ +import org.springframework.boot.autoconfigure.condition.AllNestedConditions; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.netflix.ribbon.SpringClientFactory; +import org.springframework.context.annotation.Conditional; + +import com.netflix.discovery.EurekaClient; +import com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList; + @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented -@Conditional(RibbonEurekaAutoConfiguration.OnRibbonAndEurekaEnabledCondition.class) +@Conditional(ConditionalOnRibbonAndEurekaEnabled.OnRibbonAndEurekaEnabledCondition.class) public @interface ConditionalOnRibbonAndEurekaEnabled { + class OnRibbonAndEurekaEnabledCondition extends AllNestedConditions { + + public OnRibbonAndEurekaEnabledCondition() { + super(ConfigurationPhase.REGISTER_BEAN); + } + + @ConditionalOnClass(DiscoveryEnabledNIWSServerList.class) + @ConditionalOnBean(SpringClientFactory.class) + @ConditionalOnProperty(value = "ribbon.eureka.enabled", matchIfMissing = true) + static class Defaults {} + + @ConditionalOnBean(EurekaClient.class) + static class EurekaBeans {} + + @ConditionalOnProperty(value = "eureka.client.enabled", matchIfMissing = true) + static class OnEurekaClientEnabled {} + } } diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/RibbonEurekaAutoConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/RibbonEurekaAutoConfiguration.java index 25086e16..0419690a 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/RibbonEurekaAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/ribbon/eureka/RibbonEurekaAutoConfiguration.java @@ -17,19 +17,11 @@ package org.springframework.cloud.netflix.ribbon.eureka; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.AllNestedConditions; -import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonClients; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.context.annotation.Configuration; -import com.netflix.discovery.EurekaClient; -import com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList; - /** * Spring configuration for configuring Ribbon defaults to be Eureka based * if Eureka client is enabled @@ -44,21 +36,5 @@ import com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList; @RibbonClients(defaultConfiguration = EurekaRibbonClientConfiguration.class) public class RibbonEurekaAutoConfiguration { - static class OnRibbonAndEurekaEnabledCondition extends AllNestedConditions { - public OnRibbonAndEurekaEnabledCondition() { - super(ConfigurationPhase.REGISTER_BEAN); - } - - @ConditionalOnClass(DiscoveryEnabledNIWSServerList.class) - @ConditionalOnBean(SpringClientFactory.class) - @ConditionalOnProperty(value = "ribbon.eureka.enabled", matchIfMissing = true) - static class Defaults {} - - @ConditionalOnBean(EurekaClient.class) - static class EurekaBeans {} - - @ConditionalOnProperty(value = "eureka.client.enabled", matchIfMissing = true) - static class OnEurekaClientEnabled {} - } } diff --git a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java index a1f70560..57f4bcf6 100644 --- a/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java +++ b/spring-cloud-netflix-eureka-client/src/test/java/org/springframework/cloud/netflix/eureka/ConditionalOnRefreshScopeTests.java @@ -20,15 +20,14 @@ import org.junit.After; import org.junit.Test; import org.springframework.boot.Banner.Mode; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.test.context.assertj.AssertableApplicationContext; import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration; import org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration.ConditionalOnRefreshScope; -import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.boot.WebApplicationType.NONE; /** * @author Dave Syer @@ -36,7 +35,7 @@ import static org.junit.Assert.assertNotNull; */ public class ConditionalOnRefreshScopeTests { - private ConfigurableApplicationContext context; + private AssertableApplicationContext context; @After public void close() { @@ -47,18 +46,18 @@ public class ConditionalOnRefreshScopeTests { @Test public void refreshScopeIncluded() { - this.context = new SpringApplicationBuilder(RefreshAutoConfiguration.class, - Beans.class).web(false).bannerMode(Mode.OFF).run(); - assertNotNull(this.context.getBean( - org.springframework.cloud.context.scope.refresh.RefreshScope.class)); - assertEquals("foo", this.context.getBean("foo")); + this.context = AssertableApplicationContext.get(() -> new SpringApplicationBuilder(RefreshAutoConfiguration.class, + Beans.class).web(NONE).bannerMode(Mode.OFF).run()); + assertThat(this.context).hasSingleBean( + org.springframework.cloud.context.scope.refresh.RefreshScope.class); + assertThat(this.context).getBean("foo").isEqualTo("foo"); } @Test public void refreshScopeNotIncluded() { - this.context = new SpringApplicationBuilder(Beans.class).web(false) - .bannerMode(Mode.OFF).run(); - assertFalse(this.context.containsBean("foo")); + this.context = AssertableApplicationContext.get(() -> new SpringApplicationBuilder(Beans.class).web(NONE) + .bannerMode(Mode.OFF).run()); + assertThat(this.context).doesNotHaveBean("foo"); } @Configuration