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

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

Introduction

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

Prototype

<T> MessageConsumer<T> consumer(String address, Handler<Message<T>> handler);

Source Link

Document

Create a consumer and register it against the specified address.

Usage

From source file:com.tad.vertx.events.CDIEventBusBridge.java

License:Apache License

@Override
public void onVertxStart() {
    EventBus eb = vertx.eventBus();
    eb.consumer("some-address", m -> beanManager.fireEvent(m.body()));
    vertx.setPeriodic(1000, v -> eb.publish("some-address", "Some text here " + v));
    vertx.setPeriodic(1500, v -> eb.publish("some-address", new JsonObject().put("foo", "bar " + v)));
}

From source file:examples.EventBusExamples.java

License:Open Source License

public void example1(Vertx vertx) {
    EventBus eb = vertx.eventBus();

    eb.consumer("news.uk.sport", message -> {
        System.out.println("I have received a message: " + message.body());
    });//w w  w.  j  a  v a2  s . c o m
}

From source file:io.flowly.core.verticles.VerticleUtils.java

License:Open Source License

private static <T> void registerHandlers(EventBus eventBus, Logger logger,
        Queue<ConsumerRegistration<T>> registrations, Future<Void> future) {
    ConsumerRegistration<T> registration = registrations.remove();
    if (registration.isLocalOnly()) {
        eventBus.localConsumer(registration.getAddress(), registration.getMessageHandler());
        recursivelyRegisterHandlers(eventBus, logger, registrations, future);
    } else {/*w w w.  j a  v  a 2s . c om*/
        eventBus.consumer(registration.getAddress(), registration.getMessageHandler())
                .completionHandler(result -> {
                    if (result.succeeded()) {
                        recursivelyRegisterHandlers(eventBus, logger, registrations, future);
                    } else {
                        Failure failure = new Failure(100,
                                "Failed to register handler: " + registration.getAddress(), result.cause());
                        logger.error(failure.getError(), failure.getCause());
                        future.fail(failure);
                    }
                });
    }
}

From source file:io.github.jdocker.serviceregistry.ServiceRegistry.java

License:Apache License

public void start(Future<Void> startFuture) throws Exception {
    clustered = config().getBoolean("clustered", false);
    EventBus eb = vertx.eventBus();

    eb.consumer(REG_ADDRESS_GET, (Handler<Message<String>>) message -> {
        System.out.println("I have received a message: " + message.body());
        String endpointName = message.body();
        findEndpointAndReply(endpointName, message);

    });/*w w  w .  j  ava2 s . c om*/

    eb.consumer(REG_ADDRESS_PUT, (Handler<Message<String>>) message -> {
        System.out.println("I have received a message: " + message.body());
        Endpoint endpoint = Json.decodeValue(message.body(), Endpoint.class);
        registerEndpoint(endpoint);
    });

    startFuture.complete();
}

From source file:microservices.DataSetService.java

@Override
public void start() {
    //blablabla/*from   w ww.j  av  a  2s.c om*/

    ArrayList<SockJSSocket> sockets = new ArrayList<>();

    Router router = Router.router(vertx);

    SockJSHandlerOptions options = new SockJSHandlerOptions().setHeartbeatInterval(2000);

    SockJSHandler sockJSHandler = SockJSHandler.create(vertx, options);

    sockJSHandler.socketHandler(sockJSSocket -> {
        System.out.println("New connection!");
        //sockJSSocket.handler(sockJSSocket::write);//echo
        sockets.add(sockJSSocket);
    });

    router.route("/myapp/*").handler(sockJSHandler);

    vertx.createHttpServer().requestHandler(router::accept).listen(5566);

    EventBus eb = vertx.eventBus();

    eb.consumer("feed", message -> {
        System.out.println("Received news on consumer 1: " + message.body());
        for (SockJSSocket s : sockets) {
            s.write(Buffer.buffer(message.body().toString()));
        }
    });

    System.out.println("DataSet receiver ready!");

}

From source file:org.jberet.vertx.cluster.PartitionVerticle.java

