/* * Copyright (c) 2017 univento.eu - All rights reserved * You are not allowed to use, distribute or modify this code */ package eu.univento.commons.messaging; import eu.univento.commons.Commons; import eu.univento.commons.event.MessageEvent; import io.vertx.core.json.JsonObject; import java.util.ArrayList; import java.util.List; /** * @author joethei * @version 1.0 */ public class MessageHandler { private static List events = new ArrayList<>(); public static void registerListener(String queue, MessageEvent event) { events.add(event); Commons.getCommons().getVertx().eventBus().consumer(queue, msg -> { JsonObject json = (JsonObject) msg.body(); event.onMessageReceived(queue, json.getString("body")); }); Commons.getCommons().getMessagingManager().start().whenComplete((rabbitMQ, throwable) -> rabbitMQ.getClient().basicConsume(queue, queue, res -> { if(!res.succeeded()) res.cause().printStackTrace(); })); } public static void sendMessage(String queue, String message) { Commons.getCommons().getMessagingManager().start().whenComplete((rabbitMQ, throwable) -> rabbitMQ.getClient().basicPublish("", queue, new JsonObject().put("body", message), res -> { if(res.succeeded()) { for(MessageEvent event : events) { event.onMessageSend(queue, message); } }else res.cause().printStackTrace(); })); } }