Example usage for com.rabbitmq.client ConnectionFactory newConnection

List of usage examples for com.rabbitmq.client ConnectionFactory newConnection

Introduction

In this page you can find the example usage for com.rabbitmq.client ConnectionFactory newConnection.

Prototype

public Connection newConnection() throws IOException, TimeoutException 

Source Link

Document

Create a new broker connection.

Usage

From source file:com.es.sensorgateway.Publish.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./*from w w  w .  ja  v a  2  s  .c  om*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, UnknownHostException {

    response.setContentType("text/html;charset=UTF-8");

    try (PrintWriter out = response.getWriter()) {
        /* TODO output your page here. You may use following sample code. */

        logger.info("Connection with rabbit Mq stablish!");

        byte[] original;
        String message = null;
        try {
            message = request.getParameter("data");
            original = Base64.getUrlDecoder().decode(message);
        } catch (Exception ex) {
            response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
            response.getWriter().write(HttpServletResponse.SC_BAD_REQUEST);
            logger.debug("Ignoring message: " + message);
            return;
        }

        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("systembus"); // RabbitMQ IP
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        //POR aqui as cenas de autenticao
        response.setStatus(HttpServletResponse.SC_OK);
        response.getWriter().write(HttpServletResponse.SC_OK);
        logger.info("Received request from REST gateway!");

        channel.exchangeDeclare("sensors", "topic", false);
        channel.basicPublish("sensors", "realtime.sensordata", null, original);
        logger.info("Message sent to broker: " + message);

        channel.close();
        connection.close();
        logger.info("Connection with rabbit Mq closed!");

    } catch (TimeoutException ex) {
        logger.error(ex);
    }
}

From source file:com.espertech.esperio.amqp.AMQPSink.java

License:Open Source License

public void open(DataFlowOpOpenContext openContext) {
    log.info("Opening AMQP, settings are: " + settings.toString());

    try {/*from w w  w.j  av a 2 s . c om*/
        final ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(settings.getHost());
        if (settings.getPort() > -1) {
            connectionFactory.setPort(settings.getPort());
        }
        if (settings.getUsername() != null) {
            connectionFactory.setUsername(settings.getUsername());
        }
        if (settings.getPassword() != null) {
            connectionFactory.setPassword(settings.getPassword());
        }
        if (settings.getVhost() != null) {
            connectionFactory.setVirtualHost(settings.getVhost());
        }

        connection = connectionFactory.newConnection();
        channel = connection.createChannel();

        if (settings.getExchange() != null) {
            channel.exchangeDeclarePassive(settings.getExchange());
        }

        final AMQP.Queue.DeclareOk queue;
        if (settings.getQueueName() == null || settings.getQueueName().trim().length() == 0) {
            queue = channel.queueDeclare();
        } else {
            // java.lang.String queue,boolean durable,boolean exclusive,boolean autoDelete,java.util.Map<java.lang.String,java.lang.Object> arguments) throws java.io.IOException
            queue = channel.queueDeclare(settings.getQueueName(), settings.isDeclareDurable(),
                    settings.isDeclareExclusive(), settings.isDeclareAutoDelete(),
                    settings.getDeclareAdditionalArgs());
        }
        if (settings.getExchange() != null && settings.getRoutingKey() != null) {
            channel.queueBind(queue.getQueue(), settings.getExchange(), settings.getRoutingKey());
        }

        final String queueName = queue.getQueue();
        log.info("AMQP producing queue is " + queueName + (settings.isLogMessages() ? " with logging" : ""));
    } catch (IOException e) {
        String message = "AMQP setup failed: " + e.getMessage();
        log.error(message, e);
        throw new RuntimeException(message, e);
    }
}

From source file:com.espertech.esperio.amqp.AMQPSource.java

License:Open Source License

