added @ConditionalOnConsulEnabled
fixes gh-93
This commit is contained in:
@@ -19,7 +19,6 @@ package org.springframework.cloud.consul.bus;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
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.bus.BusAutoConfiguration;
|
||||
@@ -33,15 +32,13 @@ import org.springframework.integration.support.json.Jackson2JsonObjectMapper;
|
||||
import org.springframework.messaging.MessageChannel;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
/**
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(ConsulClient.class)
|
||||
@ConditionalOnBean(ConsulClient.class)
|
||||
@ConditionalOnConsulEnabled
|
||||
@ConditionalOnProperty(value = "spring.cloud.consul.bus.enabled", matchIfMissing = true)
|
||||
@AutoConfigureAfter(BusAutoConfiguration.class)
|
||||
@EnableScheduling
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.ecwid.consul.v1.ConsulClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.consul.ConditionalOnConsulEnabled;
|
||||
import org.springframework.cloud.consul.ConsulAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -29,21 +30,25 @@ import org.springframework.context.annotation.Import;
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
@Configuration
|
||||
@Import(ConsulAutoConfiguration.class)
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnProperty(name = "spring.cloud.consul.config.enabled", matchIfMissing = true)
|
||||
@ConditionalOnConsulEnabled
|
||||
public class ConsulConfigBootstrapConfiguration {
|
||||
|
||||
@Autowired
|
||||
private ConsulClient consul;
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@Import(ConsulAutoConfiguration.class)
|
||||
@ConditionalOnProperty(name = "spring.cloud.consul.config.enabled", matchIfMissing = true)
|
||||
protected static class ConsulPropertySourceConfiguration {
|
||||
@Autowired
|
||||
private ConsulClient consul;
|
||||
|
||||
@Bean
|
||||
public ConsulConfigProperties consulConfigProperties() {
|
||||
return new ConsulConfigProperties();
|
||||
}
|
||||
@Bean
|
||||
public ConsulConfigProperties consulConfigProperties() {
|
||||
return new ConsulConfigProperties();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ConsulPropertySourceLocator consulPropertySourceLocator() {
|
||||
return new ConsulPropertySourceLocator(consul, consulConfigProperties());
|
||||
@Bean
|
||||
public ConsulPropertySourceLocator consulPropertySourceLocator() {
|
||||
return new ConsulPropertySourceLocator(consul, consulConfigProperties());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright 2013-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.consul;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
import org.springframework.boot.autoconfigure.condition.AllNestedConditions;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Conditional;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE, ElementType.METHOD})
|
||||
@Conditional(ConditionalOnConsulEnabled.OnConsulEnabledCondition.class)
|
||||
public @interface ConditionalOnConsulEnabled {
|
||||
|
||||
class OnConsulEnabledCondition extends AllNestedConditions {
|
||||
|
||||
public OnConsulEnabledCondition() {
|
||||
super(ConfigurationPhase.REGISTER_BEAN);
|
||||
}
|
||||
|
||||
@ConditionalOnProperty(value = "spring.cloud.consul.enabled", matchIfMissing = true)
|
||||
static class FoundProperty {}
|
||||
|
||||
@ConditionalOnClass(ConsulClient.class)
|
||||
static class FoundClass {}
|
||||
}
|
||||
}
|
||||
@@ -16,10 +16,11 @@
|
||||
|
||||
package org.springframework.cloud.consul;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.actuate.endpoint.Endpoint;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -31,7 +32,7 @@ import com.ecwid.consul.v1.ConsulClient;
|
||||
*/
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnProperty(name = "spring.cloud.consul.enabled", matchIfMissing = true)
|
||||
@ConditionalOnConsulEnabled
|
||||
public class ConsulAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -49,17 +50,22 @@ public class ConsulAutoConfiguration {
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnClass(Endpoint.class)
|
||||
@ConditionalOnBean(ConsulClient.class)
|
||||
protected static class ConsulHealthConfig {
|
||||
|
||||
@Autowired
|
||||
private ConsulClient consulClient;
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ConsulEndpoint consulEndpoint() {
|
||||
return new ConsulEndpoint();
|
||||
return new ConsulEndpoint(consulClient);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ConsulHealthIndicator consulHealthIndicator() {
|
||||
return new ConsulHealthIndicator();
|
||||
return new ConsulHealthIndicator(consulClient);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import java.util.Map;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.actuate.endpoint.AbstractEndpoint;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
@@ -39,12 +38,11 @@ import com.ecwid.consul.v1.catalog.model.Node;
|
||||
@ConfigurationProperties(prefix = "endpoints.consul", ignoreUnknownFields = false)
|
||||
public class ConsulEndpoint extends AbstractEndpoint<ConsulEndpoint.ConsulData> {
|
||||
|
||||
@Autowired
|
||||
private ConsulClient consul;
|
||||
|
||||
@Autowired
|
||||
public ConsulEndpoint() {
|
||||
public ConsulEndpoint(ConsulClient consul) {
|
||||
super("consul", false, true);
|
||||
this.consul = consul;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,7 +19,6 @@ package org.springframework.cloud.consul;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
|
||||
import org.springframework.boot.actuate.health.Health;
|
||||
|
||||
@@ -34,9 +33,12 @@ import com.ecwid.consul.v1.agent.model.Self.Config;
|
||||
*/
|
||||
public class ConsulHealthIndicator extends AbstractHealthIndicator {
|
||||
|
||||
@Autowired
|
||||
private ConsulClient consul;
|
||||
|
||||
public ConsulHealthIndicator(ConsulClient consul) {
|
||||
this.consul = consul;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doHealthCheck(Health.Builder builder) throws Exception {
|
||||
try {
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.consul.ConditionalOnConsulEnabled;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -29,6 +30,8 @@ import com.ecwid.consul.v1.ConsulClient;
|
||||
* @author Spencer Gibb
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnConsulEnabled
|
||||
@ConditionalOnProperty(value = "spring.cloud.consul.discovery.enabled", matchIfMissing = true)
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnBean(ConsulClient.class)
|
||||
public class ConsulDiscoveryClientConfiguration {
|
||||
|
||||
@@ -20,6 +20,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.cloud.consul.ConditionalOnConsulEnabled;
|
||||
import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
|
||||
import org.springframework.cloud.netflix.ribbon.RibbonClients;
|
||||
import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
|
||||
@@ -30,6 +31,7 @@ import org.springframework.context.annotation.Configuration;
|
||||
*/
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnConsulEnabled
|
||||
@ConditionalOnBean(SpringClientFactory.class)
|
||||
@ConditionalOnProperty(value = "spring.cloud.consul.ribbon.enabled", matchIfMissing = true)
|
||||
@AutoConfigureAfter(RibbonAutoConfiguration.class)
|
||||
|
||||
Reference in New Issue
Block a user