From 5bd5a69b49120d94d94329a7a3ff7fa1441f4cf7 Mon Sep 17 00:00:00 2001
From: pengys5 <8082209@qq.com>
Date: Tue, 25 Jul 2017 10:39:58 +0800
Subject: [PATCH] Dao loader and client inject
---
.../apm-collector-agentregister/pom.xml | 5 ++
.../application/ApplicationEsDAO.java | 15 +++++
.../application/ApplicationH2DAO.java | 15 +++++
.../application/ApplicationIDGetOrCreate.java | 13 +++++
.../application/IApplicationDAO.java | 8 +++
.../ApplicationRegisterServiceHandler.java | 15 +++++
.../handler/TraceSegmentServiceHandler.java | 10 ++++
.../ApplicationRegisterDataDefine.java | 38 ++++++++++++
.../ApplicationRegisterRemoteWorker.java | 58 +++++++++++++++++++
.../ApplicationRegisterSerialWorker.java | 58 +++++++++++++++++++
.../application/ApplicationRegisterTable.java | 10 ++++
.../worker/segment/SegmentParse.java | 8 +++
.../src/main/proto/ApplicationRegister.proto | 8 +++
.../resources/META-INF/defines/data.define | 3 +-
.../local_async_worker_provider.define | 4 +-
.../defines/remote_worker_provider.define | 1 +
.../apm/collector/core/framework/Loader.java | 4 +-
.../core/module/ModuleConfigLoader.java | 5 +-
.../module/ModuleConfigLoaderException.java | 16 -----
.../core/module/ModuleDefineException.java | 16 +++++
.../core/module/ModuleDefineLoader.java | 4 +-
.../core/module/ModuleGroupDefineLoader.java | 4 +-
.../core/storage/StorageDefineLoader.java | 4 +-
.../core/storage/StorageInstaller.java | 4 +-
.../config/ModuleConfigLoaderTestCase.java | 5 +-
.../storage/StorageModuleDefine.java | 3 +
.../apm/collector/storage/dao/DAO.java | 18 ++++++
.../StorageElasticSearchModuleDefine.java | 12 ++++
.../storage/elasticsearch/dao/EsDAO.java | 10 ++++
.../elasticsearch/dao/EsDAODefineLoader.java | 30 ++++++++++
.../dao/EsDAODefinitionFile.java | 13 +++++
.../storage/h2/StorageH2ModuleDefine.java | 12 ++++
.../apm/collector/storage/h2/dao/H2DAO.java | 10 ++++
.../storage/h2/dao/H2DAODefineLoader.java | 30 ++++++++++
.../storage/h2/dao/H2DAODefinitionFile.java | 13 +++++
.../stream/StreamModuleInstaller.java | 13 ++---
.../LocalAsyncWorkerProviderDefineLoader.java | 4 +-
.../RemoteWorkerProviderDefineLoader.java | 4 +-
.../worker/impl/data/AttributeType.java | 2 +-
.../worker/impl/data/DataDefineLoader.java | 4 +-
.../worker/selector/ForeverFirstSelector.java | 14 +++++
41 files changed, 473 insertions(+), 50 deletions(-)
create mode 100644 apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationEsDAO.java
create mode 100644 apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationH2DAO.java
create mode 100644 apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationIDGetOrCreate.java
create mode 100644 apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/IApplicationDAO.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterDataDefine.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterRemoteWorker.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterTable.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/SegmentParse.java
create mode 100644 apm-collector/apm-collector-agentstream/src/main/proto/ApplicationRegister.proto
delete mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoaderException.java
create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefineException.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/dao/DAO.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/dao/EsDAO.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/dao/EsDAODefineLoader.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/elasticsearch/dao/EsDAODefinitionFile.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/dao/H2DAO.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/dao/H2DAODefineLoader.java
create mode 100644 apm-collector/apm-collector-storage/src/main/java/org/skywalking/apm/collector/storage/h2/dao/H2DAODefinitionFile.java
create mode 100644 apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/selector/ForeverFirstSelector.java
diff --git a/apm-collector/apm-collector-agentregister/pom.xml b/apm-collector/apm-collector-agentregister/pom.xml
index e704f264e4..258ffa456e 100644
--- a/apm-collector/apm-collector-agentregister/pom.xml
+++ b/apm-collector/apm-collector-agentregister/pom.xml
@@ -28,5 +28,10 @@
apm-network
${project.version}
+
+ org.skywalking
+ apm-collector-agentstream
+ ${project.version}
+
\ No newline at end of file
diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationEsDAO.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationEsDAO.java
new file mode 100644
index 0000000000..893c1f22af
--- /dev/null
+++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationEsDAO.java
@@ -0,0 +1,15 @@
+package org.skywalking.apm.collector.agentregister.application;
+
+import org.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
+import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationEsDAO extends EsDAO implements IApplicationDAO {
+
+ @Override public int getApplicationId(String applicationCode) {
+ ElasticSearchClient client = getClient();
+ return 0;
+ }
+}
diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationH2DAO.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationH2DAO.java
new file mode 100644
index 0000000000..15faea45bb
--- /dev/null
+++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationH2DAO.java
@@ -0,0 +1,15 @@
+package org.skywalking.apm.collector.agentregister.application;
+
+import org.skywalking.apm.collector.client.h2.H2Client;
+import org.skywalking.apm.collector.storage.h2.dao.H2DAO;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationH2DAO extends H2DAO implements IApplicationDAO {
+
+ @Override public int getApplicationId(String applicationCode) {
+ H2Client client = getClient();
+ return 0;
+ }
+}
diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationIDGetOrCreate.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationIDGetOrCreate.java
new file mode 100644
index 0000000000..777cc72c8b
--- /dev/null
+++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/ApplicationIDGetOrCreate.java
@@ -0,0 +1,13 @@
+package org.skywalking.apm.collector.agentregister.application;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationIDGetOrCreate {
+
+ private IApplicationDAO applicationDAO;
+
+ public int getOrCreate(String applicationCode) {
+ return 0;
+ }
+}
diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/IApplicationDAO.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/IApplicationDAO.java
new file mode 100644
index 0000000000..38b78ab5ea
--- /dev/null
+++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/application/IApplicationDAO.java
@@ -0,0 +1,8 @@
+package org.skywalking.apm.collector.agentregister.application;
+
+/**
+ * @author pengys5
+ */
+public interface IApplicationDAO {
+ int getApplicationId(String applicationCode);
+}
diff --git a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/handler/ApplicationRegisterServiceHandler.java b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/handler/ApplicationRegisterServiceHandler.java
index 705c2b74e3..76878fae76 100644
--- a/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/handler/ApplicationRegisterServiceHandler.java
+++ b/apm-collector/apm-collector-agentregister/src/main/java/org/skywalking/apm/collector/agentregister/grpc/handler/ApplicationRegisterServiceHandler.java
@@ -1,16 +1,31 @@
package org.skywalking.apm.collector.agentregister.grpc.handler;
+import com.google.protobuf.ProtocolStringList;
import io.grpc.stub.StreamObserver;
+import org.skywalking.apm.collector.agentregister.application.ApplicationIDGetOrCreate;
import org.skywalking.apm.collector.server.grpc.GRPCHandler;
import org.skywalking.apm.network.proto.Application;
import org.skywalking.apm.network.proto.ApplicationMapping;
import org.skywalking.apm.network.proto.ApplicationRegisterServiceGrpc;
+import org.skywalking.apm.network.proto.KeyWithIntegerValue;
/**
* @author pengys5
*/
public class ApplicationRegisterServiceHandler extends ApplicationRegisterServiceGrpc.ApplicationRegisterServiceImplBase implements GRPCHandler {
+
+ private ApplicationIDGetOrCreate applicationIDGetOrCreate = new ApplicationIDGetOrCreate();
+
@Override public void register(Application request, StreamObserver responseObserver) {
+ ProtocolStringList applicationCodes = request.getApplicationCodeList();
+ for (int i = 0; i < applicationCodes.size(); i++) {
+ String applicationCode = applicationCodes.get(i);
+ int applicationId = applicationIDGetOrCreate.getOrCreate(applicationCode);
+ KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(applicationCode).setValue(applicationId).build();
+ ApplicationMapping mapping = ApplicationMapping.newBuilder().setApplication(i, value).build();
+ responseObserver.onNext(mapping);
+ }
+ responseObserver.onCompleted();
}
}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/TraceSegmentServiceHandler.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/TraceSegmentServiceHandler.java
index 6cffd57720..d778e921e9 100644
--- a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/TraceSegmentServiceHandler.java
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/grpc/handler/TraceSegmentServiceHandler.java
@@ -1,9 +1,13 @@
package org.skywalking.apm.collector.agentstream.grpc.handler;
+import com.google.protobuf.InvalidProtocolBufferException;
import io.grpc.stub.StreamObserver;
+import java.util.List;
import org.skywalking.apm.collector.server.grpc.GRPCHandler;
import org.skywalking.apm.network.proto.Downstream;
+import org.skywalking.apm.network.proto.TraceSegmentObject;
import org.skywalking.apm.network.proto.TraceSegmentServiceGrpc;
+import org.skywalking.apm.network.proto.UniqueId;
import org.skywalking.apm.network.proto.UpstreamSegment;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -18,6 +22,12 @@ public class TraceSegmentServiceHandler extends TraceSegmentServiceGrpc.TraceSeg
@Override public StreamObserver collect(StreamObserver responseObserver) {
return new StreamObserver() {
@Override public void onNext(UpstreamSegment segment) {
+ try {
+ List traceIds = segment.getGlobalTraceIdsList();
+ TraceSegmentObject segmentObject = TraceSegmentObject.parseFrom(segment.getSegment());
+ } catch (InvalidProtocolBufferException e) {
+ logger.error(e.getMessage(), e);
+ }
}
@Override public void onError(Throwable throwable) {
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterDataDefine.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterDataDefine.java
new file mode 100644
index 0000000000..2106c37aec
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterDataDefine.java
@@ -0,0 +1,38 @@
+package org.skywalking.apm.collector.agentstream.worker.register.application;
+
+import com.google.protobuf.ByteString;
+import com.google.protobuf.InvalidProtocolBufferException;
+import org.skywalking.apm.collector.agentstream.worker.register.application.proto.ApplicationRegisterOuterClass;
+import org.skywalking.apm.collector.stream.worker.impl.data.Attribute;
+import org.skywalking.apm.collector.stream.worker.impl.data.AttributeType;
+import org.skywalking.apm.collector.stream.worker.impl.data.Data;
+import org.skywalking.apm.collector.stream.worker.impl.data.DataDefine;
+import org.skywalking.apm.collector.stream.worker.impl.data.operate.CoverOperation;
+import org.skywalking.apm.collector.stream.worker.impl.data.operate.NonOperation;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationRegisterDataDefine extends DataDefine {
+
+ @Override protected int defineId() {
+ return 101;
+ }
+
+ @Override protected int initialCapacity() {
+ return 3;
+ }
+
+ @Override protected void attributeDefine() {
+ addAttribute(0, new Attribute("id", AttributeType.STRING, new NonOperation()));
+ addAttribute(1, new Attribute(ApplicationRegisterTable.COLUMN_APPLICATION_CODE, AttributeType.STRING, new CoverOperation()));
+ addAttribute(2, new Attribute(ApplicationRegisterTable.COLUMN_APPLICATION_ID, AttributeType.INTEGER, new CoverOperation()));
+ }
+
+ @Override public Data parseFrom(ByteString bytesData) throws InvalidProtocolBufferException {
+ ApplicationRegisterOuterClass.ApplicationRegister applicationRegister = ApplicationRegisterOuterClass.ApplicationRegister.parseFrom(bytesData);
+ Data data = build();
+ data.setDataString(1, applicationRegister.getApplicationCode());
+ return data;
+ }
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterRemoteWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterRemoteWorker.java
new file mode 100644
index 0000000000..d6e2327f50
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterRemoteWorker.java
@@ -0,0 +1,58 @@
+package org.skywalking.apm.collector.agentstream.worker.register.application;
+
+import org.skywalking.apm.collector.agentstream.worker.node.component.NodeComponentAggWorker;
+import org.skywalking.apm.collector.stream.worker.AbstractRemoteWorker;
+import org.skywalking.apm.collector.stream.worker.AbstractRemoteWorkerProvider;
+import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext;
+import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException;
+import org.skywalking.apm.collector.stream.worker.Role;
+import org.skywalking.apm.collector.stream.worker.WorkerException;
+import org.skywalking.apm.collector.stream.worker.selector.ForeverFirstSelector;
+import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationRegisterRemoteWorker extends AbstractRemoteWorker {
+
+ protected ApplicationRegisterRemoteWorker(Role role, ClusterWorkerContext clusterContext) {
+ super(role, clusterContext);
+ }
+
+ @Override public void preStart() throws ProviderNotFoundException {
+ }
+
+ @Override protected void onWork(Object message) throws WorkerException {
+
+ }
+
+ public static class Factory extends AbstractRemoteWorkerProvider {
+ @Override
+ public Role role() {
+ return WorkerRole.INSTANCE;
+ }
+
+ @Override
+ public ApplicationRegisterRemoteWorker workerInstance(ClusterWorkerContext clusterContext) {
+ return new ApplicationRegisterRemoteWorker(role(), clusterContext);
+ }
+
+ @Override public int workerNum() {
+ return 1;
+ }
+ }
+
+ public enum WorkerRole implements Role {
+ INSTANCE;
+
+ @Override
+ public String roleName() {
+ return NodeComponentAggWorker.class.getSimpleName();
+ }
+
+ @Override
+ public WorkerSelector workerSelector() {
+ return new ForeverFirstSelector();
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java
new file mode 100644
index 0000000000..7f14301ea4
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterSerialWorker.java
@@ -0,0 +1,58 @@
+package org.skywalking.apm.collector.agentstream.worker.register.application;
+
+import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorker;
+import org.skywalking.apm.collector.stream.worker.AbstractLocalAsyncWorkerProvider;
+import org.skywalking.apm.collector.stream.worker.ClusterWorkerContext;
+import org.skywalking.apm.collector.stream.worker.ProviderNotFoundException;
+import org.skywalking.apm.collector.stream.worker.Role;
+import org.skywalking.apm.collector.stream.worker.WorkerException;
+import org.skywalking.apm.collector.stream.worker.selector.HashCodeSelector;
+import org.skywalking.apm.collector.stream.worker.selector.WorkerSelector;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationRegisterSerialWorker extends AbstractLocalAsyncWorker {
+
+ public ApplicationRegisterSerialWorker(Role role, ClusterWorkerContext clusterContext) {
+ super(role, clusterContext);
+ }
+
+ @Override public void preStart() throws ProviderNotFoundException {
+ super.preStart();
+ }
+
+ @Override protected void onWork(Object message) throws WorkerException {
+
+ }
+
+ public static class Factory extends AbstractLocalAsyncWorkerProvider {
+ @Override
+ public Role role() {
+ return WorkerRole.INSTANCE;
+ }
+
+ @Override
+ public ApplicationRegisterSerialWorker workerInstance(ClusterWorkerContext clusterContext) {
+ return new ApplicationRegisterSerialWorker(role(), clusterContext);
+ }
+
+ @Override public int queueSize() {
+ return 256;
+ }
+ }
+
+ public enum WorkerRole implements Role {
+ INSTANCE;
+
+ @Override
+ public String roleName() {
+ return ApplicationRegisterSerialWorker.class.getSimpleName();
+ }
+
+ @Override
+ public WorkerSelector workerSelector() {
+ return new HashCodeSelector();
+ }
+ }
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterTable.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterTable.java
new file mode 100644
index 0000000000..1a053f4e8c
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/register/application/ApplicationRegisterTable.java
@@ -0,0 +1,10 @@
+package org.skywalking.apm.collector.agentstream.worker.register.application;
+
+/**
+ * @author pengys5
+ */
+public class ApplicationRegisterTable {
+ public static final String TABLE = "application_register";
+ public static final String COLUMN_APPLICATION_CODE = "application_code";
+ public static final String COLUMN_APPLICATION_ID = "application_id";
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/SegmentParse.java b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/SegmentParse.java
new file mode 100644
index 0000000000..09a90bfd93
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/segment/SegmentParse.java
@@ -0,0 +1,8 @@
+package org.skywalking.apm.collector.agentstream.worker.segment;
+
+/**
+ * @author pengys5
+ */
+public class SegmentParse {
+
+}
diff --git a/apm-collector/apm-collector-agentstream/src/main/proto/ApplicationRegister.proto b/apm-collector/apm-collector-agentstream/src/main/proto/ApplicationRegister.proto
new file mode 100644
index 0000000000..572cfd3627
--- /dev/null
+++ b/apm-collector/apm-collector-agentstream/src/main/proto/ApplicationRegister.proto
@@ -0,0 +1,8 @@
+syntax = "proto3";
+
+option java_multiple_files = false;
+option java_package = "org.skywalking.apm.collector.agentstream.worker.register.application.proto";
+
+message ApplicationRegister {
+ string application_code = 1;
+}
\ No newline at end of file
diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/data.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/data.define
index d87c1fdd91..a7a420f19d 100644
--- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/data.define
+++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/data.define
@@ -1 +1,2 @@
-org.skywalking.apm.collector.agentstream.worker.node.component.NodeComponentDataDefine
\ No newline at end of file
+org.skywalking.apm.collector.agentstream.worker.node.component.NodeComponentDataDefine
+org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterDataDefine
\ No newline at end of file
diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_async_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_async_worker_provider.define
index 33897fbdcc..418ecfce16 100644
--- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_async_worker_provider.define
+++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/local_async_worker_provider.define
@@ -1 +1,3 @@
-org.skywalking.apm.collector.agentstream.worker.node.component.NodeComponentAggWorker$Factory
\ No newline at end of file
+org.skywalking.apm.collector.agentstream.worker.node.component.NodeComponentAggWorker$Factory
+
+org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterSerialWorker$Factory
\ No newline at end of file
diff --git a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/remote_worker_provider.define b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/remote_worker_provider.define
index e69de29bb2..84c9c058e9 100644
--- a/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/remote_worker_provider.define
+++ b/apm-collector/apm-collector-agentstream/src/main/resources/META-INF/defines/remote_worker_provider.define
@@ -0,0 +1 @@
+org.skywalking.apm.collector.agentstream.worker.register.application.ApplicationRegisterRemoteWorker$Factory
\ No newline at end of file
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 10c4be9343..485925c4c7 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
@@ -1,10 +1,8 @@
package org.skywalking.apm.collector.core.framework;
-import org.skywalking.apm.collector.core.config.ConfigException;
-
/**
* @author pengys5
*/
public interface Loader {
- T load() throws ConfigException;
+ T load() throws DefineException;
}
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 8e89ef1525..2dee03f206 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
@@ -4,6 +4,7 @@ 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.framework.DefineException;
import org.skywalking.apm.collector.core.util.ResourceUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -16,7 +17,7 @@ public class ModuleConfigLoader implements ConfigLoader