diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfiguration.java new file mode 100644 index 00000000..8b4b7d05 --- /dev/null +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfiguration.java @@ -0,0 +1,28 @@ +package org.springframework.cloud.client.serviceregistry; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Spencer Gibb + */ +@Configuration +@ConditionalOnBean(AutoServiceRegistrationProperties.class) +public class AutoServiceRegistrationAutoConfiguration { + + @Autowired(required = false) + private AutoServiceRegistration autoServiceRegistration; + + @Autowired + private AutoServiceRegistrationProperties properties; + + @PostConstruct + protected void init() { + if (autoServiceRegistration == null && this.properties.isFailFast()) { + throw new IllegalStateException("Auto Service Registration has been requested, but there is no AutoServiceRegistration bean"); + } + } +} diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfiguration.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfiguration.java index 45a95d54..5cc7d689 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfiguration.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfiguration.java @@ -1,28 +1,12 @@ package org.springframework.cloud.client.serviceregistry; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Configuration; -import javax.annotation.PostConstruct; - /** * @author Spencer Gibb */ @Configuration @EnableConfigurationProperties(AutoServiceRegistrationProperties.class) public class AutoServiceRegistrationConfiguration { - - @Autowired(required = false) - private AutoServiceRegistration autoServiceRegistration; - - @Autowired - private AutoServiceRegistrationProperties properties; - - @PostConstruct - protected void init() { - if (autoServiceRegistration == null && this.properties.isFailFast()) { - throw new IllegalStateException("Auto Service Registration has been requested, but there is no AutoServiceRegistration bean"); - } - } } diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationProperties.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationProperties.java index 5a8b22d5..d489afe8 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationProperties.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationProperties.java @@ -8,6 +8,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties("spring.cloud.service-registry.auto-registration") public class AutoServiceRegistrationProperties { + /** If Auto-Service Registration is enabled, default to true. */ + private boolean enabled = true; + /** Should startup fail if there is no AutoServiceRegistration, default to false. */ private boolean failFast = false; diff --git a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfigurationTests.java b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfigurationTests.java similarity index 95% rename from spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfigurationTests.java rename to spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfigurationTests.java index 31476e79..39e82067 100644 --- a/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationConfigurationTests.java +++ b/spring-cloud-commons/src/test/java/org/springframework/cloud/client/serviceregistry/AutoServiceRegistrationAutoConfigurationTests.java @@ -20,7 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Spencer Gibb */ -public class AutoServiceRegistrationConfigurationTests { +public class AutoServiceRegistrationAutoConfigurationTests { @Rule public ExpectedException exception = ExpectedException.none(); @@ -69,6 +69,7 @@ public class AutoServiceRegistrationConfigurationTests { private AnnotationConfigApplicationContext setup(String property, Class... classes) { ArrayList list = new ArrayList<>(); list.add(AutoServiceRegistrationConfiguration.class); + list.add(AutoServiceRegistrationAutoConfiguration.class); list.addAll(Arrays.asList(classes)); AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.register(list.toArray(new Class[0]));