Java Examples for io.vertx.core.eventbus.Message

The following java examples will help you to understand the usage of io.vertx.core.eventbus.Message. These source code samples are taken from different open source projects.

Example 1
Project: vertx-jca-master  File: ConnectorTestCase.java View source code
@Test
public void testSend() throws Exception {
    VertxConnection vc = connectionFactory.getVertxConnection();
    VertxEventBus eventBus = vc.vertxEventBus();
    VertxPlatformConfiguration config = new VertxPlatformConfiguration();
    config.setClusterHost("localhost");
    config.setClusterPort(0);
    config.setClustered(true);
    VertxPlatformFactory.instance().getOrCreateVertx(config, this);
    CountDownLatch latch = new CountDownLatch(1);
    vertx.deployVerticle(OutboundTestVerticle.class.getName(),  ar -> {
        if (ar.succeeded()) {
            latch.countDown();
        }
    });
    Assert.assertTrue("Verticle was not deployed", latch.await(5, TimeUnit.SECONDS));
    CountDownLatch consumerLatch = new CountDownLatch(1);
    vertx.eventBus().<String>consumer(INBOUND_ADDRESS).handler((Message<String> msg) -> {
        consumerLatch.countDown();
    });
    eventBus.send(OUTBOUND_ADDRESS, "JCA");
    consumerLatch.await();
    vc.close();
}
Example 2
Project: SlideshowFX-master  File: SlideshowFXServer.java View source code
@Override
public void run() {
    SlideshowFXServer.this.vertx.eventBus().send(service, data, (AsyncResult<Message<JsonObject>> ar) -> {
        response.setValue(ar.result().body());
        continueProcess = true;
    });
    while (!continueProcess) {
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            LOGGER.log(Level.SEVERE, "Can not wait result when calling a service", e);
        }
    }
}
Example 3
Project: vertx-examples-master  File: Server.java View source code
private void listAlbums(Message<JsonObject> msg) {
    // issue a find command to mongo to fetch all documents from the "albums" collection.
    mongo.find("albums", new JsonObject(),  lookup -> {
        if (lookup.failed()) {
            msg.fail(500, lookup.cause().getMessage());
            return;
        }
        final JsonArray json = new JsonArray();
        for (JsonObject o : lookup.result()) {
            json.add(o);
        }
        msg.reply(json);
    });
}
Example 4
Project: vertx-amqp-service-master  File: AMQPServiceImpl.java View source code
// ------------\ AmqpService -----------------
// -- Handler method for receiving messages from the event-bus -----------
@Override
public void handle(Message<JsonObject> vertxMsg) {
    try {
        LOG.debug(format("Received msg from Vert.x event bus : {address : %s, reply-to : %s, body : %s} ", vertxMsg.address(), vertxMsg.replyAddress(), vertxMsg.body() == null ? "" : vertxMsg.body().encodePrettily()));
        org.apache.qpid.proton.message.Message outMsg = _msgTranslator.convert(vertxMsg.body());
        JsonObject inMsg = vertxMsg.body();
        if (outMsg.getReplyTo() == null && vertxMsg.replyAddress() != null) {
            outMsg.setReplyTo(_replyToAddressPrefix + "/" + vertxMsg.replyAddress());
            _vertxReplyTo.put(vertxMsg.replyAddress(), vertxMsg);
        }
        // First attempt link routing (covers links created via Service API)
        String linkId = _linkBasedRouter.routeOutgoing(vertxMsg.address());
        if (linkId != null) {
            try {
                _linkManager.sendViaLink(linkId, outMsg, inMsg);
                LogMsgHelper.logVertxMsgForLinkBasedRouting(LOG, vertxMsg, linkId);
            } catch (MessagingException e) {
                LOG.warn(e, "Error {code=%s, msg='%s'} sending to link %s", e.getErrorCode(), e.getMessage(), linkId);
            }
        } else {
            // Message based routing (routes added through static or dynamic
            // config)
            List<String> amqpAddressList = _msgBasedRouter.routeOutgoing(vertxMsg);
            for (String amqpAddress : amqpAddressList) {
                try {
                    _linkManager.sendViaAddress(amqpAddress, outMsg, inMsg);
                } catch (MessagingException e) {
                    LOG.warn(e, "Error {code=%s, msg='%s'} sending to AMQP address %s", e.getErrorCode(), e.getMessage(), amqpAddress);
                }
            }
            LogMsgHelper.logVertxMsgForMsgBasedRouting(LOG, vertxMsg, amqpAddressList);
        }
    } catch (MessagingException e) {
        LOG.warn(e, "Error {code=%s, msg='%s'} routing outbound", e.getErrorCode(), e.getMessage());
    }
}
Example 5
Project: mod-opentsdb-master  File: OpenTsDbReporterTests.java View source code
@Test
public void testInvalidAction(TestContext context) throws Exception {
    JsonObject metric = new JsonObject();
    Async async = context.async();
    eb.send(topic, metric, new Handler<AsyncResult<Message<JsonObject>>>() {

        @Override
        public void handle(AsyncResult<Message<JsonObject>> result) {
            context.assertTrue(result.failed());
            context.assertTrue(result.cause() instanceof ReplyException);
            context.assertEquals(result.cause().getMessage(), "You must specify an action");
            async.complete();
        }
    });
    Async async1 = context.async();
    metric = new JsonObject().put("action", "badCommand");
    eb.send(topic, metric, new Handler<AsyncResult<Message<JsonObject>>>() {

        @Override
        public void handle(AsyncResult<Message<JsonObject>> result) {
            context.assertTrue(result.failed());
            context.assertTrue(result.cause() instanceof ReplyException);
            context.assertEquals(result.cause().getMessage(), "Invalid action: badCommand specified.");
            async1.complete();
        }
    });
}
Example 6
Project: narayana-master  File: ModuleIntegrationTest.java View source code
@Test
public //public void testPing(TestContext context) {
void testPing() {
    TestContext context = null;
    System.out.printf("in testPing()%n");
    logger.info("in testPing()");
    EventBus eb = vertx.eventBus();
    eb.publish("ping-address", "ping!");
    eb.consumer("ping-address", (Message<JsonObject> reply) -> {
        context.assertEquals("pong! 12", reply.body());
        /*
          If we get here, the test is complete
          You must always call `testComplete()` at the end. Remember that testing is *asynchronous* so
          we cannot assume the test is complete by the time the test method has finished executing like
          in standard synchronous tests
          */
        testComplete();
    });
}
Example 7
Project: yoke-master  File: BridgeSecureHandler.java View source code
@Override
public void handle(final Message<JsonObject> message) {
    final JsonObject json = new JsonObject();
    String sessionID = message.body().getString("sessionID");
    if (sessionID == null) {
        json.put("status", "denied");
        message.reply(json);
        return;
    }
    sessionStore.get(sessionID, new Handler<JsonObject>() {

        @Override
        public void handle(JsonObject session) {
            if (session == null) {
                json.put("status", "denied");
                message.reply(json);
                return;
            }
            json.put("status", "ok");
            json.put("username", session.getString("username"));
            message.reply(json);
        }
    });
}
Example 8
Project: apiman-master  File: EBRegistryProxyHandler.java View source code
@SuppressWarnings("nls")
default void listenProxyHandler() {
    System.out.println("Setting up a listener on " + address());
    vertx().eventBus().consumer(address(), (Message<JsonObject> message) -> {
        String uuid = message.body().getString("uuid");
        System.out.println("UUID == " + uuid + " vs " + uuid());
        if (shouldIgnore(uuid))
            return;
        String type = message.body().getString("type");
        String action = message.body().getString("action");
        String body = message.body().getString("body");
        switch(type) {
            case "client":
                Client app = Json.decodeValue(body, Client.class);
                if (action == "register") {
                    registerClient(app);
                } else if (action == "unregister") {
                    unregisterClient(app);
                }
                break;
            case "api":
                Api api = Json.decodeValue(body, Api.class);
                if (action == "publish") {
                    //$NON-NLS-1$
                    publishApi(api);
                } else if (action == "retire") {
                    retireApi(api);
                }
                break;
            default:
                throw new IllegalStateException("Unknown type: " + type);
        }
    });
}
Example 9
Project: camel-master  File: VertxProducer.java View source code
@Override
public void handle(AsyncResult<Message<Object>> event) {
    try {
        // preserve headers
        MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), false);
        Throwable e = event.cause();
        if (e != null) {
            exchange.setException(e);
        } else {
            exchange.getOut().setBody(event.result().body());
        }
    } finally {
        callback.done(false);
    }
}
Example 10
Project: vert.x-master  File: NetTest.java View source code
void pausingServer(Handler<AsyncResult<NetServer>> listenHandler) {
    server.connectHandler( sock -> {
        sock.pause();
        Handler<Message<Buffer>> resumeHandler = ( m) -> sock.resume();
        MessageConsumer reg = vertx.eventBus().<Buffer>consumer("server_resume").handler(resumeHandler);
        sock.closeHandler( v -> reg.unregister());
    }).listen(listenHandler);
}
Example 11
Project: vertx-kafka-master  File: MessageProducer.java View source code
@Override
public void start(final Future<Void> startedResult) {
    try {
        producerConfig = config();
        Properties properties = populateKafkaConfig();
        busAddress = producerConfig.getString(ConfigConstants.EVENTBUS_ADDRESS, EVENTBUS_DEFAULT_ADDRESS);
        defaultTopic = producerConfig.getString(ConfigConstants.DEFAULT_TOPIC);
        sender = Executors.newSingleThreadExecutor();
        producer = new KafkaProducer(properties);
        vertx.eventBus().consumer(busAddress, (Message<JsonObject> message) -> sendMessage(message));
        Runtime.getRuntime().addShutdownHook(new Thread() {

            // try to disconnect from ZK as gracefully as possible
            public void run() {
                shutdown();
            }
        });
        startedResult.complete();
    } catch (Exception ex) {
        logger.error("Message producer initialization failed with ex: {}", ex);
        startedResult.fail(ex);
    }
}
Example 12
Project: vertx-shell-master  File: BusTest.java View source code
private <T> String assertBusSend(TestContext context, String cmd, Handler<Message<T>> handler) {
    Async terminatedLatch = context.async();
    vertx.eventBus().consumer("the_address", handler);
    Shell shell = server.createShell();
    Pty pty = Pty.create();
    StringBuffer result = new StringBuffer();
    pty.stdoutHandler(result::append);
    Job job = shell.createJob(cmd).setTty(pty.slave());
    job.statusUpdateHandler( status -> {
        if (status == ExecStatus.TERMINATED) {
            terminatedLatch.complete();
        }
    });
    job.run();
    terminatedLatch.awaitSuccess(5000);
    return result.toString();
}
Example 13
Project: vertx-unit-master  File: EventBusTest.java View source code
@org.junit.Test
public void testEventBusReport() throws Exception {
    long now = System.currentTimeMillis();
    String address = TestUtils.randomAlphaString(10);
    String testSuiteName = TestUtils.randomAlphaString(10);
    String testCaseName1 = TestUtils.randomAlphaString(10);
    String testCaseName2 = TestUtils.randomAlphaString(10);
    String testCaseName3 = TestUtils.randomAlphaString(10);
    MessageConsumer<JsonObject> consumer = vertx.eventBus().localConsumer(address);
    Handler<Message<JsonObject>> messageHandler = EventBusCollector.create(vertx,  testSuite -> {
        Map<TestCaseReport, TestResult> results = new LinkedHashMap<>();
        testSuite.handler( testCase -> {
            testCase.endHandler( result -> {
                results.put(testCase, result);
            });
        });
        testSuite.endHandler( done -> {
            assertEquals(testSuiteName, testSuite.name());
            assertEquals(3, results.size());
            Iterator<Map.Entry<TestCaseReport, TestResult>> it = results.entrySet().iterator();
            Map.Entry<TestCaseReport, TestResult> entry1 = it.next();
            assertEquals(entry1.getKey().name(), entry1.getValue().name());
            assertEquals(testCaseName1, entry1.getValue().name());
            assertTrue(entry1.getValue().succeeded());
            assertTrue(entry1.getValue().beginTime() >= now);
            assertEquals(10, entry1.getValue().durationTime());
            assertNull(entry1.getValue().failure());
            Map.Entry<TestCaseReport, TestResult> entry2 = it.next();
            assertEquals(entry2.getKey().name(), entry2.getValue().name());
            assertEquals(testCaseName2, entry2.getValue().name());
            assertFalse(entry2.getValue().succeeded());
            assertTrue(entry2.getValue().beginTime() >= now);
            assertEquals(5, entry2.getValue().durationTime());
            assertNotNull(entry2.getValue().failure());
            assertEquals(false, entry2.getValue().failure().isError());
            assertEquals("the_failure_message", entry2.getValue().failure().message());
            assertEquals("the_failure_stackTrace", entry2.getValue().failure().stackTrace());
            assertTrue(entry2.getValue().failure().cause() instanceof IOException);
            Map.Entry<TestCaseReport, TestResult> entry3 = it.next();
            assertEquals(entry3.getKey().name(), entry3.getValue().name());
            assertEquals(testCaseName3, entry3.getValue().name());
            assertFalse(entry3.getValue().succeeded());
            assertTrue(entry3.getValue().beginTime() >= now);
            assertEquals(7, entry3.getValue().durationTime());
            assertNotNull(entry3.getValue().failure());
            assertEquals(false, entry3.getValue().failure().isError());
            assertEquals(null, entry3.getValue().failure().message());
            assertEquals("the_failure_stackTrace", entry3.getValue().failure().stackTrace());
            assertTrue(entry3.getValue().failure().cause() instanceof IOException);
            consumer.unregister();
            testComplete();
        });
    }).asMessageHandler();
    consumer.completionHandler( ar -> {
        assertTrue(ar.succeeded());
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_SUITE_BEGIN).put("name", testSuiteName));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_BEGIN).put("name", testCaseName1));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_END).put("name", testCaseName1).put("beginTime", System.currentTimeMillis()).put("durationTime", 10L));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_BEGIN).put("name", testCaseName2));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_END).put("name", testCaseName2).put("beginTime", System.currentTimeMillis()).put("durationTime", 5L).put("failure", new FailureImpl(false, "the_failure_message", "the_failure_stackTrace", new IOException()).toJson()));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_BEGIN).put("name", testCaseName3));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_CASE_END).put("name", testCaseName3).put("beginTime", System.currentTimeMillis()).put("durationTime", 7L).put("failure", new FailureImpl(false, null, "the_failure_stackTrace", new IOException()).toJson()));
        vertx.eventBus().publish(address, new JsonObject().put("type", EventBusCollector.EVENT_TEST_SUITE_END));
    });
    consumer.handler(messageHandler);
    await();
}
Example 14
Project: nubes-master  File: ServiceRegistry.java View source code
private void createConsumer(Object service, Consumer consumes, Method method) {
    Class<?>[] parameterTypes = method.getParameterTypes();
    if (parameterTypes.length != 1 || !parameterTypes[0].equals(Message.class)) {
        String msg = "Cannot register consumer on method : " + getFullName(service, method);
        msg += " .Method should only declare one parameter of io.vertx.core.eventbus.Message type.";
        throw new VertxException(msg);
    }
    vertx.eventBus().consumer(consumes.value(),  message -> {
        try {
            method.invoke(service, message);
        } catch (Exception e) {
            LOG.error("Exception happened during message handling on method : " + getFullName(service, method), e);
        }
    });
}
Example 15
Project: qbit-master  File: VertxEventBusBridge.java View source code
private void handleIncomingMessage(final String address, final Message<String> message) {
    try {
        logger.debug(message.body());
        final String method = message.headers().get("method");
        final String body = message.body();
        final List<String> errors = new ArrayList<>();
        final MethodCall<Object> transform = standardRequestTransformer.transFormBridgeBody(body, errors, address, method);
        if (errors.size() > 0) {
            logger.error("Error marshaling message body to method call to service errors {}", errors);
            message.fail(500, errors.toString());
            return;
        }
        final CallbackBuilder callbackBuilder = CallbackBuilder.callbackBuilder();
        callbackBuilder.setOnError( throwable -> {
            logger.error("Error from calling " + address, throwable);
            message.fail(500, throwable.getMessage());
        });
        callbackBuilder.setCallback( returnedValue -> message.reply(encodeOutput(returnedValue)));
        callbackBuilder.setOnTimeout(() -> {
            logger.error("Timed out call to " + address + " method " + method);
            message.fail(408, "Timed out call to " + address + " method " + method);
        });
        final MethodCall<Object> methodCall = MethodCallBuilder.methodCallBuilder().setAddress(address).setBody(transform.body()).setTimestamp(this.timer.time()).setName(method).setId(messageId++).setCallback(callbackBuilder.build()).build();
        if (logger.isDebugEnabled()) {
            logger.debug("Calling method {} {}", methodCall.name(), message.body());
        }
        if (methodCallPredicate.test(methodCall)) {
            this.methodCallSendQueue.send(methodCall);
        }
    } catch (IndexOutOfBoundsExceptionJsonException |  ix) {
        logger.error("Error marshaling message body to method call to service", ix);
        message.fail(500, "IllegalArgumentException");
    } catch (Exception ex) {
        logger.error("Error marshaling message body to method call to service", ex);
        message.fail(500, ex.getClass().getSimpleName() + ": " + ex.getMessage());
    }
}
Example 16
Project: vertx-opentsdb-master  File: OpenTsDbServiceTests.java View source code
@Test
public void testInvalidAction(TestContext context) throws Exception {
    JsonObject metric = new JsonObject();
    Async async = context.async();
    eb.send(topic, metric, new Handler<AsyncResult<Message<JsonObject>>>() {

        @Override
        public void handle(AsyncResult<Message<JsonObject>> result) {
            context.assertTrue(result.failed());
            context.assertTrue(result.cause() instanceof ReplyException);
            context.assertEquals(result.cause().getMessage(), "You must specify an action");
            async.complete();
        }
    });
    Async async1 = context.async();
    metric = new JsonObject().put("action", "badCommand");
    eb.send(topic, metric, new Handler<AsyncResult<Message<JsonObject>>>() {

        @Override
        public void handle(AsyncResult<Message<JsonObject>> result) {
            context.assertTrue(result.failed());
            context.assertTrue(result.cause() instanceof ReplyException);
            context.assertEquals(result.cause().getMessage(), "Invalid action: badCommand specified.");
            async1.complete();
        }
    });
}
Example 17
Project: vertx-redis-client-master  File: PubSubTest.java View source code
@Test
public void testPubSub() {
    final String message = makeKey();
    // register a handler for the incoming message
    vertx.eventBus().consumer("io.vertx.redis.ch1", (Message<JsonObject> msg) -> {
        JsonObject value = msg.body().getJsonObject("value");
        assertEquals("ch1", value.getString("channel"));
        assertEquals(message, value.getString("message"));
        testComplete();
    });
    // on sub address subscribe to channel ch1
    redis.subscribe("ch1",  subscribe -> {
        assertTrue(subscribe.succeeded());
        assertEquals("subscribe", subscribe.result().getValue(0));
        assertEquals("ch1", subscribe.result().getValue(1));
        assertEquals(1l, subscribe.result().getValue(2));
        redis.publish("ch1", message,  res -> {
            assertTrue(res.succeeded());
            assertEquals(Long.valueOf(1l), res.result());
        });
    });
    await();
}
Example 18
Project: ChronoServer-master  File: Server.java View source code
/**
     * Handles starting the server listening on all interfaces
     *
     * @return a callback to hit when ready for the server to open up listening
     */
