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 2022/04/21 13:16:58 UTC

[skywalking] branch master updated: HTTPServer support the handler register with allowed HTTP methods (#8917)

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.git


The following commit(s) were added to refs/heads/master by this push:
     new 70560e3b2d HTTPServer support the handler register with allowed HTTP methods (#8917)
70560e3b2d is described below

commit 70560e3b2d263a92f677eacb1a1dc7983ae414d3
Author: Wan Kai <wa...@foxmail.com>
AuthorDate: Thu Apr 21 21:16:51 2022 +0800

    HTTPServer support the handler register with allowed HTTP methods (#8917)
---
 docs/en/changes/changes.md                                |  1 +
 docs/en/concepts-and-designs/mal.md                       |  4 ++--
 .../oap/server/core/server/HTTPHandlerRegister.java       |  4 +++-
 .../oap/server/core/server/HTTPHandlerRegisterImpl.java   |  6 ++++--
 .../skywalking/oap/server/core/remote/HTTPServerTest.java |  4 +++-
 .../oap/server/library/server/http/HTTPServer.java        | 15 +++++++++++++--
 .../oap/query/graphql/GraphQLQueryProvider.java           |  6 +++++-
 .../receiver/browser/provider/BrowserModuleProvider.java  |  4 +++-
 .../oap/server/receiver/event/EventModuleProvider.java    |  6 +++++-
 .../server/recevier/log/provider/LogModuleProvider.java   |  6 +++++-
 .../register/provider/RegisterModuleProvider.java         |  6 +++++-
 .../sharing/server/ReceiverHTTPHandlerRegister.java       |  6 ++++--
 .../receiver/trace/provider/TraceModuleProvider.java      |  6 +++++-
 .../server/receiver/zipkin/ZipkinReceiverProvider.java    |  6 +++++-
 .../tool/profile/core/mock/MockHTTPHandlerRegister.java   |  5 ++++-
 15 files changed, 67 insertions(+), 18 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 0a5e3f6387..9b8ff5f79e 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -22,6 +22,7 @@
 * [Breaking Change] Add layer field to event, report an event without layer is not allowed.
 * Fix ES flush thread stops when flush schedule task throws exception, such as ElasticSearch flush failed.
 * Fix ES BulkProcessor in BatchProcessEsDAO was initialized multiple times and created multiple ES flush schedule tasks.
+* HTTPServer support the handler register with allowed HTTP methods. 
 
 #### UI
 
diff --git a/docs/en/concepts-and-designs/mal.md b/docs/en/concepts-and-designs/mal.md
index 99a6ecd503..d224f43c43 100644
--- a/docs/en/concepts-and-designs/mal.md
+++ b/docs/en/concepts-and-designs/mal.md
@@ -141,7 +141,7 @@ This returns a resulting sample family containing the error rate of trace analys
 have no match and will not show up in the result:
 
 ```
-{region="us-west",az="az-1"} 0.8  // 20 / 100
+{region="us-west",az="az-1"} 0.2  // 20 / 100
 {region="asia-north",az="az-1"} 0.3333  // 11 / 33
 ```
 
@@ -176,7 +176,7 @@ instance_trace_count{az="az-3"} 20
 
 ### Function
 
-`Duraton` is a textual representation of a time range. The formats accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
+`Duration` is a textual representation of a time range. The formats accepted are based on the ISO-8601 duration format {@code PnDTnHnMn.nS}
  where a day is regarded as exactly 24 hours.
 
 Examples:
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegister.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegister.java
index 1b6ef4300f..c1d3f21ec2 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegister.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegister.java
@@ -18,8 +18,10 @@
 
 package org.apache.skywalking.oap.server.core.server;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.List;
 import org.apache.skywalking.oap.server.library.module.Service;
 
 public interface HTTPHandlerRegister extends Service {
-    void addHandler(Object httpService);
+    void addHandler(Object httpService, List<HttpMethod> httpMethods);
 }
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegisterImpl.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegisterImpl.java
index 6fc2699b8b..2efabe1367 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegisterImpl.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/server/HTTPHandlerRegisterImpl.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.core.server;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.List;
 import org.apache.skywalking.oap.server.library.server.http.HTTPServer;
 
 public class HTTPHandlerRegisterImpl implements HTTPHandlerRegister {
@@ -29,7 +31,7 @@ public class HTTPHandlerRegisterImpl implements HTTPHandlerRegister {
     }
 
     @Override
-    public void addHandler(Object httpService) {
-        server.addHandler(httpService);
+    public void addHandler(final Object httpService, final List<HttpMethod> httpMethods) {
+        server.addHandler(httpService, httpMethods);
     }
 }
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/remote/HTTPServerTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/remote/HTTPServerTest.java
index 4f6f220b92..68e5f90d7a 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/remote/HTTPServerTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/remote/HTTPServerTest.java
@@ -19,9 +19,11 @@
 package org.apache.skywalking.oap.server.core.remote;
 
 import com.linecorp.armeria.client.WebClient;
+import com.linecorp.armeria.common.HttpMethod;
 import com.linecorp.armeria.common.HttpResponse;
 import com.linecorp.armeria.common.HttpStatus;
 import com.linecorp.armeria.server.annotation.Post;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.library.server.http.HTTPServer;
 import org.apache.skywalking.oap.server.library.server.http.HTTPServerConfig;
 import org.junit.Assert;
@@ -42,7 +44,7 @@ public class HTTPServerTest {
 
         SERVER = new HTTPServer(config);
         SERVER.initialize();
-        SERVER.addHandler(new TestPostHandler());
+        SERVER.addHandler(new TestPostHandler(), Collections.singletonList(HttpMethod.POST));
         SERVER.start();
     }
 
diff --git a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/http/HTTPServer.java b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/http/HTTPServer.java
index d7ed25ee87..7f59096c57 100644
--- a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/http/HTTPServer.java
+++ b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/http/HTTPServer.java
@@ -27,14 +27,19 @@ import com.linecorp.armeria.server.docs.DocService;
 import com.linecorp.armeria.server.logging.LoggingService;
 import java.net.InetSocketAddress;
 import java.time.Duration;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.skywalking.oap.server.library.server.Server;
+import static java.util.Objects.requireNonNull;
 
 @Slf4j
 public class HTTPServer implements Server {
     private final HTTPServerConfig config;
     private ServerBuilder sb;
+    private final Set<HttpMethod> allowedMethods = new HashSet<>();
 
     public HTTPServer(HTTPServerConfig config) {
         this.config = config;
@@ -55,7 +60,7 @@ public class HTTPServer implements Server {
             .http1MaxHeaderSize(config.getMaxRequestHeaderSize())
             .idleTimeout(Duration.ofMillis(config.getIdleTimeOut()))
             .decorator(Route.ofCatchAll(), (delegate, ctx, req) -> {
-                if (ctx.method() != HttpMethod.POST) {
+                if (!this.allowedMethods.contains(ctx.method())) {
                     return HttpResponse.of(HttpStatus.METHOD_NOT_ALLOWED);
                 }
                 return delegate.serve(ctx, req);
@@ -69,7 +74,12 @@ public class HTTPServer implements Server {
         log.info("Server root context path: {}", contextPath);
     }
 
-    public void addHandler(Object handler) {
+    /**
+     * @param handler        Specific service provider.
+     * @param httpMethods    Register the http methods which the handler service accepts. Other methods respond "405, Method Not Allowed".
+     */
+    public void addHandler(Object handler, List<HttpMethod> httpMethods) {
+        requireNonNull(allowedMethods, "allowedMethods");
         log.info(
             "Bind handler {} into http server {}:{}",
             handler.getClass().getSimpleName(), config.getHost(), config.getPort()
@@ -78,6 +88,7 @@ public class HTTPServer implements Server {
         sb.annotatedService()
           .pathPrefix(config.getContextPath())
           .build(handler);
+        this.allowedMethods.addAll(httpMethods);
     }
 
     @Override
diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/GraphQLQueryProvider.java b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/GraphQLQueryProvider.java
index 01434c74b1..c9c2adcafb 100644
--- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/GraphQLQueryProvider.java
+++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/GraphQLQueryProvider.java
@@ -18,9 +18,11 @@
 
 package org.apache.skywalking.oap.query.graphql;
 
+import com.linecorp.armeria.common.HttpMethod;
 import graphql.kickstart.tools.SchemaParser;
 import graphql.kickstart.tools.SchemaParserBuilder;
 import graphql.scalars.ExtendedScalars;
+import java.util.Collections;
 import org.apache.skywalking.oap.query.graphql.resolver.AggregationQuery;
 import org.apache.skywalking.oap.query.graphql.resolver.AlarmQuery;
 import org.apache.skywalking.oap.query.graphql.resolver.BrowserLogQuery;
@@ -127,7 +129,9 @@ public class GraphQLQueryProvider extends ModuleProvider {
                                                   .provider()
                                                   .getService(HTTPHandlerRegister.class);
         service.addHandler(
-            new GraphQLQueryHandler(config, schemaBuilder.build().makeExecutableSchema()));
+            new GraphQLQueryHandler(config, schemaBuilder.build().makeExecutableSchema()),
+            Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
index f24e474a22..daf2d3e48b 100644
--- a/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-browser-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/browser/provider/BrowserModuleProvider.java
@@ -17,6 +17,8 @@
 
 package org.apache.skywalking.oap.server.receiver.browser.provider;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.configuration.api.ConfigurationModule;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.oal.rt.OALEngineLoaderService;
@@ -87,7 +89,7 @@ public class BrowserModuleProvider extends ModuleProvider {
         httpHandlerRegister.addHandler(
             new BrowserPerfServiceHTTPHandler(getManager(), moduleConfig,
                                               errorLogParserListenerManager,
-                                              perfDataListenerManager()));
+                                              perfDataListenerManager()), Collections.singletonList(HttpMethod.POST));
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-event-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/event/EventModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-event-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/event/EventModuleProvider.java
index e18f6f7ad1..6018d70ea1 100755
--- a/oap-server/server-receiver-plugin/skywalking-event-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/event/EventModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-event-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/event/EventModuleProvider.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.receiver.event;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.analyzer.event.EventAnalyzerModule;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
@@ -61,7 +63,9 @@ public class EventModuleProvider extends ModuleProvider {
         HTTPHandlerRegister httpHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(HTTPHandlerRegister.class);
-        httpHandlerRegister.addHandler(new EventRestServiceHandler(getManager()));
+        httpHandlerRegister.addHandler(new EventRestServiceHandler(getManager()),
+                                       Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-log-recevier-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/log/provider/LogModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-log-recevier-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/log/provider/LogModuleProvider.java
index 5c950f0a8b..a064eba565 100644
--- a/oap-server/server-receiver-plugin/skywalking-log-recevier-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/log/provider/LogModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-log-recevier-plugin/src/main/java/org/apache/skywalking/oap/server/recevier/log/provider/LogModuleProvider.java
@@ -17,6 +17,8 @@
 
 package org.apache.skywalking.oap.server.recevier.log.provider;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.log.analyzer.module.LogAnalyzerModule;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
@@ -65,7 +67,9 @@ public class LogModuleProvider extends ModuleProvider {
         HTTPHandlerRegister httpHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(HTTPHandlerRegister.class);
-        httpHandlerRegister.addHandler(new LogReportServiceHTTPHandler(getManager()));
+        httpHandlerRegister.addHandler(new LogReportServiceHTTPHandler(getManager()),
+                                       Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
index 6a14f70b74..785140f355 100644
--- a/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-management-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.receiver.register.provider;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
 import org.apache.skywalking.oap.server.core.server.HTTPHandlerRegister;
@@ -63,7 +65,9 @@ public class RegisterModuleProvider extends ModuleProvider {
         HTTPHandlerRegister httpHandlerRegister = getManager().find(SharingServerModule.NAME)
                                                               .provider()
                                                               .getService(HTTPHandlerRegister.class);
-        httpHandlerRegister.addHandler(new ManagementServiceHTTPHandler(getManager()));
+        httpHandlerRegister.addHandler(new ManagementServiceHTTPHandler(getManager()),
+                                       Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverHTTPHandlerRegister.java b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverHTTPHandlerRegister.java
index e4e18677a7..6bff270334 100644
--- a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverHTTPHandlerRegister.java
+++ b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/ReceiverHTTPHandlerRegister.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.receiver.sharing.server;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.List;
 import lombok.Setter;
 import org.apache.skywalking.oap.server.core.server.HTTPHandlerRegister;
 
@@ -27,7 +29,7 @@ public class ReceiverHTTPHandlerRegister implements HTTPHandlerRegister {
     private HTTPHandlerRegister httpHandlerRegister;
 
     @Override
-    public void addHandler(Object httpService) {
-        httpHandlerRegister.addHandler(httpService);
+    public void addHandler(final Object httpService, final List<HttpMethod> httpMethods) {
+        httpHandlerRegister.addHandler(httpService, httpMethods);
     }
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
index 7ed969fa89..8d24687ca0 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.receiver.trace.provider;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.analyzer.module.AnalyzerModule;
 import org.apache.skywalking.oap.server.configuration.api.ConfigurationModule;
 import org.apache.skywalking.oap.server.core.CoreModule;
@@ -69,7 +71,9 @@ public class TraceModuleProvider extends ModuleProvider {
         grpcHandlerRegister.addHandler(traceSegmentReportServiceHandler);
         grpcHandlerRegister.addHandler(new TraceSegmentReportServiceHandlerCompat(traceSegmentReportServiceHandler));
 
-        httpHandlerRegister.addHandler(new TraceSegmentReportHandler(getManager()));
+        httpHandlerRegister.addHandler(new TraceSegmentReportHandler(getManager()),
+                                       Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
index d18e57e503..63948bba43 100644
--- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
+++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.receiver.zipkin;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.Collections;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 import org.apache.skywalking.oap.server.library.module.ModuleDefine;
@@ -74,7 +76,9 @@ public class ZipkinReceiverProvider extends ModuleProvider {
         httpServer = new HTTPServer(httpServerConfig);
         httpServer.initialize();
 
-        httpServer.addHandler(new ZipkinSpanHTTPHandler(config, getManager()));
+        httpServer.addHandler(new ZipkinSpanHTTPHandler(config, getManager()),
+                              Collections.singletonList(HttpMethod.POST)
+        );
     }
 
     @Override
diff --git a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-server-mock/src/main/java/org/apache/skywalking/oap/server/tool/profile/core/mock/MockHTTPHandlerRegister.java b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-server-mock/src/main/java/org/apache/skywalking/oap/server/tool/profile/core/mock/MockHTTPHandlerRegister.java
index 429ae389f5..e0c01fbf8d 100644
--- a/oap-server/server-tools/profile-exporter/tool-profile-snapshot-server-mock/src/main/java/org/apache/skywalking/oap/server/tool/profile/core/mock/MockHTTPHandlerRegister.java
+++ b/oap-server/server-tools/profile-exporter/tool-profile-snapshot-server-mock/src/main/java/org/apache/skywalking/oap/server/tool/profile/core/mock/MockHTTPHandlerRegister.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.oap.server.tool.profile.core.mock;
 
+import com.linecorp.armeria.common.HttpMethod;
+import java.util.List;
 import org.apache.skywalking.oap.server.core.server.HTTPHandlerRegister;
 
 /**
@@ -25,6 +27,7 @@ import org.apache.skywalking.oap.server.core.server.HTTPHandlerRegister;
  */
 public class MockHTTPHandlerRegister implements HTTPHandlerRegister {
     @Override
-    public void addHandler(Object httpService) {
+    public void addHandler(final Object httpService, final List<HttpMethod> httpMethods) {
+
     }
 }