License:Open Source License

@Override
public void start() throws Exception {
    final JobOperatorImpl jobOperator = new JobOperatorImpl();
    final BatchEnvironment batchEnvironment = jobOperator.getBatchEnvironment();
    final JobRepository jobRepository = jobOperator.getJobRepository();
    final ArtifactFactoryWrapper artifactFactory = new ArtifactFactoryWrapper(
            batchEnvironment.getArtifactFactory());

    final EventBus eventBus = vertx.eventBus();
    final Handler<Message<Buffer>> receivingPartitionHandler = new Handler<Message<Buffer>>() {
        public void handle(Message<Buffer> message) {
            Buffer body = message.body();
            final byte[] bytes = body.getBytes();
            final PartitionInfo partitionInfo;
            try {
                partitionInfo = (PartitionInfo) BatchUtil.bytesToSerializableObject(bytes,
                        batchEnvironment.getClassLoader());
            } catch (Exception e) {
                throw VertxClusterMessages.MESSAGES.failedToReceivePartitionInfo(e);
            }// w  w w. j  a v  a 2 s . c  o m

            final JobExecutionImpl jobExecution = partitionInfo.getJobExecution();
            final Step step = partitionInfo.getStep();
            final PartitionExecutionImpl partitionExecution = partitionInfo.getPartitionExecution();
            final String stopRequestTopicName = PartitionInfo
                    .getStopRequestTopicName(jobExecution.getExecutionId());
            eventBus.consumer(stopRequestTopicName, new Handler<Message<Boolean>>() {
                @Override
                public void handle(final Message<Boolean> stopMessage) {
                    VertxClusterLogger.LOGGER.receivedStopRequest(jobExecution.getExecutionId(), step.getId(),
                            partitionExecution.getStepExecutionId(), partitionExecution.getPartitionId());
                    jobExecution.stop();
                }
            });

            VertxClusterLogger.LOGGER.receivedPartitionInfo(partitionInfo);
            final JobContextImpl jobContext = new JobContextImpl(jobExecution, null, artifactFactory,
                    jobRepository, batchEnvironment);

            final VertxPartitionWorker partitionWorker = new VertxPartitionWorker(eventBus);
            final AbstractContext[] outerContext = { jobContext };
            final StepContextImpl stepContext = new StepContextImpl(step, partitionExecution, outerContext);

            final AbstractRunner<StepContextImpl> runner;
            final Chunk chunk = step.getChunk();
            if (chunk == null) {
                runner = new BatchletRunner(stepContext, null, step.getBatchlet(), partitionWorker);
            } else {
                runner = new ChunkRunner(stepContext, null, chunk, null, partitionWorker);
            }
            batchEnvironment.submitTask(runner);
        }
    };
    eventBus.consumer(PartitionInfo.PARTITION_QUEUE, receivingPartitionHandler);
}

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

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

    // Does not have to register codec because sender already registered
    /*eventBus.registerDefaultCodec(CustomMessage.class, new CustomMessageCodec());*/
    // Receive message
    eventBus.consumer("local-message-receiver", message -> {
        CustomMessage customMessage = (CustomMessage) message.body();

        System.out.println("Custom message received: " + customMessage.getSummary());

        // Replying is same as publishing
        CustomMessage replyMessage = new CustomMessage(200, "a00000002", "Message sent from local receiver!");
        message.reply(replyMessage);/*from  w  ww  .  jav a  2  s  . c o m*/
    });
}

From source file:spring.vertxtest.verticle.MyTestVerticle.java

