@Test public void testPublisher() { String str = TestUtils.randomUnicodeString(100); MessageProducer<String> publisher = eb.publisher(ADDRESS1); 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) && count.incrementAndGet() == n) { testComplete(); } }); } publisher.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(); }
@Test public void testArgumentValidation() throws Exception { assertNullPointerException(() -> eb.send(null, "")); assertNullPointerException(() -> eb.send(null, "", handler -> {})); assertNullPointerException(() -> eb.send(null, "", new DeliveryOptions())); assertNullPointerException(() -> eb.send("", "", (DeliveryOptions) null)); assertNullPointerException(() -> eb.send(null, "", new DeliveryOptions(), handler -> {})); assertNullPointerException(() -> eb.send("", "", null, handler -> {})); assertNullPointerException(() -> eb.publish(null, "")); assertNullPointerException(() -> eb.publish(null, "", new DeliveryOptions())); assertNullPointerException(() -> eb.publish("", "", null)); assertNullPointerException(() -> eb.consumer(null)); assertNullPointerException(() -> eb.consumer(null, msg -> {})); assertNullPointerException(() -> eb.consumer(ADDRESS1, null)); assertNullPointerException(() -> eb.localConsumer(null)); assertNullPointerException(() -> eb.localConsumer(null, msg -> {})); assertNullPointerException(() -> eb.localConsumer(ADDRESS1, null)); assertNullPointerException(() -> eb.sender(null)); assertNullPointerException(() -> eb.sender(null, new DeliveryOptions())); assertNullPointerException(() -> eb.publisher("", null)); assertNullPointerException(() -> eb.publisher(null, new DeliveryOptions())); assertNullPointerException(() -> eb.registerCodec(null)); assertNullPointerException(() -> eb.unregisterCodec(null)); assertNullPointerException(() -> eb.registerDefaultCodec(null, new MyPOJOEncoder1())); assertNullPointerException(() -> eb.registerDefaultCodec(Object.class, null)); assertNullPointerException(() -> eb.unregisterDefaultCodec(null)); }
@Override public <T> WriteStream<T> publisher(String address) { return this.delegate.publisher(address); }
@Override public <T> WriteStream<T> publisher(String address, DeliveryOptions options) { return this.delegate.publisher(address, options); }
@Test public void testPublisher() { String str = TestUtils.randomUnicodeString(100); MessageProducer<String> publisher = eb.publisher(ADDRESS1); 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) && count.incrementAndGet() == n) { testComplete(); } }); } publisher.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(); }
/** * Like {@link io.vertx.rxjava.core.eventbus.EventBus#publisher} but specifying delivery options that will be used for configuring the delivery of * the message. * @param address the address to publish it to * @param options the delivery options * @return The publisher */ public <T> io.vertx.rxjava.core.eventbus.MessageProducer<T> publisher(String address, DeliveryOptions options) { io.vertx.rxjava.core.eventbus.MessageProducer<T> ret = io.vertx.rxjava.core.eventbus.MessageProducer.newInstance(delegate.publisher(address, options), io.vertx.lang.rx.TypeArg.unknown()); return ret; }
/** * Like {@link io.vertx.rxjava.core.eventbus.EventBus#publisher} but specifying delivery options that will be used for configuring the delivery of * the message. * @param address the address to publish it to * @param options the delivery options * @return The publisher */ public <T> io.vertx.rxjava.core.eventbus.MessageProducer<T> publisher(String address, DeliveryOptions options) { io.vertx.rxjava.core.eventbus.MessageProducer<T> ret = io.vertx.rxjava.core.eventbus.MessageProducer.newInstance(delegate.publisher(address, options), io.vertx.lang.rx.TypeArg.unknown()); return ret; }
/** * Create a message publisher against the specified address. * <p> * The returned publisher will invoke the {@link io.vertx.rxjava.core.eventbus.EventBus#publish} * method when the stream {@link io.vertx.rxjava.core.streams.WriteStream#write} method is called with the publisher * address and the provided data. * @param address The address to publish it to * @return The publisher */ public <T> io.vertx.rxjava.core.eventbus.MessageProducer<T> publisher(String address) { io.vertx.rxjava.core.eventbus.MessageProducer<T> ret = io.vertx.rxjava.core.eventbus.MessageProducer.newInstance(delegate.publisher(address), io.vertx.lang.rx.TypeArg.unknown()); return ret; }
/** * Create a message publisher against the specified address. * <p> * The returned publisher will invoke the {@link io.vertx.rxjava.core.eventbus.EventBus#publish} * method when the stream {@link io.vertx.rxjava.core.streams.WriteStream#write} method is called with the publisher * address and the provided data. * @param address The address to publish it to * @return The publisher */ public <T> io.vertx.rxjava.core.eventbus.MessageProducer<T> publisher(String address) { io.vertx.rxjava.core.eventbus.MessageProducer<T> ret = io.vertx.rxjava.core.eventbus.MessageProducer.newInstance(delegate.publisher(address), io.vertx.lang.rx.TypeArg.unknown()); return ret; }
public static <T>io.vertx.core.eventbus.MessageProducer<java.lang.Object> publisher(io.vertx.core.eventbus.EventBus j_receiver, java.lang.String address, java.util.Map<String, Object> options) { return io.vertx.core.impl.ConversionHelper.fromObject(j_receiver.publisher(address, options != null ? new io.vertx.core.eventbus.DeliveryOptions(io.vertx.core.impl.ConversionHelper.toJsonObject(options)) : null)); } }
public <T extends E> void publish(Class<T> clazz, Publisher<T> publisher) { requireNonNull(clazz); requireNonNull(publisher); String eventName = eventBusBridgeEvents.toOutgoingEventName(clazz.getName()); ReactiveReadStream<Object> rrs = ReactiveReadStream.readStream(); Flux.from(publisher) .map(Json::encode) .retry() .subscribe(rrs); MessageProducer<Object> messageProducer = vertx.eventBus().publisher(eventName); Pump pump = Pump.pump(rrs, messageProducer); pump.start(); }
public <T extends E> void publish(Class<T> clazz, Publisher<T> publisher) { requireNonNull(clazz); requireNonNull(publisher); ReactiveReadStream<Object> rrs = ReactiveReadStream.readStream(); Flux.from(publisher) .map(Json::encode) .subscribe(rrs); MessageProducer<Object> messageProducer = vertx.eventBus().publisher(clazz.getName()); Pump pump = Pump.pump(rrs, messageProducer); pump.start(); rrs.endHandler(event -> { pump.stop(); }); }
@Override public void start() throws Exception { // Register specific codec vertx.eventBus().registerCodec(new ReportableMessageCodec()); producer = vertx.eventBus() .<Reportable>publisher( EVENT_BUS_ADDRESS, new DeliveryOptions() .setCodecName(ReportableMessageCodec.CODEC_NAME)) .exceptionHandler( throwable -> LOGGER.error("Unexpected error while sending a reportable element", throwable)); }
@Test public void testArgumentValidation() throws Exception { assertNullPointerException(() -> eb.send(null, "")); assertNullPointerException(() -> eb.send(null, "", handler -> {})); assertNullPointerException(() -> eb.send(null, "", new DeliveryOptions())); assertNullPointerException(() -> eb.send("", "", (DeliveryOptions) null)); assertNullPointerException(() -> eb.send(null, "", new DeliveryOptions(), handler -> {})); assertNullPointerException(() -> eb.send("", "", null, handler -> {})); assertNullPointerException(() -> eb.publish(null, "")); assertNullPointerException(() -> eb.publish(null, "", new DeliveryOptions())); assertNullPointerException(() -> eb.publish("", "", null)); assertNullPointerException(() -> eb.consumer(null)); assertNullPointerException(() -> eb.consumer(null, msg -> {})); assertNullPointerException(() -> eb.consumer(ADDRESS1, null)); assertNullPointerException(() -> eb.localConsumer(null)); assertNullPointerException(() -> eb.localConsumer(null, msg -> {})); assertNullPointerException(() -> eb.localConsumer(ADDRESS1, null)); assertNullPointerException(() -> eb.sender(null)); assertNullPointerException(() -> eb.sender(null, new DeliveryOptions())); assertNullPointerException(() -> eb.publisher("", null)); assertNullPointerException(() -> eb.publisher(null, new DeliveryOptions())); assertNullPointerException(() -> eb.registerCodec(null)); assertNullPointerException(() -> eb.unregisterCodec(null)); assertNullPointerException(() -> eb.registerDefaultCodec(null, new MyPOJOEncoder1())); assertNullPointerException(() -> eb.registerDefaultCodec(Object.class, null)); assertNullPointerException(() -> eb.unregisterDefaultCodec(null)); }
public void init() { deliveryOpt = new DeliveryOptions().addHeader(BR_HEADER, bridgeUUID); if(tenant!=null) { deliveryOpt.addHeader(MQTTSession.TENANT_HEADER, tenant); } consumer = eventBus.consumer(eventBusAddress); producer = eventBus.publisher(eventBusAddress, deliveryOpt); fromRemoteTcpToLocalBus = new MqttPump(netSocket, producer); netSocketWrapper = new MQTTNetSocketWrapper(netSocket); }
public void init() { deliveryOpt = new DeliveryOptions().addHeader(BR_HEADER, bridgeUUID); if(tenant!=null) { deliveryOpt.addHeader(MQTTSession.TENANT_HEADER, tenant); } consumer = eventBus.consumer(eventBusAddress); producer = eventBus.publisher(eventBusAddress, deliveryOpt); fromRemoteTcpToLocalBus = new MqttPump(webSocket, producer); BodyReadStreamWithFilter<Buffer> consumerFiltered = new BodyReadStreamWithFilter<>( consumer, bufferMessage -> !isBridged(bufferMessage) && tenantMatch(bufferMessage)); fromLocalBusToRemoteTcp = new MqttPump(consumerFiltered, webSocket); // netSocketWrapper = new MQTTWebSocketWrapper(webSocket); }