polish

parent 113b49e2
package org.springframework.cloud.netflix.ribbon.eureka; package org.springframework.cloud.netflix.ribbon.eureka;
import org.springframework.context.annotation.Conditional;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; import java.lang.annotation.Target;
/** import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
* @author Igor Kryvenko 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}) @Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Conditional(RibbonEurekaAutoConfiguration.OnRibbonAndEurekaEnabledCondition.class) @Conditional(ConditionalOnRibbonAndEurekaEnabled.OnRibbonAndEurekaEnabledCondition.class)
public @interface ConditionalOnRibbonAndEurekaEnabled { 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 {}
}
} }
...@@ -17,19 +17,11 @@ ...@@ -17,19 +17,11 @@
package org.springframework.cloud.netflix.ribbon.eureka; package org.springframework.cloud.netflix.ribbon.eureka;
import org.springframework.boot.autoconfigure.AutoConfigureAfter; 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.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration; import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
import org.springframework.cloud.netflix.ribbon.RibbonClients; import org.springframework.cloud.netflix.ribbon.RibbonClients;
import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
import org.springframework.context.annotation.Configuration; 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 * Spring configuration for configuring Ribbon defaults to be Eureka based
* if Eureka client is enabled * if Eureka client is enabled
...@@ -44,21 +36,5 @@ import com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList; ...@@ -44,21 +36,5 @@ import com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList;
@RibbonClients(defaultConfiguration = EurekaRibbonClientConfiguration.class) @RibbonClients(defaultConfiguration = EurekaRibbonClientConfiguration.class)
public class RibbonEurekaAutoConfiguration { 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 {}
}
} }
...@@ -20,15 +20,14 @@ import org.junit.After; ...@@ -20,15 +20,14 @@ import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.springframework.boot.Banner.Mode; import org.springframework.boot.Banner.Mode;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration; import org.springframework.cloud.autoconfigure.RefreshAutoConfiguration;
import org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration.ConditionalOnRefreshScope; import org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration.ConditionalOnRefreshScope;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import static org.junit.Assert.assertEquals; import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertFalse; import static org.springframework.boot.WebApplicationType.NONE;
import static org.junit.Assert.assertNotNull;
/** /**
* @author Dave Syer * @author Dave Syer
...@@ -36,7 +35,7 @@ import static org.junit.Assert.assertNotNull; ...@@ -36,7 +35,7 @@ import static org.junit.Assert.assertNotNull;
*/ */
public class ConditionalOnRefreshScopeTests { public class ConditionalOnRefreshScopeTests {
private ConfigurableApplicationContext context; private AssertableApplicationContext context;
@After @After
public void close() { public void close() {
...@@ -47,18 +46,18 @@ public class ConditionalOnRefreshScopeTests { ...@@ -47,18 +46,18 @@ public class ConditionalOnRefreshScopeTests {
@Test @Test
public void refreshScopeIncluded() { public void refreshScopeIncluded() {
this.context = new SpringApplicationBuilder(RefreshAutoConfiguration.class, this.context = AssertableApplicationContext.get(() -> new SpringApplicationBuilder(RefreshAutoConfiguration.class,
Beans.class).web(false).bannerMode(Mode.OFF).run(); Beans.class).web(NONE).bannerMode(Mode.OFF).run());
assertNotNull(this.context.getBean( assertThat(this.context).hasSingleBean(
org.springframework.cloud.context.scope.refresh.RefreshScope.class)); org.springframework.cloud.context.scope.refresh.RefreshScope.class);
assertEquals("foo", this.context.getBean("foo")); assertThat(this.context).getBean("foo").isEqualTo("foo");
} }
@Test @Test
public void refreshScopeNotIncluded() { public void refreshScopeNotIncluded() {
this.context = new SpringApplicationBuilder(Beans.class).web(false) this.context = AssertableApplicationContext.get(() -> new SpringApplicationBuilder(Beans.class).web(NONE)
.bannerMode(Mode.OFF).run(); .bannerMode(Mode.OFF).run());
assertFalse(this.context.containsBean("foo")); assertThat(this.context).doesNotHaveBean("foo");
} }
@Configuration @Configuration
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment