From 116fca8a42a8764241840bb4b386ac445333f4d0 Mon Sep 17 00:00:00 2001
From: pengys5 <8082209@qq.com>
Date: Tue, 11 Jul 2017 23:37:12 +0800
Subject: [PATCH] module install #266
---
.../apm-collector-client/client-h2/pom.xml | 22 ++++++
.../apm/collector/client/h2/H2Client.java | 38 +++++++++
.../apm-collector-client/client-redis/pom.xml | 14 ++++
.../collector/client/redis/RedisClient.java | 38 +++++++++
.../client-zookeeper/pom.xml | 36 +++++++++
.../client/zookeeper/ZookeeperClient.java | 78 +++++++++++++++++++
.../zookeeper/ZookeeperClientException.java | 16 ++++
.../client/zookeeper/ZookeeperConfig.java | 9 +++
.../zookeeper/ZookeeperDataListener.java | 59 ++++++++++++++
apm-collector/apm-collector-client/pom.xml | 27 +++++++
.../cluster-redis}/pom.xml | 8 +-
.../redis/ClusterRedisConfigParser.java | 15 ++++
.../redis/ClusterRedisDataInitializer.java | 18 +++++
.../redis/ClusterRedisModuleDefine.java | 43 ++++++++++
.../ClusterRedisModuleRegistrationWriter.java | 13 ++++
.../resources/META-INF/defines/module.define | 1 +
.../cluster-standalone/pom.xml | 22 ++++++
.../ClusterStandaloneConfigParser.java | 14 ++++
.../ClusterStandaloneDataInitializer.java | 19 +++++
.../ClusterStandaloneModuleDefine.java | 43 ++++++++++
...terStandaloneModuleRegistrationWriter.java | 13 ++++
.../resources/META-INF/defines/module.define | 1 +
.../cluster-zookeeper/pom.xml | 22 ++++++
.../zookeeper/ClusterZKConfigParser.java | 29 +++++++
.../zookeeper/ClusterZKDataInitializer.java | 37 +++++++++
.../zookeeper/ClusterZKModuleDefine.java | 43 ++++++++++
.../ClusterZKModuleRegistrationReader.java | 13 ++++
.../ClusterZKModuleRegistrationWriter.java | 13 ++++
.../resources/META-INF/defines/module.define | 1 +
.../ClusterZKModuleDefineTestCase.java | 32 ++++++++
.../cluster/zookeeper/ZookeeperTestCase.java | 55 +++++++++++++
.../src/test/resources/application.yml | 3 +
.../apm-collector-cluster-new/pom.xml | 27 +++++++
.../commons/config/SeedNodesFormatter.java | 12 ---
.../role/TraceSegmentReceiverRole.java | 22 ------
.../src/main/resources/application.conf | 34 --------
.../core/cluster/ClusterModuleContext.java | 16 ++++
.../core/cluster/ClusterModuleDefine.java | 7 ++
...overy.java => ClusterModuleDiscovery.java} | 2 +-
.../core/cluster/ClusterModuleInstaller.java | 38 +++++++++
.../ClusterModuleRegistrationReader.java | 10 +++
.../ClusterModuleRegistrationWriter.java | 8 ++
.../collector/core/cluster/Registration.java | 9 ---
.../collector/core/config/ConfigLoader.java | 2 +-
.../core/framework/CollectorStarter.java | 39 ++++++++++
.../apm/collector/core/framework/Context.java | 8 ++
.../apm/collector/core/framework/Define.java | 4 +-
.../apm/collector/core/framework/Loader.java | 5 +-
.../apm/collector/core/framework/Starter.java | 4 +-
.../core/module/ModuleConfigLoader.java | 18 +----
.../collector/core/module/ModuleContext.java | 18 +++++
.../collector/core/module/ModuleDefine.java | 14 +---
.../core/module/ModuleDefineLoader.java | 35 +++++++++
.../collector/core/module/ModuleGroup.java | 2 +-
.../core/module/ModuleInstaller.java | 39 +---------
.../core/module/ModuleInstallerAdapter.java | 27 +++++++
.../core/module/ModuleRegistration.java | 11 +++
.../collector/core/util/CollectionUtils.java | 14 ++++
.../collector/core/util/DefinitionLoader.java | 25 +++---
.../core/worker/WorkerModuleInstaller.java | 24 ++++++
.../core/module/ClusterModuleForTest.java | 17 ----
.../core/module/ModuleInstallerTestCase.java | 19 -----
.../datacarrier-queue/pom.xml | 14 ++++
.../disruptor-queue/pom.xml | 22 ++++++
apm-collector/apm-collector-queue/pom.xml | 26 +++++++
.../google-rpc-server/pom.xml | 22 ++++++
.../apm/collector/server/grpc/GRPCServer.java | 43 ++++++++++
.../server/grpc/GRPCServerException.java | 17 ++++
.../apm-collector-server/jetty-server/pom.xml | 31 ++++++++
.../collector/server/jetty/JettyServer.java | 41 ++++++++++
.../server/jetty/JettyServerException.java | 17 ++++
apm-collector/apm-collector-server/pom.xml | 26 +++++++
.../elasticsearch-storage/pom.xml | 14 ++++
.../apm-collector-storage/h2-storage/pom.xml | 14 ++++
apm-collector/apm-collector-storage/pom.xml | 18 +++++
.../apm-collector-worker-agent/pom.xml | 14 ++++
.../worker/agent/WorkerAgentConfig.java | 9 +++
.../worker/agent/WorkerAgentConfigParser.java | 27 +++++++
.../worker/agent/WorkerAgentModuleDefine.java | 38 +++++++++
.../agent/WorkerAgentModuleRegistration.java | 13 ++++
.../resources/META-INF/defines/module.define | 1 +
.../apm-collector-worker-impl/pom.xml | 42 ++++++++++
.../worker/impl/CollectorBootStartUp.java | 21 +++++
.../src/main/resources/application.yml | 12 +++
.../apm-collector-worker-ui/pom.xml | 14 ++++
.../collector/worker/ui/WorkerUIConfig.java | 10 +++
.../worker/ui/WorkerUIConfigParser.java | 34 ++++++++
.../worker/ui/WorkerUIModuleDefine.java | 38 +++++++++
.../worker/ui/WorkerUIModuleRegistration.java | 13 ++++
.../resources/META-INF/defines/module.define | 1 +
.../apm-collector-worker-new/pom.xml | 37 +++++++++
apm-collector/apm-collector-worker/pom.xml | 5 --
.../InstanceDiscoveryServiceImpl.java | 32 ++++++++
.../ServiceNameDisCoveryServiceImpl.java | 25 ++++++
.../ApplicationRegisterServiceImpl.java | 38 +++++++++
.../TraceSegmentServiceImpl.java | 4 +-
.../META-INF/services/io.grpc.BindableService | 2 +-
apm-collector/pom.xml | 51 ++----------
98 files changed, 1834 insertions(+), 257 deletions(-)
create mode 100644 apm-collector/apm-collector-client/client-h2/pom.xml
create mode 100644 apm-collector/apm-collector-client/client-h2/src/main/java/org/skywalking/apm/collector/client/h2/H2Client.java
create mode 100644 apm-collector/apm-collector-client/client-redis/pom.xml
create mode 100644 apm-collector/apm-collector-client/client-redis/src/main/java/org/skywalking/apm/collector/client/redis/RedisClient.java
create mode 100644 apm-collector/apm-collector-client/client-zookeeper/pom.xml
create mode 100644 apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClient.java
create mode 100644 apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClientException.java
create mode 100644 apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperConfig.java
create mode 100644 apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperDataListener.java
create mode 100644 apm-collector/apm-collector-client/pom.xml
rename apm-collector/{apm-collector-commons => apm-collector-cluster-new/cluster-redis}/pom.xml (78%)
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisConfigParser.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisDataInitializer.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleRegistrationWriter.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-redis/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/pom.xml
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneConfigParser.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneDataInitializer.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleRegistrationWriter.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/pom.xml
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKConfigParser.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataInitializer.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationReader.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationWriter.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefineTestCase.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ZookeeperTestCase.java
create mode 100644 apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/resources/application.yml
create mode 100644 apm-collector/apm-collector-cluster-new/pom.xml
delete mode 100644 apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/config/SeedNodesFormatter.java
delete mode 100644 apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/role/TraceSegmentReceiverRole.java
delete mode 100644 apm-collector/apm-collector-commons/src/main/resources/application.conf
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java
rename apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/{Discovery.java => ClusterModuleDiscovery.java} (71%)
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationReader.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationWriter.java
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleContext.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefineLoader.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstallerAdapter.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleRegistration.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/CollectionUtils.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/WorkerModuleInstaller.java
delete mode 100644 apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ClusterModuleForTest.java
delete mode 100644 apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleInstallerTestCase.java
create mode 100644 apm-collector/apm-collector-queue/datacarrier-queue/pom.xml
create mode 100644 apm-collector/apm-collector-queue/disruptor-queue/pom.xml
create mode 100644 apm-collector/apm-collector-queue/pom.xml
create mode 100644 apm-collector/apm-collector-server/google-rpc-server/pom.xml
create mode 100644 apm-collector/apm-collector-server/google-rpc-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServer.java
create mode 100644 apm-collector/apm-collector-server/google-rpc-server/src/main/java/org/skywalking/apm/collector/server/grpc/GRPCServerException.java
create mode 100644 apm-collector/apm-collector-server/jetty-server/pom.xml
create mode 100644 apm-collector/apm-collector-server/jetty-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServer.java
create mode 100644 apm-collector/apm-collector-server/jetty-server/src/main/java/org/skywalking/apm/collector/server/jetty/JettyServerException.java
create mode 100644 apm-collector/apm-collector-server/pom.xml
create mode 100644 apm-collector/apm-collector-storage/elasticsearch-storage/pom.xml
create mode 100644 apm-collector/apm-collector-storage/h2-storage/pom.xml
create mode 100644 apm-collector/apm-collector-storage/pom.xml
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/pom.xml
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/src/main/java/org/skywalking/apm/collector/worker/agent/WorkerAgentConfig.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/src/main/java/org/skywalking/apm/collector/worker/agent/WorkerAgentConfigParser.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/src/main/java/org/skywalking/apm/collector/worker/agent/WorkerAgentModuleDefine.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/src/main/java/org/skywalking/apm/collector/worker/agent/WorkerAgentModuleRegistration.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-agent/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-impl/pom.xml
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-impl/src/main/java/org/skywalking/apm/collector/worker/impl/CollectorBootStartUp.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-impl/src/main/resources/application.yml
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/pom.xml
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/src/main/java/org/skywalking/apm/collector/worker/ui/WorkerUIConfig.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/src/main/java/org/skywalking/apm/collector/worker/ui/WorkerUIConfigParser.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/src/main/java/org/skywalking/apm/collector/worker/ui/WorkerUIModuleDefine.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/src/main/java/org/skywalking/apm/collector/worker/ui/WorkerUIModuleRegistration.java
create mode 100644 apm-collector/apm-collector-worker-new/apm-collector-worker-ui/src/main/resources/META-INF/defines/module.define
create mode 100644 apm-collector/apm-collector-worker-new/pom.xml
create mode 100644 apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/discovery/InstanceDiscoveryServiceImpl.java
create mode 100644 apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/discovery/ServiceNameDisCoveryServiceImpl.java
create mode 100644 apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/register/ApplicationRegisterServiceImpl.java
rename apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/{grpcserver => segment}/TraceSegmentServiceImpl.java (95%)
diff --git a/apm-collector/apm-collector-client/client-h2/pom.xml b/apm-collector/apm-collector-client/client-h2/pom.xml
new file mode 100644
index 0000000000..bf8b6d0cc3
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-h2/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ apm-collector-client
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ client-h2
+ jar
+
+
+
+ com.h2database
+ h2
+ 1.4.196
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-client/client-h2/src/main/java/org/skywalking/apm/collector/client/h2/H2Client.java b/apm-collector/apm-collector-client/client-h2/src/main/java/org/skywalking/apm/collector/client/h2/H2Client.java
new file mode 100644
index 0000000000..c4855190ac
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-h2/src/main/java/org/skywalking/apm/collector/client/h2/H2Client.java
@@ -0,0 +1,38 @@
+package org.skywalking.apm.collector.client.h2;
+
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.client.ClientException;
+
+/**
+ * @author pengys5
+ */
+public class H2Client implements Client {
+
+ @Override public void initialize() throws ClientException {
+
+ }
+
+ @Override public void insert(String path) throws ClientException {
+
+ }
+
+ @Override public void update() {
+
+ }
+
+ @Override public String select(String path) throws ClientException {
+ return null;
+ }
+
+ @Override public void delete() {
+
+ }
+
+ @Override public boolean exist(String path) throws ClientException {
+ return false;
+ }
+
+ @Override public void listen(String path) throws ClientException {
+
+ }
+}
diff --git a/apm-collector/apm-collector-client/client-redis/pom.xml b/apm-collector/apm-collector-client/client-redis/pom.xml
new file mode 100644
index 0000000000..d16292efea
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-redis/pom.xml
@@ -0,0 +1,14 @@
+
+
+
+ apm-collector-client
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ client-redis
+ jar
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-client/client-redis/src/main/java/org/skywalking/apm/collector/client/redis/RedisClient.java b/apm-collector/apm-collector-client/client-redis/src/main/java/org/skywalking/apm/collector/client/redis/RedisClient.java
new file mode 100644
index 0000000000..539d10fcac
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-redis/src/main/java/org/skywalking/apm/collector/client/redis/RedisClient.java
@@ -0,0 +1,38 @@
+package org.skywalking.apm.collector.client.redis;
+
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.client.ClientException;
+
+/**
+ * @author pengys5
+ */
+public class RedisClient implements Client {
+
+ @Override public void initialize() throws ClientException {
+
+ }
+
+ @Override public void insert(String path) throws ClientException {
+
+ }
+
+ @Override public void update() {
+
+ }
+
+ @Override public String select(String path) throws ClientException {
+ return null;
+ }
+
+ @Override public void delete() {
+
+ }
+
+ @Override public boolean exist(String path) throws ClientException {
+ return false;
+ }
+
+ @Override public void listen(String path) throws ClientException {
+
+ }
+}
diff --git a/apm-collector/apm-collector-client/client-zookeeper/pom.xml b/apm-collector/apm-collector-client/client-zookeeper/pom.xml
new file mode 100644
index 0000000000..50a4f61f1d
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-zookeeper/pom.xml
@@ -0,0 +1,36 @@
+
+
+
+ apm-collector-client
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ client-zookeeper
+ jar
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.4.10
+
+
+ slf4j-api
+ org.slf4j
+
+
+ log4j
+ log4j
+
+
+ slf4j-log4j12
+ org.slf4j
+
+
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClient.java b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClient.java
new file mode 100644
index 0000000000..52798b2671
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClient.java
@@ -0,0 +1,78 @@
+package org.skywalking.apm.collector.client.zookeeper;
+
+import java.io.IOException;
+import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.ZooDefs;
+import org.apache.zookeeper.ZooKeeper;
+import org.apache.zookeeper.data.Stat;
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.util.ObjectUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author pengys5
+ */
+public class ZookeeperClient implements Client {
+
+ private final Logger logger = LoggerFactory.getLogger(ZookeeperClient.class);
+
+ private ZooKeeper zk;
+
+ @Override public void initialize() throws ZookeeperClientException {
+ try {
+ zk = new ZooKeeper(ZookeeperConfig.hostPort, ZookeeperConfig.sessionTimeout, new ZookeeperDataListener(this));
+ } catch (IOException e) {
+ throw new ZookeeperClientException(e.getMessage(), e);
+ }
+ }
+
+ @Override public void insert(String path) throws ZookeeperClientException {
+ logger.info("add the zookeeper path \"{}\"", path);
+ try {
+ zk.create(path, null, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
+ } catch (KeeperException | InterruptedException e) {
+ throw new ZookeeperClientException(e.getMessage(), e);
+ }
+ }
+
+ @Override public void update() {
+
+ }
+
+ @Override public String select(String path) throws ZookeeperClientException {
+ logger.info("get the zookeeper data from path \"{}\"", path);
+ try {
+ return zk.getData(path, false, null).toString();
+ } catch (KeeperException | InterruptedException e) {
+ throw new ZookeeperClientException(e.getMessage(), e);
+ }
+ }
+
+ @Override public void delete() {
+
+ }
+
+ @Override public boolean exist(String path) throws ZookeeperClientException {
+ logger.info("assess the zookeeper path \"{}\" exist", path);
+ try {
+ Stat stat = zk.exists(path, false);
+ if (ObjectUtils.isEmpty(stat)) {
+ return false;
+ } else {
+ return true;
+ }
+ } catch (KeeperException | InterruptedException e) {
+ throw new ZookeeperClientException(e.getMessage(), e);
+ }
+ }
+
+ @Override public void listen(String path) throws ZookeeperClientException {
+ try {
+ zk.exists(path, true);
+ } catch (KeeperException | InterruptedException e) {
+ throw new ZookeeperClientException(e.getMessage(), e);
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClientException.java b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClientException.java
new file mode 100644
index 0000000000..d6772e66a9
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperClientException.java
@@ -0,0 +1,16 @@
+package org.skywalking.apm.collector.client.zookeeper;
+
+import org.skywalking.apm.collector.core.client.ClientException;
+
+/**
+ * @author pengys5
+ */
+public class ZookeeperClientException extends ClientException {
+ public ZookeeperClientException(String message) {
+ super(message);
+ }
+
+ public ZookeeperClientException(String message, Throwable cause) {
+ super(message, cause);
+ }
+}
diff --git a/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperConfig.java b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperConfig.java
new file mode 100644
index 0000000000..11b27d0325
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperConfig.java
@@ -0,0 +1,9 @@
+package org.skywalking.apm.collector.client.zookeeper;
+
+/**
+ * @author pengys5
+ */
+public class ZookeeperConfig {
+ public static String hostPort;
+ public static int sessionTimeout;
+}
diff --git a/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperDataListener.java b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperDataListener.java
new file mode 100644
index 0000000000..4b5e8f5dca
--- /dev/null
+++ b/apm-collector/apm-collector-client/client-zookeeper/src/main/java/org/skywalking/apm/collector/client/zookeeper/ZookeeperDataListener.java
@@ -0,0 +1,59 @@
+package org.skywalking.apm.collector.client.zookeeper;
+
+import java.util.LinkedList;
+import java.util.List;
+import org.apache.zookeeper.WatchedEvent;
+import org.apache.zookeeper.Watcher;
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.client.ClientException;
+import org.skywalking.apm.collector.core.client.DataListener;
+import org.skywalking.apm.collector.core.cluster.ClusterDataInitializer;
+import org.skywalking.apm.collector.core.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author pengys5
+ */
+public class ZookeeperDataListener implements DataListener, Watcher {
+
+ private final Logger logger = LoggerFactory.getLogger(ZookeeperDataListener.class);
+
+ private Client client;
+
+ public ZookeeperDataListener(Client client) {
+ this.client = client;
+ }
+
+ @Override public void process(WatchedEvent event) {
+ logger.debug("path {}", event.getPath());
+ if (StringUtils.isEmpty(event.getPath())) {
+ return;
+ }
+
+ try {
+ String data = client.select(event.getPath());
+ logger.debug("data {}", data);
+ } catch (ClientException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+
+ @Override public void listen() throws ClientException {
+ for (String itemKey : items()) {
+ String[] catalogs = itemKey.split("\\.");
+ StringBuilder pathBuilder = new StringBuilder();
+ for (String catalog : catalogs) {
+ pathBuilder.append("/").append(catalog);
+ }
+ client.listen(pathBuilder.toString());
+ }
+ }
+
+ @Override public List items() {
+ List items = new LinkedList<>();
+ items.add(ClusterDataInitializer.FOR_AGENT_CATALOG);
+ items.add(ClusterDataInitializer.FOR_UI_CATALOG);
+ return items;
+ }
+}
diff --git a/apm-collector/apm-collector-client/pom.xml b/apm-collector/apm-collector-client/pom.xml
new file mode 100644
index 0000000000..7942957cfc
--- /dev/null
+++ b/apm-collector/apm-collector-client/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+ apm-collector
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ apm-collector-client
+ pom
+
+ client-zookeeper
+ client-redis
+ client-h2
+
+
+
+
+ org.skywalking
+ apm-collector-core
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-commons/pom.xml b/apm-collector/apm-collector-cluster-new/cluster-redis/pom.xml
similarity index 78%
rename from apm-collector/apm-collector-commons/pom.xml
rename to apm-collector/apm-collector-cluster-new/cluster-redis/pom.xml
index a6cc374cc3..0759fcf058 100644
--- a/apm-collector/apm-collector-commons/pom.xml
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/pom.xml
@@ -3,20 +3,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- apm-collector
+ apm-collector-cluster-new
org.skywalking
3.2-2017
4.0.0
- apm-collector-commons
+ cluster-redis
jar
org.skywalking
- apm-collector-cluster
+ client-redis
${project.version}
-
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisConfigParser.java b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisConfigParser.java
new file mode 100644
index 0000000000..4009ed918a
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisConfigParser.java
@@ -0,0 +1,15 @@
+package org.skywalking.apm.collector.cluster.redis;
+
+import java.util.Map;
+import org.skywalking.apm.collector.core.config.ConfigParseException;
+import org.skywalking.apm.collector.core.module.ModuleConfigParser;
+
+/**
+ * @author pengys5
+ */
+public class ClusterRedisConfigParser implements ModuleConfigParser {
+
+ @Override public void parse(Map config) throws ConfigParseException {
+
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisDataInitializer.java b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisDataInitializer.java
new file mode 100644
index 0000000000..55e1280d32
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisDataInitializer.java
@@ -0,0 +1,18 @@
+package org.skywalking.apm.collector.cluster.redis;
+
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.client.ClientException;
+import org.skywalking.apm.collector.core.cluster.ClusterDataInitializer;
+
+/**
+ * @author pengys5
+ */
+public class ClusterRedisDataInitializer extends ClusterDataInitializer {
+ @Override public void addItem(Client client, String itemKey) throws ClientException {
+
+ }
+
+ @Override public boolean existItem(Client client, String itemKey) throws ClientException {
+ return false;
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
new file mode 100644
index 0000000000..4947649a10
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleDefine.java
@@ -0,0 +1,43 @@
+package org.skywalking.apm.collector.cluster.redis;
+
+import org.skywalking.apm.collector.client.redis.RedisClient;
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
+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;
+ }
+
+ @Override public String name() {
+ return "redis";
+ }
+
+ @Override public boolean defaultModule() {
+ return false;
+ }
+
+ @Override protected ModuleConfigParser configParser() {
+ return new ClusterRedisConfigParser();
+ }
+
+ @Override protected Client client() {
+ return new RedisClient();
+ }
+
+ @Override protected DataInitializer dataInitializer() {
+ return new ClusterRedisDataInitializer();
+ }
+
+ @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ return new ClusterRedisModuleRegistrationWriter();
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleRegistrationWriter.java b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleRegistrationWriter.java
new file mode 100644
index 0000000000..bae3b505b0
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/java/org/skywalking/apm/collector/cluster/redis/ClusterRedisModuleRegistrationWriter.java
@@ -0,0 +1,13 @@
+package org.skywalking.apm.collector.cluster.redis;
+
+import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
+
+/**
+ * @author pengys5
+ */
+public class ClusterRedisModuleRegistrationWriter implements ClusterModuleRegistrationWriter {
+
+ @Override public void write(String key, String value) {
+
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/resources/META-INF/defines/module.define
new file mode 100644
index 0000000000..108425a44d
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-redis/src/main/resources/META-INF/defines/module.define
@@ -0,0 +1 @@
+org.skywalking.apm.collector.cluster.redis.ClusterRedisModuleDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/pom.xml b/apm-collector/apm-collector-cluster-new/cluster-standalone/pom.xml
new file mode 100644
index 0000000000..f7e08fdee9
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ apm-collector-cluster-new
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ cluster-standalone
+ jar
+
+
+
+ org.skywalking
+ client-h2
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneConfigParser.java b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneConfigParser.java
new file mode 100644
index 0000000000..d12844f29f
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneConfigParser.java
@@ -0,0 +1,14 @@
+package org.skywalking.apm.collector.cluster.standalone;
+
+import java.util.Map;
+import org.skywalking.apm.collector.core.config.ConfigParseException;
+import org.skywalking.apm.collector.core.module.ModuleConfigParser;
+
+/**
+ * @author pengys5
+ */
+public class ClusterStandaloneConfigParser implements ModuleConfigParser {
+ @Override public void parse(Map config) throws ConfigParseException {
+
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneDataInitializer.java b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneDataInitializer.java
new file mode 100644
index 0000000000..85f8bb21d7
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneDataInitializer.java
@@ -0,0 +1,19 @@
+package org.skywalking.apm.collector.cluster.standalone;
+
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.client.ClientException;
+import org.skywalking.apm.collector.core.cluster.ClusterDataInitializer;
+
+/**
+ * @author pengys5
+ */
+public class ClusterStandaloneDataInitializer extends ClusterDataInitializer {
+
+ @Override public void addItem(Client client, String itemKey) throws ClientException {
+
+ }
+
+ @Override public boolean existItem(Client client, String itemKey) throws ClientException {
+ return false;
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
new file mode 100644
index 0000000000..cfcb129f4a
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleDefine.java
@@ -0,0 +1,43 @@
+package org.skywalking.apm.collector.cluster.standalone;
+
+import org.skywalking.apm.collector.client.h2.H2Client;
+import org.skywalking.apm.collector.core.client.Client;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleDefine;
+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;
+ }
+
+ @Override public String name() {
+ return "standalone";
+ }
+
+ @Override public boolean defaultModule() {
+ return true;
+ }
+
+ @Override protected ModuleConfigParser configParser() {
+ return new ClusterStandaloneConfigParser();
+ }
+
+ @Override protected Client client() {
+ return new H2Client();
+ }
+
+ @Override protected DataInitializer dataInitializer() {
+ return new ClusterStandaloneDataInitializer();
+ }
+
+ @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ return new ClusterStandaloneModuleRegistrationWriter();
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleRegistrationWriter.java b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleRegistrationWriter.java
new file mode 100644
index 0000000000..4e535ddb53
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterStandaloneModuleRegistrationWriter.java
@@ -0,0 +1,13 @@
+package org.skywalking.apm.collector.cluster.standalone;
+
+import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
+
+/**
+ * @author pengys5
+ */
+public class ClusterStandaloneModuleRegistrationWriter implements ClusterModuleRegistrationWriter {
+
+ @Override public void write(String key, String value) {
+
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/resources/META-INF/defines/module.define
new file mode 100644
index 0000000000..6cf83ed9b5
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-standalone/src/main/resources/META-INF/defines/module.define
@@ -0,0 +1 @@
+org.skywalking.apm.collector.cluster.standalone.ClusterStandaloneModuleDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/pom.xml b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/pom.xml
new file mode 100644
index 0000000000..342d5ccf30
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ apm-collector-cluster-new
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ cluster-zookeeper
+ jar
+
+
+
+ org.skywalking
+ client-zookeeper
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKConfigParser.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKConfigParser.java
new file mode 100644
index 0000000000..dfbf1c63f1
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKConfigParser.java
@@ -0,0 +1,29 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import java.util.Map;
+import org.skywalking.apm.collector.client.zookeeper.ZookeeperConfig;
+import org.skywalking.apm.collector.core.config.ConfigParseException;
+import org.skywalking.apm.collector.core.module.ModuleConfigParser;
+import org.skywalking.apm.collector.core.util.StringUtils;
+
+/**
+ * @author pengys5
+ */
+public class ClusterZKConfigParser implements ModuleConfigParser {
+
+ private final String HOST_PORT = "hostPort";
+ private final String SESSION_TIMEOUT = "sessionTimeout";
+
+ @Override public void parse(Map config) throws ConfigParseException {
+ if (StringUtils.isEmpty(config.get(HOST_PORT))) {
+ throw new ConfigParseException("");
+ }
+ ZookeeperConfig.hostPort = (String)config.get(HOST_PORT);
+
+ if (StringUtils.isEmpty(config.get(SESSION_TIMEOUT))) {
+ ZookeeperConfig.sessionTimeout = 1000;
+ } else {
+ ZookeeperConfig.sessionTimeout = (Integer)config.get(SESSION_TIMEOUT);
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataInitializer.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataInitializer.java
new file mode 100644
index 0000000000..4860c5c032
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKDataInitializer.java
@@ -0,0 +1,37 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author pengys5
+ */
+public class ClusterZKDataInitializer extends ClusterDataInitializer {
+
+ private final Logger logger = LoggerFactory.getLogger(ClusterZKDataInitializer.class);
+
+ @Override public void addItem(Client client, String itemKey) throws ClientException {
+ logger.info("add the zookeeper item key \"{}\" exist", itemKey);
+ String[] catalogs = itemKey.split("\\.");
+ StringBuilder pathBuilder = new StringBuilder();
+ for (String catalog : catalogs) {
+ pathBuilder.append("/").append(catalog);
+ if (!client.exist(pathBuilder.toString())) {
+ client.insert(pathBuilder.toString());
+ }
+ }
+ }
+
+ @Override public boolean existItem(Client client, String itemKey) throws ClientException {
+ logger.info("assess the zookeeper item key \"{}\" exist", itemKey);
+ String[] catalogs = itemKey.split("\\.");
+ StringBuilder pathBuilder = new StringBuilder();
+ for (String catalog : catalogs) {
+ pathBuilder.append("/").append(catalog);
+ }
+ return client.exist(pathBuilder.toString());
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
new file mode 100644
index 0000000000..0485bb10f0
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefine.java
@@ -0,0 +1,43 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import org.skywalking.apm.collector.client.zookeeper.ZookeeperClient;
+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.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 public ModuleGroup group() {
+ return ModuleGroup.Cluster;
+ }
+
+ @Override public String name() {
+ return "zookeeper";
+ }
+
+ @Override public boolean defaultModule() {
+ return false;
+ }
+
+ @Override public ModuleConfigParser configParser() {
+ return new ClusterZKConfigParser();
+ }
+
+ @Override public Client client() {
+ return new ZookeeperClient();
+ }
+
+ @Override public ClusterDataInitializer dataInitializer() {
+ return new ClusterZKDataInitializer();
+ }
+
+ @Override protected ClusterModuleRegistrationWriter registrationWriter() {
+ return new ClusterZKModuleRegistrationWriter();
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationReader.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationReader.java
new file mode 100644
index 0000000000..44dec48611
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationReader.java
@@ -0,0 +1,13 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import java.util.List;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationReader;
+
+/**
+ * @author pengys5
+ */
+public class ClusterZKModuleRegistrationReader implements ClusterModuleRegistrationReader {
+ @Override public List read(String key) {
+ return null;
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationWriter.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationWriter.java
new file mode 100644
index 0000000000..8ca0b0cb85
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleRegistrationWriter.java
@@ -0,0 +1,13 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import org.skywalking.apm.collector.core.cluster.ClusterModuleRegistrationWriter;
+
+/**
+ * @author pengys5
+ */
+public class ClusterZKModuleRegistrationWriter implements ClusterModuleRegistrationWriter {
+
+ @Override public void write(String key, String value) {
+
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/resources/META-INF/defines/module.define b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/resources/META-INF/defines/module.define
new file mode 100644
index 0000000000..54bd972ef5
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/main/resources/META-INF/defines/module.define
@@ -0,0 +1 @@
+org.skywalking.apm.collector.cluster.zookeeper.ClusterZKModuleDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefineTestCase.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefineTestCase.java
new file mode 100644
index 0000000000..4e7d92da11
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ClusterZKModuleDefineTestCase.java
@@ -0,0 +1,32 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import java.io.FileNotFoundException;
+import java.util.Map;
+import org.junit.Before;
+import org.junit.Test;
+import org.skywalking.apm.collector.client.zookeeper.ZookeeperConfig;
+import org.skywalking.apm.collector.core.cluster.ClusterModuleException;
+import org.yaml.snakeyaml.Yaml;
+
+/**
+ * @author pengys5
+ */
+public class ClusterZKModuleDefineTestCase {
+
+ private Map config;
+
+ @Before
+ public void before() throws FileNotFoundException {
+ Yaml yaml = new Yaml();
+ config = (Map)yaml.load("hostPort: localhost:2181" + System.lineSeparator() + "sessionTimeout: 2000");
+ }
+
+ @Test
+ public void testInitialize() throws ClusterModuleException {
+ ClusterZKModuleDefine define = new ClusterZKModuleDefine();
+ define.initialize(config);
+
+ System.out.println(ZookeeperConfig.hostPort);
+ System.out.println(ZookeeperConfig.sessionTimeout);
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ZookeeperTestCase.java b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ZookeeperTestCase.java
new file mode 100644
index 0000000000..dc5fb00e5b
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/java/org/skywalking/apm/collector/cluster/zookeeper/ZookeeperTestCase.java
@@ -0,0 +1,55 @@
+package org.skywalking.apm.collector.cluster.zookeeper;
+
+import java.io.IOException;
+import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.WatchedEvent;
+import org.apache.zookeeper.Watcher;
+import org.apache.zookeeper.ZooDefs;
+import org.apache.zookeeper.ZooKeeper;
+import org.junit.Test;
+
+/**
+ * @author pengys5
+ */
+public class ZookeeperTestCase {
+
+ @Test
+ public void test() throws IOException, KeeperException, InterruptedException {
+ String hostPort = "localhost:2181";
+ String znode = "/collector/module";
+ String filename = "";
+ String exec[] = new String[5 - 3];
+// new ZookeeperExecutor(hostPort, znode, filename, exec).run();
+
+ ZooKeeper zk = new ZooKeeper(hostPort, 1000, new Watcher() {
+ @Override public void process(WatchedEvent event) {
+ String path = event.getPath();
+ System.out.println("已经触发了" + event.getType() + "事件!");
+ System.out.println("path: " + path);
+ }
+ });
+
+ zk.create("/testRootPath", "testRootData".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
+ CreateMode.PERSISTENT);
+// 创建一个子目录节点
+ zk.create("/testRootPath/testChildPathOne", "testChildDataOne".getBytes(),
+ ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
+ System.out.println(new String(zk.getData("/testRootPath",false,null)));
+ // 取出子目录节点列表
+ System.out.println(zk.getChildren("/testRootPath",true));
+ // 修改子目录节点数据
+ zk.setData("/testRootPath/testChildPathOne","modifyChildDataOne".getBytes(),-1);
+ System.out.println("目录节点状态:["+zk.exists("/testRootPath",true)+"]");
+ // 创建另外一个子目录节点
+ zk.create("/testRootPath/testChildPathTwo", "testChildDataTwo".getBytes(),
+ ZooDefs.Ids.OPEN_ACL_UNSAFE,CreateMode.PERSISTENT);
+// System.out.println(new String(zk.getData("/testRootPath/testChildPathTwo",true,null)));
+ // 删除子目录节点
+ zk.delete("/testRootPath/testChildPathTwo",-1);
+ zk.delete("/testRootPath/testChildPathOne",-1);
+ // 删除父目录节点
+ zk.delete("/testRootPath",-1);
+ zk.close();
+ }
+}
diff --git a/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/resources/application.yml b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/resources/application.yml
new file mode 100644
index 0000000000..5608ba0c6d
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/cluster-zookeeper/src/test/resources/application.yml
@@ -0,0 +1,3 @@
+ hostPort: localhost-zk
+ sessionTimeout: 2000
+
diff --git a/apm-collector/apm-collector-cluster-new/pom.xml b/apm-collector/apm-collector-cluster-new/pom.xml
new file mode 100644
index 0000000000..e08b3e70c5
--- /dev/null
+++ b/apm-collector/apm-collector-cluster-new/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+ apm-collector
+ org.skywalking
+ 3.2-2017
+
+ 4.0.0
+
+ apm-collector-cluster-new
+ pom
+
+ cluster-zookeeper
+ cluster-redis
+ cluster-standalone
+
+
+
+
+ org.skywalking
+ apm-collector-core
+ ${project.version}
+
+
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/config/SeedNodesFormatter.java b/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/config/SeedNodesFormatter.java
deleted file mode 100644
index 93b27edeb9..0000000000
--- a/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/config/SeedNodesFormatter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.skywalking.apm.collector.commons.config;
-
-/**
- * @author pengys5
- */
-public enum SeedNodesFormatter {
- INSTANCE;
-
- public String formatter(String seedNodes) {
- return null;
- }
-}
diff --git a/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/role/TraceSegmentReceiverRole.java b/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/role/TraceSegmentReceiverRole.java
deleted file mode 100644
index a21b71cde5..0000000000
--- a/apm-collector/apm-collector-commons/src/main/java/org/skywalking/apm/collector/commons/role/TraceSegmentReceiverRole.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.skywalking.apm.collector.commons.role;
-
-import org.skywalking.apm.collector.actor.Role;
-import org.skywalking.apm.collector.actor.selector.RollingSelector;
-import org.skywalking.apm.collector.actor.selector.WorkerSelector;
-
-/**
- * @author pengys5
- */
-public enum TraceSegmentReceiverRole implements Role {
- INSTANCE;
-
- @Override
- public String roleName() {
- return "TraceSegmentReceiver";
- }
-
- @Override
- public WorkerSelector workerSelector() {
- return new RollingSelector();
- }
-}
diff --git a/apm-collector/apm-collector-commons/src/main/resources/application.conf b/apm-collector/apm-collector-commons/src/main/resources/application.conf
deleted file mode 100644
index c37784cd82..0000000000
--- a/apm-collector/apm-collector-commons/src/main/resources/application.conf
+++ /dev/null
@@ -1,34 +0,0 @@
-akka {
- actor {
- provider = "akka.cluster.ClusterActorRefProvider"
-
- serializers {
- java = "akka.serialization.JavaSerializer"
- proto = "akka.remote.serialization.ProtobufSerializer"
-// TraceSegment = "org.skywalking.apm.collector.worker.TraceSegmentSerializer"
-// json = "org.skywalking.apm.collector.commons.serializer.JsonSerializer"
- }
-
- serialization-bindings {
- "java.lang.String" = java
- "com.google.protobuf.Message" = proto
-// "TraceSegment" = TraceSegment
-// "com.google.gson.JsonObject" = json
- }
-
- warn-about-java-serializer-usage = on
- }
-
- remote {
- log-remote-lifecycle-events = off
-
- netty.tcp {
- }
- }
-
- cluster {
- auto-down-unreachable-after = off
- metrics.enabled = off
- roles = ["WorkersListener"]
- }
-}
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
new file mode 100644
index 0000000000..0aa78b4f38
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleContext.java
@@ -0,0 +1,16 @@
+package org.skywalking.apm.collector.core.cluster;
+
+/**
+ * @author pengys5
+ */
+public class ClusterModuleContext {
+ private ClusterModuleRegistrationWriter writer;
+
+ public ClusterModuleRegistrationWriter getWriter() {
+ return writer;
+ }
+
+ public void setWriter(ClusterModuleRegistrationWriter writer) {
+ this.writer = writer;
+ }
+}
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 2ac18f2f29..f09dff349d 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
@@ -5,6 +5,7 @@ import org.skywalking.apm.collector.core.client.Client;
import org.skywalking.apm.collector.core.client.ClientException;
import org.skywalking.apm.collector.core.config.ConfigParseException;
import org.skywalking.apm.collector.core.module.ModuleDefine;
+import org.skywalking.apm.collector.core.module.ModuleRegistration;
import org.skywalking.apm.collector.core.server.Server;
/**
@@ -26,4 +27,10 @@ public abstract class ClusterModuleDefine extends ModuleDefine {
@Override public final Server server() {
throw new UnsupportedOperationException("");
}
+
+ @Override protected final ModuleRegistration registration() {
+ throw new UnsupportedOperationException("Cluster module do not need module registration.");
+ }
+
+ protected abstract ClusterModuleRegistrationWriter registrationWriter();
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Discovery.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDiscovery.java
similarity index 71%
rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Discovery.java
rename to apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDiscovery.java
index 0957d51254..bddfaf2216 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Discovery.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDiscovery.java
@@ -3,7 +3,7 @@ package org.skywalking.apm.collector.core.cluster;
/**
* @author pengys5
*/
-public interface Discovery {
+public interface ClusterModuleDiscovery {
void discover();
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java
new file mode 100644
index 0000000000..fd56eed9ea
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleInstaller.java
@@ -0,0 +1,38 @@
+package org.skywalking.apm.collector.core.cluster;
+
+import java.util.Iterator;
+import java.util.Map;
+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 ClusterModuleInstaller implements ModuleInstaller {
+
+ private final Logger logger = LoggerFactory.getLogger(ClusterModuleInstaller.class);
+
+ @Override public void install(Map moduleConfig,
+ Map moduleDefineMap) throws DefineException {
+ logger.info("beginning cluster module install");
+ if (CollectionUtils.isEmpty(moduleConfig)) {
+ logger.info("could not configure cluster module, use the default");
+ Iterator> moduleDefineEntry = moduleDefineMap.entrySet().iterator();
+ while (moduleDefineEntry.hasNext()) {
+ ModuleDefine moduleDefine = moduleDefineEntry.next().getValue();
+ if (moduleDefine.defaultModule()) {
+ logger.info("module {} initialize", moduleDefine.getClass().getName());
+ moduleDefine.initialize(null);
+ }
+ }
+ } else {
+ Map.Entry clusterConfigEntry = moduleConfig.entrySet().iterator().next();
+ ModuleDefine moduleDefine = moduleDefineMap.get(clusterConfigEntry.getKey());
+ moduleDefine.initialize(clusterConfigEntry.getValue());
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationReader.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationReader.java
new file mode 100644
index 0000000000..d9ad04e02a
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationReader.java
@@ -0,0 +1,10 @@
+package org.skywalking.apm.collector.core.cluster;
+
+import java.util.List;
+
+/**
+ * @author pengys5
+ */
+public interface ClusterModuleRegistrationReader {
+ List read(String key);
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationWriter.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationWriter.java
new file mode 100644
index 0000000000..449a904d54
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleRegistrationWriter.java
@@ -0,0 +1,8 @@
+package org.skywalking.apm.collector.core.cluster;
+
+/**
+ * @author pengys5
+ */
+public interface ClusterModuleRegistrationWriter {
+ void write(String key, String value);
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java
deleted file mode 100644
index c37bb83bb2..0000000000
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.skywalking.apm.collector.core.cluster;
-
-/**
- * @author pengys5
- */
-public interface Registration {
-
- void register();
-}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java
index 06e1cff84b..b4fd431cfa 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java
@@ -5,5 +5,5 @@ import org.skywalking.apm.collector.core.framework.Loader;
/**
* @author pengys5
*/
-public interface ConfigLoader extends Loader {
+public interface ConfigLoader extends Loader {
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java
new file mode 100644
index 0000000000..054e812ee4
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/CollectorStarter.java
@@ -0,0 +1,39 @@
+package org.skywalking.apm.collector.core.framework;
+
+import java.util.Map;
+import org.skywalking.apm.collector.core.config.ConfigException;
+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.ModuleInstallerAdapter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * @author pengys5
+ */
+public class CollectorStarter implements Starter {
+
+ private final Logger logger = LoggerFactory.getLogger(CollectorStarter.class);
+
+ @Override public void start() throws ConfigException, DefineException {
+ ModuleConfigLoader configLoader = new ModuleConfigLoader();
+ Map configuration = configLoader.load();
+
+ ModuleDefineLoader defineLoader = new ModuleDefineLoader();
+ Map> moduleDefineMap = defineLoader.load();
+
+ ModuleInstallerAdapter moduleInstallerAdapter = new ModuleInstallerAdapter(ModuleGroup.Cluster);
+ moduleInstallerAdapter.install(configuration.get(ModuleGroup.Cluster.name().toLowerCase()), moduleDefineMap.get(ModuleGroup.Cluster.name().toLowerCase()));
+
+ 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()));
+ }
+ }
+ }
+}
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
new file mode 100644
index 0000000000..9f9b7dffc3
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Context.java
@@ -0,0 +1,8 @@
+package org.skywalking.apm.collector.core.framework;
+
+/**
+ * @author pengys5
+ */
+public class Context {
+
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java
index 591a383435..34ec6598d3 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java
@@ -9,7 +9,5 @@ public interface Define {
void initialize(Map config) throws DefineException;
- String getName();
-
- void setName(String name);
+ String name();
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java
index 70957c8a41..10c4be9343 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java
@@ -5,7 +5,6 @@ import org.skywalking.apm.collector.core.config.ConfigException;
/**
* @author pengys5
*/
-public interface Loader {
-
- void load() throws ConfigException;
+public interface Loader {
+ T load() throws ConfigException;
}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java
index 8d7a4f8feb..dbf0a53ed9 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java
@@ -1,8 +1,10 @@
package org.skywalking.apm.collector.core.framework;
+import org.skywalking.apm.collector.core.CollectorException;
+
/**
* @author pengys5
*/
public interface Starter {
- void start();
+ void start() throws CollectorException;
}
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 f3d882e53b..55c8a0e78f 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
@@ -11,28 +11,16 @@ import org.yaml.snakeyaml.Yaml;
/**
* @author pengys5
*/
-public class ModuleConfigLoader implements ConfigLoader {
+public class ModuleConfigLoader implements ConfigLoader