You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by mi...@apache.org on 2018/11/21 07:20:10 UTC
[incubator-dubbo-ops] branch metadata updated: registry bean
injection
This is an automated email from the ASF dual-hosted git repository.
min pushed a commit to branch metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git
The following commit(s) were added to refs/heads/metadata by this push:
new 60a2e00 registry bean injection
60a2e00 is described below
commit 60a2e0053865294a07a832073af89a6a278455e7
Author: nzomkxia <z8...@gmail.com>
AuthorDate: Wed Nov 21 15:20:08 2018 +0800
registry bean injection
---
.../apache/dubbo/admin/config/ConfigCenter.java | 64 ++++++++++++++++++++++
.../dubbo/admin/service/RegistryServerSync.java | 8 +--
.../dubbo/admin/service/impl/AbstractService.java | 10 +++-
.../admin/service/impl/OverrideServiceImpl.java | 16 +++---
.../admin/service/impl/ProviderServiceImpl.java | 8 +--
.../dubbo/admin/service/impl/RouteServiceImpl.java | 16 +++---
.../src/main/resources/application.properties | 2 +
7 files changed, 99 insertions(+), 25 deletions(-)
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
new file mode 100644
index 0000000..b520627
--- /dev/null
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
@@ -0,0 +1,64 @@
+package org.apache.dubbo.admin.config;
+
+import org.apache.dubbo.admin.data.config.GovernanceConfiguration;
+import org.apache.dubbo.common.Constants;
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.extension.ExtensionLoader;
+import org.apache.dubbo.registry.Registry;
+import org.apache.dubbo.registry.RegistryFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ConfigCenter {
+
+
+ @Value("${dubbo.configcenter}")
+ private String configCenter;
+
+ @Value("${dubbo.registry.address}")
+ private String registryAddress;
+
+ @Value("${dubbo.registry.group}")
+ private String group;
+
+
+ private URL configCenterUrl;
+ private URL registryUrl;
+
+
+ @Bean
+ Registry getRegistryService() {
+ if (registryAddress != null) {
+ registryUrl = formUrl(registryAddress);
+ if (group != null) {
+ registryUrl.addParameter(Constants.GROUP_KEY, group);
+ }
+ RegistryFactory factory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
+ return factory.getRegistry(registryUrl);
+ }
+ return null;
+ }
+
+ @Bean
+ GovernanceConfiguration getDynamicConfiguration() {
+ if (configCenter != null) {
+ configCenterUrl = formUrl(configCenter);
+ GovernanceConfiguration dynamicConfiguration = ExtensionLoader.getExtensionLoader(GovernanceConfiguration.class).getExtension(configCenterUrl.getProtocol());
+ dynamicConfiguration.setUrl(configCenterUrl);
+ dynamicConfiguration.init();
+ return dynamicConfiguration;
+ }
+ return null;
+ }
+
+ private URL formUrl(String config) {
+ String protocol = config.split("://")[0];
+ String address = config.split("://")[1];
+ String port = address.split(":")[1];
+ String host = address.split(":")[0];
+ return new URL(protocol, host, Integer.parseInt(port));
+ }
+
+}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/RegistryServerSync.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/RegistryServerSync.java
index b666b11..9ae3921 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/RegistryServerSync.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/RegistryServerSync.java
@@ -23,7 +23,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.registry.NotifyListener;
-import org.apache.dubbo.registry.RegistryService;
+import org.apache.dubbo.registry.Registry;
import org.apache.dubbo.admin.common.util.MD5Util;
import org.apache.dubbo.admin.common.util.Tool;
import org.springframework.beans.factory.DisposableBean;
@@ -64,7 +64,7 @@ public class RegistryServerSync implements InitializingBean, DisposableBean, Not
private final ConcurrentMap<String, ConcurrentMap<String, Map<String, URL>>>
registryCache = new ConcurrentHashMap<>();
@Autowired
- private RegistryService registryService;
+ private Registry registry;
public ConcurrentMap<String, ConcurrentMap<String, Map<String, URL>>> getRegistryCache() {
return registryCache;
@@ -72,11 +72,11 @@ public class RegistryServerSync implements InitializingBean, DisposableBean, Not
public void afterPropertiesSet() throws Exception {
logger.info("Init Dubbo Admin Sync Cache...");
- registryService.subscribe(SUBSCRIBE, this);
+ registry.subscribe(SUBSCRIBE, this);
}
public void destroy() throws Exception {
- registryService.unsubscribe(SUBSCRIBE, this);
+ registry.unsubscribe(SUBSCRIBE, this);
}
// Notification of of any service with any type (override、subcribe、route、provider) is full.
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/AbstractService.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/AbstractService.java
index 56518b2..f7137d3 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/AbstractService.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/AbstractService.java
@@ -16,9 +16,12 @@
*/
package org.apache.dubbo.admin.service.impl;
+import org.apache.dubbo.admin.data.config.GovernanceConfiguration;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.configcenter.DynamicConfiguration;
+import org.apache.dubbo.registry.Registry;
import org.apache.dubbo.registry.RegistryService;
import org.apache.dubbo.admin.service.RegistryServerSync;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +36,13 @@ import java.util.concurrent.ConcurrentMap;
public class AbstractService {
protected static final Logger logger = LoggerFactory.getLogger(AbstractService.class);
+
+ @Autowired
+ protected Registry registry;
+
@Autowired
- protected RegistryService registryService;
+ protected GovernanceConfiguration dynamicConfiguration;
+
@Autowired
private RegistryServerSync sync;
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
index f179bab..d80fe40 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/OverrideServiceImpl.java
@@ -37,7 +37,7 @@ public class OverrideServiceImpl extends AbstractService implements OverrideServ
public void saveOverride(Override override) {
URL url = getUrlFromOverride(override);
- registryService.register(url);
+ registry.register(url);
}
public void updateOverride(Override override) {
@@ -51,8 +51,8 @@ public class OverrideServiceImpl extends AbstractService implements OverrideServ
}
URL newOverride = getUrlFromOverride(override);
- registryService.unregister(oldOverride);
- registryService.register(newOverride);
+ registry.unregister(oldOverride);
+ registry.register(newOverride);
}
@@ -61,7 +61,7 @@ public class OverrideServiceImpl extends AbstractService implements OverrideServ
if (oldOverride == null) {
throw new IllegalStateException("Route was changed!");
}
- registryService.unregister(oldOverride);
+ registry.unregister(oldOverride);
}
public void enableOverride(String id) {
@@ -78,8 +78,8 @@ public class OverrideServiceImpl extends AbstractService implements OverrideServ
}
URL newOverride = oldOverride.addParameter("enabled", true);
- registryService.unregister(oldOverride);
- registryService.register(newOverride);
+ registry.unregister(oldOverride);
+ registry.register(newOverride);
}
@@ -97,8 +97,8 @@ public class OverrideServiceImpl extends AbstractService implements OverrideServ
}
URL newProvider = oldProvider.addParameter("enabled", false);
- registryService.unregister(oldProvider);
- registryService.register(newProvider);
+ registry.unregister(oldProvider);
+ registry.register(newProvider);
}
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
index 1af3ece..faf99dd 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/ProviderServiceImpl.java
@@ -48,7 +48,7 @@ public class ProviderServiceImpl extends AbstractService implements ProviderServ
public void create(Provider provider) {
URL url = provider.toUrl();
- registryService.register(url);
+ registry.register(url);
}
public void enableProvider(String id) {
@@ -207,7 +207,7 @@ public class ProviderServiceImpl extends AbstractService implements ProviderServ
if (oldProvider == null) {
throw new IllegalStateException("Provider was changed!");
}
- registryService.unregister(oldProvider);
+ registry.unregister(oldProvider);
}
public void updateProvider(Provider provider) {
@@ -222,8 +222,8 @@ public class ProviderServiceImpl extends AbstractService implements ProviderServ
}
URL newProvider = provider.toUrl();
- registryService.unregister(oldProvider);
- registryService.register(newProvider);
+ registry.unregister(oldProvider);
+ registry.register(newProvider);
}
public Provider findProvider(String id) {
diff --git a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
index f9e5f19..7b5bd30 100644
--- a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
+++ b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/service/impl/RouteServiceImpl.java
@@ -37,7 +37,7 @@ import java.util.Map;
public class RouteServiceImpl extends AbstractService implements RouteService {
public void createRoute(Route route) {
- registryService.register(route.toUrl());
+ registry.register(route.toUrl());
}
public void updateRoute(Route route) {
@@ -50,8 +50,8 @@ public class RouteServiceImpl extends AbstractService implements RouteService {
throw new IllegalStateException("Route was changed!");
}
- registryService.unregister(oldRoute);
- registryService.register(route.toUrl());
+ registry.unregister(oldRoute);
+ registry.register(route.toUrl());
}
public void deleteRoute(String id) {
@@ -59,7 +59,7 @@ public class RouteServiceImpl extends AbstractService implements RouteService {
if (oldRoute == null) {
throw new IllegalStateException("Route was changed!");
}
- registryService.unregister(oldRoute);
+ registry.unregister(oldRoute);
}
public void enableRoute(String id) {
@@ -75,9 +75,9 @@ public class RouteServiceImpl extends AbstractService implements RouteService {
return;
}
- registryService.unregister(oldRoute);
+ registry.unregister(oldRoute);
URL newRoute = oldRoute.addParameter("enabled", true);
- registryService.register(newRoute);
+ registry.register(newRoute);
}
@@ -95,8 +95,8 @@ public class RouteServiceImpl extends AbstractService implements RouteService {
}
URL newRoute = oldRoute.addParameter("enabled", false);
- registryService.unregister(oldRoute);
- registryService.register(newRoute);
+ registry.unregister(oldRoute);
+ registry.register(newRoute);
}
diff --git a/dubbo-admin-backend/src/main/resources/application.properties b/dubbo-admin-backend/src/main/resources/application.properties
index 12809f4..87d44b8 100644
--- a/dubbo-admin-backend/src/main/resources/application.properties
+++ b/dubbo-admin-backend/src/main/resources/application.properties
@@ -17,3 +17,5 @@
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.group=dubbo
+dubbo.configcenter=zookeeper://127.0.0.1:2181
+dubbo.apollo.token=xxxxx
\ No newline at end of file