Example usage for io.vertx.core Vertx eventBus

List of usage examples for io.vertx.core Vertx eventBus

Introduction

In this page you can find the example usage for io.vertx.core Vertx eventBus.

Prototype

@CacheReturn
EventBus eventBus();

Source Link

Document

Get the event bus object.

Usage

From source file:app.Main.java

License:Apache License

public static void main(String... args) throws Throwable {

    Vertx vertx = Vertx.vertx();
    TcpEventBusBridge bridge = TcpEventBusBridge.create(vertx,
            new BridgeOptions().addInboundPermitted(new PermittedOptions().setAddressRegex("sample.*"))
                    .addOutboundPermitted(new PermittedOptions().setAddressRegex("sample.*")));

    vertx.eventBus().consumer("sample.dumb.inbox", message -> {
        JsonObject body = (JsonObject) message.body();
        System.out.println(body.encodePrettily());
    });/*from   ww w .  j  a  v  a2s.co  m*/

    MessageProducer<Object> tickPublisher = vertx.eventBus().publisher("sample.clock.ticks");
    vertx.setPeriodic(1000L, id -> {
        tickPublisher.send(new JsonObject().put("tick", id));
    });

    vertx.eventBus().consumer("sample.echo", message -> {
        JsonObject body = (JsonObject) message.body();
        System.out.println("Echoing: " + body.encodePrettily());
        message.reply(body);
    });

    bridge.listen(7000, result -> {
        if (result.failed()) {
            throw new RuntimeException(result.cause());
        } else {
            System.out.println("TCP Event Bus bridge running on port 7000");
        }
    });
}

From source file:com.cyngn.vertx.opentsdb.service.client.OpenTsDbClient.java

License:Apache License

public OpenTsDbClient(String host, int port, Vertx vertx, Consumer<Boolean> onInitialized) {
    NetClientOptions options = new NetClientOptions().setTcpKeepAlive(true);
    netClient = vertx.createNetClient(options);
    connected = false;/* ww w.ja  v a 2 s .co m*/
    consecutiveDisconnects = 0;
    bytesWrittenForPeriod = 0;
    bus = vertx.eventBus();

    this.vertx = vertx;

    this.host = host;
    this.port = port;

    netClient.connect(port, host, connectResult -> {
        onInitialized.accept(connectResult.succeeded());
        if (connectResult.succeeded()) {
            onConnect(connectResult.result());
        } // if we don't succeed initially we'll fail startup of the reporter
    });
}

From source file:com.cyngn.vertx.opentsdb.spi.ScheduledMetrics.java

License:Apache License

public ScheduledMetrics(OpenTsDbOptions options, Vertx vertx) {
    this(options, vertx, vertx.eventBus());
}

From source file:com.groupon.vertx.utils.MainVerticle.java

License:Apache License

static void registerMessageCodecs(final Vertx vertx, final JsonObject config,
        final boolean abortOnFailure) throws CodecRegistrationException {

    final JsonArray messageCodecs = config.getJsonArray(MESSAGE_CODECS_FIELD);
    if (messageCodecs != null) {
        for (final Object messageCodecClassNameObject : messageCodecs.getList()) {
            if (messageCodecClassNameObject instanceof String) {
                final String messageCodecClassName = (String) messageCodecClassNameObject;
                try {
                    final MessageCodec<?, ?> messageCodec = (MessageCodec<?, ?>) Class
                            .forName(messageCodecClassName).newInstance();
                    vertx.eventBus().registerCodec(messageCodec);
                } catch (final InstantiationException | IllegalAccessException | ClassNotFoundException e) {
                    log.warn("registerMessageCodecs", "start",
                            new String[] { "message", "messageCodecClassName" },
                            "Failed to instantiate message codec", messageCodecClassName, e);
                    if (abortOnFailure) {
                        throw new CodecRegistrationException(
                                String.format("Failed to instantiate message codec %s", messageCodecClassName),
                                e);//from  w w w .j  ava2 s . c  o  m
                    }
                }
            } else {
                log.warn("registerMessageCodecs", "start", new String[] { "message", "messageCodecClassName" },
                        "Ignoring non-string message codec class name", messageCodecClassNameObject);
                if (abortOnFailure) {
                    throw new CodecRegistrationException("Ignoring non-string message codec class name");
                }
            }
        }
    }
}

From source file:com.rbmhtechnology.docs.vertx.japi.Documentation.java

License:Open Source License

