You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/03/16 07:46:36 UTC

[skywalking-agent-test-tool] branch master updated: add endpoint register service (#10)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking-agent-test-tool.git


The following commit(s) were added to refs/heads/master by this push:
     new 14b1499  add endpoint register service (#10)
14b1499 is described below

commit 14b1499e65788d570ce5914b2ca7320cd36f961e
Author: Daming <zt...@foxmail.com>
AuthorDate: Mon Mar 16 15:46:26 2020 +0800

    add endpoint register service (#10)
---
 .../skywalking/plugin/test/mockcollector/Main.java | 14 +++---
 .../rest/MockEndpointRegisterServletHandler.java   | 52 ++++++++++++++++++++++
 .../MockTraceSegmentCollectServletHandler.java     |  7 +++
 .../mockcollector/service/DataValidateService.java | 20 +++------
 4 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
index 0b9a5d1..efc1428 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
@@ -25,8 +25,12 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
+import org.apache.skywalking.plugin.test.mockcollector.mock.MockInstancePingService;
+import org.apache.skywalking.plugin.test.mockcollector.mock.MockJVMMetricReportService;
+import org.apache.skywalking.plugin.test.mockcollector.mock.MockRegisterService;
+import org.apache.skywalking.plugin.test.mockcollector.mock.MockTraceSegmentService;
+import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockEndpointRegisterServletHandler;
 import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockInstanceRegisterServletHandler;
 import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockServiceInstancePingServletHandler;
 import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockServiceRegisterServletHandler;
@@ -34,10 +38,6 @@ import org.apache.skywalking.plugin.test.mockcollector.mock.rest.MockTraceSegmen
 import org.apache.skywalking.plugin.test.mockcollector.service.ClearReceiveDataService;
 import org.apache.skywalking.plugin.test.mockcollector.service.DataValidateService;
 import org.apache.skywalking.plugin.test.mockcollector.service.GrpcAddressHttpService;
-import org.apache.skywalking.plugin.test.mockcollector.mock.MockInstancePingService;
-import org.apache.skywalking.plugin.test.mockcollector.mock.MockJVMMetricReportService;
-import org.apache.skywalking.plugin.test.mockcollector.mock.MockRegisterService;
-import org.apache.skywalking.plugin.test.mockcollector.mock.MockTraceSegmentService;
 import org.apache.skywalking.plugin.test.mockcollector.service.ReceiveDataService;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.servlet.ServletContextHandler;
@@ -95,6 +95,10 @@ public class Main {
             MockServiceRegisterServletHandler.class, MockServiceRegisterServletHandler.SERVLET_PATH);
         servletContextHandler.addServlet(
             MockTraceSegmentCollectServletHandler.class, MockTraceSegmentCollectServletHandler.SERVLET_PATH);
+        servletContextHandler.addServlet(
+            MockEndpointRegisterServletHandler.class,
+            MockEndpointRegisterServletHandler.SERVLET_PATH
+        );
 
         jettyServer.setHandler(servletContextHandler);
         jettyServer.start();
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockEndpointRegisterServletHandler.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockEndpointRegisterServletHandler.java
new file mode 100644
index 0000000..b8915d8
--- /dev/null
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockEndpointRegisterServletHandler.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.plugin.test.mockcollector.mock.rest;
+
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import java.io.IOException;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.skywalking.apm.network.register.v2.Endpoint;
+import org.apache.skywalking.apm.network.register.v2.Endpoints;
+import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
+import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
+import org.apache.skywalking.plugin.test.mockcollector.util.ProtoBufJsonUtils;
+
+public class MockEndpointRegisterServletHandler extends JettyJsonHandler {
+    public static final String SERVLET_PATH = "/v2/endpoint/register";
+
+    @Override
+    protected JsonElement doGet(final HttpServletRequest req) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    protected JsonElement doPost(final HttpServletRequest req) throws IOException {
+        Endpoints.Builder builder = Endpoints.newBuilder();
+        ProtoBufJsonUtils.fromJSON(getJsonBody(req), builder);
+
+        for (Endpoint endpoint : builder.build().getEndpointsList()) {
+            ValidateData.INSTANCE.getRegistryItem()
+                                 .registryOperationName(new RegistryItem.OperationName(endpoint.getServiceId(), endpoint
+                                     .getEndpointName()));
+        }
+
+        return new JsonArray();
+    }
+}
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
index 2f8be4c..1965d9c 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/mock/rest/MockTraceSegmentCollectServletHandler.java
@@ -28,6 +28,7 @@ import org.apache.skywalking.apm.network.language.agent.v2.Log;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
 import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
+import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
 import org.apache.skywalking.plugin.test.mockcollector.entity.Segment;
 import org.apache.skywalking.plugin.test.mockcollector.entity.Span;
 import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
@@ -83,6 +84,12 @@ public class MockTraceSegmentCollectServletHandler extends JettyJsonHandler {
                 spanBuilder.ref(new Span.SegmentRef(ref));
             }
 
+            // Endpoint register
+            ValidateData.INSTANCE.getRegistryItem()
+                                 .registryOperationName(
+                                     new RegistryItem.OperationName(traceSegmentObject.getServiceId(),
+                                                                    spanObject.getOperationName()));
+
             segmentBuilder.addSpan(spanBuilder);
         }
 
diff --git a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/DataValidateService.java b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/DataValidateService.java
index 7a1378e..0124a47 100644
--- a/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/DataValidateService.java
+++ b/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/DataValidateService.java
@@ -18,7 +18,6 @@
 
 package org.apache.skywalking.plugin.test.mockcollector.service;
 
-import com.google.common.base.Strings;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import java.io.ByteArrayInputStream;
@@ -30,7 +29,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.skywalking.plugin.test.agent.tool.validator.assertor.DataAssert;
 import org.apache.skywalking.plugin.test.agent.tool.validator.entity.Data;
-import org.apache.skywalking.plugin.test.agent.tool.validator.exception.AssertFailedException;
 import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
 import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateDataSerializer;
 import org.yaml.snakeyaml.Yaml;
@@ -51,18 +49,12 @@ public class DataValidateService extends HttpServlet {
         ByteArrayInputStream actualData = new ByteArrayInputStream(dump.getBytes());
 
         PrintWriter writer = resp.getWriter();
-        try {
-            DataAssert.assertEquals(
-                Data.Loader.loadData(req.getInputStream()),
-                Data.Loader.loadData(actualData));
-            writer.write("success");
-            resp.setStatus(200);
-        } catch (AssertFailedException exception) {
-            writer.write(Strings.nullToEmpty(exception.getMessage()));
-            writer.write("\n");
-            writer.write(dump);
-            resp.setStatus(500);
-        }
+        DataAssert.assertEquals(
+            Data.Loader.loadData(req.getInputStream()),
+            Data.Loader.loadData(actualData)
+        );
+        writer.write("success");
+        resp.setStatus(200);
         writer.flush();
     }
 }