You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2018/11/11 14:37:11 UTC

[incubator-skywalking] branch storage-entity-scope updated: Make RegisterLockInstaller works based on InventoryProcess registered info.

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch storage-entity-scope
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git


The following commit(s) were added to refs/heads/storage-entity-scope by this push:
     new 81df2f1  Make RegisterLockInstaller works based on InventoryProcess registered info.
81df2f1 is described below

commit 81df2f18d53d7dfb9a19dd8b960fabd02b877974
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Nov 11 22:36:59 2018 +0800

    Make RegisterLockInstaller works based on InventoryProcess registered info.
---
 .../core/register/worker/InventoryProcess.java     | 22 +++++++++++++++++++---
 .../elasticsearch/lock/RegisterLockInstaller.java  | 16 ++++++++++------
 2 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/InventoryProcess.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/InventoryProcess.java
index bd36713..ad6c787 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/InventoryProcess.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/InventoryProcess.java
@@ -18,13 +18,20 @@
 
 package org.apache.skywalking.oap.server.core.register.worker;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import org.apache.skywalking.oap.server.core.UnexpectedException;
 import org.apache.skywalking.oap.server.core.register.RegisterSource;
 import org.apache.skywalking.oap.server.core.source.Scope;
-import org.apache.skywalking.oap.server.core.storage.*;
+import org.apache.skywalking.oap.server.core.storage.IRegisterDAO;
+import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
+import org.apache.skywalking.oap.server.core.storage.StorageDAO;
+import org.apache.skywalking.oap.server.core.storage.StorageModule;
 import org.apache.skywalking.oap.server.core.storage.annotation.StorageEntityAnnotationUtils;
-import org.apache.skywalking.oap.server.core.worker.*;
+import org.apache.skywalking.oap.server.core.worker.WorkerIdGenerator;
+import org.apache.skywalking.oap.server.core.worker.WorkerInstances;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
 
 /**
@@ -64,4 +71,13 @@ public enum InventoryProcess {
 
         entryWorkers.put(inventoryClass, distinctWorker);
     }
+
+    /**
+     * @return all register source class types
+     */
+    public List<Class> getAllRegisterSources() {
+        List allSources = new ArrayList<>();
+        entryWorkers.keySet().forEach(allSources::add);
+        return allSources;
+    }
 }
diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/lock/RegisterLockInstaller.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/lock/RegisterLockInstaller.java
index 383f7b4..e8891f1 100644
--- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/lock/RegisterLockInstaller.java
+++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/lock/RegisterLockInstaller.java
@@ -19,13 +19,17 @@
 package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.lock;
 
 import java.io.IOException;
+import org.apache.skywalking.oap.server.core.register.worker.InventoryProcess;
 import org.apache.skywalking.oap.server.core.source.Scope;
 import org.apache.skywalking.oap.server.core.storage.StorageException;
+import org.apache.skywalking.oap.server.core.storage.annotation.StorageEntityAnnotationUtils;
 import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient;
 import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.xcontent.*;
-import org.slf4j.*;
+import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.elasticsearch.common.xcontent.XContentFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
@@ -45,10 +49,10 @@ public class RegisterLockInstaller {
             if (!client.isExistsIndex(RegisterLockIndex.NAME)) {
                 createIndex();
             }
-            putIfAbsent(Scope.Endpoint.ordinal());
-            putIfAbsent(Scope.ServiceInstance.ordinal());
-            putIfAbsent(Scope.Service.ordinal());
-            putIfAbsent(Scope.NetworkAddress.ordinal());
+            for (Class registerSource : InventoryProcess.INSTANCE.getAllRegisterSources()) {
+                Scope sourceScope = StorageEntityAnnotationUtils.getSourceScope(registerSource);
+                putIfAbsent(sourceScope.ordinal());
+            }
         } catch (IOException e) {
             throw new StorageException(e.getMessage());
         }