Update ServiceRegistryAutoConfiguration to be skipped if actuator not on classpath.

This commit is contained in:
Spencer Gibb
2016-11-07 11:51:39 -07:00
parent bf4b6e3293
commit 7fcd385d46
2 changed files with 37 additions and 1 deletions

View File

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

View File

@@ -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 {
}
}