diff options
Diffstat (limited to 'container-messagebus/src/main/java/com/yahoo/messagebus')
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() { |