use of com.yahoo.messagebus.test.SimpleProtocol in project vespa by vespa-engine.
the class RoutingTestCase method requireThatOnlyActiveNodesAreAborted.
@Test
public void requireThatOnlyActiveNodesAreAborted() {
SimpleProtocol protocol = new SimpleProtocol();
protocol.addPolicyFactory("Custom", new CustomPolicyFactory(false));
protocol.addPolicyFactory("SetReply", new SimpleProtocol.PolicyFactory() {
@Override
public RoutingPolicy create(String param) {
return new SetReplyPolicy(false, Arrays.asList(ErrorCode.APP_TRANSIENT_ERROR, ErrorCode.APP_TRANSIENT_ERROR, ErrorCode.APP_FATAL_ERROR), param);
}
});
srcServer.mb.putProtocol(protocol);
assertTrue(srcSession.send(createMessage("msg"), Route.parse("[Custom:[SetReply:foo],?bar,dst/session]")).isAccepted());
Reply reply = ((Receptor) srcSession.getReplyHandler()).getReply(60);
assertNotNull(reply);
System.out.println(reply.getTrace());
assertEquals(2, reply.getNumErrors());
assertEquals(ErrorCode.APP_FATAL_ERROR, reply.getError(0).getCode());
assertEquals(ErrorCode.SEND_ABORTED, reply.getError(1).getCode());
}
use of com.yahoo.messagebus.test.SimpleProtocol in project vespa by vespa-engine.
the class RoutingTestCase method requireThatSetReplyWorks.
@Test
public void requireThatSetReplyWorks() {
SimpleProtocol protocol = new SimpleProtocol();
protocol.addPolicyFactory("Select", new CustomPolicyFactory(true, ErrorCode.APP_FATAL_ERROR));
protocol.addPolicyFactory("SetReply", new SimpleProtocol.PolicyFactory() {
@Override
public RoutingPolicy create(String param) {
return new SetReplyPolicy(true, Arrays.asList(ErrorCode.APP_FATAL_ERROR), param);
}
});
srcServer.mb.putProtocol(protocol);
retryPolicy.setEnabled(false);
assertTrue(srcSession.send(createMessage("msg"), Route.parse("[Select:[SetReply:foo],dst/session]")).isAccepted());
Message msg = ((Receptor) dstSession.getMessageHandler()).getMessage(60);
assertNotNull(msg);
dstSession.acknowledge(msg);
Reply reply = ((Receptor) srcSession.getReplyHandler()).getReply(60);
assertNotNull(reply);
System.out.println(reply.getTrace());
assertEquals(1, reply.getNumErrors());
assertEquals(ErrorCode.APP_FATAL_ERROR, reply.getError(0).getCode());
assertEquals("foo", reply.getError(0).getMessage());
}
use of com.yahoo.messagebus.test.SimpleProtocol in project vespa by vespa-engine.
the class SendProxyTestCase method setUp.
@Override
public void setUp() throws UnknownHostException, ListenFailedException {
slobrok = new Slobrok();
dstServer = new TestServer(new MessageBusParams().addProtocol(new SimpleProtocol()), new RPCNetworkParams().setIdentity(new Identity("dst")).setSlobrokConfigId(TestServer.getSlobrokConfig(slobrok)));
dstSession = dstServer.mb.createDestinationSession(new DestinationSessionParams().setName("session").setMessageHandler(new Receptor()));
srcServer = new TestServer(new MessageBusParams().addProtocol(new SimpleProtocol()), new RPCNetworkParams().setSlobrokConfigId(TestServer.getSlobrokConfig(slobrok)));
srcSession = srcServer.mb.createSourceSession(new SourceSessionParams().setTimeout(600.0).setThrottlePolicy(null).setReplyHandler(new Receptor()));
assertTrue(srcServer.waitSlobrok("dst/session", 1));
}
use of com.yahoo.messagebus.test.SimpleProtocol in project vespa by vespa-engine.
the class SimpleTripTestCase method testSimpleTrip.
public void testSimpleTrip() throws ListenFailedException, UnknownHostException {
Slobrok slobrok = new Slobrok();
TestServer server = new TestServer(new MessageBusParams().addProtocol(new SimpleProtocol()), new RPCNetworkParams().setIdentity(new Identity("srv")).setSlobrokConfigId(TestServer.getSlobrokConfig(slobrok)));
DestinationSession dst = server.mb.createDestinationSession(new DestinationSessionParams().setName("session").setMessageHandler(new Receptor()));
SourceSession src = server.mb.createSourceSession(new SourceSessionParams().setTimeout(600.0).setReplyHandler(new Receptor()));
assertTrue(server.waitSlobrok("srv/session", 1));
assertTrue(src.send(new SimpleMessage("msg"), Route.parse("srv/session")).isAccepted());
Message msg = ((Receptor) dst.getMessageHandler()).getMessage(60);
assertNotNull(msg);
assertEquals(SimpleProtocol.NAME, msg.getProtocol());
assertEquals(SimpleProtocol.MESSAGE, msg.getType());
assertEquals("msg", ((SimpleMessage) msg).getValue());
Reply reply = new SimpleReply("reply");
reply.swapState(msg);
dst.reply(reply);
assertNotNull(reply = ((Receptor) src.getReplyHandler()).getReply(60));
assertEquals(SimpleProtocol.NAME, reply.getProtocol());
assertEquals(SimpleProtocol.REPLY, reply.getType());
assertEquals("reply", ((SimpleReply) reply).getValue());
src.destroy();
dst.destroy();
server.destroy();
}
use of com.yahoo.messagebus.test.SimpleProtocol in project vespa by vespa-engine.
the class ProtocolRepositoryTestCase method requireThatPolicyParamIsPartOfCacheKey.
@Test
public void requireThatPolicyParamIsPartOfCacheKey() {
ProtocolRepository repo = new ProtocolRepository();
SimpleProtocol protocol = new SimpleProtocol();
protocol.addPolicyFactory("Custom", new MyFactory());
repo.putProtocol(protocol);
RoutingPolicy prev = repo.getRoutingPolicy(SimpleProtocol.NAME, "Custom", "foo");
assertNotNull(prev);
RoutingPolicy next = repo.getRoutingPolicy(SimpleProtocol.NAME, "Custom", "bar");
assertNotNull(next);
assertNotSame(prev, next);
}
Aggregations