String creditsAddress = message.headers().get(MessageProducerImpl.CREDIT_ADDRESS_HEADER_NAME); if (creditsAddress != null) { eventBus.send(creditsAddress, 1);
@Test public void testSenderWithOptions() { String str = TestUtils.randomUnicodeString(100); WriteStream<String> sender = eb.sender(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value")); eb.consumer(ADDRESS1).handler(message -> { if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo"))) { testComplete(); } }); sender.write(str); await(); }
@Test public void testPublisherWithOptions() { String str = TestUtils.randomUnicodeString(100); MessageProducer<String> publisher = eb.publisher(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value")); assertEquals(ADDRESS1, publisher.address()); AtomicInteger count = new AtomicInteger(); int n = 2; for (int i = 0;i < n;i++) { eb.consumer(ADDRESS1).handler(message -> { if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo")) && count.incrementAndGet() == n) { testComplete(); } }); } publisher.write(str); await(); }
@Override protected <T, R> void testSend(T val, R received, Consumer<T> consumer, DeliveryOptions options) { eb.<T>consumer(ADDRESS1).handler((Message<T> msg) -> { if (consumer == null) { assertTrue(msg.isSend()); assertEquals(received, msg.body()); if (options != null && options.getHeaders() != null) { assertNotNull(msg.headers()); assertEquals(options.getHeaders().size(), msg.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(msg.headers().get(entry.getKey()), entry.getValue()); } } } else { consumer.accept(msg.body()); } testComplete(); }); if (options != null) { eb.send(ADDRESS1, val, options); } else { eb.send(ADDRESS1, val); } await(); }
@Test public void testHeadersCopiedAfterSend() throws Exception { MultiMap headers = new CaseInsensitiveHeaders(); headers.add("foo", "bar"); vertx.eventBus().consumer(ADDRESS1).handler(msg -> { assertNotSame(headers, msg.headers()); assertEquals("bar", msg.headers().get("foo")); testComplete(); }); vertx.eventBus().send(ADDRESS1, "foo", new DeliveryOptions().setHeaders(headers)); headers.remove("foo"); await(); }
@Override protected <T, R> void testReply(T val, R received, Consumer<R> consumer, DeliveryOptions options) { String str = TestUtils.randomUnicodeString(1000); eb.consumer(ADDRESS1).handler(msg -> { assertEquals(str, msg.body()); if (options != null) { msg.reply(val, options); } else { msg.reply(val); } }); eb.send(ADDRESS1, str, onSuccess((Message<R> reply) -> { if (consumer == null) { assertTrue(reply.isSend()); assertEquals(received, reply.body()); if (options != null && options.getHeaders() != null) { assertNotNull(reply.headers()); assertEquals(options.getHeaders().size(), reply.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(reply.headers().get(entry.getKey()), entry.getValue()); } } } else { consumer.accept(reply.body()); } testComplete(); })); await(); }
assertEquals(received, msg.body()); if (options != null) { assertNotNull(msg.headers()); int numHeaders = options.getHeaders() != null ? options.getHeaders().size() : 0; assertEquals(numHeaders, msg.headers().size()); if (numHeaders != 0) { for (Map.Entry<String, String> entry : options.getHeaders().entries()) { assertEquals(msg.headers().get(entry.getKey()), entry.getValue());
assertEquals(received, reply.body()); if (options != null && options.getHeaders() != null) { assertNotNull(reply.headers()); assertEquals(options.getHeaders().size(), reply.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(reply.headers().get(entry.getKey()), entry.getValue());
@Test public void testUpdateDeliveryOptionsOnProducer() { MessageProducer<String> producer = eb.sender(ADDRESS1); MessageConsumer<String> consumer = eb.<String>consumer(ADDRESS1); consumer.completionHandler(v -> { assertTrue(v.succeeded()); producer.write("no-header"); }); consumer.handler(msg -> { String body = msg.body(); assertNotNull(body); switch (body) { case "no-header": assertNull(msg.headers().get("header-name")); producer.deliveryOptions(new DeliveryOptions().addHeader("header-name", "header-value")); producer.write("with-header"); break; case "with-header": assertEquals("header-value", msg.headers().get("header-name")); testComplete(); break; default: fail(); } }); await(); }
private void deliverMessage(SockJSSocket sock, String address, Message message) { JsonObject envelope = new JsonObject().put("type", "rec").put("address", address).put("body", message.body()); if (message.replyAddress() != null) { envelope.put("replyAddress", message.replyAddress()); } if (message.headers() != null && !message.headers().isEmpty()) { JsonObject headersCopy = new JsonObject(); for (String name : message.headers().names()) { List<String> values = message.headers().getAll(name); if (values.size() == 1) { headersCopy.put(name, values.get(0)); } else { headersCopy.put(name, values); } } envelope.put("headers", headersCopy); } checkCallHook(() -> new BridgeEventImpl(BridgeEventType.RECEIVE, envelope, sock), () -> sock.write(buffer(envelope.encode())), () -> log.debug("outbound message rejected by bridge event handler")); }
String creditsAddress = message.headers().get(MessageProducerImpl.CREDIT_ADDRESS_HEADER_NAME); if (creditsAddress != null) { eventBus.send(creditsAddress, 1);
@Test public void testPublisherWithOptions() { String str = TestUtils.randomUnicodeString(100); MessageProducer<String> publisher = eb.publisher(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value")); assertEquals(ADDRESS1, publisher.address()); AtomicInteger count = new AtomicInteger(); int n = 2; for (int i = 0;i < n;i++) { eb.consumer(ADDRESS1).handler(message -> { if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo")) && count.incrementAndGet() == n) { testComplete(); } }); } publisher.write(str); await(); }
@Test public void testSenderWithOptions() { String str = TestUtils.randomUnicodeString(100); WriteStream<String> sender = eb.sender(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value")); eb.consumer(ADDRESS1).handler(message -> { if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo"))) { testComplete(); } }); sender.write(str); await(); }
@Override protected <T, R> void testSend(T val, R received, Consumer<T> consumer, DeliveryOptions options) { eb.<T>consumer(ADDRESS1).handler((Message<T> msg) -> { if (consumer == null) { assertTrue(msg.isSend()); assertEquals(received, msg.body()); if (options != null && options.getHeaders() != null) { assertNotNull(msg.headers()); assertEquals(options.getHeaders().size(), msg.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(msg.headers().get(entry.getKey()), entry.getValue()); } } } else { consumer.accept(msg.body()); } testComplete(); }); if (options != null) { eb.send(ADDRESS1, val, options); } else { eb.send(ADDRESS1, val); } await(); }
@Test public void testHeadersCopiedAfterSend() throws Exception { MultiMap headers = new CaseInsensitiveHeaders(); headers.add("foo", "bar"); vertx.eventBus().consumer(ADDRESS1).handler(msg -> { assertNotSame(headers, msg.headers()); assertEquals("bar", msg.headers().get("foo")); testComplete(); }); vertx.eventBus().send(ADDRESS1, "foo", new DeliveryOptions().setHeaders(headers)); headers.remove("foo"); await(); }
@Override protected <T, R> void testReply(T val, R received, Consumer<R> consumer, DeliveryOptions options) { String str = TestUtils.randomUnicodeString(1000); eb.consumer(ADDRESS1).handler(msg -> { assertEquals(str, msg.body()); if (options != null) { msg.reply(val, options); } else { msg.reply(val); } }); eb.send(ADDRESS1, str, onSuccess((Message<R> reply) -> { if (consumer == null) { assertTrue(reply.isSend()); assertEquals(received, reply.body()); if (options != null && options.getHeaders() != null) { assertNotNull(reply.headers()); assertEquals(options.getHeaders().size(), reply.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(reply.headers().get(entry.getKey()), entry.getValue()); } } } else { consumer.accept(reply.body()); } testComplete(); })); await(); }
assertEquals(received, msg.body()); if (options != null) { assertNotNull(msg.headers()); int numHeaders = options.getHeaders() != null ? options.getHeaders().size() : 0; assertEquals(numHeaders, msg.headers().size()); if (numHeaders != 0) { for (Map.Entry<String, String> entry : options.getHeaders().entries()) { assertEquals(msg.headers().get(entry.getKey()), entry.getValue());
assertEquals(received, reply.body()); if (options != null && options.getHeaders() != null) { assertNotNull(reply.headers()); assertEquals(options.getHeaders().size(), reply.headers().size()); for (Map.Entry<String, String> entry: options.getHeaders().entries()) { assertEquals(reply.headers().get(entry.getKey()), entry.getValue());
@Test public void testUpdateDeliveryOptionsOnProducer() { MessageProducer<String> producer = eb.sender(ADDRESS1); MessageConsumer<String> consumer = eb.<String>consumer(ADDRESS1); consumer.completionHandler(v -> { assertTrue(v.succeeded()); producer.write("no-header"); }); consumer.handler(msg -> { String body = msg.body(); assertNotNull(body); switch (body) { case "no-header": assertNull(msg.headers().get("header-name")); producer.deliveryOptions(new DeliveryOptions().addHeader("header-name", "header-value")); producer.write("with-header"); break; case "with-header": assertEquals("header-value", msg.headers().get("header-name")); testComplete(); break; default: fail(); } }); await(); }