public static void main(String[] args) {

    StorageProvider storageProvider = new FakeStorageProvider();

    //#adapter-example

    ActorSystem actorSystem = ActorSystem.create("system");
    Vertx vertx = Vertx.vertx();

    ReplicationEndpoint endpoint = ReplicationEndpoint.create("endpoint", set("sourceLog", "destinationLog"),
            id -> LeveldbEventLog.props(id, "log", true), set(), EndpointFilters$.MODULE$.NoFilters(),
            "default", ApplicationVersion.apply("0.1"), actorSystem);

    ActorRef sourceLog = endpoint.logs().apply("sourceLog");
    ActorRef destinationLog = endpoint.logs().apply("destinationLog");

    VertxAdapterConfig config = VertxAdapterConfig.create()
            .addProducer(EventProducer.fromLog(sourceLog).publishTo("address-1").as("vertx-producer"))
            .addProducer(EventProducer.fromEndpoints("address-2").writeTo(destinationLog).as("log-producer"));

    VertxAdapter adapter = VertxAdapter.create(config, vertx, storageProvider, actorSystem);

    // receive events from sourceLog...
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        final Event event = message.body();

        // ...and persist the event in destinationLog
        vertx.eventBus().send("address-2", event);
    });/*w w w .j a  v  a 2  s  .  c  om*/

    adapter.start();
    //#

    //#vertx-event-producer
    EventProducer.fromLog(sourceLog).publishTo("address-1").as("vertx-producer");
    //#

    //#log-event-producer
    EventProducer.fromEndpoints("address-2").writeTo(destinationLog).as("log-producer");
    //#

    //#event-processing-vertx-producer
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        Event event = message.body();
    });
    //#

    //#event-processing-log-producer
    vertx.eventBus().send("address-2", new Event("event-1"));
    //#

    //#vertx-publish-producer
    EventProducer.fromLog(sourceLog).publishTo(ev -> {
        if (ev instanceof Event) {
            return Optional.of("address1");
        } else if (ev instanceof Event2) {
            return Optional.of("address2");
        }
        return Optional.of("default-address");
    }).as("vertx-publish-producer");
    //#

    //#vertx-ptp-producer-at-most-once
    EventProducer.fromLog(sourceLog).sendTo(ev -> {
        if (ev instanceof Event) {
            return Optional.of("address1");
        }
        if (ev instanceof Event2) {
            return Optional.of("address2");
        }
        return Optional.of("default-address");
    }).as("vertx-ptp-producer");
    //#

    //#vertx-ptp-producer-at-least-once
    EventProducer.fromLog(sourceLog).sendTo("address-1")
            .atLeastOnce(ConfirmationType.Batch.withSize(5), Duration.ofSeconds(5)).as("vertx-ptp-producer");
    //#

    //#vertx-ptp-producer-handler
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        Event event = message.body();
        // confirm event receipt
        message.reply(Confirmation.create());
    });
    //#

    //#log-event-multiple-producer
    EventProducer.fromEndpoints("address-1", "address-2").writeTo(destinationLog, ev -> {
        if (ev instanceof Event) {
            return true;
        }
        if (ev instanceof Event2) {
            return true;
        }
        return false;
    }).as("log-producer");
    //#

    //#log-producer-handler
    vertx.eventBus().<ProcessingResult>send("address-1", new Event("event-1"), ar -> {
        if (ar.succeeded()) {
            ProcessingResult result = ar.result().body();
        } else {
            // write failed
            Throwable failure = ar.cause();
        }
    });
    //#

    //#message-codec
    VertxAdapterConfig.create().registerDefaultCodecFor(Event.class, Event2.class);
    //#

    //#event-metadata-from-headers
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        MultiMap headers = message.headers();

        String localLogId = headers.get(EventMetadata.Headers.LOCAL_LOG_ID);
        Long localSeqNr = Long.valueOf(headers.get(EventMetadata.Headers.LOCAL_SEQUENCE_NR));
        String emitterId = headers.get(EventMetadata.Headers.EMITTER_ID);
    });
    //#

    //#event-metadata-from-helper
    vertx.eventBus().<Event>consumer("address-1").handler(message -> {
        EventMetadata metadata = EventMetadata.fromHeaders(message.headers()).get();

        String localLogId = metadata.localLogId();
        Long localSeqNr = metadata.localSequenceNr();
        String emitterId = metadata.emitterId();
    });
    //#
}

From source file:com.sagalasan.swivel.control.Controller.java

License:Apache License

@Inject
public void setVertx(Vertx vertx) {
    this.vertx = vertx;
    vertx.deployVerticle(this, res -> {
        deploymentID = res.result();/*from   w  w  w .j  a  v  a2s .c om*/
        System.out.println(this.getClass().getSimpleName() + " deployed");
        vertx.eventBus().send(CurrentTimeService.RECEIVE, new Ping(), reply -> {
            if (reply.succeeded()) {
                System.out.println("Reply successful");
                Time time = (Time) reply.result().body();
                onCurrentTimeReceived(time.getTime());
            }
        });
        onDeploy();
    });
}

From source file:de.qreator.matheserver.Start.java