private Handler<Message<Object>> getStartupHandler() {
    return  message -> {
        server = vertx.createHttpServer();
        Router router = Router.router(vertx);
        buildApi(router);
        setupSockJSServer(router);
        server.requestHandler(router::accept);
        server.listen(svrConfig.port, "0.0.0.0",  event -> {
            if (event.failed()) {
                logger.error("Failed to start server, error:", event.cause());
                stop();
            } else {
                logger.info("Thread: {} starting to handle request", Thread.currentThread().getId());
            }
        });
    };
}
Example 19
Project: vertx-bosun-master  File: BosunReporter.java View source code
/**
     * Handles posting to the index endpoint
     *
     * @param message the message to send
     */
private void doIndex(Message<JsonObject> message) {
    OpenTsDbMetric metric = getMetricFromMessage(message);
    if (metric == null) {
        return;
    }
    // ignore it we've seen it lately
    String key = metric.getDistinctKey();
    if (distinctMetrics.getIfPresent(key) != null) {
        message.reply(new JsonObject().put(RESULT_FIELD, BosunResponse.EXISTS_MSG));
        return;
    }
    // cache it
    distinctMetrics.put(key, true);
    metricsIndexed.incrementAndGet();
    sendData(INDEX_API, metric.asJson().encode(), message);
}
Example 20
Project: vertx-service-proxy-master  File: TestServiceVertxProxyHandler.java View source code
public void handle(Message<JsonObject> msg) {
    try {
        JsonObject json = msg.body();
        String action = msg.headers().get("action");
        if (action == null) {
            throw new IllegalStateException("action not specified");
        }
        accessed();
        switch(action) {
            case "longDeliverySuccess":
                {
                    service.longDeliverySuccess(createHandler(msg));
                    break;
                }
            case "longDeliveryFailed":
                {
                    service.longDeliveryFailed(createHandler(msg));
                    break;
                }
            case "createConnection":
                {
                    service.createConnection((java.lang.String) json.getValue("str"),  res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            String proxyAddress = UUID.randomUUID().toString();
                            ProxyHelper.registerService(TestConnection.class, vertx, res.result(), proxyAddress, false, timeoutSeconds);
                            msg.reply(null, new DeliveryOptions().addHeader("proxyaddr", proxyAddress));
                        }
                    });
                    break;
                }
            case "createConnectionWithCloseFuture":
                {
                    service.createConnectionWithCloseFuture( res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            String proxyAddress = UUID.randomUUID().toString();
                            ProxyHelper.registerService(TestConnectionWithCloseFuture.class, vertx, res.result(), proxyAddress, false, timeoutSeconds);
                            msg.reply(null, new DeliveryOptions().addHeader("proxyaddr", proxyAddress));
                        }
                    });
                    break;
                }
            case "noParams":
                {
                    service.noParams();
                    break;
                }
            case "basicTypes":
                {
                    service.basicTypes((java.lang.String) json.getValue("str"), json.getValue("b") == null ? null : (json.getLong("b").byteValue()), json.getValue("s") == null ? null : (json.getLong("s").shortValue()), json.getValue("i") == null ? null : (json.getLong("i").intValue()), json.getValue("l") == null ? null : (json.getLong("l").longValue()), json.getValue("f") == null ? null : (json.getDouble("f").floatValue()), json.getValue("d") == null ? null : (json.getDouble("d").doubleValue()), json.getInteger("c") == null ? null : (char) (int) (json.getInteger("c")), (boolean) json.getValue("bool"));
                    break;
                }
            case "basicBoxedTypes":
                {
                    service.basicBoxedTypes((java.lang.String) json.getValue("str"), json.getValue("b") == null ? null : (json.getLong("b").byteValue()), json.getValue("s") == null ? null : (json.getLong("s").shortValue()), json.getValue("i") == null ? null : (json.getLong("i").intValue()), json.getValue("l") == null ? null : (json.getLong("l").longValue()), json.getValue("f") == null ? null : (json.getDouble("f").floatValue()), json.getValue("d") == null ? null : (json.getDouble("d").doubleValue()), json.getInteger("c") == null ? null : (char) (int) (json.getInteger("c")), (java.lang.Boolean) json.getValue("bool"));
                    break;
                }
            case "basicBoxedTypesNull":
                {
                    service.basicBoxedTypesNull((java.lang.String) json.getValue("str"), json.getValue("b") == null ? null : (json.getLong("b").byteValue()), json.getValue("s") == null ? null : (json.getLong("s").shortValue()), json.getValue("i") == null ? null : (json.getLong("i").intValue()), json.getValue("l") == null ? null : (json.getLong("l").longValue()), json.getValue("f") == null ? null : (json.getDouble("f").floatValue()), json.getValue("d") == null ? null : (json.getDouble("d").doubleValue()), json.getInteger("c") == null ? null : (char) (int) (json.getInteger("c")), (java.lang.Boolean) json.getValue("bool"));
                    break;
                }
            case "jsonTypes":
                {
                    service.jsonTypes((io.vertx.core.json.JsonObject) json.getValue("jsonObject"), (io.vertx.core.json.JsonArray) json.getValue("jsonArray"));
                    break;
                }
            case "jsonTypesNull":
                {
                    service.jsonTypesNull((io.vertx.core.json.JsonObject) json.getValue("jsonObject"), (io.vertx.core.json.JsonArray) json.getValue("jsonArray"));
                    break;
                }
            case "enumType":
                {
                    service.enumType(json.getString("someEnum") == null ? null : io.vertx.serviceproxy.testmodel.SomeEnum.valueOf(json.getString("someEnum")));
                    break;
                }
            case "enumTypeNull":
                {
                    service.enumTypeNull(json.getString("someEnum") == null ? null : io.vertx.serviceproxy.testmodel.SomeEnum.valueOf(json.getString("someEnum")));
                    break;
                }
            case "enumTypeAsResult":
                {
                    service.enumTypeAsResult(createHandler(msg));
                    break;
                }
            case "enumTypeAsResultNull":
                {
                    service.enumTypeAsResultNull(createHandler(msg));
                    break;
                }
            case "dataObjectType":
                {
                    service.dataObjectType(json.getJsonObject("options") == null ? null : new io.vertx.serviceproxy.testmodel.TestDataObject(json.getJsonObject("options")));
                    break;
                }
            case "dataObjectTypeNull":
                {
                    service.dataObjectTypeNull(json.getJsonObject("options") == null ? null : new io.vertx.serviceproxy.testmodel.TestDataObject(json.getJsonObject("options")));
                    break;
                }
            case "listParams":
                {
                    service.listParams(convertList(json.getJsonArray("listString").getList()), json.getJsonArray("listByte").stream().map( o -> ((Number) o).byteValue()).collect(Collectors.toList()), json.getJsonArray("listShort").stream().map( o -> ((Number) o).shortValue()).collect(Collectors.toList()), json.getJsonArray("listInt").stream().map( o -> ((Number) o).intValue()).collect(Collectors.toList()), json.getJsonArray("listLong").stream().map( o -> ((Number) o).longValue()).collect(Collectors.toList()), convertList(json.getJsonArray("listJsonObject").getList()), convertList(json.getJsonArray("listJsonArray").getList()), json.getJsonArray("listDataObject").stream().map( o -> new TestDataObject((JsonObject) o)).collect(Collectors.toList()));
                    break;
                }
            case "setParams":
                {
                    service.setParams(convertSet(json.getJsonArray("setString").getList()), json.getJsonArray("setByte").stream().map( o -> ((Number) o).byteValue()).collect(Collectors.toSet()), json.getJsonArray("setShort").stream().map( o -> ((Number) o).shortValue()).collect(Collectors.toSet()), json.getJsonArray("setInt").stream().map( o -> ((Number) o).intValue()).collect(Collectors.toSet()), json.getJsonArray("setLong").stream().map( o -> ((Number) o).longValue()).collect(Collectors.toSet()), convertSet(json.getJsonArray("setJsonObject").getList()), convertSet(json.getJsonArray("setJsonArray").getList()), json.getJsonArray("setDataObject").stream().map( o -> new TestDataObject((JsonObject) o)).collect(Collectors.toSet()));
                    break;
                }
            case "mapParams":
                {
                    service.mapParams(convertMap(json.getJsonObject("mapString").getMap()), json.getJsonObject("mapByte").getMap().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,  entry -> ((java.lang.Number) entry.getValue()).byteValue())), json.getJsonObject("mapShort").getMap().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,  entry -> ((java.lang.Number) entry.getValue()).shortValue())), json.getJsonObject("mapInt").getMap().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,  entry -> ((java.lang.Number) entry.getValue()).intValue())), json.getJsonObject("mapLong").getMap().entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey,  entry -> ((java.lang.Number) entry.getValue()).longValue())), convertMap(json.getJsonObject("mapJsonObject").getMap()), convertMap(json.getJsonObject("mapJsonArray").getMap()));
                    break;
                }
            case "stringHandler":
                {
                    service.stringHandler(createHandler(msg));
                    break;
                }
            case "stringNullHandler":
                {
                    service.stringNullHandler(createHandler(msg));
                    break;
                }
            case "byteHandler":
                {
                    service.byteHandler(createHandler(msg));
                    break;
                }
            case "byteNullHandler":
                {
                    service.byteNullHandler(createHandler(msg));
                    break;
                }
            case "shortHandler":
                {
                    service.shortHandler(createHandler(msg));
                    break;
                }
            case "shortNullHandler":
                {
                    service.shortNullHandler(createHandler(msg));
                    break;
                }
            case "intHandler":
                {
                    service.intHandler(createHandler(msg));
                    break;
                }
            case "intNullHandler":
                {
                    service.intNullHandler(createHandler(msg));
                    break;
                }
            case "longHandler":
                {
                    service.longHandler(createHandler(msg));
                    break;
                }
            case "longNullHandler":
                {
                    service.longNullHandler(createHandler(msg));
                    break;
                }
            case "floatHandler":
                {
                    service.floatHandler(createHandler(msg));
                    break;
                }
            case "floatNullHandler":
                {
                    service.floatNullHandler(createHandler(msg));
                    break;
                }
            case "doubleHandler":
                {
                    service.doubleHandler(createHandler(msg));
                    break;
                }
            case "doubleNullHandler":
                {
                    service.doubleNullHandler(createHandler(msg));
                    break;
                }
            case "charHandler":
                {
                    service.charHandler(createHandler(msg));
                    break;
                }
            case "charNullHandler":
                {
                    service.charNullHandler(createHandler(msg));
                    break;
                }
            case "booleanHandler":
                {
                    service.booleanHandler(createHandler(msg));
                    break;
                }
            case "booleanNullHandler":
                {
                    service.booleanNullHandler(createHandler(msg));
                    break;
                }
            case "jsonObjectHandler":
                {
                    service.jsonObjectHandler(createHandler(msg));
                    break;
                }
            case "jsonObjectNullHandler":
                {
                    service.jsonObjectNullHandler(createHandler(msg));
                    break;
                }
            case "jsonArrayHandler":
                {
                    service.jsonArrayHandler(createHandler(msg));
                    break;
                }
            case "jsonArrayNullHandler":
                {
                    service.jsonArrayNullHandler(createHandler(msg));
                    break;
                }
            case "dataObjectHandler":
                {
                    service.dataObjectHandler( res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            msg.reply(res.result() == null ? null : res.result().toJson());
                        }
                    });
                    break;
                }
            case "dataObjectNullHandler":
                {
                    service.dataObjectNullHandler( res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            msg.reply(res.result() == null ? null : res.result().toJson());
                        }
                    });
                    break;
                }
            case "voidHandler":
                {
                    service.voidHandler(createHandler(msg));
                    break;
                }
            case "fluentMethod":
                {
                    service.fluentMethod((java.lang.String) json.getValue("str"), createHandler(msg));
                    break;
                }
            case "fluentNoParams":
                {
                    service.fluentNoParams();
                    break;
                }
            case "failingMethod":
                {
                    service.failingMethod(createHandler(msg));
                    break;
                }
            case "invokeWithMessage":
                {
                    service.invokeWithMessage((io.vertx.core.json.JsonObject) json.getValue("object"), (java.lang.String) json.getValue("str"), json.getValue("i") == null ? null : (json.getLong("i").intValue()), json.getInteger("chr") == null ? null : (char) (int) (json.getInteger("chr")), json.getString("senum") == null ? null : io.vertx.serviceproxy.testmodel.SomeEnum.valueOf(json.getString("senum")), createHandler(msg));
                    break;
                }
            case "listStringHandler":
                {
                    service.listStringHandler(createListHandler(msg));
                    break;
                }
            case "listByteHandler":
                {
                    service.listByteHandler(createListHandler(msg));
                    break;
                }
            case "listShortHandler":
                {
                    service.listShortHandler(createListHandler(msg));
                    break;
                }
            case "listIntHandler":
                {
                    service.listIntHandler(createListHandler(msg));
                    break;
                }
            case "listLongHandler":
                {
                    service.listLongHandler(createListHandler(msg));
                    break;
                }
            case "listFloatHandler":
                {
                    service.listFloatHandler(createListHandler(msg));
                    break;
                }
            case "listDoubleHandler":
                {
                    service.listDoubleHandler(createListHandler(msg));
                    break;
                }
            case "listCharHandler":
                {
                    service.listCharHandler(createListCharHandler(msg));
                    break;
                }
            case "listBoolHandler":
                {
                    service.listBoolHandler(createListHandler(msg));
                    break;
                }
            case "listJsonObjectHandler":
                {
                    service.listJsonObjectHandler(createListHandler(msg));
                    break;
                }
            case "listJsonArrayHandler":
                {
                    service.listJsonArrayHandler(createListHandler(msg));
                    break;
                }
            case "listDataObjectHandler":
                {
                    service.listDataObjectHandler( res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            msg.reply(new JsonArray(res.result().stream().map(TestDataObject::toJson).collect(Collectors.toList())));
                        }
                    });
                    break;
                }
            case "setStringHandler":
                {
                    service.setStringHandler(createSetHandler(msg));
                    break;
                }
            case "setByteHandler":
                {
                    service.setByteHandler(createSetHandler(msg));
                    break;
                }
            case "setShortHandler":
                {
                    service.setShortHandler(createSetHandler(msg));
                    break;
                }
            case "setIntHandler":
                {
                    service.setIntHandler(createSetHandler(msg));
                    break;
                }
            case "setLongHandler":
                {
                    service.setLongHandler(createSetHandler(msg));
                    break;
                }
            case "setFloatHandler":
                {
                    service.setFloatHandler(createSetHandler(msg));
                    break;
                }
            case "setDoubleHandler":
                {
                    service.setDoubleHandler(createSetHandler(msg));
                    break;
                }
            case "setCharHandler":
                {
                    service.setCharHandler(createSetCharHandler(msg));
                    break;
                }
            case "setBoolHandler":
                {
                    service.setBoolHandler(createSetHandler(msg));
                    break;
                }
            case "setJsonObjectHandler":
                {
                    service.setJsonObjectHandler(createSetHandler(msg));
                    break;
                }
            case "setJsonArrayHandler":
                {
                    service.setJsonArrayHandler(createSetHandler(msg));
                    break;
                }
            case "setDataObjectHandler":
                {
                    service.setDataObjectHandler( res -> {
                        if (res.failed()) {
                            if (res.cause() instanceof ServiceException) {
                                msg.reply(res.cause());
                            } else {
                                msg.reply(new ServiceException(-1, res.cause().getMessage()));
                            }
                        } else {
                            msg.reply(new JsonArray(res.result().stream().map(TestDataObject::toJson).collect(Collectors.toList())));
                        }
                    });
                    break;
                }
            case "failingCall":
                {
                    service.failingCall((java.lang.String) json.getValue("value"), createHandler(msg));
                    break;
                }
            case "ignoredMethod":
                {
                    service.ignoredMethod();
                    break;
                }
            default:
                {
                    throw new IllegalStateException("Invalid action: " + action);
                }
        }
    } catch (Throwable t) {
        msg.reply(new ServiceException(500, t.getMessage()));
        throw t;
    }
}
Example 21
Project: vertx-eventbusbridge-master  File: EventBusBridge.java View source code
@Override
public <R> void reply(Object message, DeliveryOptions deliveryOptions, Handler<AsyncResult<Message<R>>> replyHandler) {
    if (this.replyAddress != null) {
        EventBusBridge.this.send(replyAddress, message.toString(), ( result,  eb) -> {
            if (replyHandler != null) {
                replyHandler.handle(new AsyncResult<Message<R>>() {

                    @Override
                    public Message<R> result() {
                        return new EventBusMessage(result);
                    }

                    @Override
                    public Throwable cause() {
                        return null;
                    }

                    @Override
                    public boolean succeeded() {
                        return true;
                    }

                    @Override
                    public boolean failed() {
                        return false;
                    }
                });
            }
        });
    }
}
Example 22
Project: vertx-redisques-master  File: RedisQues.java View source code
public void handle(final Message<JsonObject> event) {
    String operation = event.body().getString(OPERATION);
    if (log.isTraceEnabled()) {
        log.trace("RedisQues got operation:" + operation);
    }
    QueueOperation queueOperation = QueueOperation.fromString(operation);
    if (queueOperation == null) {
        unsupportedOperation(operation, event);
        return;
    }
    switch(queueOperation) {
        case enqueue:
            updateTimestamp(event.body().getJsonObject(PAYLOAD).getString(QUEUENAME), null);
            String keyEnqueue = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            String valueEnqueue = event.body().getString(MESSAGE);
            redisClient.rpush(keyEnqueue, valueEnqueue,  event2 -> {
                JsonObject reply = new JsonObject();
                if (event2.succeeded()) {
                    log.debug("RedisQues Enqueued message into queue " + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME));
                    notifyConsumer(event.body().getJsonObject(PAYLOAD).getString(QUEUENAME));
                    reply.put(STATUS, OK);
                    reply.put(MESSAGE, "enqueued");
                    event.reply(reply);
                } else {
                    String message = "RedisQues QUEUE_ERROR: Error while enqueueing message into queue " + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
                    log.error(message);
                    reply.put(STATUS, ERROR);
                    reply.put(MESSAGE, message);
                    event.reply(reply);
                }
            });
            break;
        case check:
            checkQueues();
            break;
        case reset:
            resetConsumers();
            break;
        case stop:
            gracefulStop( event1 -> {
                JsonObject reply = new JsonObject();
                reply.put(STATUS, OK);
            });
            break;
        case getQueueItems:
            String keyListRange = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            int maxQueueItemCountIndex = getMaxQueueItemCountIndex(event.body().getJsonObject(PAYLOAD).getString(LIMIT));
            redisClient.llen(keyListRange,  countReply -> redisClient.lrange(keyListRange, 0, maxQueueItemCountIndex, new GetQueueItemsHandler(event, countReply.result())));
            break;
        case addQueueItem:
            String key1 = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            String valueAddItem = event.body().getJsonObject(PAYLOAD).getString(BUFFER);
            redisClient.rpush(key1, valueAddItem, new AddQueueItemHandler(event));
            break;
        case deleteQueueItem:
            String keyLset = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            int indexLset = event.body().getJsonObject(PAYLOAD).getInteger(INDEX);
            redisClient.lset(keyLset, indexLset, "TO_DELETE",  event1 -> {
                if (event1.succeeded()) {
                    String keyLrem = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
                    redisClient.lrem(keyLrem, 0, "TO_DELETE",  replyLrem -> event.reply(new JsonObject().put(STATUS, OK)));
                } else {
                    event.reply(new JsonObject().put(STATUS, ERROR));
                }
            });
            break;
        case getQueueItem:
            String key = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            int index = event.body().getJsonObject(PAYLOAD).getInteger(INDEX);
            redisClient.lindex(key, index, new GetQueueItemHandler(event));
            break;
        case replaceQueueItem:
            String keyReplaceItem = getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            int indexReplaceItem = event.body().getJsonObject(PAYLOAD).getInteger(INDEX);
            String bufferReplaceItem = event.body().getJsonObject(PAYLOAD).getString(BUFFER);
            redisClient.lset(keyReplaceItem, indexReplaceItem, bufferReplaceItem, new ReplaceQueueItemHandler(event));
            break;
        case deleteAllQueueItems:
            redisClient.del(getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME), new DeleteAllQueueItems(event));
            break;
        case getAllLocks:
            redisClient.hkeys(getLocksKey(), new GetAllLocksHandler(event));
            break;
        case putLock:
            JsonObject lockInfo = extractLockInfo(event.body().getJsonObject(PAYLOAD).getString(REQUESTED_BY));
            if (lockInfo != null) {
                redisClient.hmset(getLocksKey(), new JsonObject().put(event.body().getJsonObject(PAYLOAD).getString(QUEUENAME), lockInfo.encode()), new PutLockHandler(event));
            } else {
                event.reply(new JsonObject().put(STATUS, ERROR).put(MESSAGE, "Property '" + REQUESTED_BY + "' missing"));
            }
            break;
        case getLock:
            redisClient.hget(getLocksKey(), event.body().getJsonObject(PAYLOAD).getString(QUEUENAME), new GetLockHandler(event));
            break;
        case deleteLock:
            String queueName = event.body().getJsonObject(PAYLOAD).getString(QUEUENAME);
            redisClient.exists(getQueuesPrefix() + queueName,  event1 -> {
                if (event1.succeeded() && event1.result() == 1) {
                    notifyConsumer(queueName);
                }
                redisClient.hdel(getLocksKey(), queueName, new DeleteLockHandler(event));
            });
            break;
        case getQueueItemsCount:
            redisClient.llen(getQueuesPrefix() + event.body().getJsonObject(PAYLOAD).getString(QUEUENAME), new GetQueueItemsCountHandler(event));
            break;
        case getQueuesCount:
            redisClient.zcount(getQueuesKey(), getMaxAgeTimestamp(), Double.MAX_VALUE, new GetQueuesCountHandler(event));
            break;
        case getQueues:
            redisClient.zrangebyscore(getQueuesKey(), String.valueOf(getMaxAgeTimestamp()), "+inf", RangeLimitOptions.NONE, new GetQueuesHandler(event));
            break;
        default:
            unsupportedOperation(operation, event);
    }
}
Example 23
Project: vertx-stomp-master  File: EventBusBridgeTest.java View source code
@Test
public void testThatStompMessagesAreTransferredToTheEventBus() {
    AtomicReference<Message> reference = new AtomicReference<>();
    consumers.add(vertx.eventBus().consumer("/bus", reference::set));
    clients.add(StompClient.create(vertx).connect( ar -> {
        final StompClientConnection connection = ar.result();
        connection.send("/bus", Headers.create("foo", "bar"), Buffer.buffer("Hello from STOMP"));
    }));
    Awaitility.await().atMost(10, TimeUnit.SECONDS).until(() -> reference.get() != null);
    assertThat(reference.get().headers().get("foo")).isEqualTo("bar");
    assertThat(reference.get().headers().get("destination")).isEqualTo("/bus");
    assertThat(reference.get().headers().get("content-length")).isEqualTo("16");
    assertThat(reference.get().address()).isEqualTo("/bus");
    assertThat(reference.get().replyAddress()).isNullOrEmpty();
    assertThat(reference.get().body().toString()).isEqualTo("Hello from STOMP");
}
Example 24
Project: vertx-guice-master  File: ConfigVerticle.java View source code
/**
     * Something has happened, so handle it.
     *
     * @param msg the event to handle
     */
@Override
public void handle(Message<Void> msg) {
    msg.reply(dependency.getConfig());
}
Example 25
Project: vertx-hk2-master  File: SimpleVerticle.java View source code
/**
     * Something has happened, so handle it.
     *
     * @param msg the event to handle
     */
@Override
public void handle(Message<Void> msg) {
    msg.reply(dependency.getClass().getName());
}
Example 26
Project: solace-dashboards-master  File: Util.java View source code
/**
   * decode a message to json object
   * @param val
   * @return
   */
public static JsonObject decode(Message val) {
    JsonObject jo = new JsonObject(val.body().toString());
    return jo;
}
Example 27
Project: vertx-rest-storage-master  File: EventBusAdapter.java View source code
@Override
public void handle(Message<Buffer> message) {
    requestHandler.handle(new MappedHttpServerRequest(vertx, message));
}