From 640440d5810a6e764da971a06bb2914b82266442 Mon Sep 17 00:00:00 2001
From: pengys5 <8082209@qq.com>
Date: Tue, 18 Jul 2017 14:49:47 +0800
Subject: [PATCH] =?UTF-8?q?1.=20Add=20stream=20module:=20The=20stream=20ba?=
=?UTF-8?q?se=20framework=202.=20Add=20context=20help=20for=20every=20modu?=
=?UTF-8?q?le=20to=20find=20another=20module=E2=80=99s=20context.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../apm-collector-agentstream/pom.xml | 7 ++-
.../agentstream/AgentStreamModuleDefine.java | 6 ++-
.../AgentStreamModuleException.java | 2 +-
.../AgentStreamModuleGroupDefine.java | 26 ++++++++++
.../AgentStreamModuleInstaller.java | 51 +++++++++++++++++++
.../grpc/AgentStreamGRPCConfig.java | 2 +-
.../grpc/AgentStreamGRPCConfigParser.java | 2 +-
.../grpc/AgentStreamGRPCModuleDefine.java | 10 ++--
.../AgentStreamGRPCModuleRegistration.java | 2 +-
.../jetty/AgentStreamJettyConfig.java | 2 +-
.../jetty/AgentStreamJettyConfigParser.java | 2 +-
.../jetty/AgentStreamJettyModuleDefine.java | 10 ++--
.../AgentStreamJettyModuleRegistration.java | 2 +-
.../resources/META-INF/defines/group.define | 1 +
.../resources/META-INF/defines/module.define | 4 +-
.../collector/boot/CollectorBootStartUp.java | 1 -
.../apm/collector/boot}/CollectorStarter.java | 27 ++++------
apm-collector/apm-collector-client/pom.xml | 10 ++++
.../cluster/ClusterModuleGroupDefine.java | 17 +++++--
.../cluster/ClusterModuleInstaller.java | 11 +++-
.../redis/ClusterRedisModuleDefine.java | 14 ++---
.../ClusterStandaloneModuleDefine.java | 14 ++---
.../zookeeper/ClusterZKModuleDefine.java | 14 ++---
apm-collector/apm-collector-core/pom.xml | 5 --
.../core/cluster/ClusterModuleContext.java | 29 +++++++++--
.../core/cluster/ClusterModuleDefine.java | 4 +-
.../framework/CollectorContextHelper.java | 25 +++++++++
.../apm/collector/core/framework/Context.java | 11 +++-
.../collector/core/framework/Executor.java | 8 +++
.../core/module/ModuleConfigLoader.java | 9 +++-
.../collector/core/module/ModuleDefine.java | 2 +-
.../core/module/ModuleDefineLoader.java | 2 +-
.../collector/core/module/ModuleGroup.java | 8 ---
.../core/module/ModuleGroupDefine.java | 6 ++-
.../core/module/ModuleInstallMode.java | 8 ---
.../core/module/ModuleInstallerAdapter.java | 25 ---------
.../apm/collector/core/queue/Creator.java | 10 ----
.../collector/core/queue/QueueCreator.java | 8 +++
.../collector/core/queue/QueueExecutor.java | 9 ++++
.../core/queue/QueueModuleContext.java | 8 ---
.../collector/core/util/ResourceUtils.java | 11 ++--
.../apm/collector/core/worker/Role.java | 13 -----
.../main/resources/application-default.yml} | 0
.../collector/queue/QueueModuleContext.java | 23 +++++++++
.../collector}/queue/QueueModuleDefine.java | 2 +-
.../collector/queue/QueueModuleException.java | 16 ++++++
.../queue/QueueModuleGroupDefine.java | 25 +++++++++
.../collector/queue/QueueModuleInstaller.java | 23 +++++++++
.../queue/datacarrier/DataCarrierCreator.java | 15 ------
.../datacarrier/DataCarrierQueueCreator.java | 15 ++++++
.../QueueDataCarrierModuleDefine.java | 13 ++---
.../disruptor/DisruptorEventHandler.java | 23 ++++-----
...reator.java => DisruptorQueueCreator.java} | 10 ++--
.../disruptor/QueueDisruptorModuleDefine.java | 13 ++---
.../resources/META-INF/defines/group.define | 1 +
.../collector/remote/RemoteModuleContext.java | 12 +++++
.../collector}/remote/RemoteModuleDefine.java | 2 +-
.../remote/RemoteModuleGroupDefine.java | 25 +++++++++
.../remote/RemoteModuleInstaller.java | 17 +++++++
.../remote/grpc/RemoteGRPCModuleDefine.java | 8 +--
.../resources/META-INF/defines/group.define | 1 +
.../resources/META-INF/defines/module.define | 1 +
apm-collector/apm-collector-stream/pom.xml | 27 ++++++++++
.../stream}/AbstractClusterWorker.java | 2 +-
.../AbstractClusterWorkerProvider.java | 2 +-
.../stream}/AbstractLocalAsyncWorker.java | 2 +-
.../AbstractLocalAsyncWorkerProvider.java | 10 ++--
.../stream}/AbstractLocalSyncWorker.java | 2 +-
.../AbstractLocalSyncWorkerProvider.java | 2 +-
.../stream}/AbstractLocalWorker.java | 2 +-
.../stream}/AbstractLocalWorkerProvider.java | 2 +-
.../apm/collector/stream}/AbstractWorker.java | 6 ++-
.../stream}/AbstractWorkerProvider.java | 2 +-
.../stream}/ClusterWorkerContext.java | 2 +-
.../collector/stream}/ClusterWorkerRef.java | 2 +-
.../stream}/ClusterWorkerRefCounter.java | 2 +-
.../apm/collector/stream}/Context.java | 2 +-
.../stream}/LocalAsyncWorkerRef.java | 2 +-
.../collector/stream}/LocalSyncWorkerRef.java | 2 +-
.../collector/stream}/LocalWorkerContext.java | 2 +-
.../apm/collector/stream}/LookUp.java | 2 +-
.../apm/collector/stream}/Provider.java | 2 +-
.../stream}/ProviderNotFoundException.java | 2 +-
.../skywalking/apm/collector/stream/Role.java | 13 +++++
.../stream}/UsedRoleNameException.java | 2 +-
.../apm/collector/stream}/WorkerContext.java | 2 +-
.../collector/stream}/WorkerException.java | 2 +-
.../stream}/WorkerInvokeException.java | 2 +-
.../stream}/WorkerModuleInstaller.java | 2 +-
.../stream}/WorkerNotFoundException.java | 2 +-
.../apm/collector/stream}/WorkerRef.java | 2 +-
.../apm/collector/stream}/WorkerRefs.java | 4 +-
.../stream}/selector/AbstractHashMessage.java | 2 +-
.../stream}/selector/HashCodeSelector.java | 8 +--
.../stream}/selector/RollingSelector.java | 6 +--
.../stream}/selector/WorkerSelector.java | 6 +--
apm-collector/pom.xml | 13 ++++-
97 files changed, 578 insertions(+), 250 deletions(-)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core => apm-collector-agentstream/src/main/java/org/skywalking/apm/collector}/agentstream/AgentStreamModuleDefine.java (80%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core => apm-collector-agentstream/src/main/java/org/skywalking/apm/collector}/agentstream/AgentStreamModuleException.java (86%)
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleGroupDefine.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/grpc/AgentStreamGRPCConfig.java (66%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/grpc/AgentStreamGRPCConfigParser.java (93%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/grpc/AgentStreamGRPCModuleDefine.java (74%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/grpc/AgentStreamGRPCModuleRegistration.java (83%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/jetty/AgentStreamJettyConfig.java (72%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/jetty/AgentStreamJettyConfigParser.java (94%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/jetty/AgentStreamJettyModuleDefine.java (75%)
rename apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/{agent/stream/server => agentstream}/jetty/AgentStreamJettyModuleRegistration.java (88%)
create mode 100644 apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/group.define
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework => apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot}/CollectorStarter.java (57%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core => apm-collector-cluster/src/main/java/org/skywalking/apm/collector}/cluster/ClusterModuleInstaller.java (77%)
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Executor.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleGroup.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstallMode.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstallerAdapter.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/queue/Creator.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/queue/QueueCreator.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/queue/QueueExecutor.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/queue/QueueModuleContext.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/Role.java
rename apm-collector/{apm-collector-boot/src/main/resources/application.yml => apm-collector-core/src/main/resources/application-default.yml} (100%)
create mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleContext.java
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core => apm-collector-queue/src/main/java/org/skywalking/apm/collector}/queue/QueueModuleDefine.java (95%)
create mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleException.java
create mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleGroupDefine.java
create mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/QueueModuleInstaller.java
delete mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/DataCarrierCreator.java
create mode 100644 apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/datacarrier/DataCarrierQueueCreator.java
rename apm-collector/apm-collector-queue/src/main/java/org/skywalking/apm/collector/queue/disruptor/{DisruptorCreator.java => DisruptorQueueCreator.java} (77%)
create mode 100644 apm-collector/apm-collector-queue/src/main/resources/META-INF/defines/group.define
create mode 100644 apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleContext.java
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core => apm-collector-remote/src/main/java/org/skywalking/apm/collector}/remote/RemoteModuleDefine.java (75%)
create mode 100644 apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleGroupDefine.java
create mode 100644 apm-collector/apm-collector-remote/src/main/java/org/skywalking/apm/collector/remote/RemoteModuleInstaller.java
create mode 100644 apm-collector/apm-collector-remote/src/main/resources/META-INF/defines/group.define
create mode 100644 apm-collector/apm-collector-remote/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-stream/pom.xml
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractClusterWorker.java (97%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractClusterWorkerProvider.java (96%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalAsyncWorker.java (97%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalAsyncWorkerProvider.java (55%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalSyncWorker.java (96%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalSyncWorkerProvider.java (92%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalWorker.java (84%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractLocalWorkerProvider.java (74%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractWorker.java (82%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/AbstractWorkerProvider.java (95%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/ClusterWorkerContext.java (96%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/ClusterWorkerRef.java (89%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/ClusterWorkerRefCounter.java (91%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/Context.java (85%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/LocalAsyncWorkerRef.java (90%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/LocalSyncWorkerRef.java (92%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/LocalWorkerContext.java (87%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/LookUp.java (79%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/Provider.java (73%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/ProviderNotFoundException.java (74%)
create mode 100644 apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/Role.java
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/UsedRoleNameException.java (73%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerContext.java (96%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerException.java (87%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerInvokeException.java (88%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerModuleInstaller.java (95%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerNotFoundException.java (74%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerRef.java (85%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/WorkerRefs.java (89%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/selector/AbstractHashMessage.java (89%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/selector/HashCodeSelector.java (83%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/selector/RollingSelector.java (82%)
rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker => apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream}/selector/WorkerSelector.java (75%)
diff --git a/apm-collector/apm-collector-agentstream/pom.xml b/apm-collector/apm-collector-agentstream/pom.xml
index 8ef444a8a..8e268c685 100644
--- a/apm-collector/apm-collector-agentstream/pom.xml
+++ b/apm-collector/apm-collector-agentstream/pom.xml
@@ -15,7 +15,12 @@
org.skywalking
- apm-collector-core
+ apm-collector-stream
+ ${project.version}
+
+
+ org.skywalking
+ apm-collector-cluster
${project.version}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java
similarity index 80%
rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleDefine.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java
index 97e377ba6..239e57424 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleDefine.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleDefine.java
@@ -1,11 +1,13 @@
-package org.skywalking.apm.collector.core.agentstream;
+package org.skywalking.apm.collector.agentstream;
import java.util.Map;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
import org.skywalking.apm.collector.core.client.Client;
import org.skywalking.apm.collector.core.client.ClientException;
import org.skywalking.apm.collector.core.cluster.ClusterDataInitializer;
import org.skywalking.apm.collector.core.cluster.ClusterModuleContext;
import org.skywalking.apm.collector.core.config.ConfigParseException;
+import org.skywalking.apm.collector.core.framework.CollectorContextHelper;
import org.skywalking.apm.collector.core.framework.DataInitializer;
import org.skywalking.apm.collector.core.framework.DefineException;
import org.skywalking.apm.collector.core.module.ModuleDefine;
@@ -24,7 +26,7 @@ public abstract class AgentStreamModuleDefine extends ModuleDefine {
server.initialize();
String key = ClusterDataInitializer.BASE_CATALOG + "." + name();
- ClusterModuleContext.WRITER.write(key, registration().buildValue());
+ ((ClusterModuleContext)CollectorContextHelper.INSTANCE.getContext(ClusterModuleGroupDefine.GROUP_NAME)).getWriter().write(key, registration().buildValue());
} catch (ConfigParseException | ServerException e) {
throw new AgentStreamModuleException(e.getMessage(), e);
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleException.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleException.java
similarity index 86%
rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleException.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleException.java
index f46602bbd..e51b3f6f6 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/agentstream/AgentStreamModuleException.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleException.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.core.agentstream;
+package org.skywalking.apm.collector.agentstream;
import org.skywalking.apm.collector.core.module.ModuleException;
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleGroupDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleGroupDefine.java
new file mode 100644
index 000000000..ea730c5d6
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleGroupDefine.java
@@ -0,0 +1,26 @@
+package org.skywalking.apm.collector.agentstream;
+
+import org.skywalking.apm.collector.core.cluster.ClusterModuleContext;
+import org.skywalking.apm.collector.core.framework.Context;
+import org.skywalking.apm.collector.core.module.ModuleGroupDefine;
+import org.skywalking.apm.collector.core.module.ModuleInstaller;
+
+/**
+ * @author pengys5
+ */
+public class AgentStreamModuleGroupDefine implements ModuleGroupDefine {
+
+ public static final String GROUP_NAME = "agent_stream";
+
+ @Override public String name() {
+ return GROUP_NAME;
+ }
+
+ @Override public Context groupContext() {
+ return new ClusterModuleContext(GROUP_NAME);
+ }
+
+ @Override public ModuleInstaller moduleInstaller() {
+ return new AgentStreamModuleInstaller();
+ }
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java
new file mode 100644
index 000000000..df6a5f168
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/AgentStreamModuleInstaller.java
@@ -0,0 +1,51 @@
+package org.skywalking.apm.collector.agentstream;
+
+import java.util.Iterator;
+import java.util.Map;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
+import org.skywalking.apm.collector.core.client.ClientException;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleContext;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
+import org.skywalking.apm.collector.core.framework.CollectorContextHelper;
+import org.skywalking.apm.collector.core.framework.DefineException;
+import org.skywalking.apm.collector.core.module.ModuleDefine;
+import org.skywalking.apm.collector.core.module.ModuleInstaller;
+import org.skywalking.apm.collector.core.util.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author pengys5
+ */
+public class AgentStreamModuleInstaller implements ModuleInstaller {
+
+ private final Logger logger = LoggerFactory.getLogger(AgentStreamModuleInstaller.class);
+
+ @Override public void install(Map moduleConfig,
+ Map moduleDefineMap) throws DefineException, ClientException {
+ logger.info("beginning cluster module install");
+
+ ModuleDefine moduleDefine = null;
+ if (CollectionUtils.isEmpty(moduleConfig)) {
+ logger.info("could not configure cluster module, use the default");
+ Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator();
+ while (moduleDefineEntry.hasNext()) {
+ moduleDefine = moduleDefineEntry.next().getValue();
+ if (moduleDefine.defaultModule()) {
+ logger.info("module {} initialize", moduleDefine.getClass().getName());
+ moduleDefine.initialize(null);
+ break;
+ }
+ }
+ } else {
+ Map.Entry clusterConfigEntry = moduleConfig.entrySet().iterator().next();
+ moduleDefine = moduleDefineMap.get(clusterConfigEntry.getKey());
+ moduleDefine.initialize(clusterConfigEntry.getValue());
+ }
+
+ ClusterModuleContext context = new ClusterModuleContext(ClusterModuleGroupDefine.GROUP_NAME);
+ context.setWriter(((ClusterModuleDefine)moduleDefine).registrationWriter());
+
+ CollectorContextHelper.INSTANCE.putContext(context);
+ }
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfig.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfig.java
similarity index 66%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfig.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfig.java
index 950775c50..d04feda9f 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfig.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfig.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.grpc;
+package org.skywalking.apm.collector.agentstream.grpc;
/**
* @author pengys5
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfigParser.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfigParser.java
similarity index 93%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfigParser.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfigParser.java
index 05fd728a7..35b9e288f 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCConfigParser.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCConfigParser.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.grpc;
+package org.skywalking.apm.collector.agentstream.grpc;
import java.util.Map;
import org.skywalking.apm.collector.core.config.ConfigParseException;
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java
similarity index 74%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleDefine.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java
index 5efeb7a58..b41b062d5 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleDefine.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleDefine.java
@@ -1,8 +1,8 @@
-package org.skywalking.apm.collector.agent.stream.server.grpc;
+package org.skywalking.apm.collector.agentstream.grpc;
-import org.skywalking.apm.collector.core.agentstream.AgentStreamModuleDefine;
+import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine;
+import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine;
import org.skywalking.apm.collector.core.module.ModuleConfigParser;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
import org.skywalking.apm.collector.core.module.ModuleRegistration;
import org.skywalking.apm.collector.core.server.Server;
import org.skywalking.apm.collector.server.grpc.GRPCServer;
@@ -12,8 +12,8 @@ import org.skywalking.apm.collector.server.grpc.GRPCServer;
*/
public class AgentStreamGRPCModuleDefine extends AgentStreamModuleDefine {
- @Override protected ModuleGroup group() {
- return ModuleGroup.AgentStream;
+ @Override protected String group() {
+ return AgentStreamModuleGroupDefine.GROUP_NAME;
}
@Override public String name() {
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleRegistration.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleRegistration.java
similarity index 83%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleRegistration.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleRegistration.java
index 347b29b4e..800ebba24 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/grpc/AgentStreamGRPCModuleRegistration.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/AgentStreamGRPCModuleRegistration.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.grpc;
+package org.skywalking.apm.collector.agentstream.grpc;
import org.skywalking.apm.collector.core.module.ModuleRegistration;
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfig.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfig.java
similarity index 72%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfig.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfig.java
index 240d5ef1e..5ed3e24c5 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfig.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfig.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.jetty;
+package org.skywalking.apm.collector.agentstream.jetty;
/**
* @author pengys5
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfigParser.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfigParser.java
similarity index 94%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfigParser.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfigParser.java
index d50a463c2..11afc270b 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyConfigParser.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyConfigParser.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.jetty;
+package org.skywalking.apm.collector.agentstream.jetty;
import java.util.Map;
import org.skywalking.apm.collector.core.config.ConfigParseException;
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java
similarity index 75%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleDefine.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java
index b23de9696..ac14352cb 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleDefine.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleDefine.java
@@ -1,8 +1,8 @@
-package org.skywalking.apm.collector.agent.stream.server.jetty;
+package org.skywalking.apm.collector.agentstream.jetty;
-import org.skywalking.apm.collector.core.agentstream.AgentStreamModuleDefine;
+import org.skywalking.apm.collector.agentstream.AgentStreamModuleDefine;
+import org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine;
import org.skywalking.apm.collector.core.module.ModuleConfigParser;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
import org.skywalking.apm.collector.core.module.ModuleRegistration;
import org.skywalking.apm.collector.core.server.Server;
import org.skywalking.apm.collector.server.jetty.JettyServer;
@@ -12,8 +12,8 @@ import org.skywalking.apm.collector.server.jetty.JettyServer;
*/
public class AgentStreamJettyModuleDefine extends AgentStreamModuleDefine {
- @Override protected ModuleGroup group() {
- return ModuleGroup.AgentStream;
+ @Override protected String group() {
+ return AgentStreamModuleGroupDefine.GROUP_NAME;
}
@Override public String name() {
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleRegistration.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleRegistration.java
similarity index 88%
rename from apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleRegistration.java
rename to apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleRegistration.java
index 82ac5aa62..3968fb8f7 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agent/stream/server/jetty/AgentStreamJettyModuleRegistration.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/jetty/AgentStreamJettyModuleRegistration.java
@@ -1,4 +1,4 @@
-package org.skywalking.apm.collector.agent.stream.server.jetty;
+package org.skywalking.apm.collector.agentstream.jetty;
import com.google.gson.JsonObject;
import org.skywalking.apm.collector.core.module.ModuleRegistration;
diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/group.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/group.define
new file mode 100644
index 000000000..2c200d484
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/group.define
@@ -0,0 +1 @@
+org.skywalking.apm.collector.agentstream.AgentStreamModuleGroupDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/module.define
index 6891cf0e2..7103f4219 100644
--- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/module.define
+++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/module.define
@@ -1,2 +1,2 @@
-org.skywalking.apm.collector.agent.stream.server.grpc.AgentStreamGRPCModuleDefine
-org.skywalking.apm.collector.agent.stream.server.jetty.AgentStreamJettyModuleDefine
\ No newline at end of file
+org.skywalking.apm.collector.agentstream.grpc.AgentStreamGRPCModuleDefine
+org.skywalking.apm.collector.agentstream.jetty.AgentStreamJettyModuleDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java
index 46acc6cc5..ef2dc90df 100644
--- a/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorBootStartUp.java
@@ -2,7 +2,6 @@ package org.skywalking.apm.collector.boot;
import org.skywalking.apm.collector.core.client.ClientException;
import org.skywalking.apm.collector.core.config.ConfigException;
-import org.skywalking.apm.collector.core.framework.CollectorStarter;
import org.skywalking.apm.collector.core.framework.DefineException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java
similarity index 57%
rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java
rename to apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java
index 44534172d..a5d55fd25 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java
+++ b/apm-collector/apm-collector-boot/src/main/java/org/skywalking/apm/collector/boot/CollectorStarter.java
@@ -1,15 +1,16 @@
-package org.skywalking.apm.collector.core.framework;
+package org.skywalking.apm.collector.boot;
import java.util.Map;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
import org.skywalking.apm.collector.core.client.ClientException;
import org.skywalking.apm.collector.core.config.ConfigException;
+import org.skywalking.apm.collector.core.framework.DefineException;
+import org.skywalking.apm.collector.core.framework.Starter;
import org.skywalking.apm.collector.core.module.ModuleConfigLoader;
import org.skywalking.apm.collector.core.module.ModuleDefine;
import org.skywalking.apm.collector.core.module.ModuleDefineLoader;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
import org.skywalking.apm.collector.core.module.ModuleGroupDefine;
import org.skywalking.apm.collector.core.module.ModuleGroupDefineLoader;
-import org.skywalking.apm.collector.core.module.ModuleInstallerAdapter;
import org.skywalking.apm.collector.core.remote.SerializedDefineLoader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,29 +23,23 @@ public class CollectorStarter implements Starter {
private final Logger logger = LoggerFactory.getLogger(CollectorStarter.class);
@Override public void start() throws ConfigException, DefineException, ClientException {
- Context context = new Context();
ModuleConfigLoader configLoader = new ModuleConfigLoader();
Map configuration = configLoader.load();
SerializedDefineLoader serializedDefineLoader = new SerializedDefineLoader();
serializedDefineLoader.load();
- ModuleDefineLoader defineLoader = new ModuleDefineLoader();
- Map> moduleDefineMap = defineLoader.load();
-
ModuleGroupDefineLoader groupDefineLoader = new ModuleGroupDefineLoader();
Map moduleGroupDefineMap = groupDefineLoader.load();
- ModuleInstallerAdapter moduleInstallerAdapter = new ModuleInstallerAdapter(ModuleGroup.Cluster);
- moduleInstallerAdapter.install(configuration.get(ModuleGroup.Cluster.name().toLowerCase()), moduleDefineMap.get(ModuleGroup.Cluster.name().toLowerCase()));
+ ModuleDefineLoader defineLoader = new ModuleDefineLoader();
+ Map> moduleDefineMap = defineLoader.load();
- ModuleGroup[] moduleGroups = ModuleGroup.values();
- for (ModuleGroup moduleGroup : moduleGroups) {
- if (!ModuleGroup.Cluster.equals(moduleGroup)) {
- moduleInstallerAdapter = new ModuleInstallerAdapter(moduleGroup);
- logger.info("module group {}, configuration {}", moduleGroup.name().toLowerCase(), configuration.get(moduleGroup.name().toLowerCase()));
- moduleInstallerAdapter.install(configuration.get(moduleGroup.name().toLowerCase()), moduleDefineMap.get(moduleGroup.name().toLowerCase()));
- }
+ moduleGroupDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME).moduleInstaller().install(configuration.get(ClusterModuleGroupDefine.GROUP_NAME), moduleDefineMap.get(ClusterModuleGroupDefine.GROUP_NAME));
+ moduleGroupDefineMap.remove(ClusterModuleGroupDefine.GROUP_NAME);
+
+ for (ModuleGroupDefine moduleGroupDefine : moduleGroupDefineMap.values()) {
+ moduleGroupDefine.moduleInstaller().install(configuration.get(moduleGroupDefine.name()), moduleDefineMap.get(moduleGroupDefine.name()));
}
}
}
diff --git a/apm-collector/apm-collector-client/pom.xml b/apm-collector/apm-collector-client/pom.xml
index 1de50be53..ae71e6f14 100644
--- a/apm-collector/apm-collector-client/pom.xml
+++ b/apm-collector/apm-collector-client/pom.xml
@@ -32,6 +32,16 @@
org.apache.zookeeper
zookeeper
3.4.10
+
+
+ slf4j-api
+ org.slf4j
+
+
+ slf4j-log4j12
+ org.slf4j
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleGroupDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleGroupDefine.java
index 4f5246442..d51023d8a 100644
--- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleGroupDefine.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleGroupDefine.java
@@ -1,17 +1,26 @@
package org.skywalking.apm.collector.cluster;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleContext;
+import org.skywalking.apm.collector.core.framework.Context;
import org.skywalking.apm.collector.core.module.ModuleGroupDefine;
-import org.skywalking.apm.collector.core.module.ModuleInstallMode;
+import org.skywalking.apm.collector.core.module.ModuleInstaller;
/**
* @author pengys5
*/
public class ClusterModuleGroupDefine implements ModuleGroupDefine {
+
+ public static final String GROUP_NAME = "cluster";
+
@Override public String name() {
- return "cluster";
+ return GROUP_NAME;
}
- @Override public ModuleInstallMode mode() {
- return ModuleInstallMode.Single;
+ @Override public Context groupContext() {
+ return new ClusterModuleContext(GROUP_NAME);
+ }
+
+ @Override public ModuleInstaller moduleInstaller() {
+ return new ClusterModuleInstaller();
}
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java
similarity index 77%
rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java
rename to apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java
index d632bace9..666366244 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/ClusterModuleInstaller.java
@@ -1,8 +1,11 @@
-package org.skywalking.apm.collector.core.cluster;
+package org.skywalking.apm.collector.cluster;
import java.util.Iterator;
import java.util.Map;
import org.skywalking.apm.collector.core.client.ClientException;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleContext;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
+import org.skywalking.apm.collector.core.framework.CollectorContextHelper;
import org.skywalking.apm.collector.core.framework.DefineException;
import org.skywalking.apm.collector.core.module.ModuleDefine;
import org.skywalking.apm.collector.core.module.ModuleInstaller;
@@ -38,6 +41,10 @@ public class ClusterModuleInstaller implements ModuleInstaller {
moduleDefine = moduleDefineMap.get(clusterConfigEntry.getKey());
moduleDefine.initialize(clusterConfigEntry.getValue());
}
- ClusterModuleContext.WRITER = ((ClusterModuleDefine)moduleDefine).registrationWriter();
+
+ ClusterModuleContext context = new ClusterModuleContext(ClusterModuleGroupDefine.GROUP_NAME);
+ context.setWriter(((ClusterModuleDefine)moduleDefine).registrationWriter());
+
+ CollectorContextHelper.INSTANCE.putContext(context);
}
}
diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
index cc7e9c71f..625d894fa 100644
--- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
@@ -1,25 +1,27 @@
package org.skywalking.apm.collector.cluster.redis;
import org.skywalking.apm.collector.client.redis.RedisClient;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
import org.skywalking.apm.collector.core.client.Client;
import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationReader;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
import org.skywalking.apm.collector.core.framework.DataInitializer;
import org.skywalking.apm.collector.core.module.ModuleConfigParser;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
/**
* @author pengys5
*/
public class ClusterRedisModuleDefine extends ClusterModuleDefine {
- @Override public ModuleGroup group() {
- return ModuleGroup.Cluster;
+ public static final String MODULE_NAME = "redis";
+
+ @Override public String group() {
+ return ClusterModuleGroupDefine.GROUP_NAME;
}
@Override public String name() {
- return "redis";
+ return MODULE_NAME;
}
@Override public boolean defaultModule() {
@@ -38,11 +40,11 @@ public class ClusterRedisModuleDefine extends ClusterModuleDefine {
return new ClusterRedisDataInitializer();
}
- @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ @Override public ClusterModuleRegistrationWriter registrationWriter() {
return new ClusterRedisModuleRegistrationWriter(getClient());
}
- @Override protected ClusterModuleRegistrationReader registrationReader() {
+ @Override public ClusterModuleRegistrationReader registrationReader() {
return null;
}
}
diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
index d7802e216..583439d7c 100644
--- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
@@ -1,25 +1,27 @@
package org.skywalking.apm.collector.cluster.standalone;
import org.skywalking.apm.collector.client.h2.H2Client;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
import org.skywalking.apm.collector.core.client.Client;
import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationReader;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
import org.skywalking.apm.collector.core.framework.DataInitializer;
import org.skywalking.apm.collector.core.module.ModuleConfigParser;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
/**
* @author pengys5
*/
public class ClusterStandaloneModuleDefine extends ClusterModuleDefine {
- @Override public ModuleGroup group() {
- return ModuleGroup.Cluster;
+ public static final String MODULE_NAME = "standalone";
+
+ @Override public String group() {
+ return ClusterModuleGroupDefine.GROUP_NAME;
}
@Override public String name() {
- return "standalone";
+ return MODULE_NAME;
}
@Override public boolean defaultModule() {
@@ -38,11 +40,11 @@ public class ClusterStandaloneModuleDefine extends ClusterModuleDefine {
return new ClusterStandaloneDataInitializer();
}
- @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ @Override public ClusterModuleRegistrationWriter registrationWriter() {
return new ClusterStandaloneModuleRegistrationWriter(getClient());
}
- @Override protected ClusterModuleRegistrationReader registrationReader() {
+ @Override public ClusterModuleRegistrationReader registrationReader() {
return null;
}
}
diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
index b555ac458..f9d570601 100644
--- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
@@ -1,25 +1,27 @@
package org.skywalking.apm.collector.cluster.zookeeper;
import org.skywalking.apm.collector.client.zookeeper.ZookeeperClient;
+import org.skywalking.apm.collector.cluster.ClusterModuleGroupDefine;
import org.skywalking.apm.collector.core.client.Client;
import org.skywalking.apm.collector.core.cluster.ClusterDataInitializer;
import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationReader;
import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
import org.skywalking.apm.collector.core.module.ModuleConfigParser;
-import org.skywalking.apm.collector.core.module.ModuleGroup;
/**
* @author pengys5
*/
public class ClusterZKModuleDefine extends ClusterModuleDefine {
- @Override protected ModuleGroup group() {
- return ModuleGroup.Cluster;
+ public static final String MODULE_NAME = "zookeeper";
+
+ @Override protected String group() {
+ return ClusterModuleGroupDefine.GROUP_NAME;
}
@Override public String name() {
- return "zookeeper";
+ return MODULE_NAME;
}
@Override public boolean defaultModule() {
@@ -38,11 +40,11 @@ public class ClusterZKModuleDefine extends ClusterModuleDefine {
return new ClusterZKDataInitializer();
}
- @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ @Override public ClusterModuleRegistrationWriter registrationWriter() {
return new ClusterZKModuleRegistrationWriter(getClient());
}
- @Override protected ClusterModuleRegistrationReader registrationReader() {
+ @Override public ClusterModuleRegistrationReader registrationReader() {
return null;
}
}
diff --git a/apm-collector/apm-collector-core/pom.xml b/apm-collector/apm-collector-core/pom.xml
index 5c21a41b7..8c3d9f630 100644
--- a/apm-collector/apm-collector-core/pom.xml
+++ b/apm-collector/apm-collector-core/pom.xml
@@ -18,11 +18,6 @@
snakeyaml
1.18
-
- ch.qos.logback
- logback-classic
- 1.2.3
-
com.google.code.gson
gson
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java
index 41a6a2c52..a104e24ea 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java
@@ -1,10 +1,33 @@
package org.skywalking.apm.collector.core.cluster;
+import org.skywalking.apm.collector.core.framework.Context;
+
/**
* @author pengys5
*/
-public class ClusterModuleContext {
- public static ClusterModuleRegistrationWriter WRITER;
+public class ClusterModuleContext extends Context {
- public static ClusterModuleRegistrationReader READER;
+ public ClusterModuleContext(String groupName) {
+ super(groupName);
+ }
+
+ private ClusterModuleRegistrationWriter writer;
+
+ private ClusterModuleRegistrationReader reader;
+
+ public ClusterModuleRegistrationWriter getWriter() {
+ return writer;
+ }
+
+ public void setWriter(ClusterModuleRegistrationWriter writer) {
+ this.writer = writer;
+ }
+
+ public ClusterModuleRegistrationReader getReader() {
+ return reader;
+ }
+
+ public void setReader(ClusterModuleRegistrationReader reader) {
+ this.reader = reader;
+ }
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java
index 42e4016c3..1d788d8ec 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java
@@ -38,7 +38,7 @@ public abstract class ClusterModuleDefine extends ModuleDefine {
throw new UnsupportedOperationException("Cluster module do not need module registration.");
}
- protected abstract ClusterModuleRegistrationWriter registrationWriter();
+ public abstract ClusterModuleRegistrationWriter registrationWriter();
- protected abstract ClusterModuleRegistrationReader registrationReader();
+ public abstract ClusterModuleRegistrationReader registrationReader();
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java
new file mode 100644
index 000000000..b0d6e96cf
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorContextHelper.java
@@ -0,0 +1,25 @@
+package org.skywalking.apm.collector.core.framework;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * @author pengys5
+ */
+public enum CollectorContextHelper {
+ INSTANCE;
+
+ private Map contexts = new LinkedHashMap();
+
+ public Context getContext(String moduleGroupName) {
+ return contexts.get(moduleGroupName);
+ }
+
+ public void putContext(Context context) {
+ if (contexts.containsKey(context.getGroupName())) {
+ throw new UnsupportedOperationException("This module context was put, do not allow put a new one");
+ } else {
+ contexts.put(context.getGroupName(), context);
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java
index db34bb29a..9be638427 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java
@@ -3,5 +3,14 @@ package org.skywalking.apm.collector.core.framework;
/**
* @author pengys5
*/
-public class Context {
+public abstract class Context {
+ private final String groupName;
+
+ public Context(String groupName) {
+ this.groupName = groupName;
+ }
+
+ public final String getGroupName() {
+ return groupName;
+ }
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Executor.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Executor.java
new file mode 100644
index 000000000..b09717518
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Executor.java
@@ -0,0 +1,8 @@
+package org.skywalking.apm.collector.core.framework;
+
+/**
+ * @author pengys5
+ */
+public interface Executor {
+ void execute(Object message);
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java
index 55c8a0e78..8e89ef152 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java
@@ -1,6 +1,7 @@
package org.skywalking.apm.collector.core.module;
import java.io.FileNotFoundException;
+import java.io.FileReader;
import java.util.Map;
import org.skywalking.apm.collector.core.config.ConfigLoader;
import org.skywalking.apm.collector.core.util.ResourceUtils;
@@ -18,7 +19,13 @@ public class ModuleConfigLoader implements ConfigLoader