From 32d481df26f4953a954b06d43941c50abd477aad Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 16 May 2016 12:44:46 +0100 Subject: [PATCH] Be defensive about classpath in eureka auto config Before this change we were seeing test failures in spring-cloud-netflix-eureka-server (but only with Spring Boot 1.4) caused by annotation processing explosion when RefreshScopeAutoConfiguration is not on the classpath. --- .../netflix/eureka/EurekaClientAutoConfiguration.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java index 175dab91..3557179f 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration.java @@ -70,7 +70,7 @@ import static org.springframework.cloud.commons.util.IdUtils.getDefaultInstanceI @ConditionalOnProperty(value = "eureka.client.enabled", matchIfMissing = true) @AutoConfigureBefore({ NoopDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class }) -@AutoConfigureAfter(RefreshAutoConfiguration.class) +@AutoConfigureAfter(name = "org.springframework.cloud.autoconfigure.RefreshAutoConfiguration") public class EurekaClientAutoConfiguration { @Value("${server.port:${SERVER_PORT:${PORT:8080}}}") @@ -147,7 +147,8 @@ public class EurekaClientAutoConfiguration { @ConditionalOnMissingBean(value = EurekaClient.class, search = SearchStrategy.CURRENT) public EurekaClient eurekaClient(ApplicationInfoManager manager, EurekaClientConfig config) { - return new CloudEurekaClient(manager, config, this.optionalArgs, this.context); + return new CloudEurekaClient(manager, config, this.optionalArgs, + this.context); } @Bean @@ -176,7 +177,8 @@ public class EurekaClientAutoConfiguration { public EurekaClient eurekaClient(ApplicationInfoManager manager, EurekaClientConfig config, EurekaInstanceConfig instance) { manager.getInfo(); // force initialization - return new CloudEurekaClient(manager, config, this.optionalArgs, this.context); + return new CloudEurekaClient(manager, config, this.optionalArgs, + this.context); } @Bean @@ -217,6 +219,7 @@ public class EurekaClientAutoConfiguration { static class MissingClass { } + @ConditionalOnClass(RefreshScope.class) @ConditionalOnMissingBean(RefreshAutoConfiguration.class) static class MissingScope { }