diff --git a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractPost.java b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractPost.java
index 8fd75ea77c4e5cba6bc3498908396e93bf5fdd4f..b79e47d914793a7a8bfe51760950da9bb1c2a21a 100644
--- a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractPost.java
+++ b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/httpserver/AbstractPost.java
@@ -20,7 +20,6 @@ import org.skywalking.apm.collector.worker.segment.entity.SegmentDeserialize;
/**
* @author pengys5
*/
-
public abstract class AbstractPost extends AbstractLocalAsyncWorker {
public AbstractPost(Role role, ClusterWorkerContext clusterContext, LocalWorkerContext selfContext) {
@@ -43,6 +42,16 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker {
this.ownerWorkerRef = ownerWorkerRef;
}
+ /**
+ * Get segment's buffer from request then execute deserialize operation.
+ *
+ * @param request an {@link HttpServletRequest} object that contains the request the client has made of the
+ * servlet
+ * @param response {@link HttpServletResponse} object that contains the response the servlet sends to the
+ * client
+ * @throws ServletException if the request for the POST could not be handled
+ * @throws IOException if an input or output error is detected when the servlet handles the request
+ */
@Override final protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
JsonObject resJson = new JsonObject();
@@ -57,6 +66,13 @@ public abstract class AbstractPost extends AbstractLocalAsyncWorker {
}
}
+ /**
+ * Read segment's buffer from buffer reader by stream mode. when finish read one segment then send to analysis.
+ * This method in there, so post servlet just can receive segments data.
+ *
+ * @param bufferedReader an {@link BufferedReader} object that contains the segment's data using the construct of chars.
+ * @throws Exception
+ */
private void streamReader(BufferedReader bufferedReader) throws Exception {
Segment segment;
do {
diff --git a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/segment/entity/SegmentDeserialize.java b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/segment/entity/SegmentDeserialize.java
index 9846d4af6e7ab8b2325fdb0ee61721da061445f8..5a747f7bf9279b5f62c1cb2ebc97a8345629bea9 100644
--- a/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/segment/entity/SegmentDeserialize.java
+++ b/apm-collector/apm-collector-worker/src/main/java/org/skywalking/apm/collector/worker/segment/entity/SegmentDeserialize.java
@@ -8,18 +8,36 @@ import java.util.ArrayList;
import java.util.List;
/**
+ * The SegmentDeserialize
provides single segment json string deserialize and segment array file
+ * deserialize.
+ *
* @author pengys5
+ * @since v3.0-2017
*/
public enum SegmentDeserialize {
INSTANCE;
private final Gson gson = new Gson();
+ /**
+ * Single segment json string deserialize.
+ *
+ * @param singleSegmentJsonStr a segment json string
+ * @return an {@link Segment}
+ * @throws IOException if json string illegal or file broken.
+ */
public Segment deserializeSingle(String singleSegmentJsonStr) throws IOException {
Segment segment = gson.fromJson(singleSegmentJsonStr, Segment.class);
return segment;
}
+ /**
+ * Read a json array file contains multiple segments.
+ *
+ * @param segmentJsonFile a segments json array file path
+ * @return on {@link List}
+ * @throws Exception if json data illegal or file broken.
+ */
public List deserializeMultiple(String segmentJsonFile) throws Exception {
List segmentList = new ArrayList<>();
streamReader(segmentList, new FileReader(segmentJsonFile));