public void open(DataFlowOpOpenContext openContext) {
    log.info("Opening AMQP, settings are: " + settings.toString());

    try {//from w ww . j  ava 2s .  co m
        final ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(settings.getHost());
        if (settings.getPort() > -1) {
            connectionFactory.setPort(settings.getPort());
        }
        if (settings.getUsername() != null) {
            connectionFactory.setUsername(settings.getUsername());
        }
        if (settings.getPassword() != null) {
            connectionFactory.setPassword(settings.getPassword());
        }
        if (settings.getVhost() != null) {
            connectionFactory.setVirtualHost(settings.getVhost());
        }

        connection = connectionFactory.newConnection();
        channel = connection.createChannel();

        channel.basicQos(settings.getPrefetchCount());
        if (settings.getExchange() != null) {
            channel.exchangeDeclarePassive(settings.getExchange());
        }

        final AMQP.Queue.DeclareOk queue;
        if (settings.getQueueName() == null || settings.getQueueName().trim().length() == 0) {
            queue = channel.queueDeclare();
        } else {
            // java.lang.String queue,boolean durable,boolean exclusive,boolean autoDelete,java.util.Map<java.lang.String,java.lang.Object> arguments) throws java.io.IOException
            queue = channel.queueDeclare(settings.getQueueName(), settings.isDeclareDurable(),
                    settings.isDeclareExclusive(), settings.isDeclareAutoDelete(),
                    settings.getDeclareAdditionalArgs());
        }
        if (settings.getExchange() != null && settings.getRoutingKey() != null) {
            channel.queueBind(queue.getQueue(), settings.getExchange(), settings.getRoutingKey());
        }

        final String queueName = queue.getQueue();
        log.info("AMQP consuming queue " + queueName + (settings.isLogMessages() ? " with logging" : ""));

        consumer = new QueueingConsumer(channel);
        consumerTag = channel.basicConsume(queueName, settings.isConsumeAutoAck(), consumer);
    } catch (IOException e) {
        String message = "AMQP source setup failed: " + e.getMessage();
        log.error(message, e);
        throw new EPException(message, e);
    }
}

From source file:com.espertech.esperio.amqp.AMQPSupportReceiveRunnable.java

License:Open Source License

public void run() {
    try {//  w  w w. j  a v a2 s.com
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(hostName);
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        // java.lang.String queue, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments
        channel.queueDeclare(queueName, false, false, true, null);

        log.info("Start receiving messages");

        QueueingConsumer consumer = new QueueingConsumer(channel);
        channel.basicConsume(queueName, true, consumer);

        int count = 0;
        while (true) {
            final QueueingConsumer.Delivery msg = consumer.nextDelivery(waitMSecNextMsg);
            if (msg == null) {
                continue;
            }
            final byte[] bytes = msg.getBody();
            callback.handleMessage(bytes);

            if (isShutdown()) {
                break;
            }
        }

        log.info("Completed publishing messages: " + count + " messages");
    } catch (Exception ex) {
        log.error("Error attaching to AMQP: " + ex.getMessage(), ex);
    }
}

From source file:com.espertech.esperio.amqp.AMQPSupportSendRunnable.java

License:Open Source License

public void run() {
    try {// w w  w . j  a v  a 2s .  c om
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(hostName);
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();

        // java.lang.String queue, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments
        channel.queueDeclare(queueName, false, false, true, null);

        log.info("Start publishing messages: " + events.size() + " messages");

        int count = 0;
        while (true) {
            if (events.isEmpty()) {
                break;
            }

            Object next = events.remove(0);
            byte[] bytes = SerializerUtil.objectToByteArr(next);
            channel.basicPublish("", queueName, null, bytes);
            count++;

            log.info("Publishing message #" + count + ": " + next);
            Thread.sleep(msecSleepTime);

            if (isShutdown()) {
                break;
            }
        }

        log.info("Completed publishing messages: " + count + " messages");
    } catch (Exception ex) {
        log.error("Error attaching to AMQP: " + ex.getMessage(), ex);
    }
}

From source file:com.espertech.esperio.amqp.AMQPSupportUtil.java

License:Open Source License

