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