public static void main(String[] s) {
    int port = 8080;
    if (s.length == 1) {
        port = Integer.parseInt(s[0]); // port festlegen: 

    }/*from  w  ww  . java 2  s. c  o  m*/

    Vertx vertx = Vertx.vertx();

    io.vertx.core.http.HttpServer server = vertx.createHttpServer();

    Router router = Router.router(vertx);
    SockJSHandler sockJSHandler = SockJSHandler.create(vertx);
    PermittedOptions[] inboundPermitted = new PermittedOptions[3];
    inboundPermitted[0] = new PermittedOptions().setAddress("matheserver");
    inboundPermitted[1] = new PermittedOptions().setAddress("matheserver.spielfeld");
    inboundPermitted[2] = new PermittedOptions().setAddressRegex("matheserver.spieler\\..+");

    BridgeOptions options = new BridgeOptions();
    for (int i = 0; i < 3; i++) {
        options.addInboundPermitted(inboundPermitted[i]);
        options.addOutboundPermitted(inboundPermitted[i]);
    }

    sockJSHandler.bridge(options);

    router.route("/bridge/*").handler(sockJSHandler);
    router.route("/*").handler(StaticHandler.create()); // webroot unter src/main/resources/webroot
    server.requestHandler(router::accept).listen(port);

    EventBus eb = vertx.eventBus();

    MessageConsumer<JsonObject> consumer = eb.consumer("matheserver");
    consumer.handler(message -> {
        String typ = (message.body()).getString("typ");
        if (typ.equals("einaus")) {
            try {
                Runtime.getRuntime().exec("sudo init 6");
                System.out.println("System wird neu gestartet ...");
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    });

    try {
        System.out.println("Spieler bitte mit Browser anmelden unter \nhttp://"
                + InetAddress.getLocalHost().getHostAddress() + ":" + port + "/spieler.html");

    } catch (Exception e) {
        e.printStackTrace();

    }
}

From source file:eu.rethink.mn.pipeline.PipeRegistry.java

License:Apache License

public PipeRegistry(Vertx vertx, ClusterManager mgr, String domain) {
    this.domain = domain;
    this.mgr = mgr;

    this.eb = vertx.eventBus();
    this.eb.registerDefaultCodec(PipeContext.class, new MessageCodec<PipeContext, PipeContext>() {

        @Override// ww w . ja v a2 s. co m
        public byte systemCodecID() {
            return -1;
        }

        @Override
        public String name() {
            return PipeContext.class.getName();
        }

        @Override
        public PipeContext transform(PipeContext ctx) {
            return ctx;
        }

        @Override
        public void encodeToWire(Buffer buffer, PipeContext ctx) {
            final String msg = ctx.getMessage().toString();
            logger.info("encodeToWire: " + msg);
            buffer.appendString(msg);
        }

        @Override
        public PipeContext decodeFromWire(int pos, Buffer buffer) {
            final String msg = buffer.getString(0, buffer.length() - 1);
            logger.info("decodeFromWire: " + msg);
            return null; //not needed in this architecture
        }
    });

    this.components = new HashMap<String, IComponent>();
    this.sessions = new HashMap<String, PipeSession>();

    this.urlSpace = mgr.getSyncMap("urlSpace");
}

From source file:eventbusbridge.Main.java

License:Apache License

public static void main(String[] args) {
    final Vertx vertx = Vertx.vertx();
    final EventBus eb = vertx.eventBus();
    TcpEventBusBridge bridge = TcpEventBusBridge.create(vertx,
            new BridgeOptions().addOutboundPermitted(new PermittedOptions().setAddressRegex("test.*"))
                    .addInboundPermitted(new PermittedOptions().setAddressRegex("test.*")));

    final int port = Integer.parseInt(args[0]);
    final File semaphoreFile;
    if (args.length > 1) {
        semaphoreFile = new File(args[1]);
    } else {//from  w  w w.java  2  s .  co m
        semaphoreFile = null;
    }

    bridge.listen(port, res -> {
        System.out.println("Vert.x bridge started on " + port);
        if (semaphoreFile != null) {
            try {
                semaphoreFile.createNewFile();
            } catch (IOException e) {
                System.err.println(e);
            }
        }
        vertx.setPeriodic(100, timer -> {
            //System.out.println("Sending the time...");
            eb.publish("test.time", new JsonObject().put("now", System.currentTimeMillis()));
            eb.send("test.time-send", new JsonObject().put("now", System.currentTimeMillis()));
        });

        vertx.eventBus().consumer("test.echo", m -> {
            //System.out.println("echo: " + m.body());
            JsonObject reply = new JsonObject();
            JsonObject headers = new JsonObject();
            m.headers().forEach(e -> headers.put(e.getKey(), e.getValue()));

            reply.put("original-body", m.body()).put("original-headers", headers);
            //System.out.println("REPLY: " + m.headers() + " | " + reply);
            m.reply(reply);
            // send a copy to another address as well to test
            // non-replyable messages
            if (m.isSend()) {
                eb.send("test.echo.responses", reply);
            } else {
                eb.publish("test.echo.responses", reply);
            }
        });

        vertx.eventBus().consumer("test.ping-pong", Main::pingPong);
    });
}

From source file:examples.client.Examples.java

License:Open Source License

public void example0_1_1(Vertx vertx, JsonObject config) {
    JsonObject save = new JsonObject().put("collection", "books").put("document",
            new JsonObject().put("title", "The Hobbit"));

    vertx.eventBus().send("vertx.io.vertx.ext.marklogic", save,
            new DeliveryOptions().addHeader("action", "save"), saveResult -> {
                if (saveResult.succeeded()) {
                    String id = (String) saveResult.result().body();
                    System.out.println("Saved book with id " + id);
                } else {
                    saveResult.cause().printStackTrace();
                }//from www. j av a2s.  co  m
            });
}