Example usage for io.vertx.core.eventbus EventBus registerDefaultCodec

List of usage examples for io.vertx.core.eventbus EventBus registerDefaultCodec

Introduction

In this page you can find the example usage for io.vertx.core.eventbus EventBus registerDefaultCodec.

Prototype

@GenIgnore
<T> EventBus registerDefaultCodec(Class<T> clazz, MessageCodec<T, ?> codec);

Source Link

Document

Register a default message codec.

Usage

From source file:co.runrightfast.vertx.core.RunRightFastVerticle.java

License:Apache License

/**
 * An IllegalStateException is thrown if a codec is already registered with the same name. Ignore the exception.
 *
 * @param <REQ>/*from   w  ww  .java2s.co  m*/
 * @param <RESP>
 * @param config
 */
private <REQ extends Message, RESP extends Message> void registerMessageCodecs(
        final MessageConsumerConfig<REQ, RESP> config) {
    final EventBus eventBus = vertx.eventBus();
    try {
        final MessageCodec codec = new ProtobufMessageCodec(
                config.getAddressMessageMapping().getRequestDefaultInstance());
        eventBus.registerDefaultCodec(config.getAddressMessageMapping().getRequestDefaultInstance().getClass(),
                codec);
    } catch (final IllegalStateException e) {
        log.logp(FINE, CLASS_NAME, "registerMessageCodecs", "failed to register codec for request message",
                e.getCause());
    }

    config.getAddressMessageMapping().getResponseDefaultInstance().ifPresent(responseDefaultInstance -> {
        try {
            // TODO: Investigate why Optional type is lost - forced to cast responseDefaultInstance to Message
            final MessageCodec codec = new ProtobufMessageCodec((Message) responseDefaultInstance);
            eventBus.registerDefaultCodec(responseDefaultInstance.getClass(), codec);
        } catch (final IllegalStateException e) {
            log.logp(FINE, CLASS_NAME, "registerMessageCodecs", "failed to register codec for response message",
                    e.getCause());
        }
    });
}

From source file:docoverride.eventbus.Examples.java

License:Open Source License

public void example11(EventBus eventBus, MessageCodec myCodec) {

    eventBus.registerDefaultCodec(MyPOJO.class, myCodec);

    eventBus.send("orders", new MyPOJO());
}

From source file:org.matrixlab.pisces.metastore.VertxEventBus.java

@Override
public void start() throws Exception {
    EventBus eventBus = getVertx().eventBus();

    // Register codec for custom message
    eventBus.registerDefaultCodec(CustomMessage.class, new CustomMessageCodec());

    // Custom message
    //        CustomMessage clusterWideMessage = new CustomMessage(200, "a00000001", "Message sent from publisher!");
    CustomMessage localMessage = new CustomMessage(200, "a0000001", "Local message!");

    // Send a message to [cluster receiver] every second
    //        getVertx().setPeriodic(1000, _id -> {
    //            eventBus.send("cluster-message-receiver", clusterWideMessage, reply -> {
    //                if (reply.succeeded()) {
    //                    CustomMessage replyMessage = (CustomMessage) reply.result().body();
    //                    System.out.println("Received reply: " + replyMessage.getSummary());
    //                } else {
    //                    System.out.println("No reply from cluster receiver");
    //                }
    //            });
    //        });

    // Deploy local receiver
    getVertx().deployVerticle(LocalReceiver.class.getName(), deployResult -> {
        // Deploy succeed
        if (deployResult.succeeded()) {
            // Send a message to [local receiver] every 2 second
            getVertx().setPeriodic(2000, _id -> {
                eventBus.send("local-message-receiver", localMessage, reply -> {
                    if (reply.succeeded()) {
                        CustomMessage replyMessage = (CustomMessage) reply.result().body();
                        System.out.println("Received local reply: " + replyMessage.getSummary());
                    } else {
                        System.out.println("No reply from local receiver");
                    }//from   w w  w.  j a  v a2  s.  c o  m
                });
            });

            // Deploy failed
        } else {

        }
    });
}