AbstractClusterWorkerProvider implementations represent providers,
@@ -20,6 +21,10 @@ public abstract class AbstractClusterWorkerProviderWorkerListenerMessage is a message just for the worker
* implementation of the {@link AbstractWorker}
diff --git a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/WorkersListener.java b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/WorkersListener.java
index 2b79fdb13..53b1f330e 100644
--- a/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/WorkersListener.java
+++ b/apm-collector/apm-collector-cluster/src/main/java/org/skywalking/apm/collector/cluster/WorkersListener.java
@@ -30,7 +30,7 @@ import java.util.concurrent.ConcurrentHashMap;
public class WorkersListener extends UntypedActor {
public static final String WORK_NAME = "WorkersListener";
- private static final Logger logger = LogManager.getFormatterLogger(WorkersListener.class);
+ private final Logger logger = LogManager.getFormatterLogger(WorkersListener.class);
private final ClusterWorkerContext clusterContext;
private Cluster cluster = Cluster.get(getContext().system());
private MapAbstractGet implementations represent workers, which called by the server to allow a servlet to
* handle a GET request.
*
- * verride the {@link #onReceive(Map, JsonObject)} method to support a search service. + *
verride the {@link #onReceive(Map, JsonElement)} method to support a search service.
*
* @author pengys5
* @since v3.0-2017
diff --git a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractServlet.java b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractServlet.java
index 17d0994e0..c51036cac 100644
--- a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractServlet.java
+++ b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractServlet.java
@@ -1,6 +1,6 @@
package org.skywalking.apm.collector.worker.httpserver;
-import com.google.gson.JsonObject;
+import com.google.gson.JsonElement;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
@@ -31,6 +31,8 @@ public abstract class AbstractServlet extends AbstractLocalSyncWorker {
super(role, clusterContext, selfContext);
}
+ protected abstract Class extends JsonElement> responseClass();
+
/**
* Override this method to implementing business logic.
*
@@ -42,12 +44,16 @@ public abstract class AbstractServlet extends AbstractLocalSyncWorker {
*/
@Override protected void onWork(Object parameter,
Object response) throws ArgumentsParseException, WorkerInvokeException, WorkerNotFoundException {
- JsonObject resJson = new JsonObject();
try {
+ JsonElement resJson = responseClass().newInstance();
onReceive((Map