From 7fcd385d467cd89710d9a2dd528e9c586577913b Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 7 Nov 2016 11:51:39 -0700 Subject: [PATCH] Update ServiceRegistryAutoConfiguration to be skipped if actuator not on classpath. --- .../ServiceRegistryAutoConfiguration.java | 2 +- ...ServiceRegistryAutoConfigurationTests.java | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java index 7fbf7d72..0454733a 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfiguration.java @@ -12,13 +12,13 @@ import org.springframework.context.annotation.Configuration; * @author Spencer Gibb */ @ConditionalOnBean(ServiceRegistry.class) +@ConditionalOnClass(Endpoint.class) @Configuration public class ServiceRegistryAutoConfiguration { @Autowired(required = false) private Registration registration; - @ConditionalOnClass(Endpoint.class) @Bean public ServiceRegistryEndpoint serviceRegistryEndpoint(ServiceRegistry serviceRegistry) { ServiceRegistryEndpoint endpoint = new ServiceRegistryEndpoint(serviceRegistry); diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java new file mode 100644 index 00000000..9602c314 --- /dev/null +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/ServiceRegistryAutoConfigurationTests.java @@ -0,0 +1,36 @@ +package org.springframework.cloud.client.serviceregistry; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.cloud.ClassPathExclusions; +import org.springframework.cloud.FilteredClassPathRunner; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Configuration; + +import static org.assertj.core.api.Assertions.fail; + +/** + * @author Spencer Gibb + */ +@RunWith(FilteredClassPathRunner.class) +@ClassPathExclusions({"spring-boot-actuator-*.jar", "spring-boot-starter-actuator-*.jar"}) +public class ServiceRegistryAutoConfigurationTests { + + @Test + public void runsWithoutActuator() { + ConfigurableApplicationContext context = new SpringApplicationBuilder(TestConfig.class).web(false).run(); + try { + context.getBean("serviceRegistryEndpoint"); + fail("found a bean that shouldn't be there"); + } catch (NoSuchBeanDefinitionException e) { + // success + } + } + + @Configuration + protected static class TestConfig { + + } +}