public static int drainQueue(String hostName, String queueName) {
    Connection connection = null;
    Channel channel = null;/*ww  w.  j  a  v  a 2s  .co m*/

    try {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost(hostName);
        connection = factory.newConnection();
        channel = connection.createChannel();

        // java.lang.String queue, boolean durable, boolean exclusive, boolean autoDelete, java.util.Map<java.lang.String,java.lang.Object> arguments
        channel.queueDeclare(queueName, false, false, true, null);

        QueueingConsumer consumer = new QueueingConsumer(channel);
        channel.basicConsume(queueName, true, consumer);

        int count = 0;
        while (true) {
            final QueueingConsumer.Delivery msg = consumer.nextDelivery(1);
            if (msg == null) {
                return count;
            }
        }
    } catch (Exception ex) {
        log.error("Error attaching to AMQP: " + ex.getMessage(), ex);
    } finally {
        if (channel != null) {
            try {
                channel.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (connection != null) {
            try {
                connection.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return -1;
}

From source file:com.esri.geoevent.test.performance.rabbitmq.RabbitMQEventConsumer.java

License:Apache License

@Override
public void init(Config config) throws TestException {
    super.init(config);

    uri = config.getPropertyValue("uri");
    exchangeName = config.getPropertyValue("exchangeName");
    queueName = config.getPropertyValue("queueName");
    routingKey = config.getPropertyValue("routingKey");

    if (uri == null) {
        throw new TestException("RabbitMQ event consumer ERROR: 'uri' property must be specified");
    }/* w  w  w.j  ava  2  s .  co  m*/
    if (exchangeName == null) {
        throw new TestException("RabbitMQ event consumer ERROR: 'exchangeName' property must be specified");
    }
    if (queueName == null) {
        throw new TestException("RabbitMQ event consumer ERROR: 'queueName' property must be specified");
    }

    try {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUri(uri);
        connection = factory.newConnection();
        channel = connection.createChannel();
        channel.queueDeclare(queueName, false, false, true, null);
        channel.queueBind(queueName, exchangeName, routingKey);
        // channel.basicQos(1);
        consumer = new QueueingConsumer(channel);
        channel.basicConsume(queueName, true, consumer);
    } catch (Exception error) {
        throw new TestException(
                ImplMessages.getMessage("INIT_FAILURE", getClass().getName(), error.getMessage()), error);
    }
}

From source file:com.esri.geoevent.test.performance.rabbitmq.RabbitMQEventProducer.java

License:Apache License

@Override
public void init(Config config) throws TestException {
    super.init(config);

    uri = config.getPropertyValue("uri");
    exchangeName = config.getPropertyValue("exchangeName");
    queueName = config.getPropertyValue("queueName");
    routingKey = config.getPropertyValue("routingKey");

    if (uri == null) {
        throw new TestException("RabbitMQ event producer ERROR: 'uri' property must be specified");
    }/*w  w w . j a  v  a 2 s . com*/
    if (exchangeName == null) {
        throw new TestException("RabbitMQ event producer ERROR: 'exchangeName' property must be specified");
    }
    if (queueName == null) {
        throw new TestException("RabbitMQ event producer ERROR: 'queueName' property must be specified");
    }

    try {
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUri(uri);
        connection = factory.newConnection();
        channel = connection.createChannel();
        channel.queueDeclare(queueName, false, false, true, null);
        channel.queueBind(queueName, exchangeName, routingKey);
    } catch (Exception error) {
        throw new TestException(
                ImplMessages.getMessage("INIT_FAILURE", getClass().getName(), error.getMessage()), error);
    }
}

From source file:com.eventbook.controller.SpringbootPocController.java

@RequestMapping(value = "/rabbitMQSendTest", method = RequestMethod.GET)
public String rabbitMQSendTest(@RequestParam(value = "message", defaultValue = "Hello World!") String message) {
    try {/*from w  w w . ja v a 2  s .co  m*/
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("rabbitmq");
        factory.setPort(5672);
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        channel.basicPublish("", QUEUE_NAME, null, message.getBytes("UTF-8"));
        System.out.println(" [x] Sent '" + message + "'");

        channel.close();
        connection.close();

        return "rabbitMQSendTest Sent: " + message;
    } catch (IOException | TimeoutException ex) {
        Logger.getLogger(SpringbootPocController.class.getName()).log(Level.SEVERE, null, ex);
    }

    return "rabbitMQSendTest has been failed!!!";
}

From source file:com.eventbook.controller.SpringbootPocController.java

@RequestMapping(value = "/rabbitMQReceiveTest", method = RequestMethod.GET)
public String rabbitMQReceiveTest() {
    try {//www  .  j a v a 2 s .  c o  m
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("rabbitmq");
        factory.setPort(5672);
        Connection connection = factory.newConnection();
        Channel channel = connection.createChannel();
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
        Consumer consumer = new DefaultConsumer(channel) {
            @Override
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
                    byte[] body) throws IOException {
                String message = new String(body, "UTF-8");
                System.out.println(" [x] Received '" + message + "'");
            }
        };
        channel.basicConsume(QUEUE_NAME, true, consumer);

    } catch (IOException | TimeoutException ex) {
        Logger.getLogger(SpringbootPocController.class.getName()).log(Level.SEVERE, null, ex);
    }

    return "Getting messages from RabbitMQ!!";
}