summaryrefslogtreecommitdiffstats
path: root/logserver
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2019-03-28 15:56:52 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2019-03-28 15:56:52 +0100
commitfba4121dd92f56716c97a15b24628e3dd9a503f9 (patch)
treebed9ccf7082baa8586131af7370824586eab4da1 /logserver
parent2b1dd4b48f93ee69aa4f03635dc88f516578b78d (diff)
Make RpcServer independent of ArchiveLogMessagesMethod
Diffstat (limited to 'logserver')
-rw-r--r--logserver/src/main/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethod.java6
-rw-r--r--logserver/src/main/java/ai/vespa/logserver/protocol/RpcServer.java9
-rw-r--r--logserver/src/main/java/com/yahoo/logserver/Server.java4
-rw-r--r--logserver/src/test/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethodTest.java (renamed from logserver/src/test/java/ai/vespa/logserver/protocol/RpcServerTest.java)5
4 files changed, 15 insertions, 9 deletions
diff --git a/logserver/src/main/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethod.java b/logserver/src/main/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethod.java
index 15ee83f9a15..9d234b73692 100644
--- a/logserver/src/main/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethod.java
+++ b/logserver/src/main/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethod.java
@@ -19,7 +19,7 @@ import java.util.logging.Logger;
*
* @author bjorncs
*/
-class ArchiveLogMessagesMethod {
+public class ArchiveLogMessagesMethod {
static final String METHOD_NAME = "vespa.logserver.archiveLogMessages";
@@ -29,7 +29,7 @@ class ArchiveLogMessagesMethod {
private final LogDispatcher logDispatcher;
private final Method method;
- ArchiveLogMessagesMethod(LogDispatcher logDispatcher) {
+ public ArchiveLogMessagesMethod(LogDispatcher logDispatcher) {
this.logDispatcher = logDispatcher;
this.method = new Method(METHOD_NAME, "bix", "bix", this::log)
.methodDesc("Archive log messages")
@@ -41,7 +41,7 @@ class ArchiveLogMessagesMethod {
.returnDesc(2, "logResponse", "Log response encoded with protobuf");
}
- Method methodDefinition() {
+ public Method methodDefinition() {
return method;
}
diff --git a/logserver/src/main/java/ai/vespa/logserver/protocol/RpcServer.java b/logserver/src/main/java/ai/vespa/logserver/protocol/RpcServer.java
index 55d9c2d2940..b3860da6fb7 100644
--- a/logserver/src/main/java/ai/vespa/logserver/protocol/RpcServer.java
+++ b/logserver/src/main/java/ai/vespa/logserver/protocol/RpcServer.java
@@ -3,10 +3,10 @@ package ai.vespa.logserver.protocol;
import com.yahoo.jrt.Acceptor;
import com.yahoo.jrt.ListenFailedException;
+import com.yahoo.jrt.Method;
import com.yahoo.jrt.Spec;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Transport;
-import com.yahoo.logserver.LogDispatcher;
/**
* A JRT based RPC server for handling log requests
@@ -19,9 +19,12 @@ public class RpcServer implements AutoCloseable {
private final int listenPort;
private Acceptor acceptor;
- public RpcServer(int listenPort, LogDispatcher logDispatcher) {
+ public RpcServer(int listenPort) {
this.listenPort = listenPort;
- supervisor.addMethod(new ArchiveLogMessagesMethod(logDispatcher).methodDefinition());
+ }
+
+ public void addMethod(Method method) {
+ supervisor.addMethod(method);
}
public void start() {
diff --git a/logserver/src/main/java/com/yahoo/logserver/Server.java b/logserver/src/main/java/com/yahoo/logserver/Server.java
index efccf1d8f83..68ab8be2fba 100644
--- a/logserver/src/main/java/com/yahoo/logserver/Server.java
+++ b/logserver/src/main/java/com/yahoo/logserver/Server.java
@@ -1,6 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.logserver;
+import ai.vespa.logserver.protocol.ArchiveLogMessagesMethod;
import ai.vespa.logserver.protocol.RpcServer;
import com.yahoo.io.FatalErrorHandler;
import com.yahoo.io.Listener;
@@ -127,7 +128,8 @@ public class Server implements Runnable {
listener = new Listener(APPNAME);
listener.addSelectLoopPostHook(dispatch);
listener.setFatalErrorHandler(fatalErrorHandler);
- rpcServer = new RpcServer(rpcListenPort, dispatch);
+ rpcServer = new RpcServer(rpcListenPort);
+ rpcServer.addMethod(new ArchiveLogMessagesMethod(dispatch).methodDefinition());
}
/**
diff --git a/logserver/src/test/java/ai/vespa/logserver/protocol/RpcServerTest.java b/logserver/src/test/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethodTest.java
index 321c21915fc..a30df6bb050 100644
--- a/logserver/src/test/java/ai/vespa/logserver/protocol/RpcServerTest.java
+++ b/logserver/src/test/java/ai/vespa/logserver/protocol/ArchiveLogMessagesMethodTest.java
@@ -28,7 +28,7 @@ import static org.mockito.Mockito.verify;
/**
* @author bjorncs
*/
-public class RpcServerTest {
+public class ArchiveLogMessagesMethodTest {
private static final LogMessage MESSAGE_1 =
LogMessage.of(Instant.EPOCH.plus(1000, ChronoUnit.DAYS), "localhost", 12, 3456, "my-service", "my-component", LogLevel.ERROR, "My error message");
@@ -39,7 +39,8 @@ public class RpcServerTest {
public void server_dispatches_log_messages_from_log_request() {
List<LogMessage> messages = List.of(MESSAGE_1, MESSAGE_2);
LogDispatcher logDispatcher = mock(LogDispatcher.class);
- try (RpcServer server = new RpcServer(0, logDispatcher)) {
+ try (RpcServer server = new RpcServer(0)) {
+ server.addMethod(new ArchiveLogMessagesMethod(logDispatcher).methodDefinition());
server.start();
try (TestClient client = new TestClient(server.listenPort())) {
client.logMessages(messages);