From 614ec44c0406f755ca6b15f342a5f6bcfeab1616 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Mon, 26 Jan 2015 22:01:21 -0700 Subject: [PATCH] update sidecare enabled property, make eureka portion of config conditional on eureka on classpath so other DiscoveryClient impls can use it. --- .../netflix/sidecar/SidecarConfiguration.java | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/spring-cloud-netflix-sidecar/src/main/java/org/springframework/cloud/netflix/sidecar/SidecarConfiguration.java b/spring-cloud-netflix-sidecar/src/main/java/org/springframework/cloud/netflix/sidecar/SidecarConfiguration.java index e3f172b1..de587bf7 100644 --- a/spring-cloud-netflix-sidecar/src/main/java/org/springframework/cloud/netflix/sidecar/SidecarConfiguration.java +++ b/spring-cloud-netflix-sidecar/src/main/java/org/springframework/cloud/netflix/sidecar/SidecarConfiguration.java @@ -16,42 +16,53 @@ package org.springframework.cloud.netflix.sidecar; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +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.eureka.EurekaInstanceConfigBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.netflix.discovery.EurekaClientConfig; + /** * @author Spencer Gibb */ @Configuration @EnableConfigurationProperties -@ConditionalOnProperty(value = "sidecar.enabled", matchIfMissing = true) +@ConditionalOnProperty(value = "spring.cloud.netflix.sidecar.enabled", matchIfMissing = true) public class SidecarConfiguration { - @Value("${server.port:${SERVER_PORT:${PORT:8080}}}") - private int serverPort = 8080; - @Bean public SidecarProperties sidecarProperties() { return new SidecarProperties(); } - @Bean - public EurekaInstanceConfigBean eurekaInstanceConfigBean() { - EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(); - int port = sidecarProperties().getPort(); - config.setNonSecurePort(port); - String scheme = config.getSecurePortEnabled() ? "https" : "http"; - config.setStatusPageUrl(scheme + "://" + config.getHostname() + ":" - + this.serverPort + config.getStatusPageUrlPath()); - config.setHealthCheckUrl(scheme + "://" + config.getHostname() + ":" - + this.serverPort + config.getHealthCheckUrlPath()); - config.setHomePageUrl(scheme + "://" + config.getHostname() + ":" + port - + config.getHomePageUrlPath()); - return config; + @Configuration + @ConditionalOnClass(EurekaClientConfig.class) + protected static class EurekaInstanceConfigBeanConfiguration { + @Autowired + private SidecarProperties sidecarProperties; + + @Value("${server.port:${SERVER_PORT:${PORT:8080}}}") + private int serverPort = 8080; + + @Bean + public EurekaInstanceConfigBean eurekaInstanceConfigBean() { + EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(); + int port = sidecarProperties.getPort(); + config.setNonSecurePort(port); + String scheme = config.getSecurePortEnabled() ? "https" : "http"; + config.setStatusPageUrl(scheme + "://" + config.getHostname() + ":" + + this.serverPort + config.getStatusPageUrlPath()); + config.setHealthCheckUrl(scheme + "://" + config.getHostname() + ":" + + this.serverPort + config.getHealthCheckUrlPath()); + config.setHomePageUrl(scheme + "://" + config.getHostname() + ":" + port + + config.getHomePageUrlPath()); + return config; + } } @Bean