io.vertx.core.eventbus.Message.headers()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(11.0k)|赞(0)|评价(0)|浏览(214)

本文整理了Java中io.vertx.core.eventbus.Message.headers()方法的一些代码示例,展示了Message.headers()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.headers()方法的具体详情如下:
包路径:io.vertx.core.eventbus.Message
类名称:Message
方法名:headers

Message.headers介绍

[英]Multi-map of message headers. Can be empty
[中]消息头的多重映射。可以是空的

代码示例

代码示例来源:origin: eclipse-vertx/vert.x

  1. String creditsAddress = message.headers().get(MessageProducerImpl.CREDIT_ADDRESS_HEADER_NAME);
  2. if (creditsAddress != null) {
  3. eventBus.send(creditsAddress, 1);

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Test
  2. public void testSenderWithOptions() {
  3. String str = TestUtils.randomUnicodeString(100);
  4. WriteStream<String> sender = eb.sender(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value"));
  5. eb.consumer(ADDRESS1).handler(message -> {
  6. if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo"))) {
  7. testComplete();
  8. }
  9. });
  10. sender.write(str);
  11. await();
  12. }

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Test
  2. public void testPublisherWithOptions() {
  3. String str = TestUtils.randomUnicodeString(100);
  4. MessageProducer<String> publisher = eb.publisher(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value"));
  5. assertEquals(ADDRESS1, publisher.address());
  6. AtomicInteger count = new AtomicInteger();
  7. int n = 2;
  8. for (int i = 0;i < n;i++) {
  9. eb.consumer(ADDRESS1).handler(message -> {
  10. if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo")) && count.incrementAndGet() == n) {
  11. testComplete();
  12. }
  13. });
  14. }
  15. publisher.write(str);
  16. await();
  17. }

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Override
  2. protected <T, R> void testSend(T val, R received, Consumer<T> consumer, DeliveryOptions options) {
  3. eb.<T>consumer(ADDRESS1).handler((Message<T> msg) -> {
  4. if (consumer == null) {
  5. assertTrue(msg.isSend());
  6. assertEquals(received, msg.body());
  7. if (options != null && options.getHeaders() != null) {
  8. assertNotNull(msg.headers());
  9. assertEquals(options.getHeaders().size(), msg.headers().size());
  10. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  11. assertEquals(msg.headers().get(entry.getKey()), entry.getValue());
  12. }
  13. }
  14. } else {
  15. consumer.accept(msg.body());
  16. }
  17. testComplete();
  18. });
  19. if (options != null) {
  20. eb.send(ADDRESS1, val, options);
  21. } else {
  22. eb.send(ADDRESS1, val);
  23. }
  24. await();
  25. }

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Test
  2. public void testHeadersCopiedAfterSend() throws Exception {
  3. MultiMap headers = new CaseInsensitiveHeaders();
  4. headers.add("foo", "bar");
  5. vertx.eventBus().consumer(ADDRESS1).handler(msg -> {
  6. assertNotSame(headers, msg.headers());
  7. assertEquals("bar", msg.headers().get("foo"));
  8. testComplete();
  9. });
  10. vertx.eventBus().send(ADDRESS1, "foo", new DeliveryOptions().setHeaders(headers));
  11. headers.remove("foo");
  12. await();
  13. }

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Override
  2. protected <T, R> void testReply(T val, R received, Consumer<R> consumer, DeliveryOptions options) {
  3. String str = TestUtils.randomUnicodeString(1000);
  4. eb.consumer(ADDRESS1).handler(msg -> {
  5. assertEquals(str, msg.body());
  6. if (options != null) {
  7. msg.reply(val, options);
  8. } else {
  9. msg.reply(val);
  10. }
  11. });
  12. eb.send(ADDRESS1, str, onSuccess((Message<R> reply) -> {
  13. if (consumer == null) {
  14. assertTrue(reply.isSend());
  15. assertEquals(received, reply.body());
  16. if (options != null && options.getHeaders() != null) {
  17. assertNotNull(reply.headers());
  18. assertEquals(options.getHeaders().size(), reply.headers().size());
  19. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  20. assertEquals(reply.headers().get(entry.getKey()), entry.getValue());
  21. }
  22. }
  23. } else {
  24. consumer.accept(reply.body());
  25. }
  26. testComplete();
  27. }));
  28. await();
  29. }

