summaryrefslogtreecommitdiffstats
path: root/container-messagebus/src/main/java/com/yahoo/messagebus
diff options
context:
space:
mode:
Diffstat (limited to 'container-messagebus/src/main/java/com/yahoo/messagebus')
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ClientTestDriver.java5
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteClient.java34
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteServer.java39
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ServerTestDriver.java9
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/TestUtils.java21
-rw-r--r--container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedMessageBus.java5
6 files changed, 53 insertions, 60 deletions
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ClientTestDriver.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ClientTestDriver.java
index ea0ed7eadc8..111805d61b0 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ClientTestDriver.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ClientTestDriver.java
@@ -33,7 +33,7 @@ public class ClientTestDriver {
this.server = server;
MessageBusParams mbusParams = new MessageBusParams().addProtocol(protocol);
- RPCNetworkParams netParams = new RPCNetworkParams().setSlobroksConfig(server.slobroksConfig());
+ RPCNetworkParams netParams = new RPCNetworkParams().setSlobrokConfigId(server.slobrokId());
SharedMessageBus mbus = SharedMessageBus.newInstance(mbusParams, netParams);
session = mbus.newSourceSession(new SourceSessionParams());
client = new MbusClient(session);
@@ -128,4 +128,7 @@ public class ClientTestDriver {
return new ClientTestDriver(RemoteServer.newInstanceWithInternSlobrok(), protocol);
}
+ public static ClientTestDriver newInstanceWithExternSlobrok(String slobrokId) {
+ return new ClientTestDriver(RemoteServer.newInstanceWithExternSlobrok(slobrokId), new SimpleProtocol());
+ }
}
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteClient.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteClient.java
index 6cd8fb8f34d..57d0abd980b 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteClient.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteClient.java
@@ -1,17 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.messagebus.jdisc.test;
-import com.yahoo.cloud.config.SlobroksConfig;
import com.yahoo.jrt.ListenFailedException;
import com.yahoo.jrt.slobrok.server.Slobrok;
-import com.yahoo.messagebus.Message;
-import com.yahoo.messagebus.MessageBus;
-import com.yahoo.messagebus.MessageBusParams;
-import com.yahoo.messagebus.Protocol;
-import com.yahoo.messagebus.Reply;
-import com.yahoo.messagebus.Result;
-import com.yahoo.messagebus.SourceSession;
-import com.yahoo.messagebus.SourceSessionParams;
+import com.yahoo.messagebus.*;
import com.yahoo.messagebus.network.local.LocalNetwork;
import com.yahoo.messagebus.network.rpc.RPCNetwork;
import com.yahoo.messagebus.network.rpc.RPCNetworkParams;
@@ -25,14 +17,16 @@ import java.util.concurrent.TimeUnit;
public class RemoteClient {
private final Slobrok slobrok;
+ private final String slobrokId;
private final MessageBus mbus;
private final ReplyQueue queue = new ReplyQueue();
private final SourceSession session;
- private RemoteClient(Protocol protocol, boolean network) {
- this.slobrok = newSlobrok();
+ private RemoteClient(Slobrok slobrok, String slobrokId, Protocol protocol, boolean network) {
+ this.slobrok = slobrok;
+ this.slobrokId = slobrok != null ? slobrok.configId() : slobrokId;
mbus = network
- ? new MessageBus(new RPCNetwork(new RPCNetworkParams().setSlobroksConfig(slobroksConfig())),
+ ? new MessageBus(new RPCNetwork(new RPCNetworkParams().setSlobrokConfigId(this.slobrokId)),
new MessageBusParams().addProtocol(protocol))
: new MessageBus(new LocalNetwork(), new MessageBusParams().addProtocol(protocol));
session = mbus.createSourceSession(new SourceSessionParams().setThrottlePolicy(null).setReplyHandler(queue));
@@ -46,22 +40,28 @@ public class RemoteClient {
return queue.awaitReply(timeout, unit);
}
- public SlobroksConfig slobroksConfig() {
- return TestUtils.configFor(slobrok);
+ public String slobrokId() {
+ return slobrokId;
}
public void close() {
session.destroy();
mbus.destroy();
- slobrok.stop();
+ if (slobrok != null) {
+ slobrok.stop();
+ }
}
public static RemoteClient newInstanceWithInternSlobrok(boolean network) {
- return new RemoteClient(new SimpleProtocol(), network);
+ return new RemoteClient(newSlobrok(), null, new SimpleProtocol(), network);
+ }
+
+ public static RemoteClient newInstanceWithExternSlobrok(String slobrokId, boolean network) {
+ return new RemoteClient(null, slobrokId, new SimpleProtocol(), network);
}
public static RemoteClient newInstanceWithProtocolAndInternSlobrok(Protocol protocol, boolean network) {
- return new RemoteClient(protocol, network);
+ return new RemoteClient(newSlobrok(), null, protocol, network);
}
private static Slobrok newSlobrok() {
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteServer.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteServer.java
index 0fb23e33709..1f0f82c4903 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteServer.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/RemoteServer.java
@@ -1,16 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.messagebus.jdisc.test;
-import com.yahoo.cloud.config.SlobroksConfig;
import com.yahoo.jrt.ListenFailedException;
import com.yahoo.jrt.slobrok.server.Slobrok;
-import com.yahoo.messagebus.DestinationSession;
-import com.yahoo.messagebus.DestinationSessionParams;
-import com.yahoo.messagebus.Message;
-import com.yahoo.messagebus.MessageBus;
-import com.yahoo.messagebus.MessageBusParams;
-import com.yahoo.messagebus.Protocol;
-import com.yahoo.messagebus.Reply;
+import com.yahoo.messagebus.*;
import com.yahoo.messagebus.network.Identity;
import com.yahoo.messagebus.network.rpc.RPCNetwork;
import com.yahoo.messagebus.network.rpc.RPCNetworkParams;
@@ -24,14 +17,16 @@ import java.util.concurrent.TimeUnit;
public class RemoteServer {
private final Slobrok slobrok;
+ private final String slobrokId;
private final MessageBus mbus;
private final MessageQueue queue = new MessageQueue();
private final DestinationSession session;
- private RemoteServer(Protocol protocol, String identity) {
- this.slobrok = newSlobrok();
+ private RemoteServer(Slobrok slobrok, String slobrokId, Protocol protocol, String identity) {
+ this.slobrok = slobrok;
+ this.slobrokId = slobrok != null ? slobrok.configId() : slobrokId;
mbus = new MessageBus(new RPCNetwork(new RPCNetworkParams()
- .setSlobroksConfig(slobroksConfig())
+ .setSlobrokConfigId(this.slobrokId)
.setIdentity(new Identity(identity))),
new MessageBusParams().addProtocol(protocol));
session = mbus.createDestinationSession(new DestinationSessionParams().setMessageHandler(queue));
@@ -53,22 +48,32 @@ public class RemoteServer {
session.reply(reply);
}
- public SlobroksConfig slobroksConfig() {
- return TestUtils.configFor(slobrok);
+ public String slobrokId() {
+ return slobrokId;
}
public void close() {
session.destroy();
mbus.destroy();
- slobrok.stop();
+ if (slobrok != null) {
+ slobrok.stop();
+ }
}
public static RemoteServer newInstanceWithInternSlobrok() {
- return new RemoteServer(new SimpleProtocol(), "remote");
+ return new RemoteServer(newSlobrok(), null, new SimpleProtocol(), "remote");
+ }
+
+ public static RemoteServer newInstanceWithExternSlobrok(String slobrokId) {
+ return new RemoteServer(null, slobrokId, new SimpleProtocol(), "remote");
+ }
+
+ public static RemoteServer newInstance(String slobrokId, String identity, Protocol protocol) {
+ return new RemoteServer(null, slobrokId, protocol, identity);
}
- public static RemoteServer newInstance(String identity, Protocol protocol) {
- return new RemoteServer(protocol, identity);
+ public static RemoteServer newInstanceWithProtocol(Protocol protocol) {
+ return new RemoteServer(newSlobrok(), null, protocol, "remote");
}
private static Slobrok newSlobrok() {
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ServerTestDriver.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ServerTestDriver.java
index fa0dd37ed13..e59db28e886 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ServerTestDriver.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/ServerTestDriver.java
@@ -42,7 +42,7 @@ public class ServerTestDriver {
}
MessageBusParams mbusParams = new MessageBusParams().addProtocol(protocol);
- RPCNetworkParams netParams = new RPCNetworkParams().setSlobroksConfig(client.slobroksConfig());
+ RPCNetworkParams netParams = new RPCNetworkParams().setSlobrokConfigId(client.slobrokId());
SharedMessageBus mbus = SharedMessageBus.newInstance(mbusParams, netParams);
ServerSession session = mbus.newDestinationSession(new DestinationSessionParams());
server = new MbusServer(driver, session);
@@ -130,6 +130,13 @@ public class ServerTestDriver {
guiceModules);
}
+ public static ServerTestDriver newInstanceWithExternSlobrok(String slobrokId, RequestHandler requestHandler,
+ boolean network, Module... guiceModules)
+ {
+ return new ServerTestDriver(RemoteClient.newInstanceWithExternSlobrok(slobrokId, network),
+ true, requestHandler, new SimpleProtocol(), guiceModules);
+ }
+
public static ServerTestDriver newInactiveInstance(boolean network, Module... guiceModules) {
return new ServerTestDriver(RemoteClient.newInstanceWithInternSlobrok(network), false, null,
new SimpleProtocol(), guiceModules);
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/TestUtils.java b/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/TestUtils.java
deleted file mode 100644
index 85ad241259f..00000000000
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/jdisc/test/TestUtils.java
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.messagebus.jdisc.test;
-
-import com.yahoo.cloud.config.SlobroksConfig;
-import com.yahoo.jrt.Spec;
-import com.yahoo.jrt.slobrok.server.Slobrok;
-
-/**
- * @author jonmv
- */
-public class TestUtils {
-
- private TestUtils() { }
-
- public static SlobroksConfig configFor(Slobrok slobrok) {
- return new SlobroksConfig.Builder().slobrok(new SlobroksConfig.Slobrok.Builder()
- .connectionspec(new Spec("localhost", slobrok.port()).toString()))
- .build();
- }
-
-}
diff --git a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedMessageBus.java b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedMessageBus.java
index 259dd788244..dd135a51378 100644
--- a/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedMessageBus.java
+++ b/container-messagebus/src/main/java/com/yahoo/messagebus/shared/SharedMessageBus.java
@@ -3,8 +3,6 @@ package com.yahoo.messagebus.shared;
import com.yahoo.config.subscription.ConfigGetter;
import com.yahoo.jdisc.AbstractResource;
-
-import java.util.Objects;
import java.util.logging.Level;
import com.yahoo.messagebus.DestinationSessionParams;
import com.yahoo.messagebus.IntermediateSessionParams;
@@ -27,7 +25,8 @@ public class SharedMessageBus extends AbstractResource {
private final MessageBus mbus;
public SharedMessageBus(MessageBus mbus) {
- this.mbus = Objects.requireNonNull(mbus);
+ mbus.getClass(); // throws NullPointerException
+ this.mbus = mbus;
}
public MessageBus messageBus() {