From 3193311af98ff3311f34edb1291715173dabbee9 Mon Sep 17 00:00:00 2001 From: Rivers-Shall Date: Tue, 23 Jul 2019 19:43:04 +0800 Subject: [PATCH 1/2] fix #744 Add spring.cloud.alicloud.acm.enable to ACM module Add spring.cloud.alicloud.acm.enable to ACM module by adding `@ConditionalOnProperty` annotations on auto-configuration classes and bootstrap-configuration classes --- .../java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java | 2 ++ .../alicloud/acm/bootstrap/AcmPropertySourceLocator.java | 2 ++ .../alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java | 2 ++ 3 files changed, 6 insertions(+) diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java index 4bb29694..90379e27 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java @@ -18,6 +18,7 @@ package com.alibaba.alicloud.acm; import org.springframework.beans.BeansException; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.context.refresh.ContextRefresher; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; @@ -37,6 +38,7 @@ import com.taobao.diamond.client.Diamond; */ @Configuration @ConditionalOnClass({ Diamond.class }) +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) public class AcmAutoConfiguration implements ApplicationContextAware { private ApplicationContext applicationContext; diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java index 6f59f333..128815b2 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java @@ -17,6 +17,7 @@ package com.alibaba.alicloud.acm.bootstrap; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.bootstrap.config.PropertySourceLocator; import org.springframework.core.env.CompositePropertySource; import org.springframework.core.env.Environment; @@ -28,6 +29,7 @@ import com.alibaba.alicloud.context.acm.AcmIntegrationProperties; * @author juven.xuxb * @author xiaolongzuo */ +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) public class AcmPropertySourceLocator implements PropertySourceLocator { private static final String DIAMOND_PROPERTY_SOURCE_NAME = "diamond"; diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java index e997b1ac..230b4970 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java @@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint; 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.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; @@ -32,6 +33,7 @@ import com.alibaba.alicloud.context.acm.AcmProperties; */ @ConditionalOnWebApplication @ConditionalOnClass(name = "org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration") +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) public class AcmEndpointAutoConfiguration { @Autowired From 888f138c7938e19ab2900d11f2aa91fee5611eb5 Mon Sep 17 00:00:00 2001 From: Rivers-Shall Date: Fri, 26 Jul 2019 19:07:57 +0800 Subject: [PATCH 2/2] Change configuration item name and add it to json file Change configuration item name from `spring.cloud.alicloud.acm.enable` to `spring.cloud.alicloud.acm.enabled` and add this configuration item to `additional-spring-configuration-metadata.json` file. --- .../java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java | 2 +- .../alicloud/acm/bootstrap/AcmPropertySourceLocator.java | 2 +- .../alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java | 2 +- .../META-INF/additional-spring-configuration-metadata.json | 6 ++++++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java index 90379e27..ac82882f 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/AcmAutoConfiguration.java @@ -38,7 +38,7 @@ import com.taobao.diamond.client.Diamond; */ @Configuration @ConditionalOnClass({ Diamond.class }) -@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enabled", matchIfMissing = true) public class AcmAutoConfiguration implements ApplicationContextAware { private ApplicationContext applicationContext; diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java index 128815b2..3dae0710 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/bootstrap/AcmPropertySourceLocator.java @@ -29,7 +29,7 @@ import com.alibaba.alicloud.context.acm.AcmIntegrationProperties; * @author juven.xuxb * @author xiaolongzuo */ -@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enabled", matchIfMissing = true) public class AcmPropertySourceLocator implements PropertySourceLocator { private static final String DIAMOND_PROPERTY_SOURCE_NAME = "diamond"; diff --git a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java index 230b4970..587e90a2 100644 --- a/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java +++ b/spring-cloud-alicloud-acm/src/main/java/com/alibaba/alicloud/acm/endpoint/AcmEndpointAutoConfiguration.java @@ -33,7 +33,7 @@ import com.alibaba.alicloud.context.acm.AcmProperties; */ @ConditionalOnWebApplication @ConditionalOnClass(name = "org.springframework.boot.actuate.autoconfigure.web.ManagementContextConfiguration") -@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enable", matchIfMissing = true) +@ConditionalOnProperty(name = "spring.cloud.alicloud.acm.enabled", matchIfMissing = true) public class AcmEndpointAutoConfiguration { @Autowired diff --git a/spring-cloud-alicloud-acm/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-alicloud-acm/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 29f53c76..34d3e4f9 100644 --- a/spring-cloud-alicloud-acm/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-cloud-alicloud-acm/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -4,6 +4,12 @@ "name": "spring.application.group", "type": "java.lang.String", "description": "spring application group." + }, + { + "name": "spring.cloud.alicloud.acm.enabled", + "type": "java.lang.Boolean", + "defaultValue": true, + "description": "enable acm or not." } ] } \ No newline at end of file