代码示例来源:origin: eclipse-vertx/vert.x

  1. assertEquals(received, msg.body());
  2. if (options != null) {
  3. assertNotNull(msg.headers());
  4. int numHeaders = options.getHeaders() != null ? options.getHeaders().size() : 0;
  5. assertEquals(numHeaders, msg.headers().size());
  6. if (numHeaders != 0) {
  7. for (Map.Entry<String, String> entry : options.getHeaders().entries()) {
  8. assertEquals(msg.headers().get(entry.getKey()), entry.getValue());

代码示例来源:origin: eclipse-vertx/vert.x

  1. assertEquals(received, reply.body());
  2. if (options != null && options.getHeaders() != null) {
  3. assertNotNull(reply.headers());
  4. assertEquals(options.getHeaders().size(), reply.headers().size());
  5. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  6. assertEquals(reply.headers().get(entry.getKey()), entry.getValue());

代码示例来源:origin: eclipse-vertx/vert.x

  1. @Test
  2. public void testUpdateDeliveryOptionsOnProducer() {
  3. MessageProducer<String> producer = eb.sender(ADDRESS1);
  4. MessageConsumer<String> consumer = eb.<String>consumer(ADDRESS1);
  5. consumer.completionHandler(v -> {
  6. assertTrue(v.succeeded());
  7. producer.write("no-header");
  8. });
  9. consumer.handler(msg -> {
  10. String body = msg.body();
  11. assertNotNull(body);
  12. switch (body) {
  13. case "no-header":
  14. assertNull(msg.headers().get("header-name"));
  15. producer.deliveryOptions(new DeliveryOptions().addHeader("header-name", "header-value"));
  16. producer.write("with-header");
  17. break;
  18. case "with-header":
  19. assertEquals("header-value", msg.headers().get("header-name"));
  20. testComplete();
  21. break;
  22. default:
  23. fail();
  24. }
  25. });
  26. await();
  27. }

代码示例来源:origin: vert-x3/vertx-web

  1. private void deliverMessage(SockJSSocket sock, String address, Message message) {
  2. JsonObject envelope = new JsonObject().put("type", "rec").put("address", address).put("body", message.body());
  3. if (message.replyAddress() != null) {
  4. envelope.put("replyAddress", message.replyAddress());
  5. }
  6. if (message.headers() != null && !message.headers().isEmpty()) {
  7. JsonObject headersCopy = new JsonObject();
  8. for (String name : message.headers().names()) {
  9. List<String> values = message.headers().getAll(name);
  10. if (values.size() == 1) {
  11. headersCopy.put(name, values.get(0));
  12. } else {
  13. headersCopy.put(name, values);
  14. }
  15. }
  16. envelope.put("headers", headersCopy);
  17. }
  18. checkCallHook(() -> new BridgeEventImpl(BridgeEventType.RECEIVE, envelope, sock),
  19. () -> sock.write(buffer(envelope.encode())),
  20. () -> log.debug("outbound message rejected by bridge event handler"));
  21. }

代码示例来源:origin: vert-x3/vertx-web

  1. private void checkHeaders(Message msg) {
  2. assertEquals("val1", msg.headers().get("hdr1"));
  3. assertEquals("val2", msg.headers().get("hdr2"));
  4. }

代码示例来源:origin: io.vertx/vertx-core

  1. String creditsAddress = message.headers().get(MessageProducerImpl.CREDIT_ADDRESS_HEADER_NAME);
  2. if (creditsAddress != null) {
  3. eventBus.send(creditsAddress, 1);

代码示例来源:origin: io.vertx/vertx-core

  1. @Test
  2. public void testPublisherWithOptions() {
  3. String str = TestUtils.randomUnicodeString(100);
  4. MessageProducer<String> publisher = eb.publisher(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value"));
  5. assertEquals(ADDRESS1, publisher.address());
  6. AtomicInteger count = new AtomicInteger();
  7. int n = 2;
  8. for (int i = 0;i < n;i++) {
  9. eb.consumer(ADDRESS1).handler(message -> {
  10. if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo")) && count.incrementAndGet() == n) {
  11. testComplete();
  12. }
  13. });
  14. }
  15. publisher.write(str);
  16. await();
  17. }

代码示例来源:origin: io.vertx/vertx-core

  1. @Test
  2. public void testSenderWithOptions() {
  3. String str = TestUtils.randomUnicodeString(100);
  4. WriteStream<String> sender = eb.sender(ADDRESS1, new DeliveryOptions().addHeader("foo", "foo_value"));
  5. eb.consumer(ADDRESS1).handler(message -> {
  6. if (message.body().equals(str) && "foo_value".equals(message.headers().get("foo"))) {
  7. testComplete();
  8. }
  9. });
  10. sender.write(str);
  11. await();
  12. }

代码示例来源:origin: io.vertx/vertx-core

  1. @Override
  2. protected <T, R> void testSend(T val, R received, Consumer<T> consumer, DeliveryOptions options) {
  3. eb.<T>consumer(ADDRESS1).handler((Message<T> msg) -> {
  4. if (consumer == null) {
  5. assertTrue(msg.isSend());
  6. assertEquals(received, msg.body());
  7. if (options != null && options.getHeaders() != null) {
  8. assertNotNull(msg.headers());
  9. assertEquals(options.getHeaders().size(), msg.headers().size());
  10. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  11. assertEquals(msg.headers().get(entry.getKey()), entry.getValue());
  12. }
  13. }
  14. } else {
  15. consumer.accept(msg.body());
  16. }
  17. testComplete();
  18. });
  19. if (options != null) {
  20. eb.send(ADDRESS1, val, options);
  21. } else {
  22. eb.send(ADDRESS1, val);
  23. }
  24. await();
  25. }

代码示例来源:origin: io.vertx/vertx-core

  1. @Test
  2. public void testHeadersCopiedAfterSend() throws Exception {
  3. MultiMap headers = new CaseInsensitiveHeaders();
  4. headers.add("foo", "bar");
  5. vertx.eventBus().consumer(ADDRESS1).handler(msg -> {
  6. assertNotSame(headers, msg.headers());
  7. assertEquals("bar", msg.headers().get("foo"));
  8. testComplete();
  9. });
  10. vertx.eventBus().send(ADDRESS1, "foo", new DeliveryOptions().setHeaders(headers));
  11. headers.remove("foo");
  12. await();
  13. }

代码示例来源:origin: io.vertx/vertx-core

  1. @Override
  2. protected <T, R> void testReply(T val, R received, Consumer<R> consumer, DeliveryOptions options) {
  3. String str = TestUtils.randomUnicodeString(1000);
  4. eb.consumer(ADDRESS1).handler(msg -> {
  5. assertEquals(str, msg.body());
  6. if (options != null) {
  7. msg.reply(val, options);
  8. } else {
  9. msg.reply(val);
  10. }
  11. });
  12. eb.send(ADDRESS1, str, onSuccess((Message<R> reply) -> {
  13. if (consumer == null) {
  14. assertTrue(reply.isSend());
  15. assertEquals(received, reply.body());
  16. if (options != null && options.getHeaders() != null) {
  17. assertNotNull(reply.headers());
  18. assertEquals(options.getHeaders().size(), reply.headers().size());
  19. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  20. assertEquals(reply.headers().get(entry.getKey()), entry.getValue());
  21. }
  22. }
  23. } else {
  24. consumer.accept(reply.body());
  25. }
  26. testComplete();
  27. }));
  28. await();
  29. }

代码示例来源:origin: io.vertx/vertx-core

  1. assertEquals(received, msg.body());
  2. if (options != null) {
  3. assertNotNull(msg.headers());
  4. int numHeaders = options.getHeaders() != null ? options.getHeaders().size() : 0;
  5. assertEquals(numHeaders, msg.headers().size());
  6. if (numHeaders != 0) {
  7. for (Map.Entry<String, String> entry : options.getHeaders().entries()) {
  8. assertEquals(msg.headers().get(entry.getKey()), entry.getValue());

代码示例来源:origin: io.vertx/vertx-core

  1. assertEquals(received, reply.body());
  2. if (options != null && options.getHeaders() != null) {
  3. assertNotNull(reply.headers());
  4. assertEquals(options.getHeaders().size(), reply.headers().size());
  5. for (Map.Entry<String, String> entry: options.getHeaders().entries()) {
  6. assertEquals(reply.headers().get(entry.getKey()), entry.getValue());

代码示例来源:origin: io.vertx/vertx-core

  1. @Test
  2. public void testUpdateDeliveryOptionsOnProducer() {
  3. MessageProducer<String> producer = eb.sender(ADDRESS1);
  4. MessageConsumer<String> consumer = eb.<String>consumer(ADDRESS1);
  5. consumer.completionHandler(v -> {
  6. assertTrue(v.succeeded());
  7. producer.write("no-header");
  8. });
  9. consumer.handler(msg -> {
  10. String body = msg.body();
  11. assertNotNull(body);
  12. switch (body) {
  13. case "no-header":
  14. assertNull(msg.headers().get("header-name"));
  15. producer.deliveryOptions(new DeliveryOptions().addHeader("header-name", "header-value"));
  16. producer.write("with-header");
  17. break;
  18. case "with-header":
  19. assertEquals("header-value", msg.headers().get("header-name"));
  20. testComplete();
  21. break;
  22. default:
  23. fail();
  24. }
  25. });
  26. await();
  27. }

相关文章