You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/11/06 06:22:18 UTC
[incubator-dubbo] branch dev-metadata updated: Add spring
annotation support for ConfigCenter.
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/dev-metadata by this push:
new 4097405 Add spring annotation support for ConfigCenter.
4097405 is described below
commit 4097405882e2d04b206a992ef685f8a312224a19
Author: ken.lj <ke...@gmail.com>
AuthorDate: Tue Nov 6 14:22:07 2018 +0800
Add spring annotation support for ConfigCenter.
---
.../src/main/java/org/apache/dubbo/config/AbstractConfig.java | 2 +-
.../src/main/java/org/apache/dubbo/config/ProtocolConfig.java | 6 ++++++
.../main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java | 3 +++
.../config/spring/context/annotation/DubboConfigConfiguration.java | 5 ++++-
4 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 236e2ba..ffb0f03 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -541,7 +541,7 @@ public abstract class AbstractConfig implements Serializable {
method.invoke(this, convertPrimitive(method.getParameterTypes()[0], value));
}
} catch (NoSuchMethodException e) {
- logger.warn("Failed to override the property " + method.getName() + " in " + this.getClass().getSimpleName() + ", please make sure every property has a getter/setter pair.");
+ logger.warn("Failed to override the property " + method.getName() + " in " + this.getClass().getSimpleName() + ", please make sure every property has a getter/setter pair.", e);
}
}
}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
index e01b243..7e45e4c 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ProtocolConfig.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.serialize.Serialization;
import org.apache.dubbo.common.status.StatusChecker;
import org.apache.dubbo.common.threadpool.ThreadPool;
+import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.config.support.Parameter;
import org.apache.dubbo.remoting.Codec;
import org.apache.dubbo.remoting.Dispatcher;
@@ -470,4 +471,9 @@ public class ProtocolConfig extends AbstractConfig {
ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(name).destroy();
}
}
+
+ @Override
+ public boolean isValid() {
+ return StringUtils.isNotEmpty(name);
+ }
}
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
index 4995acc..b8754a2 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/ConfigCenterBean.java
@@ -21,7 +21,10 @@ import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
/**
+ * Since 2.7.0+, export and refer will only be executed when Spring is fully initialized, and each Config bean will get refreshed on the start of the export and refer process.
+ * So it's ok for this bean not to be the first Dubbo Config bean being initialized.
*
+ * If use ConfigCenterConfig directly, you should make sure ConfigCenterConfig.init() is called before actually export/refer any Dubbo service.
*/
public class ConfigCenterBean extends ConfigCenterConfig implements InitializingBean, DisposableBean {
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
index b3e98a5..8f4dea8 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java
@@ -24,6 +24,7 @@ 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.ConfigCenterBean;
import org.springframework.context.annotation.Configuration;
/**
@@ -39,6 +40,7 @@ import org.springframework.context.annotation.Configuration;
* @see MonitorConfig
* @see ProviderConfig
* @see ConsumerConfig
+ * @see org.apache.dubbo.config.ConfigCenterConfig
* @since 2.5.8
*/
public class DubboConfigConfiguration {
@@ -53,7 +55,8 @@ public class DubboConfigConfiguration {
@EnableDubboConfigBinding(prefix = "dubbo.protocol", type = ProtocolConfig.class),
@EnableDubboConfigBinding(prefix = "dubbo.monitor", type = MonitorConfig.class),
@EnableDubboConfigBinding(prefix = "dubbo.provider", type = ProviderConfig.class),
- @EnableDubboConfigBinding(prefix = "dubbo.consumer", type = ConsumerConfig.class)
+ @EnableDubboConfigBinding(prefix = "dubbo.consumer", type = ConsumerConfig.class),
+ @EnableDubboConfigBinding(prefix = "dubbo.configcenter", type = ConfigCenterBean.class)
})
public static class Single {