@Override
public void start(Future<Void> fut) throws Exception {
    log.info("start() -- starting Vertx Verticle with eventbus, API handler, and static file handler");

    // grab the router
    router = getRouter();/*from w  w w .  j a  v  a  2s  .  c o  m*/

    // enable CORS for the router 
    CorsHandler corsHandler = CorsHandler.create("*"); //Wildcard(*) not allowed if allowCredentials is true
    corsHandler.allowedMethod(HttpMethod.OPTIONS);
    corsHandler.allowedMethod(HttpMethod.GET);
    corsHandler.allowedMethod(HttpMethod.POST);
    corsHandler.allowedMethod(HttpMethod.PUT);
    corsHandler.allowedMethod(HttpMethod.DELETE);
    corsHandler.allowCredentials(false);
    corsHandler.allowedHeader("Access-Control-Request-Method");
    corsHandler.allowedHeader("Access-Control-Allow-Method");
    corsHandler.allowedHeader("Access-Control-Allow-Credentials");
    corsHandler.allowedHeader("Access-Control-Allow-Origin");
    corsHandler.allowedHeader("Access-Control-Allow-Headers");
    corsHandler.allowedHeader("Content-Type");

    // enable handling of body
    router.route().handler(BodyHandler.create());
    router.route().handler(corsHandler);
    router.route().handler(this::handleAccessLogging);

    // publish a payload to provided eventbus destination
    router.post("/api/eventbus/publish/:destination").handler(this::publish);

    // open up all for outbound and inbound traffic
    bridgeOptions = new BridgeOptions();
    bridgeOptions.addOutboundPermitted(new PermittedOptions().setAddressRegex(".*"));
    bridgeOptions.addInboundPermitted(new PermittedOptions().setAddressRegex(".*"));
    //        sockJsHandler = SockJSHandler.create(vertx).bridge(bridgeOptions);   
    sockJsHandler = SockJSHandler.create(vertx);
    sockJsHandler.bridge(bridgeOptions, be -> {
        try {
            if (be.type() == BridgeEventType.SOCKET_CREATED) {
                handleSocketOpenEvent(be);
            } else if (be.type() == BridgeEventType.REGISTER) {
                handleRegisterEvent(be);
            } else if (be.type() == BridgeEventType.UNREGISTER) {
                handleUnregisterEvent(be);
            } else if (be.type() == BridgeEventType.SOCKET_CLOSED) {
                handleSocketCloseEvent(be);
            }
        } catch (Exception e) {

        } finally {
            be.complete(true);
        }
    });
    router.route("/eventbus/*").handler(sockJsHandler);

    if (testPathEnabled) {
        router.route("/" + testUrlPath + "/*")
                .handler(StaticHandler.create(testFilePath).setCachingEnabled(cachingEnabled));
    }

    // create periodic task, pushing all current EventBusRegistrations
    vertx.setPeriodic(1000, handler -> {
        JsonObject obj = new JsonObject();
        obj.put("testMessage", "Periodic test message from server...");
        vertx.eventBus().publish("heartbeat-test", Json.encodePrettily(obj));
    });

    EventBus eb = vertx.eventBus();
    eb.consumer("client-test", message -> {
        log.info("Received message from client: " + Json.encodePrettily(message.body()) + " at "
                + System.currentTimeMillis());
    });

    HttpServerOptions httpOptions = new HttpServerOptions();
    if (sslEnabled) {
        httpOptions.setSsl(true);
        httpOptions.setKeyStoreOptions(sslKeyStoreOptions);
    }

    log.info("starting web server on port: " + port);
    vertx.createHttpServer(httpOptions).requestHandler(router::accept).listen(port, result -> {
        if (result.succeeded()) {
            setStarted(true);
            log.info("Server started and ready to accept requests");
            fut.complete();
        } else {
            setStarted(false);
            fut.fail(result.cause());
        }
    });
}

From source file:vertx_react.verticles.EventsVerticle.java

@Override
public void start(Future<Void> startFuture) throws Exception {
    EventBus eb = this.getVertx().eventBus();
    eb.consumer("incoming", (Message<JsonObject> handler) -> {
        JsonObject m = handler.body();/*  w w  w  .j  a va  2 s .  c o  m*/
        JsonArray ja = new JsonArray(getRandomArray());
        JsonObject j = new JsonObject().put("table", m.getInteger("table")).put("openSeats", ja);
        handler.reply(j);
        log.info(Json.encodePrettily(m.encodePrettily()));
    });
    super.start(startFuture);
}