You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by me...@apache.org on 2019/02/01 00:49:05 UTC
[incubator-dubbo-spring-boot-project] branch 2.7.0-release updated:
1.0.0 (#429)
This is an automated email from the ASF dual-hosted git repository.
mercyblitz pushed a commit to branch 2.7.0-release
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-spring-boot-project.git
The following commit(s) were added to refs/heads/2.7.0-release by this push:
new d0b5899 1.0.0 (#429)
d0b5899 is described below
commit d0b5899670e5880680c7a55ca7ef0c91c1a4d23e
Author: Mercy Ma <me...@gmail.com>
AuthorDate: Fri Feb 1 08:49:00 2019 +0800
1.0.0 (#429)
* Polish apache/incubator-dubbo-spring-boot-project#395
* Polish apache/incubator-dubbo-spring-boot-project#395 fixed issues
* Polish apache/incubator-dubbo-spring-boot-project#395 Update documents
* Update the root POM's parent
* Replace ${project.version} to ${revision} in the "pom.xml" files
* Update <projectId>
* Remove Netty Project
* Polish : apache/incubator-dubbo-spring-boot-project#427
* Polish : apache/incubator-dubbo-spring-boot-project#427
* Polish : apache/incubator-dubbo-spring-boot-project#427
---
NOTICE | 11 +-
dubbo-spring-boot-actuator/pom.xml | 10 +-
... DubboEndpointAnnotationAutoConfiguration.java} | 19 +-
.../endpoint/DubboConfigsMetadataEndpoint.java | 65 +--
...iesEndpoint.java => DubboMetadataEndpoint.java} | 24 +-
...t.java => DubboPropertiesMetadataEndpoint.java} | 17 +-
.../endpoint/DubboReferencesMetadataEndpoint.java | 48 +--
.../endpoint/DubboServicesMetadataEndpoint.java | 61 +--
.../actuate/endpoint/DubboShutdownEndpoint.java | 53 +--
.../src/main/resources/META-INF/spring.factories | 3 +-
...boEndpointAnnotationAutoConfigurationTest.java} | 31 +-
.../boot/actuate/endpoint/DubboEndpointTest.java | 13 +-
dubbo-spring-boot-autoconfigure/pom.xml | 11 +-
...figBinder.java => BinderDubboConfigBinder.java} | 5 +-
.../DubboRelaxedBinding2AutoConfiguration.java | 74 ++++
.../src/main/resources/META-INF/spring.factories | 11 +-
...rTest.java => BinderDubboConfigBinderTest.java} | 11 +-
.../DubboRelaxedBinding2AutoConfigurationTest.java | 70 ++++
.../spring/boot/util/EnvironmentUtilsTest.java | 2 +-
.../actuator}/pom.xml | 15 +-
.../DubboEndpointAutoConfiguration.java | 38 +-
.../DubboEndpointMetadataAutoConfiguration.java | 38 ++
.../DubboHealthIndicatorAutoConfiguration.java | 17 +-
...oMvcEndpointManagementContextConfiguration.java | 48 +++
.../boot/actuate/endpoint/DubboEndpoint.java | 40 +-
.../endpoint/metadata/AbstractDubboMetadata.java | 10 +-
.../endpoint/metadata/DubboConfigsMetadata.java | 15 +-
.../actuate/endpoint/metadata/DubboMetadata.java | 18 +-
.../endpoint/metadata/DubboPropertiesMetadata.java | 19 +-
.../endpoint/metadata/DubboReferencesMetadata.java | 15 +-
.../endpoint/metadata/DubboServicesMetadata.java | 15 +-
.../endpoint/metadata/DubboShutdownMetadata.java | 13 +-
.../actuate/endpoint/mvc/DubboMvcEndpoint.java | 111 +++++
.../boot/actuate/health/DubboHealthIndicator.java | 3 +-
.../health/DubboHealthIndicatorProperties.java | 3 +-
.../src/main/resources/META-INF/spring.factories | 6 +
.../DubboEndpointAutoConfigurationTest.java | 75 ++--
.../actuate/health/DubboHealthIndicatorTest.java | 7 +-
.../autoconfigure}/pom.xml | 14 +-
.../boot/autoconfigure/DubboAutoConfiguration.java | 52 +--
.../DubboRelaxedBindingAutoConfiguration.java | 55 +++
.../autoconfigure/RelaxedDubboConfigBinder.java | 49 +++
.../event/AwaitingNonWebApplicationListener.java | 30 +-
.../OverrideDubboConfigApplicationListener.java | 16 +-
.../event/WelcomeLogoApplicationListener.java | 7 +-
...oDefaultPropertiesEnvironmentPostProcessor.java | 1 -
.../apache/dubbo/spring/boot/util/DubboUtils.java | 29 +-
.../dubbo/spring/boot/util/EnvironmentUtils.java | 2 +-
.../META-INF/spring-configuration-metadata.json | 454 ++++++++++-----------
.../src/main/resources/META-INF/spring.factories | 6 +-
.../CompatibleDubboAutoConfigurationTest.java | 57 +++
...ubboAutoConfigurationTestWithoutProperties.java | 34 +-
...DubboAutoConfigurationOnMultipleConfigTest.java | 13 +-
.../DubboAutoConfigurationOnSingleConfigTest.java | 19 +-
.../RelaxedDubboConfigBinderTest.java | 14 +-
.../AwaitingNonWebApplicationListenerTest.java | 56 +++
...eDubboConfigApplicationListenerDisableTest.java | 7 +-
...OverrideDubboConfigApplicationListenerTest.java | 7 +-
.../event/WelcomeLogoApplicationListenerTest.java | 6 +-
...aultPropertiesEnvironmentPostProcessorTest.java | 97 +++++
.../dubbo/spring/boot/util/DubboUtilsTest.java | 24 +-
.../spring/boot/util/EnvironmentUtilsTest.java | 2 +-
.../pom.xml | 22 +-
dubbo-spring-boot-distribution/pom.xml | 5 +-
dubbo-spring-boot-parent/pom.xml | 3 +-
.../auto-configure-samples/consumer-sample/pom.xml | 3 +-
.../DubboAutoConfigurationConsumerBootstrap.java | 3 +-
.../auto-configure-samples/pom.xml | 3 +-
.../auto-configure-samples/provider-sample/pom.xml | 3 +-
.../DubboAutoConfigurationProviderBootstrap.java | 5 +-
.../demo/provider/service/DefaultDemoService.java | 3 +-
.../consumer-sample/pom.xml | 3 +-
.../dubbo-registry-zookeeper-samples/pom.xml | 3 +-
.../provider-sample/pom.xml | 3 +-
.../DubboRegistryZooKeeperProviderBootstrap.java | 5 +-
.../demo/provider/service/DefaultDemoService.java | 3 +-
.../consumer-sample/pom.xml | 17 +-
...ExternalizedConfigurationConsumerBootstrap.java | 12 +-
.../src/main/resources/application.yml | 38 ++
.../externalized-configuration-samples/pom.xml | 3 +-
.../provider-sample/pom.xml | 3 +-
...ExternalizedConfigurationProviderBootstrap.java | 5 +-
.../demo/provider/service/DefaultDemoService.java | 3 +-
dubbo-spring-boot-samples/pom.xml | 5 +-
dubbo-spring-boot-samples/sample-api/pom.xml | 3 +-
.../spring/boot/demo/consumer/DemoService.java | 2 +-
dubbo-spring-boot-starter/pom.xml | 16 +-
pom.xml | 4 +-
88 files changed, 1409 insertions(+), 865 deletions(-)
diff --git a/NOTICE b/NOTICE
index 97fefd0..62b2787 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,13 +2,4 @@ Apache Dubbo (incubating)
Copyright 2018-2019 The Apache Software Foundation
This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This product contains code form the Netty Project:
-
-The Netty Project
-=================
-Please visit the Netty web site for more information:
- * http://netty.io/
-
-Copyright 2014 The Netty Project
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/dubbo-spring-boot-actuator/pom.xml b/dubbo-spring-boot-actuator/pom.xml
index 592bcd6..ef7eed3 100644
--- a/dubbo-spring-boot-actuator/pom.xml
+++ b/dubbo-spring-boot-actuator/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -27,12 +28,19 @@
<artifactId>dubbo-spring-boot-actuator</artifactId>
<packaging>jar</packaging>
- <name>Apache Dubbo Spring Boot Actuator</name>
+ <name>Apache Dubbo Spring Boot :: Actuator</name>
<description>Apache Dubbo Spring Boot Actuator</description>
<dependencies>
<dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-spring-boot-actuator-compatible</artifactId>
+ <version>${revision}</version>
+ </dependency>
+
+ <!-- Spring Boot -->
+ <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<optional>true</optional>
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointsAutoConfiguration.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java
similarity index 85%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointsAutoConfiguration.java
rename to dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java
index fd5a7aa..aa65366 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointsAutoConfiguration.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfiguration.java
@@ -17,12 +17,11 @@
package org.apache.dubbo.spring.boot.actuate.autoconfigure;
import org.apache.dubbo.spring.boot.actuate.endpoint.DubboConfigsMetadataEndpoint;
-import org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpoint;
-import org.apache.dubbo.spring.boot.actuate.endpoint.DubboPropertiesEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboPropertiesMetadataEndpoint;
import org.apache.dubbo.spring.boot.actuate.endpoint.DubboReferencesMetadataEndpoint;
import org.apache.dubbo.spring.boot.actuate.endpoint.DubboServicesMetadataEndpoint;
import org.apache.dubbo.spring.boot.actuate.endpoint.DubboShutdownEndpoint;
-
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -31,23 +30,23 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
- * Dubbo {@link Endpoint} Auto-{@link Configuration}
+ * Dubbo {@link Endpoint @Endpoint} Auto-{@link Configuration} for Spring Boot Actuator 2.0
*
* @see Endpoint
* @see Configuration
- * @since 0.2.0
+ * @since 2.7.0
*/
@Configuration
@PropertySource(
name = "Dubbo Endpoints Default Properties",
value = "classpath:/META-INF/dubbo-endpoins-default.properties")
-public class DubboEndpointsAutoConfiguration {
+public class DubboEndpointAnnotationAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint
- public DubboEndpoint dubboEndpoint() {
- return new DubboEndpoint();
+ public DubboMetadataEndpoint dubboEndpoint() {
+ return new DubboMetadataEndpoint();
}
@Bean
@@ -60,8 +59,8 @@ public class DubboEndpointsAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint
- public DubboPropertiesEndpoint dubboPropertiesEndpoint() {
- return new DubboPropertiesEndpoint();
+ public DubboPropertiesMetadataEndpoint dubboPropertiesEndpoint() {
+ return new DubboPropertiesMetadataEndpoint();
}
@Bean
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java
index 2cce543..0f57fa7 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java
@@ -16,74 +16,27 @@
*/
package org.apache.dubbo.spring.boot.actuate.endpoint;
-import org.apache.dubbo.config.AbstractConfig;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.MethodConfig;
-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.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.config.ServiceConfig;
-
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboConfigsMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
-import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.TreeMap;
-
-import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;
/**
* Dubbo Configs Metadata {@link Endpoint}
*
- * @since 0.2.0
+ * @since 2.7.0
*/
@Endpoint(id = "dubboconfigs")
-public class DubboConfigsMetadataEndpoint extends AbstractDubboEndpoint {
+public class DubboConfigsMetadataEndpoint extends AbstractDubboMetadata {
+
+ @Autowired
+ private DubboConfigsMetadata dubboConfigsMetadata;
@ReadOperation
public Map<String, Map<String, Map<String, Object>>> configs() {
-
- Map<String, Map<String, Map<String, Object>>> configsMap = new LinkedHashMap<>();
-
- addDubboConfigBeans(ApplicationConfig.class, configsMap);
- addDubboConfigBeans(ConsumerConfig.class, configsMap);
- addDubboConfigBeans(MethodConfig.class, configsMap);
- addDubboConfigBeans(ModuleConfig.class, configsMap);
- addDubboConfigBeans(MonitorConfig.class, configsMap);
- addDubboConfigBeans(ProtocolConfig.class, configsMap);
- addDubboConfigBeans(ProviderConfig.class, configsMap);
- addDubboConfigBeans(ReferenceConfig.class, configsMap);
- addDubboConfigBeans(RegistryConfig.class, configsMap);
- addDubboConfigBeans(ServiceConfig.class, configsMap);
-
- return configsMap;
-
- }
-
- private void addDubboConfigBeans(Class<? extends AbstractConfig> dubboConfigClass,
- Map<String, Map<String, Map<String, Object>>> configsMap) {
-
- Map<String, ? extends AbstractConfig> dubboConfigBeans = beansOfTypeIncludingAncestors(applicationContext, dubboConfigClass);
-
- String name = dubboConfigClass.getSimpleName();
-
- Map<String, Map<String, Object>> beansMetadata = new TreeMap<>();
-
- for (Map.Entry<String, ? extends AbstractConfig> entry : dubboConfigBeans.entrySet()) {
-
- String beanName = entry.getKey();
- AbstractConfig configBean = entry.getValue();
- Map<String, Object> configBeanMeta = resolveBeanMetadata(configBean);
- beansMetadata.put(beanName, configBeanMeta);
-
- }
-
- configsMap.put(name, beansMetadata);
-
+ return dubboConfigsMetadata.configs();
}
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboMetadataEndpoint.java
similarity index 70%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
copy to dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboMetadataEndpoint.java
index 65de76d..d7d4e58 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboMetadataEndpoint.java
@@ -16,26 +16,28 @@
*/
package org.apache.dubbo.spring.boot.actuate.endpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
-import java.util.SortedMap;
-
-import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties;
+import java.util.Map;
/**
- * Dubbo Properties {@link Endpoint}
+ * Actuator {@link Endpoint} to expose Dubbo Meta Data
*
- * @since 1.0.0
+ * @see Endpoint
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboproperties")
-public class DubboPropertiesEndpoint extends AbstractDubboEndpoint {
-
- @ReadOperation
- public SortedMap<String, Object> properties() {
+@Endpoint(id = "dubbo")
+public class DubboMetadataEndpoint {
- return filterDubboProperties(environment);
+ @Autowired
+ private DubboMetadata dubboMetadata;
+ @ReadOperation
+ public Map<String, Object> invoke() {
+ return dubboMetadata.invoke();
}
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesMetadataEndpoint.java
similarity index 72%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
copy to dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesMetadataEndpoint.java
index 65de76d..6084d3f 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesMetadataEndpoint.java
@@ -16,26 +16,27 @@
*/
package org.apache.dubbo.spring.boot.actuate.endpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboPropertiesMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import java.util.SortedMap;
-import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties;
-
/**
* Dubbo Properties {@link Endpoint}
*
- * @since 1.0.0
+ * @since 2.7.0
*/
@Endpoint(id = "dubboproperties")
-public class DubboPropertiesEndpoint extends AbstractDubboEndpoint {
+public class DubboPropertiesMetadataEndpoint extends AbstractDubboMetadata {
+
+ @Autowired
+ private DubboPropertiesMetadata dubboPropertiesMetadata;
@ReadOperation
public SortedMap<String, Object> properties() {
-
- return filterDubboProperties(environment);
-
+ return dubboPropertiesMetadata.properties();
}
-
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java
index b6aa6ff..54de83c 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java
@@ -17,57 +17,27 @@
package org.apache.dubbo.spring.boot.actuate.endpoint;
import org.apache.dubbo.config.annotation.Reference;
-import org.apache.dubbo.config.spring.ReferenceBean;
-import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-
-import org.springframework.beans.factory.annotation.InjectionMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboReferencesMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
-import java.util.LinkedHashMap;
import java.util.Map;
/**
* Dubbo {@link Reference} Metadata {@link Endpoint}
*
- * @since 1.0.0
+ * @since 2.7.0
*/
@Endpoint(id = "dubboreferences")
-public class DubboReferencesMetadataEndpoint extends AbstractDubboEndpoint {
+public class DubboReferencesMetadataEndpoint extends AbstractDubboMetadata {
+
+ @Autowired
+ private DubboReferencesMetadata dubboReferencesMetadata;
@ReadOperation
public Map<String, Map<String, Object>> references() {
-
- Map<String, Map<String, Object>> referencesMetadata = new LinkedHashMap<>();
-
- ReferenceAnnotationBeanPostProcessor beanPostProcessor = getReferenceAnnotationBeanPostProcessor();
-
- referencesMetadata.putAll(buildReferencesMetadata(beanPostProcessor.getInjectedFieldReferenceBeanMap()));
- referencesMetadata.putAll(buildReferencesMetadata(beanPostProcessor.getInjectedMethodReferenceBeanMap()));
-
- return referencesMetadata;
-
+ return dubboReferencesMetadata.references();
}
-
- private Map<String, Map<String, Object>> buildReferencesMetadata(
- Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedElementReferenceBeanMap) {
- Map<String, Map<String, Object>> referencesMetadata = new LinkedHashMap<>();
-
- for (Map.Entry<InjectionMetadata.InjectedElement, ReferenceBean<?>> entry :
- injectedElementReferenceBeanMap.entrySet()) {
-
- InjectionMetadata.InjectedElement injectedElement = entry.getKey();
-
- ReferenceBean<?> referenceBean = entry.getValue();
-
- Map<String, Object> beanMetadata = resolveBeanMetadata(referenceBean);
- beanMetadata.put("invoker", resolveBeanMetadata(referenceBean.get()));
-
- referencesMetadata.put(String.valueOf(injectedElement.getMember()), beanMetadata);
-
- }
-
- return referencesMetadata;
- }
-
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java
index dfef5a8..e92f011 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java
@@ -17,70 +17,27 @@
package org.apache.dubbo.spring.boot.actuate.endpoint;
import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.config.spring.ServiceBean;
-
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboServicesMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
-import java.util.LinkedHashMap;
import java.util.Map;
/**
* Dubbo {@link Service} Metadata {@link Endpoint}
*
- * @since 0.2.0
+ * @since 2.7.0
*/
@Endpoint(id = "dubboservices")
-public class DubboServicesMetadataEndpoint extends AbstractDubboEndpoint {
+public class DubboServicesMetadataEndpoint extends AbstractDubboMetadata {
+
+ @Autowired
+ private DubboServicesMetadata dubboServicesMetadata;
@ReadOperation
public Map<String, Map<String, Object>> services() {
-
- Map<String, ServiceBean> serviceBeansMap = getServiceBeansMap();
-
- Map<String, Map<String, Object>> servicesMetadata = new LinkedHashMap<>(serviceBeansMap.size());
-
- for (Map.Entry<String, ServiceBean> entry : serviceBeansMap.entrySet()) {
-
- String serviceBeanName = entry.getKey();
-
- ServiceBean serviceBean = entry.getValue();
-
- Map<String, Object> serviceBeanMetadata = resolveBeanMetadata(serviceBean);
-
- Object service = resolveServiceBean(serviceBeanName, serviceBean);
-
- if (service != null) {
- // Add Service implementation class
- serviceBeanMetadata.put("serviceClass", service.getClass().getName());
- }
-
- servicesMetadata.put(serviceBeanName, serviceBeanMetadata);
-
- }
-
- return servicesMetadata;
-
- }
-
- private Object resolveServiceBean(String serviceBeanName, ServiceBean serviceBean) {
-
- int index = serviceBeanName.indexOf("#");
-
- if (index > -1) {
-
- Class<?> interfaceClass = serviceBean.getInterfaceClass();
-
- String serviceName = serviceBeanName.substring(index + 1);
-
- if (applicationContext.containsBean(serviceName)) {
- return applicationContext.getBean(serviceName, interfaceClass);
- }
-
- }
-
- return null;
-
+ return dubboServicesMetadata.services();
}
-
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java
index a10f4d4..b372472 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java
@@ -16,65 +16,28 @@
*/
package org.apache.dubbo.spring.boot.actuate.endpoint;
-import org.apache.dubbo.config.spring.ServiceBean;
-import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboShutdownMetadata;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
-import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.TreeMap;
-
-import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getRegistries;
/**
* Dubbo Shutdown
*
- * @since 0.2.0
+ * @since 2.7.0
*/
@Endpoint(id = "dubboshutdown")
-public class DubboShutdownEndpoint extends AbstractDubboEndpoint {
+public class DubboShutdownEndpoint extends AbstractDubboMetadata {
+ @Autowired
+ private DubboShutdownMetadata dubboShutdownMetadata;
@WriteOperation
public Map<String, Object> shutdown() throws Exception {
-
- Map<String, Object> shutdownCountData = new LinkedHashMap<>();
-
- // registries
- int registriesCount = getRegistries().size();
-
- // protocols
- int protocolsCount = getProtocolConfigsBeanMap().size();
-
- shutdownCountData.put("registries", registriesCount);
- shutdownCountData.put("protocols", protocolsCount);
-
- // Service Beans
- Map<String, ServiceBean> serviceBeansMap = getServiceBeansMap();
- if (!serviceBeansMap.isEmpty()) {
- for (ServiceBean serviceBean : serviceBeansMap.values()) {
- serviceBean.destroy();
- }
- }
- shutdownCountData.put("services", serviceBeansMap.size());
-
- // Reference Beans
- ReferenceAnnotationBeanPostProcessor beanPostProcessor = getReferenceAnnotationBeanPostProcessor();
-
- int referencesCount = beanPostProcessor.getReferenceBeans().size();
-
- beanPostProcessor.destroy();
-
- shutdownCountData.put("references", referencesCount);
-
- // Set Result to complete
- Map<String, Object> shutdownData = new TreeMap<>();
- shutdownData.put("shutdown.count", shutdownCountData);
-
-
- return shutdownData;
+ return dubboShutdownMetadata.shutdown();
}
}
diff --git a/dubbo-spring-boot-actuator/src/main/resources/META-INF/spring.factories b/dubbo-spring-boot-actuator/src/main/resources/META-INF/spring.factories
index f80694c..53a1bb0 100644
--- a/dubbo-spring-boot-actuator/src/main/resources/META-INF/spring.factories
+++ b/dubbo-spring-boot-actuator/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointsAutoConfiguration,\
-org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboHealthIndicatorAutoConfiguration
\ No newline at end of file
+org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointAnnotationAutoConfiguration
\ No newline at end of file
diff --git a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfigurationTest.java
similarity index 87%
copy from dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java
copy to dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfigurationTest.java
index 39d06e7..d9747cc 100644
--- a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java
+++ b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAnnotationAutoConfigurationTest.java
@@ -14,13 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
-
-import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointsAutoConfiguration;
+package org.apache.dubbo.spring.boot.actuate.autoconfigure;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.dubbo.config.annotation.Service;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboConfigsMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboPropertiesMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboReferencesMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboServicesMetadataEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboShutdownEndpoint;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -36,15 +40,14 @@ import java.util.SortedMap;
import java.util.function.Supplier;
/**
- * {@link DubboEndpointsAutoConfiguration} Test
+ * {@link DubboEndpointAnnotationAutoConfiguration} Test
*
- * @since 0.2.0
+ * @since 2.7.0
*/
@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {
- DubboEndpointsAutoConfiguration.class,
- DubboEndpointsAutoConfigurationTest.class
+ DubboEndpointAnnotationAutoConfigurationTest.class
},
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = {
@@ -60,7 +63,7 @@ import java.util.function.Supplier;
"dubbo.protocol.port=20880",
"dubbo.provider.id=my-provider",
"dubbo.provider.host=127.0.0.1",
- "dubbo.scan.basePackages= org.apache.dubbo.spring.boot.actuate.endpoint",
+ "dubbo.scan.basePackages = org.apache.dubbo.spring.boot.actuate.autoconfigure",
"management.endpoint.dubbo.enabled = true",
"management.endpoint.dubboshutdown.enabled = true",
"management.endpoint.dubboconfigs.enabled = true",
@@ -70,16 +73,16 @@ import java.util.function.Supplier;
"management.endpoints.web.exposure.include = *",
})
@EnableAutoConfiguration
-public class DubboEndpointsAutoConfigurationTest {
+public class DubboEndpointAnnotationAutoConfigurationTest {
@Autowired
- private DubboEndpoint dubboEndpoint;
+ private DubboMetadataEndpoint dubboEndpoint;
@Autowired
private DubboConfigsMetadataEndpoint dubboConfigsMetadataEndpoint;
@Autowired
- private DubboPropertiesEndpoint dubboPropertiesEndpoint;
+ private DubboPropertiesMetadataEndpoint dubboPropertiesEndpoint;
@Autowired
private DubboReferencesMetadataEndpoint dubboReferencesMetadataEndpoint;
@@ -156,7 +159,7 @@ public class DubboEndpointsAutoConfigurationTest {
Assert.assertEquals(1, services.size());
- Map<String, Object> demoServiceMeta = services.get("ServiceBean:org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpointsAutoConfigurationTest$DemoService:1.0.0");
+ Map<String, Object> demoServiceMeta = services.get("ServiceBean:org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointAnnotationAutoConfigurationTest$DemoService:1.0.0");
Assert.assertEquals("1.0.0", demoServiceMeta.get("version"));
@@ -187,7 +190,7 @@ public class DubboEndpointsAutoConfigurationTest {
Assert.assertEquals("20880", properties.get("dubbo.protocol.port"));
Assert.assertEquals("my-provider", properties.get("dubbo.provider.id"));
Assert.assertEquals("127.0.0.1", properties.get("dubbo.provider.host"));
- Assert.assertEquals("org.apache.dubbo.spring.boot.actuate.endpoint", properties.get("dubbo.scan.basePackages"));
+ Assert.assertEquals("org.apache.dubbo.spring.boot.actuate.autoconfigure", properties.get("dubbo.scan.basePackages"));
}
@Test
diff --git a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
index 8634890..040ccf4 100644
--- a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
+++ b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
@@ -17,11 +17,11 @@
package org.apache.dubbo.spring.boot.actuate.endpoint;
import org.apache.dubbo.spring.boot.util.DubboUtils;
-
import org.junit.Assert;
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.test.context.junit4.SpringRunner;
@@ -30,22 +30,23 @@ import java.util.Map;
import static org.apache.dubbo.common.Version.getVersion;
/**
- * {@link DubboEndpoint} Test
+ * {@link DubboMetadataEndpoint} Test
*
- * @see DubboEndpoint
- * @since 1.0.0
+ * @see DubboMetadataEndpoint
+ * @since 2.7.0
*/
@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {
- DubboEndpoint.class
+ DubboMetadataEndpoint.class
}
)
+@EnableAutoConfiguration
public class DubboEndpointTest {
@Autowired
- private DubboEndpoint dubboEndpoint;
+ private DubboMetadataEndpoint dubboEndpoint;
@Test
public void testInvoke() {
diff --git a/dubbo-spring-boot-autoconfigure/pom.xml b/dubbo-spring-boot-autoconfigure/pom.xml
index f50475a..83f1a4b 100644
--- a/dubbo-spring-boot-autoconfigure/pom.xml
+++ b/dubbo-spring-boot-autoconfigure/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -27,11 +28,19 @@
<artifactId>dubbo-spring-boot-autoconfigure</artifactId>
<packaging>jar</packaging>
- <name>Apache Dubbo Spring Boot Auto-Configure</name>
+ <name>Apache Dubbo Spring Boot :: Auto-Configure</name>
<description>Apache Dubbo Spring Boot Auto-Configure</description>
<dependencies>
+
+ <!-- Spring Boot Auto-Configuration -->
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-spring-boot-autoconfigure-compatible</artifactId>
+ <version>${revision}</version>
+ </dependency>
+
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java b/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinder.java
similarity index 97%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java
rename to dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinder.java
index 7c1dc87..b5d8962 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinder.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.spring.boot.autoconfigure;
import org.apache.dubbo.config.AbstractConfig;
import org.apache.dubbo.config.spring.context.properties.AbstractDubboConfigBinder;
import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
-
import org.springframework.boot.context.properties.bind.BindHandler;
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
@@ -36,9 +35,9 @@ import static org.springframework.boot.context.properties.source.ConfigurationPr
* Spring Boot Relaxed {@link DubboConfigBinder} implementation
* see org.springframework.boot.context.properties.ConfigurationPropertiesBinder
*
- * @since 0.1.1
+ * @since 2.7.0
*/
-public class RelaxedDubboConfigBinder extends AbstractDubboConfigBinder {
+class BinderDubboConfigBinder extends AbstractDubboConfigBinder {
@Override
public <C extends AbstractConfig> void bind(String prefix, C dubboConfig) {
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java b/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java
new file mode 100644
index 0000000..97aa275
--- /dev/null
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java
@@ -0,0 +1,74 @@
+/*
+ * 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.spring.context.properties.DubboConfigBinder;
+import org.apache.dubbo.config.spring.util.PropertySourcesUtils;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+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.source.ConfigurationPropertySources;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import org.springframework.core.env.AbstractEnvironment;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.core.env.PropertyResolver;
+
+import java.util.Map;
+
+import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SCAN_PREFIX;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME;
+import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
+
+/**
+ * Dubbo Relaxed Binding Auto-{@link Configuration} for Spring Boot 2.0
+ *
+ * @see DubboRelaxedBindingAutoConfiguration
+ * @since 2.7.0
+ */
+@Configuration
+@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true)
+@ConditionalOnClass(name = "org.springframework.boot.context.properties.bind.Binder")
+@AutoConfigureBefore(DubboRelaxedBindingAutoConfiguration.class)
+public class DubboRelaxedBinding2AutoConfiguration {
+
+ @Bean(name = BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME)
+ public PropertyResolver dubboScanBasePackagesPropertyResolver(ConfigurableEnvironment environment) {
+ ConfigurableEnvironment propertyResolver = new AbstractEnvironment() {
+ protected void customizePropertySources(MutablePropertySources propertySources) {
+ Map<String, Object> dubboScanProperties = PropertySourcesUtils.getSubProperties(environment, DUBBO_SCAN_PREFIX);
+ propertySources.addLast(new MapPropertySource("dubboScanProperties", dubboScanProperties));
+ }
+ };
+ ConfigurationPropertySources.attach(propertyResolver);
+ return propertyResolver;
+ }
+
+ @ConditionalOnMissingBean(name = RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME, value = DubboConfigBinder.class)
+ @Bean(RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME)
+ @Scope(scopeName = SCOPE_PROTOTYPE)
+ public DubboConfigBinder relaxedDubboConfigBinder() {
+ return new BinderDubboConfigBinder();
+ }
+
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories b/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
index 1ef3d5b..c88a29b 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
+++ b/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
@@ -1,11 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration
-
-
-org.springframework.context.ApplicationListener=\
-org.apache.dubbo.spring.boot.context.event.OverrideDubboConfigApplicationListener,\
-org.apache.dubbo.spring.boot.context.event.WelcomeLogoApplicationListener,\
-org.apache.dubbo.spring.boot.context.event.AwaitingNonWebApplicationListener
-
-org.springframework.boot.env.EnvironmentPostProcessor=\
-org.apache.dubbo.spring.boot.env.DubboDefaultPropertiesEnvironmentPostProcessor
\ No newline at end of file
+org.apache.dubbo.spring.boot.autoconfigure.DubboRelaxedBinding2AutoConfiguration
\ No newline at end of file
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinderTest.java
similarity index 90%
copy from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
copy to dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinderTest.java
index fa91c09..8005302 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
+++ b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/BinderDubboConfigBinderTest.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.spring.boot.autoconfigure;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.RegistryConfig;
-
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -29,17 +28,17 @@ import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringRunner;
/**
- * {@link RelaxedDubboConfigBinder} Test
+ * {@link BinderDubboConfigBinder} Test
*
- * @since 0.1.1
+ * @since 2.7.0
*/
@RunWith(SpringRunner.class)
@TestPropertySource(locations = "classpath:/dubbo.properties")
-@ContextConfiguration(classes = RelaxedDubboConfigBinder.class)
-public class RelaxedDubboConfigBinderTest {
+@ContextConfiguration(classes = BinderDubboConfigBinder.class)
+public class BinderDubboConfigBinderTest {
@Autowired
- private RelaxedDubboConfigBinder dubboConfigBinder;
+ private BinderDubboConfigBinder dubboConfigBinder;
@Test
public void testBinder() {
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java
new file mode 100644
index 0000000..4aee5a5
--- /dev/null
+++ b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java
@@ -0,0 +1,70 @@
+/*
+ * 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.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
+import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.ObjectProvider;
+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.core.env.PropertyResolver;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.util.ClassUtils;
+
+import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME;
+
+/**
+ * {@link DubboRelaxedBinding2AutoConfiguration} Test
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = DubboRelaxedBinding2AutoConfigurationTest.class, properties = {
+ "dubbo.scan.basePackages = org.apache.dubbo.spring.boot.autoconfigure"
+})
+@EnableAutoConfiguration
+public class DubboRelaxedBinding2AutoConfigurationTest {
+
+ @Autowired
+ @Qualifier(BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME)
+ private PropertyResolver propertyResolver;
+
+ @Autowired
+ @Qualifier(RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME)
+ private DubboConfigBinder dubboConfigBinder;
+
+ @Autowired
+ private ObjectProvider<ServiceAnnotationBeanPostProcessor> serviceAnnotationBeanPostProcessor;
+
+ @Autowired
+ private ObjectProvider<ReferenceAnnotationBeanPostProcessor> referenceAnnotationBeanPostProcessor;
+
+ @Test
+ public void testBeans() {
+ Assert.assertTrue(ClassUtils.isAssignableValue(BinderDubboConfigBinder.class, dubboConfigBinder));
+ Assert.assertNotNull(serviceAnnotationBeanPostProcessor);
+ Assert.assertNotNull(serviceAnnotationBeanPostProcessor.getIfAvailable());
+ Assert.assertNotNull(referenceAnnotationBeanPostProcessor);
+ Assert.assertNotNull(referenceAnnotationBeanPostProcessor.getIfAvailable());
+ }
+
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
index 805b225..2ca3766 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
+++ b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
@@ -30,7 +30,7 @@ import java.util.Map;
* {@link EnvironmentUtils} Test
*
* @see EnvironmentUtils
- * @since 1.0.0
+ * @since 2.7.0
*/
public class EnvironmentUtilsTest {
diff --git a/dubbo-spring-boot-actuator/pom.xml b/dubbo-spring-boot-compatible/actuator/pom.xml
similarity index 85%
copy from dubbo-spring-boot-actuator/pom.xml
copy to dubbo-spring-boot-compatible/actuator/pom.xml
index 592bcd6..60fbd2f 100644
--- a/dubbo-spring-boot-actuator/pom.xml
+++ b/dubbo-spring-boot-compatible/actuator/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -19,16 +20,15 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-spring-boot-parent</artifactId>
+ <artifactId>dubbo-spring-boot-compatible</artifactId>
<version>${revision}</version>
- <relativePath>../dubbo-spring-boot-parent/pom.xml</relativePath>
+ <relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>dubbo-spring-boot-actuator</artifactId>
- <packaging>jar</packaging>
- <name>Apache Dubbo Spring Boot Actuator</name>
- <description>Apache Dubbo Spring Boot Actuator</description>
+ <artifactId>dubbo-spring-boot-actuator-compatible</artifactId>
+ <name>Apache Dubbo Spring Boot :: Compatible :: Actuator</name>
+ <description>Apache Dubbo Spring Boot Compatible for Spring Boot 1.x Actuator</description>
<dependencies>
@@ -60,7 +60,7 @@
<!-- Dubbo autoconfigure -->
<dependency>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-spring-boot-autoconfigure</artifactId>
+ <artifactId>dubbo-spring-boot-autoconfigure-compatible</artifactId>
<version>${revision}</version>
</dependency>
@@ -79,5 +79,4 @@
</dependency>
</dependencies>
-
</project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java
similarity index 55%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java
index 0422fea..a74cab1 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfiguration.java
@@ -16,39 +16,37 @@
*/
package org.apache.dubbo.spring.boot.actuate.autoconfigure;
-import org.apache.dubbo.spring.boot.actuate.health.DubboHealthIndicator;
-import org.apache.dubbo.spring.boot.actuate.health.DubboHealthIndicatorProperties;
-import org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration;
-import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
-import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
-import org.springframework.boot.actuate.health.HealthIndicator;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpoint;
+import org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration;
+import org.apache.dubbo.spring.boot.autoconfigure.DubboRelaxedBindingAutoConfiguration;
+import org.springframework.boot.actuate.condition.ConditionalOnEnabledEndpoint;
+import org.springframework.boot.actuate.endpoint.Endpoint;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
- * Dubbo {@link DubboHealthIndicator} Auto Configuration
+ * Dubbo {@link Endpoint} Auto Configuration is compatible with Spring Boot Actuator 1.x
*
- * @see HealthIndicator
- * @since 1.0.0
+ * @since 2.7.0
*/
@Configuration
-@ConditionalOnClass({HealthIndicator.class})
-@AutoConfigureBefore({EndpointAutoConfiguration.class})
-@AutoConfigureAfter(DubboAutoConfiguration.class)
-@ConditionalOnEnabledHealthIndicator("dubbo")
-@EnableConfigurationProperties(DubboHealthIndicatorProperties.class)
-public class DubboHealthIndicatorAutoConfiguration {
+@ConditionalOnClass(name = {
+ "org.springframework.boot.actuate.endpoint.Endpoint" // Spring Boot 1.x
+})
+@AutoConfigureAfter(value = {
+ DubboAutoConfiguration.class,
+ DubboRelaxedBindingAutoConfiguration.class
+})
+public class DubboEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
- public DubboHealthIndicator dubboHealthIndicator() {
- return new DubboHealthIndicator();
+ @ConditionalOnEnabledEndpoint(value = "dubbo")
+ public DubboEndpoint dubboEndpoint() {
+ return new DubboEndpoint();
}
-
}
diff --git a/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java
new file mode 100644
index 0000000..d525e98
--- /dev/null
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointMetadataAutoConfiguration.java
@@ -0,0 +1,38 @@
+/*
+ * 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.actuate.autoconfigure;
+
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.AbstractDubboMetadata;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Dubbo Endpoints Metadata Auto-{@link Configuration}
+ */
+@ConditionalOnClass(name = {
+ "org.springframework.boot.actuate.health.Health" // If spring-boot-actuator is present
+})
+@Configuration
+@AutoConfigureAfter(name = {
+ "org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration",
+ "org.apache.dubbo.spring.boot.autoconfigure.DubboRelaxedBindingAutoConfiguration"
+})
+@ComponentScan(basePackageClasses = AbstractDubboMetadata.class)
+public class DubboEndpointMetadataAutoConfiguration {
+}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
similarity index 74%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
index 0422fea..333954b 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboHealthIndicatorAutoConfiguration.java
@@ -18,15 +18,10 @@ package org.apache.dubbo.spring.boot.actuate.autoconfigure;
import org.apache.dubbo.spring.boot.actuate.health.DubboHealthIndicator;
import org.apache.dubbo.spring.boot.actuate.health.DubboHealthIndicatorProperties;
-import org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration;
-
-import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
-import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator;
import org.springframework.boot.actuate.health.HealthIndicator;
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.autoconfigure.AutoConfigureBefore;
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;
@@ -35,13 +30,13 @@ import org.springframework.context.annotation.Configuration;
* Dubbo {@link DubboHealthIndicator} Auto Configuration
*
* @see HealthIndicator
- * @since 1.0.0
+ * @since 2.7.0
*/
@Configuration
-@ConditionalOnClass({HealthIndicator.class})
-@AutoConfigureBefore({EndpointAutoConfiguration.class})
-@AutoConfigureAfter(DubboAutoConfiguration.class)
-@ConditionalOnEnabledHealthIndicator("dubbo")
+@ConditionalOnClass(name = {
+ "org.springframework.boot.actuate.health.Health"
+})
+@ConditionalOnProperty(name = "management.health.dubbo.enabled", matchIfMissing = true, havingValue = "true")
@EnableConfigurationProperties(DubboHealthIndicatorProperties.class)
public class DubboHealthIndicatorAutoConfiguration {
diff --git a/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMvcEndpointManagementContextConfiguration.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMvcEndpointManagementContextConfiguration.java
new file mode 100644
index 0000000..cfe537c
--- /dev/null
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboMvcEndpointManagementContextConfiguration.java
@@ -0,0 +1,48 @@
+/*
+ * 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.actuate.autoconfigure;
+
+
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.mvc.DubboMvcEndpoint;
+import org.springframework.boot.actuate.autoconfigure.ManagementContextConfiguration;
+import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
+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.ConditionalOnWebApplication;
+import org.springframework.context.annotation.Bean;
+
+/**
+ * Dubbo {@link MvcEndpoint} {@link ManagementContextConfiguration} for Spring Boot 1.x
+ *
+ * @since 2.7.0
+ */
+@ManagementContextConfiguration
+@ConditionalOnClass(name = {
+ "org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter"
+})
+@ConditionalOnWebApplication
+public class DubboMvcEndpointManagementContextConfiguration {
+
+ @Bean
+ @ConditionalOnBean(DubboEndpoint.class)
+ @ConditionalOnMissingBean
+ public DubboMvcEndpoint dubboMvcEndpoint(DubboEndpoint dubboEndpoint) {
+ return new DubboMvcEndpoint(dubboEndpoint);
+ }
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java
similarity index 52%
copy from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java
index be9d2a3..0e0aa75 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java
@@ -14,35 +14,35 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.context.event;
+package org.apache.dubbo.spring.boot.actuate.endpoint;
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboMetadata;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.boot.actuate.endpoint.AbstractEndpoint;
+import org.springframework.boot.actuate.endpoint.Endpoint;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+import java.util.Map;
/**
- * {@link WelcomeLogoApplicationListener} Test
+ * Actuator {@link Endpoint} to expose Dubbo Meta Data
*
- * @see WelcomeLogoApplicationListener
- * @since 1.0.0
+ * @see Endpoint
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(
- classes = {WelcomeLogoApplicationListener.class}
-)
-public class WelcomeLogoApplicationListenerTest {
+@ConfigurationProperties(prefix = "endpoints.dubbo", ignoreUnknownFields = false)
+public class DubboEndpoint extends AbstractEndpoint<Map<String, Object>> {
@Autowired
- private WelcomeLogoApplicationListener welcomeLogoApplicationListener;
-
- @Test
- public void testOnApplicationEvent() {
-
- Assert.assertNotNull(welcomeLogoApplicationListener.buildBannerText());
+ private DubboMetadata dubboMetadata;
+ public DubboEndpoint() {
+ super("dubbo", true, false);
}
+ @Override
+ public Map<String, Object> invoke() {
+ return dubboMetadata.invoke();
+ }
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/AbstractDubboEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/AbstractDubboMetadata.java
similarity index 94%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/AbstractDubboEndpoint.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/AbstractDubboMetadata.java
index eae99b4..fb4e01f 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/AbstractDubboEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/AbstractDubboMetadata.java
@@ -14,14 +14,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.spring.ServiceBean;
import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-
import org.springframework.beans.BeansException;
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.EnvironmentAware;
@@ -44,11 +42,11 @@ import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncl
import static org.springframework.util.ClassUtils.isPrimitiveOrWrapper;
/**
- * Abstract Dubbo {@link Endpoint @Endpoint}
+ * Abstract Dubbo Meatadata
*
- * @since 0.2.0
+ * @since 2.7.0
*/
-public abstract class AbstractDubboEndpoint implements ApplicationContextAware, EnvironmentAware {
+public abstract class AbstractDubboMetadata implements ApplicationContextAware, EnvironmentAware {
protected ApplicationContext applicationContext;
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboConfigsMetadata.java
similarity index 89%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboConfigsMetadata.java
index 2cce543..46de93e 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboConfigsMetadataEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboConfigsMetadata.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.config.AbstractConfig;
import org.apache.dubbo.config.ApplicationConfig;
@@ -27,9 +27,7 @@ import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
-
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
+import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -38,14 +36,13 @@ import java.util.TreeMap;
import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;
/**
- * Dubbo Configs Metadata {@link Endpoint}
+ * Dubbo Configs Metadata
*
- * @since 0.2.0
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboconfigs")
-public class DubboConfigsMetadataEndpoint extends AbstractDubboEndpoint {
+@Component
+public class DubboConfigsMetadata extends AbstractDubboMetadata {
- @ReadOperation
public Map<String, Map<String, Map<String, Object>>> configs() {
Map<String, Map<String, Map<String, Object>>> configsMap = new LinkedHashMap<>();
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboMetadata.java
similarity index 85%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboMetadata.java
index 34d2a9b..cf08180 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboMetadata.java
@@ -14,13 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.common.Version;
import org.apache.dubbo.spring.boot.util.DubboUtils;
-
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
+import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -32,15 +30,12 @@ import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SPRING_BOOT_GIT
import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SPRING_BOOT_ISSUES_URL;
/**
- * Actuator {@link Endpoint} to expose Dubbo Meta Data
- *
- * @see Endpoint
- * @since 1.0.0
+ * Dubbo Metadata
+ * @since 2.7.0
*/
-@Endpoint(id = "dubbo")
-public class DubboEndpoint {
+@Component
+public class DubboMetadata {
- @ReadOperation
public Map<String, Object> invoke() {
Map<String, Object> metaData = new LinkedHashMap<>();
@@ -63,5 +58,4 @@ public class DubboEndpoint {
return metaData;
}
-
}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboPropertiesMetadata.java
similarity index 73%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboPropertiesMetadata.java
index 65de76d..3749a06 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboPropertiesEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboPropertiesMetadata.java
@@ -14,28 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
+import org.springframework.stereotype.Component;
import java.util.SortedMap;
import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties;
/**
- * Dubbo Properties {@link Endpoint}
+ * Dubbo Properties Metadata
*
- * @since 1.0.0
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboproperties")
-public class DubboPropertiesEndpoint extends AbstractDubboEndpoint {
+@Component
+public class DubboPropertiesMetadata extends AbstractDubboMetadata {
- @ReadOperation
public SortedMap<String, Object> properties() {
-
return filterDubboProperties(environment);
-
}
-
-}
+}
\ No newline at end of file
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboReferencesMetadata.java
similarity index 86%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboReferencesMetadata.java
index b6aa6ff..e389a6a 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboReferencesMetadataEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboReferencesMetadata.java
@@ -14,28 +14,25 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.spring.ReferenceBean;
import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-
import org.springframework.beans.factory.annotation.InjectionMetadata;
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
+import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
/**
- * Dubbo {@link Reference} Metadata {@link Endpoint}
+ * Dubbo {@link Reference} Metadata
*
- * @since 1.0.0
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboreferences")
-public class DubboReferencesMetadataEndpoint extends AbstractDubboEndpoint {
+@Component
+public class DubboReferencesMetadata extends AbstractDubboMetadata {
- @ReadOperation
public Map<String, Map<String, Object>> references() {
Map<String, Map<String, Object>> referencesMetadata = new LinkedHashMap<>();
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboServicesMetadata.java
similarity index 85%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboServicesMetadata.java
index dfef5a8..7122e36 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboServicesMetadataEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboServicesMetadata.java
@@ -14,26 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.config.spring.ServiceBean;
-
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
+import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
/**
- * Dubbo {@link Service} Metadata {@link Endpoint}
+ * Dubbo {@link Service} Metadata
*
- * @since 0.2.0
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboservices")
-public class DubboServicesMetadataEndpoint extends AbstractDubboEndpoint {
+@Component
+public class DubboServicesMetadata extends AbstractDubboMetadata {
- @ReadOperation
public Map<String, Map<String, Object>> services() {
Map<String, ServiceBean> serviceBeansMap = getServiceBeansMap();
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboShutdownMetadata.java
similarity index 87%
copy from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java
copy to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboShutdownMetadata.java
index a10f4d4..225c324 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboShutdownEndpoint.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/metadata/DubboShutdownMetadata.java
@@ -14,13 +14,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
+package org.apache.dubbo.spring.boot.actuate.endpoint.metadata;
import org.apache.dubbo.config.spring.ServiceBean;
import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-
-import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
-import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
+import org.springframework.stereotype.Component;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -31,13 +29,12 @@ import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getRegis
/**
* Dubbo Shutdown
*
- * @since 0.2.0
+ * @since 2.7.0
*/
-@Endpoint(id = "dubboshutdown")
-public class DubboShutdownEndpoint extends AbstractDubboEndpoint {
+@Component
+public class DubboShutdownMetadata extends AbstractDubboMetadata {
- @WriteOperation
public Map<String, Object> shutdown() throws Exception {
Map<String, Object> shutdownCountData = new LinkedHashMap<>();
diff --git a/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/mvc/DubboMvcEndpoint.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/mvc/DubboMvcEndpoint.java
new file mode 100644
index 0000000..fb23504
--- /dev/null
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/endpoint/mvc/DubboMvcEndpoint.java
@@ -0,0 +1,111 @@
+/*
+ * 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.actuate.endpoint.mvc;
+
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboConfigsMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboPropertiesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboReferencesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboServicesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboShutdownMetadata;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.actuate.endpoint.mvc.EndpointMvcAdapter;
+import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.context.request.async.DeferredResult;
+
+import java.util.Map;
+import java.util.SortedMap;
+
+/**
+ * {@link MvcEndpoint} to expose Dubbo Metadata
+ *
+ * @see MvcEndpoint
+ * @since 2.7.0
+ */
+public class DubboMvcEndpoint extends EndpointMvcAdapter {
+
+ public static final String DUBBO_SHUTDOWN_ENDPOINT_URI = "/shutdown";
+
+ public static final String DUBBO_CONFIGS_ENDPOINT_URI = "/configs";
+
+ public static final String DUBBO_SERVICES_ENDPOINT_URI = "/services";
+
+ public static final String DUBBO_REFERENCES_ENDPOINT_URI = "/references";
+
+ public static final String DUBBO_PROPERTIES_ENDPOINT_URI = "/properties";
+
+ private final Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private DubboShutdownMetadata dubboShutdownMetadata;
+
+ @Autowired
+ private DubboConfigsMetadata dubboConfigsMetadata;
+
+ @Autowired
+ private DubboServicesMetadata dubboServicesMetadata;
+
+ @Autowired
+ private DubboReferencesMetadata dubboReferencesMetadata;
+
+ @Autowired
+ private DubboPropertiesMetadata dubboPropertiesMetadata;
+
+ public DubboMvcEndpoint(DubboEndpoint dubboEndpoint) {
+ super(dubboEndpoint);
+ }
+
+
+ @RequestMapping(value = DUBBO_SHUTDOWN_ENDPOINT_URI, method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public DeferredResult shutdown() throws Exception {
+ Map<String, Object> shutdownCountData = dubboShutdownMetadata.shutdown();
+ return new DeferredResult(null, shutdownCountData);
+ }
+
+ @RequestMapping(value = DUBBO_CONFIGS_ENDPOINT_URI, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public Map<String, Map<String, Map<String, Object>>> configs() {
+ return dubboConfigsMetadata.configs();
+ }
+
+
+ @RequestMapping(value = DUBBO_SERVICES_ENDPOINT_URI, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public Map<String, Map<String, Object>> services() {
+ return dubboServicesMetadata.services();
+ }
+
+ @RequestMapping(value = DUBBO_REFERENCES_ENDPOINT_URI, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public Map<String, Map<String, Object>> references() {
+ return dubboReferencesMetadata.references();
+ }
+
+ @RequestMapping(value = DUBBO_PROPERTIES_ENDPOINT_URI, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
+ @ResponseBody
+ public SortedMap<String, Object> properties() {
+ return dubboPropertiesMetadata.properties();
+
+ }
+}
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
similarity index 99%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
index 2b2cf17..c937dc6 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicator.java
@@ -20,7 +20,6 @@ import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.status.StatusChecker;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.ProviderConfig;
-
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
@@ -38,7 +37,7 @@ import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoad
* Dubbo {@link HealthIndicator}
*
* @see HealthIndicator
- * @since 1.0.0
+ * @since 2.7.0
*/
public class DubboHealthIndicator extends AbstractHealthIndicator {
diff --git a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java
similarity index 99%
rename from dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java
rename to dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java
index d931b19..7699293 100644
--- a/dubbo-spring-boot-actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java
+++ b/dubbo-spring-boot-compatible/actuator/src/main/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorProperties.java
@@ -17,7 +17,6 @@
package org.apache.dubbo.spring.boot.actuate.health;
import org.apache.dubbo.common.status.StatusChecker;
-
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -31,7 +30,7 @@ import static org.apache.dubbo.spring.boot.actuate.health.DubboHealthIndicatorPr
* Dubbo {@link HealthIndicator} Properties
*
* @see HealthIndicator
- * @since 1.0.0
+ * @since 2.7.0
*/
@ConfigurationProperties(prefix = PREFIX, ignoreUnknownFields = false)
public class DubboHealthIndicatorProperties {
diff --git a/dubbo-spring-boot-compatible/actuator/src/main/resources/META-INF/spring.factories b/dubbo-spring-boot-compatible/actuator/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..bea4633
--- /dev/null
+++ b/dubbo-spring-boot-compatible/actuator/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,6 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointAutoConfiguration,\
+org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboHealthIndicatorAutoConfiguration,\
+org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointMetadataAutoConfiguration
+org.springframework.boot.actuate.autoconfigure.ManagementContextConfiguration=\
+org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboMvcEndpointManagementContextConfiguration
\ No newline at end of file
diff --git a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java b/dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfigurationTest.java
similarity index 75%
rename from dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java
rename to dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfigurationTest.java
index 39d06e7..9f5f51e 100644
--- a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointsAutoConfigurationTest.java
+++ b/dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/autoconfigure/DubboEndpointAutoConfigurationTest.java
@@ -14,13 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.actuate.endpoint;
-
-import org.apache.dubbo.config.annotation.Service;
-import org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointsAutoConfiguration;
+package org.apache.dubbo.spring.boot.actuate.autoconfigure;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.dubbo.config.annotation.Service;
+import org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpoint;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboConfigsMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboPropertiesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboReferencesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboServicesMetadata;
+import org.apache.dubbo.spring.boot.actuate.endpoint.metadata.DubboShutdownMetadata;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -36,15 +40,15 @@ import java.util.SortedMap;
import java.util.function.Supplier;
/**
- * {@link DubboEndpointsAutoConfiguration} Test
+ * {@link DubboEndpointAutoConfiguration} Test
*
- * @since 0.2.0
+ * @since 2.7.0
*/
@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {
- DubboEndpointsAutoConfiguration.class,
- DubboEndpointsAutoConfigurationTest.class
+ DubboEndpointAutoConfiguration.class,
+ DubboEndpointAutoConfigurationTest.class
},
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
properties = {
@@ -60,48 +64,51 @@ import java.util.function.Supplier;
"dubbo.protocol.port=20880",
"dubbo.provider.id=my-provider",
"dubbo.provider.host=127.0.0.1",
- "dubbo.scan.basePackages= org.apache.dubbo.spring.boot.actuate.endpoint",
- "management.endpoint.dubbo.enabled = true",
- "management.endpoint.dubboshutdown.enabled = true",
- "management.endpoint.dubboconfigs.enabled = true",
- "management.endpoint.dubboservices.enabled = true",
- "management.endpoint.dubboreferences.enabled = true",
- "management.endpoint.dubboproperties.enabled = true",
- "management.endpoints.web.exposure.include = *",
+ "dubbo.scan.basePackages=org.apache.dubbo.spring.boot.actuate.autoconfigure",
+ "endpoints.enabled = true",
+ "management.security.enabled = false",
+ "management.contextPath = /actuator",
+ "endpoints.dubbo.enabled = true",
+ "endpoints.dubbo.sensitive = false",
+ "endpoints.dubboshutdown.enabled = true",
+ "endpoints.dubboconfigs.enabled = true",
+ "endpoints.dubboservices.enabled = true",
+ "endpoints.dubboreferences.enabled = true",
+ "endpoints.dubboproperties.enabled = true",
})
@EnableAutoConfiguration
-public class DubboEndpointsAutoConfigurationTest {
+public class DubboEndpointAutoConfigurationTest {
@Autowired
private DubboEndpoint dubboEndpoint;
@Autowired
- private DubboConfigsMetadataEndpoint dubboConfigsMetadataEndpoint;
+ private DubboConfigsMetadata dubboConfigsMetadata;
@Autowired
- private DubboPropertiesEndpoint dubboPropertiesEndpoint;
+ private DubboPropertiesMetadata dubboProperties;
@Autowired
- private DubboReferencesMetadataEndpoint dubboReferencesMetadataEndpoint;
+ private DubboReferencesMetadata dubboReferencesMetadata;
@Autowired
- private DubboServicesMetadataEndpoint dubboServicesMetadataEndpoint;
+ private DubboServicesMetadata dubboServicesMetadata;
@Autowired
- private DubboShutdownEndpoint dubboShutdownEndpoint;
+ private DubboShutdownMetadata dubboShutdownMetadata;
private RestTemplate restTemplate = new RestTemplate();
@Autowired
private ObjectMapper objectMapper;
- @Value("http://127.0.0.1:${local.management.port}${management.endpoints.web.base-path:/actuator}")
+ @Value("http://127.0.0.1:${local.management.port}${management.contextPath:}")
private String actuatorBaseURL;
@Test
public void testShutdown() throws Exception {
- Map<String, Object> value = dubboShutdownEndpoint.shutdown();
+ Map<String, Object> value = dubboShutdownMetadata.shutdown();
Map<String, Object> shutdownCounts = (Map<String, Object>) value.get("shutdown.count");
@@ -115,7 +122,7 @@ public class DubboEndpointsAutoConfigurationTest {
@Test
public void testConfigs() {
- Map<String, Map<String, Map<String, Object>>> configsMap = dubboConfigsMetadataEndpoint.configs();
+ Map<String, Map<String, Map<String, Object>>> configsMap = dubboConfigsMetadata.configs();
Map<String, Map<String, Object>> beansMetadata = configsMap.get("ApplicationConfig");
Assert.assertEquals("dubbo-demo-application", beansMetadata.get("my-application").get("name"));
@@ -152,11 +159,11 @@ public class DubboEndpointsAutoConfigurationTest {
@Test
public void testServices() {
- Map<String, Map<String, Object>> services = dubboServicesMetadataEndpoint.services();
+ Map<String, Map<String, Object>> services = dubboServicesMetadata.services();
Assert.assertEquals(1, services.size());
- Map<String, Object> demoServiceMeta = services.get("ServiceBean:org.apache.dubbo.spring.boot.actuate.endpoint.DubboEndpointsAutoConfigurationTest$DemoService:1.0.0");
+ Map<String, Object> demoServiceMeta = services.get("ServiceBean:org.apache.dubbo.spring.boot.actuate.autoconfigure.DubboEndpointAutoConfigurationTest$DemoService:1.0.0");
Assert.assertEquals("1.0.0", demoServiceMeta.get("version"));
@@ -165,7 +172,7 @@ public class DubboEndpointsAutoConfigurationTest {
@Test
public void testReferences() {
- Map<String, Map<String, Object>> references = dubboReferencesMetadataEndpoint.references();
+ Map<String, Map<String, Object>> references = dubboReferencesMetadata.references();
Assert.assertTrue(references.isEmpty());
@@ -174,7 +181,7 @@ public class DubboEndpointsAutoConfigurationTest {
@Test
public void testProperties() {
- SortedMap<String, Object> properties = dubboPropertiesEndpoint.properties();
+ SortedMap<String, Object> properties = dubboProperties.properties();
Assert.assertEquals("my-application", properties.get("dubbo.application.id"));
Assert.assertEquals("dubbo-demo-application", properties.get("dubbo.application.name"));
@@ -187,16 +194,16 @@ public class DubboEndpointsAutoConfigurationTest {
Assert.assertEquals("20880", properties.get("dubbo.protocol.port"));
Assert.assertEquals("my-provider", properties.get("dubbo.provider.id"));
Assert.assertEquals("127.0.0.1", properties.get("dubbo.provider.host"));
- Assert.assertEquals("org.apache.dubbo.spring.boot.actuate.endpoint", properties.get("dubbo.scan.basePackages"));
+ Assert.assertEquals("org.apache.dubbo.spring.boot.actuate.autoconfigure", properties.get("dubbo.scan.basePackages"));
}
@Test
public void testHttpEndpoints() throws JsonProcessingException {
// testHttpEndpoint("/dubbo", dubboEndpoint::invoke);
- testHttpEndpoint("/dubbo/configs", dubboConfigsMetadataEndpoint::configs);
- testHttpEndpoint("/dubbo/services", dubboServicesMetadataEndpoint::services);
- testHttpEndpoint("/dubbo/references", dubboReferencesMetadataEndpoint::references);
- testHttpEndpoint("/dubbo/properties", dubboPropertiesEndpoint::properties);
+ testHttpEndpoint("/dubbo/configs", dubboConfigsMetadata::configs);
+ testHttpEndpoint("/dubbo/services", dubboServicesMetadata::services);
+ testHttpEndpoint("/dubbo/references", dubboReferencesMetadata::references);
+ testHttpEndpoint("/dubbo/properties", dubboProperties::properties);
}
private void testHttpEndpoint(String actuatorURI, Supplier<Map> resultsSupplier) throws JsonProcessingException {
diff --git a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java b/dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java
similarity index 96%
rename from dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java
rename to dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java
index 6a2efe3..a3ac06d 100644
--- a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java
+++ b/dubbo-spring-boot-compatible/actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/health/DubboHealthIndicatorTest.java
@@ -17,7 +17,6 @@
package org.apache.dubbo.spring.boot.actuate.health;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
-
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -27,7 +26,7 @@ import org.springframework.boot.actuate.health.Status;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import java.util.Map;
@@ -35,9 +34,9 @@ import java.util.Map;
* {@link DubboHealthIndicator} Test
*
* @see DubboHealthIndicator
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@TestPropertySource(properties = {
"dubbo.protocol.id = dubbo-protocol",
"dubbo.protocol.name = dubbo",
diff --git a/dubbo-spring-boot-autoconfigure/pom.xml b/dubbo-spring-boot-compatible/autoconfigure/pom.xml
similarity index 85%
copy from dubbo-spring-boot-autoconfigure/pom.xml
copy to dubbo-spring-boot-compatible/autoconfigure/pom.xml
index f50475a..f1b0e12 100644
--- a/dubbo-spring-boot-autoconfigure/pom.xml
+++ b/dubbo-spring-boot-compatible/autoconfigure/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -19,19 +20,19 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.apache.dubbo</groupId>
- <artifactId>dubbo-spring-boot-parent</artifactId>
+ <artifactId>dubbo-spring-boot-compatible</artifactId>
<version>${revision}</version>
- <relativePath>../dubbo-spring-boot-parent/pom.xml</relativePath>
+ <relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>dubbo-spring-boot-autoconfigure</artifactId>
- <packaging>jar</packaging>
- <name>Apache Dubbo Spring Boot Auto-Configure</name>
- <description>Apache Dubbo Spring Boot Auto-Configure</description>
+ <artifactId>dubbo-spring-boot-autoconfigure-compatible</artifactId>
+ <name>Apache Dubbo Spring Boot :: Compatible :: Auto-Configure</name>
+ <description>Apache Dubbo Spring Boot Compatible for Spring Boot 1.x Auto-Configure</description>
<dependencies>
+
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -67,4 +68,5 @@
</dependency>
</dependencies>
+
</project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
similarity index 70%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
index d90bd0d..f49e49e 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
@@ -16,72 +16,60 @@
*/
package org.apache.dubbo.spring.boot.autoconfigure;
-import org.apache.dubbo.config.AbstractConfig;
-import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
-import org.apache.dubbo.config.spring.context.annotation.DubboComponentScan;
import org.apache.dubbo.config.spring.context.annotation.DubboConfigConfiguration;
-import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
-
-import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.beans.factory.annotation.Qualifier;
+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.context.properties.bind.Binder;
-import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Scope;
-import org.springframework.core.env.Environment;
+import org.springframework.core.env.PropertyResolver;
import java.util.Set;
import static java.util.Collections.emptySet;
import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_CONFIG_PREFIX;
import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SCAN_PREFIX;
import static org.apache.dubbo.spring.boot.util.DubboUtils.MULTIPLE_CONFIG_PROPERTY_NAME;
-import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
/**
* Dubbo Auto {@link Configuration}
*
- * @see ApplicationConfig
- * @see Service
* @see Reference
- * @see DubboComponentScan
- * @see EnableDubboConfig
- * @see EnableDubbo
- * @since 1.0.0
+ * @see Service
+ * @see ServiceAnnotationBeanPostProcessor
+ * @see ReferenceAnnotationBeanPostProcessor
+ * @since 2.7.0
*/
+@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true)
@Configuration
-@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true, havingValue = "true")
-@ConditionalOnClass(AbstractConfig.class)
+@AutoConfigureAfter(DubboRelaxedBindingAutoConfiguration.class)
public class DubboAutoConfiguration {
/**
* Creates {@link ServiceAnnotationBeanPostProcessor} Bean
*
- * @param environment {@link Environment} Bean
+ * @param propertyResolver {@link PropertyResolver} Bean
* @return {@link ServiceAnnotationBeanPostProcessor}
*/
- @ConditionalOnProperty(name = BASE_PACKAGES_PROPERTY_NAME)
- @ConditionalOnClass(ConfigurationPropertySources.class)
+ @ConditionalOnProperty(prefix = DUBBO_SCAN_PREFIX, name = BASE_PACKAGES_PROPERTY_NAME)
+ @ConditionalOnBean(name = BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME)
@Bean
- public ServiceAnnotationBeanPostProcessor serviceAnnotationBeanPostProcessor(Environment environment) {
- Set<String> packagesToScan = environment.getProperty(BASE_PACKAGES_PROPERTY_NAME, Set.class, emptySet());
+ public ServiceAnnotationBeanPostProcessor serviceAnnotationBeanPostProcessor(
+ @Qualifier(BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME) PropertyResolver propertyResolver) {
+ Set<String> packagesToScan = propertyResolver.getProperty(BASE_PACKAGES_PROPERTY_NAME, Set.class, emptySet());
return new ServiceAnnotationBeanPostProcessor(packagesToScan);
}
- @ConditionalOnClass(Binder.class)
- @Bean
- @Scope(scopeName = SCOPE_PROTOTYPE)
- public RelaxedDubboConfigBinder relaxedDubboConfigBinder() {
- return new RelaxedDubboConfigBinder();
- }
-
/**
* Creates {@link ReferenceAnnotationBeanPostProcessor} Bean if Absent
*
@@ -109,7 +97,7 @@ public class DubboAutoConfiguration {
* @see EnableDubboConfig
* @see DubboConfigConfiguration.Multiple
*/
- @ConditionalOnProperty(name = MULTIPLE_CONFIG_PROPERTY_NAME, havingValue = "true")
+ @ConditionalOnProperty(prefix = DUBBO_CONFIG_PREFIX, name = MULTIPLE_CONFIG_PROPERTY_NAME, matchIfMissing = true)
@EnableDubboConfig(multiple = true)
protected static class MultipleDubboConfigConfiguration {
}
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java
new file mode 100644
index 0000000..4de242e
--- /dev/null
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java
@@ -0,0 +1,55 @@
+/*
+ * 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.spring.context.properties.DubboConfigBinder;
+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.bind.RelaxedPropertyResolver;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Scope;
+import org.springframework.core.env.Environment;
+import org.springframework.core.env.PropertyResolver;
+
+import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_PREFIX;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SCAN_PREFIX;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME;
+import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE;
+
+/**
+ * Dubbo Relaxed Binding Auto-{@link Configuration} for Spring Boot 1.x
+ */
+@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true)
+@ConditionalOnClass(name = "org.springframework.boot.bind.RelaxedPropertyResolver")
+@Configuration
+public class DubboRelaxedBindingAutoConfiguration {
+
+ @Bean(name = BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME)
+ public PropertyResolver dubboScanBasePackagesPropertyResolver(Environment environment) {
+ return new RelaxedPropertyResolver(environment, DUBBO_SCAN_PREFIX);
+ }
+
+ @ConditionalOnMissingBean(name = RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME, value = DubboConfigBinder.class)
+ @Bean(RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME)
+ @Scope(scopeName = SCOPE_PROTOTYPE)
+ public DubboConfigBinder relaxedDubboConfigBinder() {
+ return new RelaxedDubboConfigBinder();
+ }
+}
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java
new file mode 100644
index 0000000..b0e8480
--- /dev/null
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinder.java
@@ -0,0 +1,49 @@
+/*
+ * 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.AbstractConfig;
+import org.apache.dubbo.config.spring.context.properties.AbstractDubboConfigBinder;
+import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
+import org.springframework.beans.MutablePropertyValues;
+import org.springframework.boot.bind.RelaxedDataBinder;
+
+import java.util.Map;
+
+import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getSubProperties;
+
+/**
+ * Spring Boot Relaxed {@link DubboConfigBinder} implementation
+ *
+ * @since 2.7.0
+ */
+class RelaxedDubboConfigBinder extends AbstractDubboConfigBinder {
+
+ @Override
+ public <C extends AbstractConfig> void bind(String prefix, C dubboConfig) {
+ RelaxedDataBinder relaxedDataBinder = new RelaxedDataBinder(dubboConfig);
+ // Set ignored*
+ relaxedDataBinder.setIgnoreInvalidFields(isIgnoreInvalidFields());
+ relaxedDataBinder.setIgnoreUnknownFields(isIgnoreUnknownFields());
+ // Get properties under specified prefix from PropertySources
+ Map<String, Object> properties = getSubProperties(getPropertySources(), prefix);
+ // Convert Map to MutablePropertyValues
+ MutablePropertyValues propertyValues = new MutablePropertyValues(properties);
+ // Bind
+ relaxedDataBinder.bind(propertyValues);
+ }
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
similarity index 80%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
index f4a94d2..738c2b1 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
@@ -19,12 +19,13 @@ package org.apache.dubbo.spring.boot.context.event;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.WebApplicationType;
import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.SmartApplicationListener;
+import org.springframework.util.ClassUtils;
import org.springframework.util.ObjectUtils;
import java.util.concurrent.ExecutorService;
@@ -37,10 +38,15 @@ import java.util.concurrent.locks.ReentrantLock;
/**
* Awaiting Non-Web Spring Boot {@link ApplicationListener}
*
- * @since 0.1.1
+ * @since 2.7.0
*/
public class AwaitingNonWebApplicationListener implements SmartApplicationListener {
+ private static final String[] WEB_APPLICATION_CONTEXT_CLASSES = new String[]{
+ "org.springframework.web.context.WebApplicationContext",
+ "org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext"
+ };
+
private static final Logger logger = LoggerFactory.getLogger(AwaitingNonWebApplicationListener.class);
private static final Class<? extends ApplicationEvent>[] SUPPORTED_APPLICATION_EVENTS =
@@ -90,12 +96,30 @@ public class AwaitingNonWebApplicationListener implements SmartApplicationListen
final SpringApplication springApplication = event.getSpringApplication();
- if (!WebApplicationType.NONE.equals(springApplication.getWebApplicationType())) {
+ if (isWebApplication(event.getApplicationContext(), springApplication.getClassLoader())) {
return;
}
await();
+ }
+
+ private static boolean isWebApplication(ApplicationContext applicationContext, ClassLoader classLoader) {
+ boolean webApplication = false;
+ for (String contextClass : WEB_APPLICATION_CONTEXT_CLASSES) {
+ if (isAssignable(contextClass, applicationContext.getClass(), classLoader)) {
+ webApplication = true;
+ break;
+ }
+ }
+ return webApplication;
+ }
+ private static boolean isAssignable(String target, Class<?> type, ClassLoader classLoader) {
+ try {
+ return ClassUtils.resolveClassName(target, classLoader).isAssignableFrom(type);
+ } catch (Throwable ex) {
+ return false;
+ }
}
protected void onContextClosedEvent(ContextClosedEvent event) {
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java
similarity index 95%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java
index 319c1d9..6e6826b 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListener.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.spring.boot.context.event;
import org.apache.dubbo.common.utils.ConfigUtils;
import org.apache.dubbo.config.AbstractConfig;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
@@ -30,7 +29,7 @@ import org.springframework.core.env.Environment;
import java.util.SortedMap;
import static org.apache.dubbo.spring.boot.util.DubboUtils.DEFAULT_OVERRIDE_CONFIG_PROPERTY_VALUE;
-import static org.apache.dubbo.spring.boot.util.DubboUtils.OVERRIDE_CONFIG_PROPERTY_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.OVERRIDE_CONFIG_FULL_PROPERTY_NAME;
import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties;
/**
@@ -40,7 +39,7 @@ import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties
* <p>
*
* @see ConfigUtils
- * @since 1.0.0
+ * @since 2.7.0
*/
@Order // LOWEST_PRECEDENCE Make sure last execution
public class OverrideDubboConfigApplicationListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {
@@ -56,7 +55,7 @@ public class OverrideDubboConfigApplicationListener implements ApplicationListen
ConfigurableEnvironment environment = event.getEnvironment();
- boolean override = environment.getProperty(OVERRIDE_CONFIG_PROPERTY_NAME, boolean.class,
+ boolean override = environment.getProperty(OVERRIDE_CONFIG_FULL_PROPERTY_NAME, boolean.class,
DEFAULT_OVERRIDE_CONFIG_PROPERTY_VALUE);
if (override) {
@@ -66,19 +65,12 @@ public class OverrideDubboConfigApplicationListener implements ApplicationListen
ConfigUtils.getProperties().putAll(dubboProperties);
if (logger.isInfoEnabled()) {
-
logger.info("Dubbo Config was overridden by externalized configuration {}", dubboProperties);
-
}
-
} else {
-
if (logger.isInfoEnabled()) {
-
- logger.info("Disable override Dubbo Config caused by property {} = {}", OVERRIDE_CONFIG_PROPERTY_NAME, override);
-
+ logger.info("Disable override Dubbo Config caused by property {} = {}", OVERRIDE_CONFIG_FULL_PROPERTY_NAME, override);
}
-
}
}
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java
similarity index 95%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java
index 1db2438..f053227 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListener.java
@@ -17,12 +17,11 @@
package org.apache.dubbo.spring.boot.context.event;
import org.apache.dubbo.common.Version;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
-import org.springframework.boot.context.logging.LoggingApplicationListener;
import org.springframework.context.ApplicationListener;
+import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -36,9 +35,9 @@ import static org.apache.dubbo.spring.boot.util.DubboUtils.LINE_SEPARATOR;
* Dubbo Welcome Logo {@link ApplicationListener}
*
* @see ApplicationListener
- * @since 1.0.0
+ * @since 2.7.0
*/
-@Order(LoggingApplicationListener.DEFAULT_ORDER + 1)
+@Order(Ordered.HIGHEST_PRECEDENCE + 20 + 1) // After LoggingApplicationListener#DEFAULT_ORDER
public class WelcomeLogoApplicationListener implements ApplicationListener<ApplicationEnvironmentPreparedEvent> {
private static AtomicBoolean processed = new AtomicBoolean(false);
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java
similarity index 99%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java
index 3e406c7..0efbc6b 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessor.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.spring.boot.env;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfigBinding;
-
import org.springframework.boot.SpringApplication;
import org.springframework.boot.context.ContextIdApplicationContextInitializer;
import org.springframework.boot.env.EnvironmentPostProcessor;
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
similarity index 78%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
index ba0e9c7..5b9fcd4 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
@@ -16,7 +16,10 @@
*/
package org.apache.dubbo.spring.boot.util;
+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
+import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.core.env.PropertyResolver;
import java.util.Collections;
import java.util.Map;
@@ -26,7 +29,7 @@ import java.util.TreeMap;
/**
* The utilities class for Dubbo
*
- * @since 1.0.0
+ * @since 2.7.0
*/
public abstract class DubboUtils {
@@ -49,38 +52,38 @@ public abstract class DubboUtils {
/**
* The prefix of property name for Dubbo scan
*/
- public static final String DUBBO_SCAN_PREFIX = DUBBO_PREFIX + PROPERTY_NAME_SEPARATOR + "scan";
+ public static final String DUBBO_SCAN_PREFIX = DUBBO_PREFIX + PROPERTY_NAME_SEPARATOR + "scan" + PROPERTY_NAME_SEPARATOR;
/**
- * The prefix of property name for Dubbo Config.ØØ
+ * The prefix of property name for Dubbo Config
*/
- public static final String DUBBO_CONFIG_PREFIX = DUBBO_PREFIX + PROPERTY_NAME_SEPARATOR + "config";
+ public static final String DUBBO_CONFIG_PREFIX = DUBBO_PREFIX + PROPERTY_NAME_SEPARATOR + "config" + PROPERTY_NAME_SEPARATOR;
/**
* The property name of base packages to scan
* <p>
* The default value is empty set.
*/
- public static final String BASE_PACKAGES_PROPERTY_NAME = DUBBO_SCAN_PREFIX + PROPERTY_NAME_SEPARATOR + "base-packages";
+ public static final String BASE_PACKAGES_PROPERTY_NAME = "base-packages";
/**
* The property name of multiple properties binding from externalized configuration
* <p>
* The default value is {@link #DEFAULT_MULTIPLE_CONFIG_PROPERTY_VALUE}
*/
- public static final String MULTIPLE_CONFIG_PROPERTY_NAME = DUBBO_CONFIG_PREFIX + PROPERTY_NAME_SEPARATOR + "multiple";
+ public static final String MULTIPLE_CONFIG_PROPERTY_NAME = "multiple";
/**
* The default value of multiple properties binding from externalized configuration
*/
- public static final boolean DEFAULT_MULTIPLE_CONFIG_PROPERTY_VALUE = false;
+ public static final boolean DEFAULT_MULTIPLE_CONFIG_PROPERTY_VALUE = true;
/**
* The property name of override Dubbo config
* <p>
* The default value is {@link #DEFAULT_OVERRIDE_CONFIG_PROPERTY_VALUE}
*/
- public static final String OVERRIDE_CONFIG_PROPERTY_NAME = DUBBO_CONFIG_PREFIX + PROPERTY_NAME_SEPARATOR + "override";
+ public static final String OVERRIDE_CONFIG_FULL_PROPERTY_NAME = DUBBO_CONFIG_PREFIX + "override";
/**
* The default property value of override Dubbo config
@@ -114,6 +117,16 @@ public abstract class DubboUtils {
public static final String DUBBO_MAILING_LIST = "dev@dubbo.apache.org";
/**
+ * The bean name of Relaxed-binding {@link DubboConfigBinder}
+ */
+ public static final String RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME = "relaxedDubboConfigBinder";
+
+ /**
+ * The bean name of {@link PropertyResolver} for {@link ServiceAnnotationBeanPostProcessor}'s base-packages
+ */
+ public static final String BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME = "dubboScanBasePackagesPropertyResolver";
+
+ /**
* Filters Dubbo Properties from {@link ConfigurableEnvironment}
*
* @param environment {@link ConfigurableEnvironment}
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java
similarity index 99%
rename from dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java
index 1f0e118..943c1a4 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/EnvironmentUtils.java
@@ -32,7 +32,7 @@ import java.util.Map;
* The utilities class for {@link Environment}
*
* @see Environment
- * @since 1.0.0
+ * @since 2.7.0
*/
public abstract class EnvironmentUtils {
diff --git a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json b/dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json
similarity index 58%
rename from dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json
rename to dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json
index 2b52009..d810121 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring-configuration-metadata.json
@@ -3,92 +3,92 @@
"groups": [],
"properties": [
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.architecture",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.compiler",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.dump-directory",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.environment",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.logger",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.monitor",
- "type": "com.alibaba.dubbo.config.MonitorConfig"
+ "type": "org.apache.dubbo.config.MonitorConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.name",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.organization",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.owner",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.qos-accept-foreign-ip",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.qos-enable",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.qos-port",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.registries",
- "type": "java.util.List<com.alibaba.dubbo.config.RegistryConfig>"
+ "type": "java.util.List<org.apache.dubbo.config.RegistryConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.registry",
- "type": "com.alibaba.dubbo.config.RegistryConfig"
+ "type": "org.apache.dubbo.config.RegistryConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ApplicationConfig",
+ "sourceType": "org.apache.dubbo.config.ApplicationConfig",
"name": "dubbo.application.version",
"type": "java.lang.String"
},
@@ -96,7 +96,7 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.applications",
"description": "Multiple {@link ApplicationConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.ApplicationConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.ApplicationConfig>"
},
{
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.DubboConfigProperties",
@@ -111,211 +111,211 @@
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.actives",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.application",
- "type": "com.alibaba.dubbo.config.ApplicationConfig"
+ "type": "org.apache.dubbo.config.ApplicationConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.async",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.cache",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.callbacks",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.check",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.client",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.cluster",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.connections",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.filter",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.generic",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.group",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.init",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"deprecated": true,
"name": "dubbo.consumer.injvm",
"type": "java.lang.Boolean",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.layer",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.lazy",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.listener",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.loadbalance",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"deprecated": true,
"name": "dubbo.consumer.local",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.merger",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.mock",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.module",
- "type": "com.alibaba.dubbo.config.ModuleConfig"
+ "type": "org.apache.dubbo.config.ModuleConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.monitor",
- "type": "com.alibaba.dubbo.config.MonitorConfig"
+ "type": "org.apache.dubbo.config.MonitorConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.onconnect",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.ondisconnect",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.owner",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.proxy",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.reconnect",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.registries",
- "type": "java.util.List<com.alibaba.dubbo.config.RegistryConfig>"
+ "type": "java.util.List<org.apache.dubbo.config.RegistryConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.registry",
- "type": "com.alibaba.dubbo.config.RegistryConfig"
+ "type": "org.apache.dubbo.config.RegistryConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.retries",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.scope",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.sent",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.sticky",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.stub",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.timeout",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.validation",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ConsumerConfig",
+ "sourceType": "org.apache.dubbo.config.ConsumerConfig",
"name": "dubbo.consumer.version",
"type": "java.lang.String"
},
@@ -323,50 +323,50 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.consumers",
"description": "Multiple {@link ConsumerConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.ConsumerConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.ConsumerConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.monitor",
- "type": "com.alibaba.dubbo.config.MonitorConfig"
+ "type": "org.apache.dubbo.config.MonitorConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.name",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.organization",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.owner",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.registries",
- "type": "java.util.List<com.alibaba.dubbo.config.RegistryConfig>"
+ "type": "java.util.List<org.apache.dubbo.config.RegistryConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.registry",
- "type": "com.alibaba.dubbo.config.RegistryConfig"
+ "type": "org.apache.dubbo.config.RegistryConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ModuleConfig",
+ "sourceType": "org.apache.dubbo.config.ModuleConfig",
"name": "dubbo.module.version",
"type": "java.lang.String"
},
@@ -374,50 +374,50 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.modules",
"description": "Multiple {@link ModuleConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.ModuleConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.ModuleConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.address",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.group",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.password",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.protocol",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.username",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.MonitorConfig",
+ "sourceType": "org.apache.dubbo.config.MonitorConfig",
"name": "dubbo.monitor.version",
"type": "java.lang.String"
},
@@ -425,164 +425,164 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.monitors",
"description": "Multiple {@link MonitorConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.MonitorConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.MonitorConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.accepts",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.accesslog",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.buffer",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.charset",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.client",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.codec",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.contextpath",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.dispatcher",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"deprecated": true,
"name": "dubbo.protocol.dispather",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.exchanger",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.heartbeat",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.host",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.iothreads",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.name",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.networker",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"deprecated": true,
"name": "dubbo.protocol.path",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.payload",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.port",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.prompt",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.queues",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.register",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.serialization",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.server",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.status",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.telnet",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.threadpool",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.threads",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProtocolConfig",
+ "sourceType": "org.apache.dubbo.config.ProtocolConfig",
"name": "dubbo.protocol.transporter",
"type": "java.lang.String"
},
@@ -590,370 +590,370 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.protocols",
"description": "Multiple {@link ProtocolConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.ProtocolConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.ProtocolConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.accepts",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.accesslog",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.actives",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.application",
- "type": "com.alibaba.dubbo.config.ApplicationConfig"
+ "type": "org.apache.dubbo.config.ApplicationConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.async",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.buffer",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.cache",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.callbacks",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.charset",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.client",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.cluster",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.codec",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.connections",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.contextpath",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"deprecated": true,
"name": "dubbo.provider.default",
"type": "java.lang.Boolean",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.delay",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.deprecated",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.dispatcher",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"deprecated": true,
"name": "dubbo.provider.dispather",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.document",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.dynamic",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.exchanger",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.executes",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.export",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.filter",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.group",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.host",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.iothreads",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.layer",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.listener",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.loadbalance",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"deprecated": true,
"name": "dubbo.provider.local",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.merger",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.mock",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.module",
- "type": "com.alibaba.dubbo.config.ModuleConfig"
+ "type": "org.apache.dubbo.config.ModuleConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.monitor",
- "type": "com.alibaba.dubbo.config.MonitorConfig"
+ "type": "org.apache.dubbo.config.MonitorConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.networker",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.onconnect",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.ondisconnect",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.owner",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"deprecated": true,
"name": "dubbo.provider.path",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.payload",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"deprecated": true,
"name": "dubbo.provider.port",
"type": "java.lang.Integer",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.prompt",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.protocol",
- "type": "com.alibaba.dubbo.config.ProtocolConfig"
+ "type": "org.apache.dubbo.config.ProtocolConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.protocols",
- "type": "java.util.List<com.alibaba.dubbo.config.ProtocolConfig>"
+ "type": "java.util.List<org.apache.dubbo.config.ProtocolConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.proxy",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.queues",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.register",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.registries",
- "type": "java.util.List<com.alibaba.dubbo.config.RegistryConfig>"
+ "type": "java.util.List<org.apache.dubbo.config.RegistryConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.registry",
- "type": "com.alibaba.dubbo.config.RegistryConfig"
+ "type": "org.apache.dubbo.config.RegistryConfig"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.retries",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.scope",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.sent",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.serialization",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.server",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.status",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.stub",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.telnet",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.threadpool",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.threads",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.timeout",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.token",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.transporter",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.validation",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.version",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.wait",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.warmup",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.ProviderConfig",
+ "sourceType": "org.apache.dubbo.config.ProviderConfig",
"name": "dubbo.provider.weight",
"type": "java.lang.Integer"
},
@@ -961,128 +961,128 @@
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.providers",
"description": "Multiple {@link ProviderConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.ProviderConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.ProviderConfig>"
},
{
"sourceType": "org.apache.dubbo.spring.boot.autoconfigure.MultipleDubboConfigBindingProperties",
"name": "dubbo.registries",
"description": "Multiple {@link RegistryConfig} property",
- "type": "java.util.Map<java.lang.String,com.alibaba.dubbo.config.RegistryConfig>"
+ "type": "java.util.Map<java.lang.String,org.apache.dubbo.config.RegistryConfig>"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.address",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.check",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.client",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.cluster",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.default",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.dynamic",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.file",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.group",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.id",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.parameters",
"type": "java.util.Map<java.lang.String,java.lang.String>"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.password",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.port",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.protocol",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.register",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.server",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.session",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.subscribe",
"type": "java.lang.Boolean"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.timeout",
"type": "java.lang.Integer"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"deprecated": true,
"name": "dubbo.registry.transport",
"type": "java.lang.String",
"deprecation": {}
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.transporter",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.username",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"name": "dubbo.registry.version",
"type": "java.lang.String"
},
{
- "sourceType": "com.alibaba.dubbo.config.RegistryConfig",
+ "sourceType": "org.apache.dubbo.config.RegistryConfig",
"deprecated": true,
"name": "dubbo.registry.wait",
"type": "java.lang.Integer",
diff --git a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories b/dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring.factories
similarity index 84%
copy from dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
copy to dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring.factories
index 1ef3d5b..08db894 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/resources/META-INF/spring.factories
@@ -1,11 +1,9 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
-org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration
-
-
+org.apache.dubbo.spring.boot.autoconfigure.DubboAutoConfiguration,\
+org.apache.dubbo.spring.boot.autoconfigure.DubboRelaxedBindingAutoConfiguration
org.springframework.context.ApplicationListener=\
org.apache.dubbo.spring.boot.context.event.OverrideDubboConfigApplicationListener,\
org.apache.dubbo.spring.boot.context.event.WelcomeLogoApplicationListener,\
org.apache.dubbo.spring.boot.context.event.AwaitingNonWebApplicationListener
-
org.springframework.boot.env.EnvironmentPostProcessor=\
org.apache.dubbo.spring.boot.env.DubboDefaultPropertiesEnvironmentPostProcessor
\ No newline at end of file
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTest.java
new file mode 100644
index 0000000..cd574e0
--- /dev/null
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTest.java
@@ -0,0 +1,57 @@
+/*
+ * 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.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.ObjectProvider;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * {@link DubboAutoConfiguration} Test
+ *
+ * @see DubboAutoConfiguration
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = {
+ CompatibleDubboAutoConfigurationTest.class
+}, properties = {
+ "dubbo.scan.base-packages = org.apache.dubbo.spring.boot.autoconfigure"
+})
+@EnableAutoConfiguration
+public class CompatibleDubboAutoConfigurationTest {
+
+ @Autowired
+ private ObjectProvider<ServiceAnnotationBeanPostProcessor> serviceAnnotationBeanPostProcessor;
+
+ @Autowired
+ private ObjectProvider<ReferenceAnnotationBeanPostProcessor> referenceAnnotationBeanPostProcessor;
+
+ @Test
+ public void testBeans() {
+ Assert.assertNotNull(serviceAnnotationBeanPostProcessor);
+ Assert.assertNotNull(serviceAnnotationBeanPostProcessor.getIfAvailable());
+ Assert.assertNotNull(referenceAnnotationBeanPostProcessor);
+ Assert.assertNotNull(referenceAnnotationBeanPostProcessor.getIfAvailable());
+ }
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTestWithoutProperties.java
similarity index 50%
copy from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
copy to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTestWithoutProperties.java
index be9d2a3..06a21d8 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/CompatibleDubboAutoConfigurationTestWithoutProperties.java
@@ -14,35 +14,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.spring.boot.context.event;
+package org.apache.dubbo.spring.boot.autoconfigure;
+import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
import org.junit.Assert;
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.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
/**
- * {@link WelcomeLogoApplicationListener} Test
+ * {@link DubboAutoConfiguration} Test
*
- * @see WelcomeLogoApplicationListener
- * @since 1.0.0
+ * @see DubboAutoConfiguration
*/
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(
- classes = {WelcomeLogoApplicationListener.class}
-)
-public class WelcomeLogoApplicationListenerTest {
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = CompatibleDubboAutoConfigurationTestWithoutProperties.class)
+@EnableAutoConfiguration
+public class CompatibleDubboAutoConfigurationTestWithoutProperties {
+
+ @Autowired(required = false)
+ private ServiceAnnotationBeanPostProcessor serviceAnnotationBeanPostProcessor;
@Autowired
- private WelcomeLogoApplicationListener welcomeLogoApplicationListener;
+ private ReferenceAnnotationBeanPostProcessor referenceAnnotationBeanPostProcessor;
@Test
- public void testOnApplicationEvent() {
-
- Assert.assertNotNull(welcomeLogoApplicationListener.buildBannerText());
-
+ public void testBeans() {
+ Assert.assertNull(serviceAnnotationBeanPostProcessor);
+ Assert.assertNotNull(referenceAnnotationBeanPostProcessor);
}
-
}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java
similarity index 96%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java
index 5a6d737..1addb5e 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnMultipleConfigTest.java
@@ -23,17 +23,17 @@ 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.junit.Assert;
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.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -43,9 +43,9 @@ import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncl
/**
* {@link DubboAutoConfiguration} Test On multiple Dubbo Configuration
*
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@TestPropertySource(
properties = {
"dubbo.applications.application1.NAME = dubbo-demo-application",
@@ -62,8 +62,11 @@ import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncl
}
)
@SpringBootTest(
- classes = {DubboAutoConfiguration.class}
+ classes = {
+ DubboAutoConfigurationOnMultipleConfigTest.class
+ }
)
+@EnableAutoConfiguration
public class DubboAutoConfigurationOnMultipleConfigTest {
@Autowired
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java
similarity index 88%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java
index 6f93ad0..28d1e6d 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfigurationOnSingleConfigTest.java
@@ -23,25 +23,23 @@ 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.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
-import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
-
import org.junit.Assert;
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.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
/**
* {@link DubboAutoConfiguration} Test On single Dubbo Configuration
*
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@TestPropertySource(
properties = {
"dubbo.application.name = dubbo-demo-application",
@@ -55,8 +53,9 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
}
)
@SpringBootTest(
- classes = {DubboAutoConfiguration.class}
+ classes = {DubboAutoConfigurationOnSingleConfigTest.class}
)
+@EnableAutoConfiguration
public class DubboAutoConfigurationOnSingleConfigTest {
@Autowired
@@ -92,12 +91,6 @@ public class DubboAutoConfigurationOnSingleConfigTest {
@Autowired
private ApplicationContext applicationContext;
- @Autowired(required = false)
- private ServiceAnnotationBeanPostProcessor serviceAnnotationBeanPostProcessor;
-
- @Autowired
- private ReferenceAnnotationBeanPostProcessor referenceAnnotationBeanPostProcessor;
-
@Test
public void testApplicationConfig() {
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
similarity index 85%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
index fa91c09..817f035 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/RelaxedDubboConfigBinderTest.java
@@ -19,7 +19,7 @@ package org.apache.dubbo.spring.boot.autoconfigure;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ProtocolConfig;
import org.apache.dubbo.config.RegistryConfig;
-
+import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -30,16 +30,20 @@ import org.springframework.test.context.junit4.SpringRunner;
/**
* {@link RelaxedDubboConfigBinder} Test
- *
- * @since 0.1.1
*/
@RunWith(SpringRunner.class)
-@TestPropertySource(locations = "classpath:/dubbo.properties")
+@TestPropertySource(properties = {
+ "dubbo.application.NAME=hello",
+ "dubbo.application.owneR=world",
+ "dubbo.registry.Address=10.20.153.17",
+ "dubbo.protocol.pORt=20881",
+ "dubbo.service.invoke.timeout=2000",
+})
@ContextConfiguration(classes = RelaxedDubboConfigBinder.class)
public class RelaxedDubboConfigBinderTest {
@Autowired
- private RelaxedDubboConfigBinder dubboConfigBinder;
+ private DubboConfigBinder dubboConfigBinder;
@Test
public void testBinder() {
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java
new file mode 100644
index 0000000..8de2cae
--- /dev/null
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListenerTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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.context.event;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * {@link AwaitingNonWebApplicationListener} Test
+ */
+public class AwaitingNonWebApplicationListenerTest {
+
+ @Test
+ public void init() {
+ AtomicBoolean awaited = AwaitingNonWebApplicationListener.getAwaited();
+ awaited.set(false);
+
+ }
+
+ @Test
+ public void testSingleContextNonWebApplication() {
+ new SpringApplicationBuilder(Object.class)
+ .web(false)
+ .run().close();
+ AtomicBoolean awaited = AwaitingNonWebApplicationListener.getAwaited();
+ Assert.assertTrue(awaited.get());
+ }
+
+ @Test
+ public void testMultipleContextNonWebApplication() {
+ new SpringApplicationBuilder(Object.class)
+ .parent(Object.class)
+ .web(false)
+ .run().close();
+ AtomicBoolean awaited = AwaitingNonWebApplicationListener.getAwaited();
+ Assert.assertTrue(awaited.get());
+ }
+
+}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java
similarity index 94%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java
index 3fff621..4bea84c 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerDisableTest.java
@@ -17,14 +17,13 @@
package org.apache.dubbo.spring.boot.context.event;
import org.apache.dubbo.common.utils.ConfigUtils;
-
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import java.util.Properties;
@@ -32,9 +31,9 @@ import java.util.Properties;
* {@link OverrideDubboConfigApplicationListener} Test
*
* @see OverrideDubboConfigApplicationListener
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@TestPropertySource(
properties = {
"dubbo.config.override = false",
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java
similarity index 94%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java
index 8e81161..5e42561 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/OverrideDubboConfigApplicationListenerTest.java
@@ -17,14 +17,13 @@
package org.apache.dubbo.spring.boot.context.event;
import org.apache.dubbo.common.utils.ConfigUtils;
-
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
import java.util.Properties;
@@ -32,9 +31,9 @@ import java.util.Properties;
* {@link OverrideDubboConfigApplicationListener} Test
*
* @see OverrideDubboConfigApplicationListener
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@TestPropertySource(
properties = {
"dubbo.application.name = dubbo-demo-application",
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
similarity index 92%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
index be9d2a3..c006a75 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/context/event/WelcomeLogoApplicationListenerTest.java
@@ -21,15 +21,15 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
/**
* {@link WelcomeLogoApplicationListener} Test
*
* @see WelcomeLogoApplicationListener
- * @since 1.0.0
+ * @since 2.7.0
*/
-@RunWith(SpringJUnit4ClassRunner.class)
+@RunWith(SpringRunner.class)
@SpringBootTest(
classes = {WelcomeLogoApplicationListener.class}
)
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessorTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessorTest.java
new file mode 100644
index 0000000..2fbb6aa
--- /dev/null
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/env/DubboDefaultPropertiesEnvironmentPostProcessorTest.java
@@ -0,0 +1,97 @@
+/*
+ * 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.env;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.boot.SpringApplication;
+import org.springframework.core.Ordered;
+import org.springframework.core.env.MapPropertySource;
+import org.springframework.core.env.MutablePropertySources;
+import org.springframework.core.env.PropertySource;
+import org.springframework.mock.env.MockEnvironment;
+
+import java.util.HashMap;
+
+/**
+ * {@link DubboDefaultPropertiesEnvironmentPostProcessor} Test
+ */
+public class DubboDefaultPropertiesEnvironmentPostProcessorTest {
+
+ private DubboDefaultPropertiesEnvironmentPostProcessor instance =
+ new DubboDefaultPropertiesEnvironmentPostProcessor();
+
+ private SpringApplication springApplication = new SpringApplication();
+
+ @Test
+ public void testOrder() {
+ Assert.assertEquals(Ordered.LOWEST_PRECEDENCE, instance.getOrder());
+ }
+
+ @Test
+ public void testPostProcessEnvironment() {
+ MockEnvironment environment = new MockEnvironment();
+ // Case 1 : Not Any property
+ instance.postProcessEnvironment(environment, springApplication);
+ // Get PropertySources
+ MutablePropertySources propertySources = environment.getPropertySources();
+ // Nothing to change
+ PropertySource defaultPropertySource = propertySources.get("defaultProperties");
+ Assert.assertNotNull(defaultPropertySource);
+ Assert.assertEquals("true", defaultPropertySource.getProperty("dubbo.config.multiple"));
+ Assert.assertEquals("false", defaultPropertySource.getProperty("dubbo.application.qos-enable"));
+
+ // Case 2 : Only set property "spring.application.name"
+ environment.setProperty("spring.application.name", "demo-dubbo-application");
+ instance.postProcessEnvironment(environment, springApplication);
+ defaultPropertySource = propertySources.get("defaultProperties");
+ Object dubboApplicationName = defaultPropertySource.getProperty("dubbo.application.name");
+ Assert.assertEquals("demo-dubbo-application", dubboApplicationName);
+
+ // Case 3 : Only set property "dubbo.application.name"
+ // Rest environment
+ environment = new MockEnvironment();
+ propertySources = environment.getPropertySources();
+ environment.setProperty("dubbo.application.name", "demo-dubbo-application");
+ instance.postProcessEnvironment(environment, springApplication);
+ defaultPropertySource = propertySources.get("defaultProperties");
+ Assert.assertNotNull(defaultPropertySource);
+ dubboApplicationName = environment.getProperty("dubbo.application.name");
+ Assert.assertEquals("demo-dubbo-application", dubboApplicationName);
+
+ // Case 4 : If "defaultProperties" PropertySource is present in PropertySources
+ // Rest environment
+ environment = new MockEnvironment();
+ propertySources = environment.getPropertySources();
+ propertySources.addLast(new MapPropertySource("defaultProperties", new HashMap<String, Object>()));
+ environment.setProperty("spring.application.name", "demo-dubbo-application");
+ instance.postProcessEnvironment(environment, springApplication);
+ defaultPropertySource = propertySources.get("defaultProperties");
+ dubboApplicationName = defaultPropertySource.getProperty("dubbo.application.name");
+ Assert.assertEquals("demo-dubbo-application", dubboApplicationName);
+
+ // Case 5 : Rest dubbo.config.multiple and dubbo.application.qos-enable
+ environment = new MockEnvironment();
+ propertySources = environment.getPropertySources();
+ propertySources.addLast(new MapPropertySource("defaultProperties", new HashMap<String, Object>()));
+ environment.setProperty("dubbo.config.multiple", "false");
+ environment.setProperty("dubbo.application.qos-enable", "true");
+ instance.postProcessEnvironment(environment, springApplication);
+ Assert.assertEquals("false", environment.getProperty("dubbo.config.multiple"));
+ Assert.assertEquals("true", environment.getProperty("dubbo.application.qos-enable"));
+ }
+}
\ No newline at end of file
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
similarity index 82%
rename from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
rename to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
index 910cb7c..7242b58 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
@@ -34,14 +34,14 @@ import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SPRING_BOOT_GIT
import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SPRING_BOOT_GIT_URL;
import static org.apache.dubbo.spring.boot.util.DubboUtils.DUBBO_SPRING_BOOT_ISSUES_URL;
import static org.apache.dubbo.spring.boot.util.DubboUtils.MULTIPLE_CONFIG_PROPERTY_NAME;
-import static org.apache.dubbo.spring.boot.util.DubboUtils.OVERRIDE_CONFIG_PROPERTY_NAME;
+import static org.apache.dubbo.spring.boot.util.DubboUtils.OVERRIDE_CONFIG_FULL_PROPERTY_NAME;
import static org.apache.dubbo.spring.boot.util.DubboUtils.filterDubboProperties;
/**
* {@link DubboUtils} Test
*
* @see DubboUtils
- * @since 1.0.0
+ * @since 2.7.0
*/
public class DubboUtilsTest {
@@ -50,15 +50,15 @@ public class DubboUtilsTest {
Assert.assertEquals("dubbo", DUBBO_PREFIX);
- Assert.assertEquals("dubbo.scan", DUBBO_SCAN_PREFIX);
+ Assert.assertEquals("dubbo.scan.", DUBBO_SCAN_PREFIX);
- Assert.assertEquals("dubbo.scan.base-packages", BASE_PACKAGES_PROPERTY_NAME);
+ Assert.assertEquals("base-packages", BASE_PACKAGES_PROPERTY_NAME);
- Assert.assertEquals("dubbo.config", DUBBO_CONFIG_PREFIX);
+ Assert.assertEquals("dubbo.config.", DUBBO_CONFIG_PREFIX);
- Assert.assertEquals("dubbo.config.multiple", MULTIPLE_CONFIG_PROPERTY_NAME);
+ Assert.assertEquals("multiple", MULTIPLE_CONFIG_PROPERTY_NAME);
- Assert.assertEquals("dubbo.config.override", OVERRIDE_CONFIG_PROPERTY_NAME);
+ Assert.assertEquals("dubbo.config.override", OVERRIDE_CONFIG_FULL_PROPERTY_NAME);
Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project", DUBBO_SPRING_BOOT_GITHUB_URL);
Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project.git", DUBBO_SPRING_BOOT_GIT_URL);
@@ -68,7 +68,7 @@ public class DubboUtilsTest {
Assert.assertEquals("dev@dubbo.apache.org", DUBBO_MAILING_LIST);
- Assert.assertFalse(DEFAULT_MULTIPLE_CONFIG_PROPERTY_VALUE);
+ Assert.assertTrue(DEFAULT_MULTIPLE_CONFIG_PROPERTY_VALUE);
Assert.assertTrue(DEFAULT_OVERRIDE_CONFIG_PROPERTY_VALUE);
@@ -80,13 +80,13 @@ public class DubboUtilsTest {
MockEnvironment environment = new MockEnvironment();
environment.setProperty("message", "Hello,World");
- environment.setProperty(MULTIPLE_CONFIG_PROPERTY_NAME, "true");
- environment.setProperty(OVERRIDE_CONFIG_PROPERTY_NAME, "true");
+ environment.setProperty(DUBBO_CONFIG_PREFIX + MULTIPLE_CONFIG_PROPERTY_NAME, "true");
+ environment.setProperty(OVERRIDE_CONFIG_FULL_PROPERTY_NAME, "true");
SortedMap<String, Object> dubboProperties = filterDubboProperties(environment);
- Assert.assertEquals("true", dubboProperties.get(MULTIPLE_CONFIG_PROPERTY_NAME));
- Assert.assertEquals("true", dubboProperties.get(OVERRIDE_CONFIG_PROPERTY_NAME));
+ Assert.assertEquals("true", dubboProperties.get(DUBBO_CONFIG_PREFIX + MULTIPLE_CONFIG_PROPERTY_NAME));
+ Assert.assertEquals("true", dubboProperties.get(OVERRIDE_CONFIG_FULL_PROPERTY_NAME));
}
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
similarity index 99%
copy from dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
copy to dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
index 805b225..2ca3766 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/EnvironmentUtilsTest.java
@@ -30,7 +30,7 @@ import java.util.Map;
* {@link EnvironmentUtils} Test
*
* @see EnvironmentUtils
- * @since 1.0.0
+ * @since 2.7.0
*/
public class EnvironmentUtilsTest {
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml b/dubbo-spring-boot-compatible/pom.xml
similarity index 66%
copy from dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml
copy to dubbo-spring-boot-compatible/pom.xml
index 75a4810..8af787e 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml
+++ b/dubbo-spring-boot-compatible/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -18,22 +19,25 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
- <groupId>org.apache.dubbo.samples</groupId>
- <artifactId>dubbo-spring-boot-samples</artifactId>
+ <groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-spring-boot-parent</artifactId>
<version>${revision}</version>
- <relativePath>../pom.xml</relativePath>
+ <relativePath>../dubbo-spring-boot-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>dubbo-spring-boot-externalized-configuration-samples</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Externalized Configuration</name>
- <description>Apache Dubbo Spring Boot Externalized Configuration Samples</description>
+ <artifactId>dubbo-spring-boot-compatible</artifactId>
<packaging>pom</packaging>
+ <name>Apache Dubbo Spring Boot :: Compatible</name>
+ <description>Apache Dubbo Spring Boot Compatible for Spring Boot 1.x</description>
+
+ <properties>
+ <spring-boot.version>1.5.19.RELEASE</spring-boot.version>
+ </properties>
<modules>
- <module>consumer-sample</module>
- <module>provider-sample</module>
+ <module>autoconfigure</module>
+ <module>actuator</module>
</modules>
-
</project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-distribution/pom.xml b/dubbo-spring-boot-distribution/pom.xml
index 38f4a19..181ba44 100644
--- a/dubbo-spring-boot-distribution/pom.xml
+++ b/dubbo-spring-boot-distribution/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -13,7 +14,7 @@
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.
--->
+ -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -27,7 +28,7 @@
<artifactId>dubbo-spring-boot-distribution</artifactId>
<packaging>pom</packaging>
- <name>Apache Dubbo Spring Boot Distribution</name>
+ <name>Apache Dubbo Spring Boot :: Distribution</name>
<description>Apache Dubbo Spring Boot Distribution</description>
diff --git a/dubbo-spring-boot-parent/pom.xml b/dubbo-spring-boot-parent/pom.xml
index e1db10f..9d7b1e8 100644
--- a/dubbo-spring-boot-parent/pom.xml
+++ b/dubbo-spring-boot-parent/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -28,7 +29,7 @@
<artifactId>dubbo-spring-boot-parent</artifactId>
<packaging>pom</packaging>
- <name>Apache Dubbo Spring Boot Parent</name>
+ <name>Apache Dubbo Spring Boot :: Parent</name>
<description>Apache Dubbo Spring Boot Parent</description>
<properties>
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
index 304dddb..4f01fe1 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-auto-configure-consumer-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Auto-Configure :: Consumer Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Auto-Configure :: Consumer Sample</name>
<dependencies>
<!-- Spring Boot dependencies -->
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboAutoConfigurationConsumerBootstrap.java b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboAutoConfigurationConsumerBootstrap.java
index a76da3d..5b2ac82 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboAutoConfigurationConsumerBootstrap.java
+++ b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboAutoConfigurationConsumerBootstrap.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.spring.boot.demo.consumer.bootstrap;
import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationRunner;
@@ -29,7 +28,7 @@ import org.springframework.context.annotation.Bean;
/**
* Dubbo Auto Configuration Consumer Bootstrap
*
- * @since 1.0.0
+ * @since 2.7.0
*/
@EnableAutoConfiguration
public class DubboAutoConfigurationConsumerBootstrap {
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/pom.xml b/dubbo-spring-boot-samples/auto-configure-samples/pom.xml
index 51d8661..3df5bf5 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/pom.xml
+++ b/dubbo-spring-boot-samples/auto-configure-samples/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-auto-configure-samples</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Auto-Configure</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Auto-Configure</name>
<description>Apache Dubbo Spring Boot Auto-Configure Samples</description>
<packaging>pom</packaging>
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
index 048ccb0..a7aca3a 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-auto-configure-provider-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Auto-Configure :: Provider Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Auto-Configure :: Provider Sample</name>
<dependencies>
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboAutoConfigurationProviderBootstrap.java b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboAutoConfigurationProviderBootstrap.java
index 949f5ce..bd61706 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboAutoConfigurationProviderBootstrap.java
+++ b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboAutoConfigurationProviderBootstrap.java
@@ -17,8 +17,6 @@
package org.apache.dubbo.spring.boot.demo.provider.bootstrap;
import org.apache.dubbo.spring.boot.demo.provider.service.DefaultDemoService;
-
-import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -26,14 +24,13 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
* Dubbo Auto-Configuration Provider Bootstrap
*
* @see DefaultDemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@EnableAutoConfiguration
public class DubboAutoConfigurationProviderBootstrap {
public static void main(String[] args) {
new SpringApplicationBuilder(DubboAutoConfigurationProviderBootstrap.class)
- .web(WebApplicationType.NONE)
.run(args);
}
}
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
index 257bee6..61195ac 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
+++ b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
@@ -18,14 +18,13 @@ package org.apache.dubbo.spring.boot.demo.provider.service;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
-
import org.springframework.beans.factory.annotation.Value;
/**
* Default {@link DemoService}
*
* @see DemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@Service(version = "1.0.0")
public class DefaultDemoService implements DemoService {
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
index c80eaf8..1941193 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-registry-zookeeper-consumer-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Registry Zookeeper :: Consumer Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Registry Zookeeper :: Consumer Sample</name>
<dependencies>
<!-- Spring Boot dependencies -->
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/pom.xml
index b0b46fe..741dce9 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-registry-zookeeper-samples</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Registry Zookeeper</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Registry Zookeeper</name>
<description>Apache Dubbo Spring Boot Registry Zookeeper Samples</description>
<packaging>pom</packaging>
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
index 810def9..c41c446 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-registry-zookeeper-provider-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Registry Zookeeper :: Provider Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Registry Zookeeper :: Provider Sample</name>
<dependencies>
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboRegistryZooKeeperProviderBootstrap.java b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboRegistryZooKeeperProviderBootstrap.java
index a2f1eaa..5f20c85 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboRegistryZooKeeperProviderBootstrap.java
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboRegistryZooKeeperProviderBootstrap.java
@@ -17,8 +17,6 @@
package org.apache.dubbo.spring.boot.demo.provider.bootstrap;
import org.apache.dubbo.spring.boot.demo.provider.service.DefaultDemoService;
-
-import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
@@ -29,14 +27,13 @@ import org.springframework.core.env.Environment;
* Dubbo Registry ZooKeeper Provider Bootstrap
*
* @see DefaultDemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@EnableAutoConfiguration
public class DubboRegistryZooKeeperProviderBootstrap {
public static void main(String[] args) {
new SpringApplicationBuilder(DubboRegistryZooKeeperProviderBootstrap.class)
- .web(WebApplicationType.NONE)
.listeners((ApplicationListener<ApplicationEnvironmentPreparedEvent>) event -> {
Environment environment = event.getEnvironment();
int port = environment.getProperty("embedded.zookeeper.port", int.class);
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
index 1e4c18b..6ff5f7a 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
@@ -18,14 +18,13 @@ package org.apache.dubbo.spring.boot.demo.provider.service;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
-
import org.springframework.beans.factory.annotation.Value;
/**
* Default {@link DemoService}
*
* @see DemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@Service(version = "${demo.service.version}")
public class DefaultDemoService implements DemoService {
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
index 6804c6b..893dd4b 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,16 +27,22 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-externalized-configuration-consumer-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Externalized Configuration :: Consumer Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Externalized Configuration :: Consumer Sample</name>
<dependencies>
<!-- Spring Boot dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
+ <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-actuator</artifactId>
+ </dependency>
+
+ <!-- Dubbo Spring Boot dependencies -->
+ <dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>${revision}</version>
@@ -43,6 +50,12 @@
<dependency>
<groupId>org.apache.dubbo</groupId>
+ <artifactId>dubbo-spring-boot-actuator</artifactId>
+ <version>${revision}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
</dependency>
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
index 835bfac..f36ec2b 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
@@ -18,18 +18,21 @@ package org.apache.dubbo.spring.boot.demo.consumer.bootstrap;
import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
/**
* Dubbo Externalized Configuration Consumer Bootstrap
*/
@EnableAutoConfiguration
+@RestController
public class DubboExternalizedConfigurationConsumerBootstrap {
private final Logger logger = LoggerFactory.getLogger(getClass());
@@ -38,7 +41,12 @@ public class DubboExternalizedConfigurationConsumerBootstrap {
private DemoService demoService;
public static void main(String[] args) {
- SpringApplication.run(DubboExternalizedConfigurationConsumerBootstrap.class).close();
+ SpringApplication.run(DubboExternalizedConfigurationConsumerBootstrap.class);
+ }
+
+ @GetMapping("/say-hello")
+ public String sayHello(@RequestParam String name) {
+ return demoService.sayHello(name);
}
@Bean
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/resources/application.yml b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/resources/application.yml
index e3aef42..3f98bc1 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/resources/application.yml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/resources/application.yml
@@ -2,6 +2,44 @@ spring:
application:
name: dubbo-externalized-configuration-consumer-sample
+management:
+ endpoints:
+ web:
+ exposure:
+ include: '*'
+ endpoint:
+ dubbo:
+ enabled: true
+ dubboshutdown:
+ enabled: true
+ dubboconfigs:
+ enabled: true
+ dubboservices:
+ enabled: true
+ dubboreferences:
+ enabled: true
+ dubboproperties:
+ enabled: true
+ security:
+ ## Deprecated 2.x
+ enabled: false
+
+## For Spring Boot 1.x demo
+endpoints:
+ dubbo:
+ enabled: true
+ sensitive: false
+ dubboshutdown:
+ enabled: true
+ dubboconfigs:
+ enabled: true
+ dubboservices:
+ enabled: true
+ dubboreferences:
+ enabled: true
+ dubboproperties:
+ enabled: true
+
demo:
service:
version: 1.0.0
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml b/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml
index 75a4810..86e26ad 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-externalized-configuration-samples</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Externalized Configuration</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Externalized Configuration</name>
<description>Apache Dubbo Spring Boot Externalized Configuration Samples</description>
<packaging>pom</packaging>
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
index c9c9e01..47a2bb1 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,7 +27,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-externalized-configuration-provider-sample</artifactId>
- <name>Apache Dubbo Spring Boot Samples : Externalized Configuration :: Provider Sample</name>
+ <name>Apache Dubbo Spring Boot :: Samples : Externalized Configuration :: Provider Sample</name>
<dependencies>
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboExternalizedConfigurationProviderBootstrap.java b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboExternalizedConfigurationProviderBootstrap.java
index 657dddd..2671f75 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboExternalizedConfigurationProviderBootstrap.java
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/bootstrap/DubboExternalizedConfigurationProviderBootstrap.java
@@ -17,8 +17,6 @@
package org.apache.dubbo.spring.boot.demo.provider.bootstrap;
import org.apache.dubbo.spring.boot.demo.provider.service.DefaultDemoService;
-
-import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -26,14 +24,13 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
* Dubbo Externalized Configuration Provider Bootstrap
*
* @see DefaultDemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@EnableAutoConfiguration
public class DubboExternalizedConfigurationProviderBootstrap {
public static void main(String[] args) {
new SpringApplicationBuilder(DubboExternalizedConfigurationProviderBootstrap.class)
- .web(WebApplicationType.NONE)
.run(args);
}
}
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
index 1e4c18b..6ff5f7a 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/src/main/java/org/apache/dubbo/spring/boot/demo/provider/service/DefaultDemoService.java
@@ -18,14 +18,13 @@ package org.apache.dubbo.spring.boot.demo.provider.service;
import org.apache.dubbo.config.annotation.Service;
import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
-
import org.springframework.beans.factory.annotation.Value;
/**
* Default {@link DemoService}
*
* @see DemoService
- * @since 1.0.0
+ * @since 2.7.0
*/
@Service(version = "${demo.service.version}")
public class DefaultDemoService implements DemoService {
diff --git a/dubbo-spring-boot-samples/pom.xml b/dubbo-spring-boot-samples/pom.xml
index 33d018f..450f328 100644
--- a/dubbo-spring-boot-samples/pom.xml
+++ b/dubbo-spring-boot-samples/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -28,8 +29,8 @@
<groupId>org.apache.dubbo.samples</groupId>
<artifactId>dubbo-spring-boot-samples</artifactId>
<packaging>pom</packaging>
- <name>Apache Dubbo Spring Boot Samples</name>
- <description>Apache Dubbo Spring Boot Samples</description>
+ <name>Apache Dubbo Spring Boot :: Samples</name>
+ <description>Apache Dubbo Spring Boot :: Samples</description>
<modules>
<module>sample-api</module>
diff --git a/dubbo-spring-boot-samples/sample-api/pom.xml b/dubbo-spring-boot-samples/sample-api/pom.xml
index bf3cfd1..25964a5 100644
--- a/dubbo-spring-boot-samples/sample-api/pom.xml
+++ b/dubbo-spring-boot-samples/sample-api/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -26,6 +27,6 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>dubbo-spring-boot-sample-api</artifactId>
- <name>Apache Dubbo Spring Boot Samples : API</name>
+ <name>Apache Dubbo Spring Boot :: Samples : API</name>
</project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-samples/sample-api/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/DemoService.java b/dubbo-spring-boot-samples/sample-api/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/DemoService.java
index 0ec07f2..905e94e 100644
--- a/dubbo-spring-boot-samples/sample-api/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/DemoService.java
+++ b/dubbo-spring-boot-samples/sample-api/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/DemoService.java
@@ -19,7 +19,7 @@ package org.apache.dubbo.spring.boot.demo.consumer;
/**
* Demo Service interface
*
- * @since 1.0.0
+ * @since 2.7.0
*/
public interface DemoService {
diff --git a/dubbo-spring-boot-starter/pom.xml b/dubbo-spring-boot-starter/pom.xml
index ac2576d..d71a846 100644
--- a/dubbo-spring-boot-starter/pom.xml
+++ b/dubbo-spring-boot-starter/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -27,7 +28,7 @@
<artifactId>dubbo-spring-boot-starter</artifactId>
<packaging>jar</packaging>
- <name>Apache Dubbo Spring Boot Starter</name>
+ <name>Apache Dubbo Spring Boot :: Starter</name>
<description>Apache Dubbo Spring Boot Starter</description>
@@ -39,19 +40,6 @@
<optional>true</optional>
</dependency>
- <!-- ZK -->
- <dependency>
- <groupId>org.apache.zookeeper</groupId>
- <artifactId>zookeeper</artifactId>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>org.apache.curator</groupId>
- <artifactId>curator-framework</artifactId>
- <optional>true</optional>
- </dependency>
-
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-autoconfigure</artifactId>
diff --git a/pom.xml b/pom.xml
index 9b52dd1..ffefee6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -45,8 +46,9 @@
<module>dubbo-spring-boot-distribution</module>
<module>dubbo-spring-boot-autoconfigure</module>
<module>dubbo-spring-boot-starter</module>
- <module>dubbo-spring-boot-samples</module>
<module>dubbo-spring-boot-actuator</module>
+ <module>dubbo-spring-boot-compatible</module>
+ <module>dubbo-spring-boot-samples</module>
</modules>
<organization>