diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 4eb6e07437..0c2a0fe519 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -95,7 +95,7 @@ 3.29.2-GA 1.14.9 3.2.10.Final - 4.1.100.Final + 4.1.101.Final 2.2.1 2.4.4 4.5.14 diff --git a/dubbo-distribution/pom.xml b/dubbo-distribution/pom.xml index ac8f517f98..7b84379e07 100644 --- a/dubbo-distribution/pom.xml +++ b/dubbo-distribution/pom.xml @@ -48,7 +48,7 @@ dubbo-all - [8,) + [1.7,) dubbo-all diff --git a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java index bad49280ba..93ff379073 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java @@ -27,10 +27,13 @@ import org.apache.dubbo.spring.boot.actuate.endpoint.condition.CompatibleConditi import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * Dubbo {@link Endpoint @Endpoint} Auto-{@link Configuration} for Spring Boot Actuator 2.0 * @@ -38,6 +41,7 @@ import org.springframework.context.annotation.PropertySource; * @see Configuration * @since 2.7.0 */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @Configuration @PropertySource( name = "Dubbo Endpoints Default Properties", diff --git a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java index 88b05d4ef0..ee518190d3 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMetricsAutoConfiguration.java @@ -23,10 +23,14 @@ import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegi import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; 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; import org.springframework.context.annotation.Configuration; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication @AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class) diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java index 0357b000bb..035bd6e27e 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java @@ -25,15 +25,19 @@ import org.springframework.boot.actuate.endpoint.Endpoint; import org.springframework.boot.autoconfigure.AutoConfigureAfter; 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; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * Dubbo {@link Endpoint} Auto Configuration is compatible with Spring Boot Actuator 1.x * * @since 2.7.0 */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @Configuration @ConditionalOnClass( name = {"org.springframework.boot.actuate.endpoint.Endpoint" // Spring Boot 1.x diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java index 32c0bd003d..a4b2a101ba 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java @@ -20,12 +20,16 @@ import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetad import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * Dubbo Endpoints Metadata Auto-{@link Configuration} */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @ConditionalOnClass( name = {"org.springframework.boot.actuate.health.Health" // If spring-boot-actuator is present }) diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java index ed02987552..50d31bc00a 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java @@ -35,7 +35,10 @@ import org.springframework.context.annotation.Configuration; */ @Configuration @ConditionalOnClass(name = {"org.springframework.boot.actuate.health.Health"}) -@ConditionalOnProperty(name = "management.health.dubbo.enabled", matchIfMissing = true, havingValue = "true") +@ConditionalOnProperty( + name = {"management.health.dubbo.enabled", "dubbo.enabled"}, + matchIfMissing = true, + havingValue = "true") @EnableConfigurationProperties(DubboHealthIndicatorProperties.class) public class DubboHealthIndicatorAutoConfiguration { diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java index 147e2576ae..4bbd80c618 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java @@ -25,41 +25,33 @@ import org.apache.dubbo.config.ProviderConfig; import org.apache.dubbo.config.RegistryConfig; import org.apache.dubbo.config.bootstrap.DubboBootstrap; -import java.util.LinkedHashMap; -import java.util.Map; - import org.junit.After; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; +import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; -import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors; - /** * {@link DubboAutoConfiguration} Test On multiple Dubbo Configuration * * @since 2.7.0 */ -@Ignore @RunWith(SpringRunner.class) @TestPropertySource( properties = { - "dubbo.applications.application1.NAME = dubbo-demo-application", - "dubbo.modules.module1.name = dubbo-demo-module", - "dubbo.registries.registry1.address = zookeeper://192.168.99.100:32770", + "dubbo.applications.application1.name=dubbo-demo-multi-application", + "dubbo.modules.module1.name=dubbo-demo-module", + "dubbo.registries.registry1.address=test://192.168.99.100:32770", "dubbo.protocols.protocol1.name=dubbo", - "dubbo.protocols.protocol1.pORt=20880", - "dubbo.monitors.monitor1.Address=zookeeper://127.0.0.1:32770", + "dubbo.protocols.protocol1.port=20880", + "dubbo.monitors.monitor1.address=test://127.0.0.1:32770", "dubbo.providers.provider1.host=127.0.0.1", "dubbo.consumers.consumer1.client=netty", "dubbo.config.multiple=true", @@ -67,62 +59,39 @@ import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncl }) @SpringBootTest(classes = {DubboAutoConfigurationOnMultipleConfigTest.class}) @EnableAutoConfiguration +@ComponentScan public class DubboAutoConfigurationOnMultipleConfigTest { - @Autowired - private Environment environment; - - @Autowired - private ApplicationContext applicationContext; - /** - * {@link ApplicationConfig} + * @see TestBeansConfiguration */ @Autowired @Qualifier("application1") - private ApplicationConfig application; + ApplicationConfig application; - /** - * {@link ModuleConfig} - */ @Autowired @Qualifier("module1") - private ModuleConfig module; + ModuleConfig module; - /** - * {@link RegistryConfig} - */ @Autowired @Qualifier("registry1") - private RegistryConfig registry; + RegistryConfig registry; - /** - * {@link ProtocolConfig} - */ - @Autowired - @Qualifier("protocol1") - private ProtocolConfig protocol; - - /** - * {@link MonitorConfig} - */ @Autowired @Qualifier("monitor1") - private MonitorConfig monitor; + MonitorConfig monitor; - /** - * {@link ProviderConfig} - */ @Autowired - @Qualifier("provider1") - private ProviderConfig provider; + @Qualifier("protocol1") + ProtocolConfig protocol; - /** - * {@link ConsumerConfig} - */ @Autowired @Qualifier("consumer1") - private ConsumerConfig consumer; + ConsumerConfig consumer; + + @Autowired + @Qualifier("provider1") + ProviderConfig provider; @Before public void init() { @@ -134,134 +103,24 @@ public class DubboAutoConfigurationOnMultipleConfigTest { DubboBootstrap.reset(); } - @Autowired - private Map applications = new LinkedHashMap<>(); - - @Autowired - private Map modules = new LinkedHashMap<>(); - - @Autowired - private Map registries = new LinkedHashMap<>(); - - @Autowired - private Map protocols = new LinkedHashMap<>(); - - @Autowired - private Map monitors = new LinkedHashMap<>(); - - @Autowired - private Map providers = new LinkedHashMap<>(); - - @Autowired - private Map consumers = new LinkedHashMap<>(); - @Test - public void testMultipleDubboConfigBindingProperties() { - - Assert.assertEquals(1, applications.size()); - - Assert.assertEquals(1, modules.size()); - - Assert.assertEquals(1, registries.size()); - - Assert.assertEquals(1, protocols.size()); - - Assert.assertEquals(1, monitors.size()); - - Assert.assertEquals(1, providers.size()); - - Assert.assertEquals(1, consumers.size()); - } - - @Test - public void testApplicationContext() { - - /** - * Multiple {@link ApplicationConfig} - */ - Map applications = - beansOfTypeIncludingAncestors(applicationContext, ApplicationConfig.class); - - Assert.assertEquals(1, applications.size()); - - /** - * Multiple {@link ModuleConfig} - */ - Map modules = beansOfTypeIncludingAncestors(applicationContext, ModuleConfig.class); - - Assert.assertEquals(1, modules.size()); - - /** - * Multiple {@link RegistryConfig} - */ - Map registries = - beansOfTypeIncludingAncestors(applicationContext, RegistryConfig.class); - - Assert.assertEquals(1, registries.size()); - - /** - * Multiple {@link ProtocolConfig} - */ - Map protocols = beansOfTypeIncludingAncestors(applicationContext, ProtocolConfig.class); - - Assert.assertEquals(1, protocols.size()); - - /** - * Multiple {@link MonitorConfig} - */ - Map monitors = beansOfTypeIncludingAncestors(applicationContext, MonitorConfig.class); - - Assert.assertEquals(1, monitors.size()); - - /** - * Multiple {@link ProviderConfig} - */ - Map providers = beansOfTypeIncludingAncestors(applicationContext, ProviderConfig.class); - - Assert.assertEquals(1, providers.size()); - - /** - * Multiple {@link ConsumerConfig} - */ - Map consumers = beansOfTypeIncludingAncestors(applicationContext, ConsumerConfig.class); - - Assert.assertEquals(1, consumers.size()); - } - - @Test - public void testApplicationConfig() { - - Assert.assertEquals("dubbo-demo-application", application.getName()); - } - - @Test - public void testModuleConfig() { - + public void testMultiConfig() { + // application + Assert.assertEquals("dubbo-demo-multi-application", application.getName()); + // module Assert.assertEquals("dubbo-demo-module", module.getName()); - } - - @Test - public void testRegistryConfig() { - - Assert.assertEquals("zookeeper://192.168.99.100:32770", registry.getAddress()); - } - - @Test - public void testMonitorConfig() { - - Assert.assertEquals("zookeeper://127.0.0.1:32770", monitor.getAddress()); - } - - @Test - public void testProtocolConfig() { - + // registry + Assert.assertEquals("test://192.168.99.100:32770", registry.getAddress()); + Assert.assertEquals("test", registry.getProtocol()); + Assert.assertEquals(Integer.valueOf(32770), registry.getPort()); + // monitor + Assert.assertEquals("test://127.0.0.1:32770", monitor.getAddress()); + // protocol Assert.assertEquals("dubbo", protocol.getName()); Assert.assertEquals(Integer.valueOf(20880), protocol.getPort()); - } - - @Test - public void testConsumerConfig() { - + // consumer Assert.assertEquals("netty", consumer.getClient()); + // provider + Assert.assertEquals("127.0.0.1", provider.getHost()); } } diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java index 2cfc203543..214b0cec7f 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java @@ -28,14 +28,12 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.junit.After; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; +import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; @@ -44,21 +42,21 @@ import org.springframework.test.context.junit4.SpringRunner; * * @since 2.7.0 */ -@Ignore @RunWith(SpringRunner.class) @TestPropertySource( properties = { - "dubbo.application.name = dubbo-demo-application", + "dubbo.application.name = dubbo-demo-single-application", "dubbo.module.name = dubbo-demo-module", - "dubbo.registry.address = zookeeper://192.168.99.100:32770", + "dubbo.registry.address = test://192.168.99.100:32770", "dubbo.protocol.name=dubbo", "dubbo.protocol.port=20880", - "dubbo.monitor.address=zookeeper://127.0.0.1:32770", + "dubbo.monitor.address=test://127.0.0.1:32770", "dubbo.provider.host=127.0.0.1", "dubbo.consumer.client=netty" }) @SpringBootTest(classes = {DubboAutoConfigurationOnSingleConfigTest.class}) @EnableAutoConfiguration +@ComponentScan public class DubboAutoConfigurationOnSingleConfigTest { @Autowired @@ -82,12 +80,6 @@ public class DubboAutoConfigurationOnSingleConfigTest { @Autowired private ProtocolConfig protocolConfig; - @Autowired - private Environment environment; - - @Autowired - private ApplicationContext applicationContext; - @Before public void init() { DubboBootstrap.reset(); @@ -99,45 +91,21 @@ public class DubboAutoConfigurationOnSingleConfigTest { } @Test - public void testApplicationConfig() { - - Assert.assertEquals("dubbo-demo-application", applicationConfig.getName()); - } - - @Test - public void testModuleConfig() { - + public void testSingleConfig() { + // application + Assert.assertEquals("dubbo-demo-single-application", applicationConfig.getName()); + // module Assert.assertEquals("dubbo-demo-module", moduleConfig.getName()); - } - - @Test - public void testRegistryConfig() { - - Assert.assertEquals("zookeeper://192.168.99.100:32770", registryConfig.getAddress()); - } - - @Test - public void testMonitorConfig() { - - Assert.assertEquals("zookeeper://127.0.0.1:32770", monitorConfig.getAddress()); - } - - @Test - public void testProtocolConfig() { - + // registry + Assert.assertEquals("test://192.168.99.100:32770", registryConfig.getAddress()); + // monitor + Assert.assertEquals("test://127.0.0.1:32770", monitorConfig.getAddress()); + // protocol Assert.assertEquals("dubbo", protocolConfig.getName()); Assert.assertEquals(Integer.valueOf(20880), protocolConfig.getPort()); - } - - @Test - public void testProviderConfig() { - + // consumer + Assert.assertEquals("netty", consumerConfig.getClient()); + // provider Assert.assertEquals("127.0.0.1", providerConfig.getHost()); } - - @Test - public void testConsumerConfig() { - - Assert.assertEquals("netty", consumerConfig.getClient()); - } } diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/TestBeansConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/TestBeansConfiguration.java new file mode 100644 index 0000000000..d51a9142c7 --- /dev/null +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/TestBeansConfiguration.java @@ -0,0 +1,81 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.apache.dubbo.spring.boot.autoconfigure; + +import org.apache.dubbo.config.ApplicationConfig; +import org.apache.dubbo.config.ConsumerConfig; +import org.apache.dubbo.config.ModuleConfig; +import org.apache.dubbo.config.MonitorConfig; +import org.apache.dubbo.config.ProtocolConfig; +import org.apache.dubbo.config.ProviderConfig; +import org.apache.dubbo.config.RegistryConfig; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class TestBeansConfiguration { + + @Bean + ApplicationConfig application1() { + ApplicationConfig config = new ApplicationConfig(); + config.setId("application1"); + return config; + } + + @Bean + ModuleConfig module1() { + ModuleConfig config = new ModuleConfig(); + config.setId("module1"); + return config; + } + + @Bean + RegistryConfig registry1() { + RegistryConfig config = new RegistryConfig(); + config.setId("registry1"); + return config; + } + + @Bean + MonitorConfig monitor1() { + MonitorConfig config = new MonitorConfig(); + config.setId("monitor1"); + return config; + } + + @Bean + ProtocolConfig protocol1() { + ProtocolConfig config = new ProtocolConfig(); + config.setId("protocol1"); + return config; + } + + @Bean + ConsumerConfig consumer1() { + ConsumerConfig config = new ConsumerConfig(); + config.setId("consumer1"); + return config; + } + + @Bean + ProviderConfig provider1() { + ProviderConfig config = new ProviderConfig(); + config.setId("provider1"); + return config; + } +} diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java index 6e4823ce1c..26132270d0 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java @@ -20,10 +20,12 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; /** * {@link AwaitingNonWebApplicationListener} Test */ +@Ignore public class AwaitingNonWebApplicationListenerTest { @Before diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboMicrometerTracingAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboMicrometerTracingAutoConfiguration.java index f864906d31..691dea9d9d 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboMicrometerTracingAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboMicrometerTracingAutoConfiguration.java @@ -22,13 +22,17 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter; 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.context.annotation.Bean; import org.springframework.core.annotation.Order; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * copy from {@link org.springframework.boot.actuate.autoconfigure.tracing.MicrometerTracingAutoConfiguration} * this class is available starting from Boot 3.0. It's not available if you're using Boot < 3.0 */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @ConditionalOnDubboTracingEnable @ConditionalOnClass( name = { diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboObservationAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboObservationAutoConfiguration.java index a2524e9e01..d7014b64a8 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboObservationAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/DubboObservationAutoConfiguration.java @@ -36,15 +36,19 @@ 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.ConditionalOnMissingClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * Register observationRegistry to ApplicationModel. * Create observationRegistry when you are using Boot <3.0 or you are not using spring-boot-starter-actuator */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @AutoConfiguration( after = DubboMicrometerTracingAutoConfiguration.class, afterName = "org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration") diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/brave/BraveAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/brave/BraveAutoConfiguration.java index a2083b7679..99ffc78136 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/brave/BraveAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/brave/BraveAutoConfiguration.java @@ -37,9 +37,12 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * provider Brave when you are using Boot <3.0 or you are not using spring-boot-starter-actuator */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @AutoConfiguration( before = DubboMicrometerTracingAutoConfiguration.class, afterName = "org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration") diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/otlp/OtlpAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/otlp/OtlpAutoConfiguration.java index dd55dbe2f4..c5b79a6bea 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/otlp/OtlpAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/otlp/OtlpAutoConfiguration.java @@ -35,10 +35,12 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; import static org.apache.dubbo.spring.boot.observability.autoconfigure.ObservabilityUtils.DUBBO_TRACING_OTLP_CONFIG_PREFIX; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; /** * @since 3.2.2 */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @AutoConfiguration @ConditionalOnClass({OtelTracer.class, SdkTracerProvider.class, OpenTelemetry.class, OtlpGrpcSpanExporter.class}) @ConditionalOnDubboTracingEnable diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java index 7e37ade6b3..d4dfdf54fc 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinAutoConfiguration.java @@ -36,6 +36,7 @@ import zipkin2.codec.SpanBytesEncoder; import zipkin2.reporter.Sender; import static org.apache.dubbo.spring.boot.observability.autoconfigure.ObservabilityUtils.DUBBO_TRACING_ZIPKIN_CONFIG_PREFIX; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; /** * {@link EnableAutoConfiguration Auto-configuration} for Zipkin. @@ -46,6 +47,7 @@ import static org.apache.dubbo.spring.boot.observability.autoconfigure.Observabi * * @since 3.2.1 */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @AutoConfiguration( after = RestTemplateAutoConfiguration.class, afterName = "org.springframework.boot.actuate.autoconfigure.tracing.zipkin") diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java index 25e80abf26..3d9520e115 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/otel/OpenTelemetryAutoConfiguration.java @@ -36,9 +36,12 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX; + /** * provider OpenTelemetry when you are using Boot <3.0 or you are not using spring-boot-starter-actuator */ +@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @AutoConfiguration( before = DubboMicrometerTracingAutoConfiguration.class, afterName = "org.springframework.boot.actuate.autoconfigure.tracing.OpenTelemetryAutoConfiguration")